/** Shopify CDN: Minification failed

Line 1568:19 Unexpected "*"

**/
/* =================================================================
   Dick's Potato Chips — Custom Design System
   Overrides Dawn 4.0 defaults with brand-specific tokens and styles.
   
   Design philosophy: warm cream base, packaging colors as accents,
   product-forward merchandising, confident food-brand energy.
   ================================================================= */

/* --- Google Fonts ---
   Loaded via <link> in theme.liquid <head> for non-blocking render.
   Do NOT re-add @import here — it creates a render-blocking waterfall.
   ----------------------------------------------------------------------- */

/* =================================================================
   1. DESIGN TOKENS
   ================================================================= */
:root {
  /* Surfaces */
  --surface-base: #F5F0E8;
  --surface-elevated: #FFFDF9;
  --surface-overlay: #EDE7DC;

  /* Brand (from packaging — accent use only) */
  --brand-red: #C5281C;
  --brand-red-hover: #A82318;
  --brand-purple: #4E2D6D;
  --brand-purple-hover: #3D2356;
  --brand-gold: #D4A238;
  --brand-gold-hover: #B8892E;
  --brand-green: #2E8B57;

  /* Surfaces — semantic backgrounds */
  --surface-brand: #1A1A1A;

  /* Text */
  --text-primary: #1A1A1A;
  --text-secondary: #6B6259;
  --text-tertiary: #756B63;
  --text-on-dark: #F5F0E8;
  --text-on-brand: #FFFFFF;

  /* Borders */
  --border: #E8E2DA;
  --border-strong: #D1C9BD;

  /* Flavor accents (5-8% opacity washes for product cards) */
  --flavor-salty: #C5281C;
  --flavor-bbq: #D4A238;
  --flavor-hot: #E84420;
  --flavor-sv: #2E8B57;

  /* Typography */
  --font-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-body: 'DM Sans', 'Helvetica Neue', sans-serif;

  /* Spacing (fluid — breathes on larger viewports, tightens on mobile) */
  --section-padding-sm: clamp(40px, 5vw, 60px);
  --section-padding-md: clamp(48px, 6vw, 80px);
  --section-padding-lg: clamp(56px, 8vw, 100px);
  --section-padding-xl: clamp(64px, 10vw, 120px);
  --gutter-mobile: 16px;
  --gutter-desktop: 24px;
  --content-max-width: 1280px;

  /* Radii */
  --radius-card: 12px;
  --radius-button: 8px;
  --radius-badge: 20px;
  --radius-input: 8px;

  /* Surfaces (aliases for bundle builder compatibility) */
  --surface-card: var(--surface-elevated);
  --border-subtle: var(--border);

  /* Transitions (ease-out-quart for natural UI motion) */
  --ease-out: cubic-bezier(0.25, 1, 0.5, 1);
  --transition-fast: 150ms var(--ease-out);
  --transition-base: 250ms var(--ease-out);
  --transition-slow: 400ms var(--ease-out);

  /* Z-index scale (semantic layers — never use arbitrary values) */
  --z-base: 1;
  --z-badge: 2;
  --z-sticky: 100;
  --z-overlay: 500;
  --z-drawer: 600;
  --z-toast: 700;

  /* Shadows */
  --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.04);
  --shadow-card-hover: 0 8px 24px rgba(0, 0, 0, 0.08);
  --shadow-elevated: 0 4px 12px rgba(0, 0, 0, 0.06);
  --shadow-drawer: -4px 0 24px rgba(0, 0, 0, 0.12);

  /* Radii — pill (fully rounded variant selectors) */
  --radius-pill: 100px;

  /* Tracking (synced from design system tokens/typography.css) */
  --tracking-display: -0.02em;
  --tracking-heading: -0.01em;
  --tracking-label: 0.08em;
  --tracking-button: 0.06em;

  /* Flavor washes (5–8% tints behind product cards on hover) */
  --wash-salty: rgba(197, 40, 28, 0.06);
  --wash-bbq: rgba(212, 162, 56, 0.08);
  --wash-hot: rgba(232, 68, 32, 0.06);
  --wash-sv: rgba(46, 139, 87, 0.06);

  /* Accessibility — focus halo on interactive controls */
  --focus-ring: 0 0 0 4px rgba(197, 40, 28, 0.15);
  --hit-target: 44px;
}

/* =================================================================
   Section eyebrow — red uppercase label above section titles
   (design system SectionHeading: eyebrow + title two-tier)
   ================================================================= */
.dicks-eyebrow {
  display: block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: var(--tracking-label);
  color: var(--brand-red);
  margin-bottom: 8px;
}

/* Accessibility — consistent focus halo on interactive controls */
.dicks-btn:focus-visible,
.dicks-pill:focus-visible,
.dicks-qty__btn:focus-visible,
.dicks-drawer__close:focus-visible,
.dicks-drawer__qty-btn:focus-visible,
.dicks-drawer__remove:focus-visible {
  outline: 2px solid var(--brand-red);
  outline-offset: 2px;
  box-shadow: var(--focus-ring);
}

@media (prefers-reduced-motion: reduce) {
  .dicks-eyebrow { margin-bottom: 8px; }
}

/* =================================================================
   2. DAWN OVERRIDES — Base reset to new design system
   ================================================================= */

/* Override Dawn's page-width and background */
body.gradient,
body {
  background-color: var(--surface-base) !important;
  color: var(--text-primary);
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.6;
  letter-spacing: 0;
}

/* Override Dawn's page width (was 120rem = 1920px, way too wide) */
.page-width {
  max-width: var(--content-max-width) !important;
  padding-left: var(--gutter-mobile);
  padding-right: var(--gutter-mobile);
  margin: 0 auto;
}

@media screen and (min-width: 750px) {
  .page-width {
    padding-left: var(--gutter-desktop);
    padding-right: var(--gutter-desktop);
  }
}

/* =================================================================
   3. TYPOGRAPHY
   ================================================================= */

/* Display headings — Barlow Condensed Black */
h1, h2, h3,
.h0, .h1, .h2, .h3,
.dicks-heading {
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.1;
  letter-spacing: -0.01em;
  text-wrap: balance;
}

.h0 {
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

h1, .h1 {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 900;
}

h2, .h2 {
  font-size: clamp(1.75rem, 4vw, 2.75rem);
}

h3, .h3 {
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
}

/* Body text */
.dicks-body {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 70ch;
  text-wrap: pretty;
}

.dicks-body--lg {
  font-size: 1.125rem;
  line-height: 1.65;
}

/* Labels — Barlow Condensed SemiBold uppercase */
.dicks-label {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-tertiary);
}

.dicks-label--accent {
  color: var(--brand-red);
}

/* Price display */
.dicks-price {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.125rem;
  font-variant-numeric: tabular-nums;
  color: var(--text-primary);
}

/* B2B wholesale slash-through on the flavor-strip size rows */
.dicks-price--wholesale {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4rem;
}

.dicks-price__retail {
  color: var(--text-secondary, #7a7a7a);
  opacity: 0.6;
  text-decoration: line-through;
  font-weight: 700;
}

.dicks-price__wholesale {
  color: var(--text-primary);
  font-weight: 700;
}

.dicks-price--unit {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 0.875rem;
  color: var(--text-tertiary);
}

/* =================================================================
   4. BUTTONS
   ================================================================= */

.dicks-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: var(--radius-button);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: all var(--transition-fast);
  -webkit-tap-highlight-color: transparent;
}

.dicks-btn:active {
  transform: scale(0.97);
}

/* Primary — brand red fill */
.dicks-btn--primary {
  background-color: var(--brand-red);
  color: var(--text-on-brand);
}

.dicks-btn--primary:hover {
  background-color: var(--brand-red-hover);
}

/* Secondary — ghost/outline */
.dicks-btn--secondary {
  background-color: transparent;
  color: var(--text-primary);
  border: 1.5px solid var(--border-strong);
}

.dicks-btn--secondary:hover {
  background-color: var(--surface-overlay);
}

/* Bundle CTA — purple */
.dicks-btn--bundle {
  background-color: var(--brand-purple);
  color: var(--text-on-brand);
}

.dicks-btn--bundle:hover {
  background-color: var(--brand-purple-hover);
}

/* Full-width button */
.dicks-btn--full {
  width: 100%;
}

/* Small button (quick-add) */
.dicks-btn--sm {
  padding: 10px 20px;
  font-size: 0.75rem;
}

/* =================================================================
   5. PRODUCT CARDS
   ================================================================= */

.dicks-product-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--surface-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  overflow: hidden;
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.dicks-product-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.dicks-product-card__image-wrap {
  position: relative;
  padding: 24px 16px 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  transition: background-color var(--transition-base);
}

/* Flavor-specific tint backgrounds on hover */
.dicks-product-card[data-flavor="salty"]:hover .dicks-product-card__image-wrap {
  background-color: rgba(197, 40, 28, 0.06);
}
.dicks-product-card[data-flavor="bbq"]:hover .dicks-product-card__image-wrap {
  background-color: rgba(212, 162, 56, 0.08);
}
.dicks-product-card[data-flavor="hot"]:hover .dicks-product-card__image-wrap {
  background-color: rgba(232, 68, 32, 0.06);
}
.dicks-product-card[data-flavor="sv"]:hover .dicks-product-card__image-wrap {
  background-color: rgba(46, 139, 87, 0.06);
}

.dicks-product-card__image {
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  transition: transform var(--transition-base);
}

.dicks-product-card:hover .dicks-product-card__image {
  transform: scale(1.03);
}

.dicks-product-card__info {
  padding: 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.dicks-product-card__name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--text-primary);
  margin: 0 0 4px;
  line-height: 1.2;
}

.dicks-product-card__meta {
  font-family: var(--font-body);
  font-size: 0.8125rem;
  color: var(--text-tertiary);
  margin-bottom: 8px;
}

.dicks-product-card__price-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: auto;
  padding-top: 8px;
}

.dicks-product-card__quick-add {
  margin-top: 12px;
}

/* Dawn card-product quick add (e.g. cart page recommendations) */
.card__quick-add {
  margin-top: 12px;
}

.card__quick-add .dicks-quick-add-form {
  margin: 0;
}

/* Larger, easy-to-tap "Add to Order" label */
.card__quick-add .dicks-btn {
  font-size: 2.1rem;
  letter-spacing: 0.02em;
  padding-top: 16px;
  padding-bottom: 16px;
  min-height: 60px; /* comfortable touch target */
}

@media screen and (max-width: 749px) {
  .card__quick-add .dicks-btn {
    font-size: 2.3rem;
    padding-top: 18px;
    padding-bottom: 18px;
  }
}

/* Touch devices / mobile: always visible (no hover) */
@media screen and (max-width: 989px), (hover: none) {
  .card__quick-add {
    opacity: 1;
  }
}

/* Desktop w/ hover: reveal "Add to Order" when the card is hovered/focused */
@media screen and (min-width: 990px) and (hover: hover) {
  .card__quick-add {
    opacity: 0;
    transform: translateY(6px);
    transition: opacity var(--transition-base, 0.2s ease), transform var(--transition-base, 0.2s ease);
  }

  .card-wrapper:hover .card__quick-add,
  .card-wrapper:focus-within .card__quick-add {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Mobile: quick-add always visible */
@media screen and (max-width: 749px) {
  .dicks-product-card__quick-add {
    opacity: 1;
  }
}

/* Desktop: quick-add fades in on hover */
@media screen and (min-width: 750px) {
  .dicks-product-card__quick-add {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity var(--transition-base), transform var(--transition-base);
  }

  .dicks-product-card:hover .dicks-product-card__quick-add {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =================================================================
   6. BUNDLE CARDS (wider, variant pills)
   ================================================================= */

.dicks-bundle-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--surface-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  overflow: hidden;
  padding: 24px;
}

.dicks-bundle-card__header {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 16px;
}

.dicks-bundle-card__image {
  width: 120px;
  height: 120px;
  object-fit: contain;
  flex-shrink: 0;
}

.dicks-bundle-card__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.25rem;
  color: var(--text-primary);
  margin: 0 0 4px;
}

.dicks-bundle-card__subtitle {
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--text-secondary);
  margin: 0 0 8px;
}

/* Variant pill selector */
.dicks-pill-selector {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 16px;
}

.dicks-pill {
  display: inline-flex;
  align-items: center;
  padding: 8px 18px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-pill);
  background: var(--surface-elevated);
  font-family: var(--font-body);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--text-primary);
  cursor: pointer;
  transition: all var(--transition-fast);
  -webkit-tap-highlight-color: transparent;
  min-height: var(--hit-target); /* Touch target */
}

.dicks-pill:hover {
  border-color: var(--border-strong);
  background: var(--surface-overlay);
}

.dicks-pill--selected {
  border-color: var(--brand-red);
  background: rgba(197, 40, 28, 0.05);
  color: var(--brand-red);
  font-weight: 700;
}

.dicks-pill--disabled {
  opacity: 0.5;
  cursor: not-allowed;
  text-decoration: line-through;
}

/* =================================================================
   6b. COLLECTION / SHOP PAGE — enlarged typography + prominent bundle CTA
   Scoped to .collection (product grid) and .collection-hero (banner) so the
   rest of the site keeps its own tuned type sizes. Desktop/tablet only
   (>=750px) to avoid overflow on narrow phones.
   ================================================================= */
/* NOTE: this theme sets html { font-size: 62.5% } → 1rem = 10px. All sizes
   below are px-equivalent (rem × 10), chosen to roughly 2.5–3× the originals. */

/* Equal-height flavor cards so the prices line up: the grid stretches each <li>
   to the tallest in the row, but the card only sizes to its (variable-length
   title) content. display:grid on the cell stretches the card to fill it. */
.collection .dicks-grid > li {
  display: grid;
}

@media screen and (min-width: 750px) {
  /* Banner heading + subtitle */
  .collection-hero .h1 {
    font-size: 5.5rem;    /* ~55px */
    line-height: 1.05;
  }
  .collection-hero .dicks-body {
    font-size: 2.6rem;    /* ~26px */
    line-height: 1.5;
    max-width: none;
  }

  /* Zone labels — "INDIVIDUAL FLAVORS" / "COMBO PACKS" */
  .collection .dicks-label {
    font-size: 2.1rem;    /* ~21px (was 7.5px) */
    letter-spacing: 0.1em;
    margin-bottom: 24px !important;
  }

  /* Individual flavor cards */
  .collection .dicks-product-card__info {
    padding: 24px;
  }
  .collection .dicks-product-card__name {
    font-size: 3rem;      /* ~30px (was ~11px) */
    line-height: 1.15;
  }
  .collection .dicks-product-card__meta {
    font-size: 2rem;      /* ~20px */
    margin-bottom: 12px;
  }
  .collection .dicks-product-card .dicks-price {
    font-size: 3rem;      /* ~30px */
  }
  .collection .dicks-product-card .dicks-btn {
    font-size: 1.8rem;    /* ~18px */
  }

  /* Variety pack / combo — larger, centered, prominent CTA */
  .collection #product-grid-bundles {
    grid-template-columns: minmax(0, 880px);
    justify-content: center;
  }
  .collection .dicks-bundle-card {
    padding: 40px;
  }
  .collection .dicks-bundle-card__header {
    gap: 32px;
    align-items: center;
    margin-bottom: 24px;
  }
  .collection .dicks-bundle-card__image {
    width: 200px;
    height: 200px;
  }
  .collection .dicks-bundle-card__title {
    font-size: 3.8rem;    /* ~38px */
    line-height: 1.1;
  }
  .collection .dicks-bundle-card__subtitle {
    font-size: 2.3rem;    /* ~23px */
    margin-bottom: 12px;
  }
  .collection .dicks-bundle-card .dicks-price {
    font-size: 3.8rem;    /* ~38px */
  }
  .collection .dicks-bundle-card .dicks-pill {
    font-size: 2.1rem;    /* ~21px */
    padding: 14px 28px;
  }
  .collection .dicks-bundle-card .dicks-btn {
    font-size: 2.8rem;    /* ~28px */
    padding: 22px 44px;
  }
}

/* =================================================================
   7. ANNOUNCEMENT BAR
   Styles now live in the announcement-bar.liquid <style> block.
   Old gold override removed — was forcing #D4A238 on all bars.
   ================================================================= */

/* =================================================================
   8. HEADER OVERRIDES
   ================================================================= */

/* Glass-blur effect on scroll (JS toggles .header--scrolled) */
.header-wrapper {
  transition: background-color var(--transition-base), backdrop-filter var(--transition-base);
}

.header-wrapper.header--scrolled {
  background-color: rgba(245, 240, 232, 0.85) !important;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}

.header {
  max-width: var(--content-max-width);
  margin: 0 auto;
  padding: 0 var(--gutter-desktop);
}

/* Lift the whole header section above the announcement strip so the overhanging
   logo badge paints ON TOP of the checkerboard. Dawn ships the announcement
   section at z-index 4 and the header at 3 — backwards for our overlap — so
   bump the header section above it. (z-index needs a positioned context.) */
#shopify-section-header {
  position: relative;
  z-index: 6;
}

.header__heading-link {
  font-family: var(--font-display);
  font-weight: 900;
}

/* Logo — larger base size across breakpoints (kept inline like Dawn's default
   so mobile logo centering is unaffected). */
.header__heading-logo {
  width: 100px !important;
  height: auto !important;
}

/* Desktop: oversized logo badge that floats on top of all three header layers
   — the checkerboard strip above, the nav band, and the hero below.
   The logo is taken OUT OF FLOW (absolute) so it no longer inflates the nav
   row: the band collapses to the nav's own height (slimmer) while the badge is
   vertically centred on the band and overhangs into the strip and the hero.
   The cell keeps an explicit width so the grid still reserves its column and
   the nav doesn't slide left. High z-index makes the badge the top layer. */
@media screen and (min-width: 990px) {
  .header__heading {
    position: relative;
    z-index: 60;
    width: 160px;
    align-self: stretch;
  }

  .header__heading-link {
    display: block;
    position: static;
  }

  .header__heading-logo {
    width: 160px !important;
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    /* Nudge the badge down so it straddles the nav band and the hero only —
       its top clears the checkerboard strip (small white gap above it) and it
       overhangs down into the hero. */
    transform: translateY(calc(-50% + 36px));
    margin: 0 !important;
  }
}

/* Nav link styles */
.header__menu-item,
.header__menu-item span {
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 1.5rem !important;
  color: var(--text-primary) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.header__menu-item:hover span {
  color: var(--brand-red) !important;
}

/* Slimmer nav band — trimmed ~1/3 vs the prior 0.7rem (Dawn ships 2rem).
   With the logo now absolute (out of flow), the band height is driven by the
   nav alone, so this padding sets the band ~1/3 shorter than before. */
@media screen and (min-width: 990px) {
  .header {
    padding-top: 0.6rem !important;
    padding-bottom: 0.6rem !important;
  }
}

/* Cart count badge */
.cart-count-bubble {
  background-color: var(--brand-red) !important;
  color: var(--text-on-brand) !important;
}

/* Scroll-to anchor for hero "start ordering" cue → Build-a-Box.
   scroll-margin-top clears the sticky header so the section top isn't hidden. */
.hbb-anchor {
  display: block;
  scroll-margin-top: 110px;
}

/* =================================================================
   9. FOOTER OVERRIDES
   ================================================================= */

.dicks-footer,
.section-footer {
  background-color: var(--text-primary) !important;
  color: var(--text-on-dark) !important;
}

.dicks-footer a,
.section-footer a {
  color: var(--surface-overlay) !important;
  transition: color var(--transition-fast);
}

.dicks-footer a:hover,
.section-footer a:hover {
  color: var(--brand-gold) !important;
}

.dicks-footer__easter-egg {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 0.75rem;
  color: var(--text-tertiary);
  text-align: center;
  margin-top: 32px;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

/* =================================================================
   10. LAYOUT UTILITIES
   ================================================================= */

.dicks-section {
  padding: var(--section-padding-md) 0;
}

.dicks-section--sm {
  padding: var(--section-padding-sm) 0;
}

.dicks-section--lg {
  padding: var(--section-padding-lg) 0;
}

.dicks-section--xl {
  padding: var(--section-padding-xl) 0;
}

.dicks-section--alt {
  background-color: var(--surface-overlay);
}

.dicks-section--dark {
  background-color: var(--text-primary);
  color: var(--text-on-dark);
}

.dicks-section--brand-red {
  background-color: var(--brand-red);
  color: var(--text-on-brand);
}

.dicks-section--brand-purple {
  background-color: var(--brand-purple);
  color: var(--text-on-brand);
}

.dicks-container {
  max-width: var(--content-max-width);
  margin: 0 auto;
  padding: 0 var(--gutter-mobile);
}

@media screen and (min-width: 750px) {
  .dicks-container {
    padding: 0 var(--gutter-desktop);
  }
}

.dicks-grid {
  display: grid;
  gap: var(--gutter-mobile);
}

@media screen and (min-width: 750px) {
  .dicks-grid {
    gap: var(--gutter-desktop);
  }
}

.dicks-grid--2 { grid-template-columns: 1fr; }
.dicks-grid--4 { grid-template-columns: repeat(2, 1fr); }

@media screen and (min-width: 750px) {
  .dicks-grid--2 { grid-template-columns: repeat(2, 1fr); }
  .dicks-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

/* 12-column grid for advanced layouts */
.dicks-grid-12 {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--gutter-desktop);
}

/* Split layout — for hero and product detail */
.dicks-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--gutter-desktop);
  align-items: center;
}

@media screen and (min-width: 750px) {
  .dicks-split {
    grid-template-columns: 5fr 7fr;
  }

  .dicks-split--reverse {
    grid-template-columns: 7fr 5fr;
  }
}

/* =================================================================
   11. HORIZONTAL SCROLL (Flavor Strip Mobile)
   ================================================================= */

.dicks-scroll-row {
  display: flex;
  gap: var(--gutter-mobile);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0 var(--gutter-mobile);
}

.dicks-scroll-row::-webkit-scrollbar {
  display: none;
}

.dicks-scroll-row > * {
  scroll-snap-align: start;
  flex-shrink: 0;
  width: 70vw;
  max-width: 280px;
}

@media screen and (min-width: 750px) {
  .dicks-scroll-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    overflow: visible;
    padding: 0;
  }

  .dicks-scroll-row > * {
    width: auto;
    max-width: none;
  }
}

/* =================================================================
   12. TRUST BAR
   ================================================================= */

.dicks-trust-bar {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  text-align: center;
}

@media screen and (min-width: 750px) {
  .dicks-trust-bar {
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
  }
}

.dicks-trust-item__number {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--text-primary);
  line-height: 1;
}

.dicks-section--alt .dicks-trust-item__number {
  color: var(--brand-red);
}

.dicks-trust-item__label {
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--text-secondary);
  margin-top: 4px;
}

/* =================================================================
   13. MINI-CART DRAWER
   ================================================================= */

.dicks-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(26, 26, 26, 0.4);
  z-index: var(--z-overlay);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-base);
}

.dicks-drawer-overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

.dicks-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 400px;
  background: var(--surface-elevated);
  box-shadow: var(--shadow-drawer);
  z-index: var(--z-drawer);
  transform: translateX(100%);
  transition: transform var(--transition-base);
  display: flex;
  flex-direction: column;
}

.dicks-drawer.is-open {
  transform: translateX(0);
}

.dicks-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid var(--border);
}

.dicks-drawer__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.75rem;
}

.dicks-drawer__close {
  background: none;
  border: none;
  padding: 12px;
  min-width: 44px;
  min-height: 44px;
  cursor: pointer;
  color: var(--text-primary);
}

.dicks-drawer__items {
  flex: 1;
  overflow-y: auto;
  padding: 16px 24px;
}

.dicks-drawer__item {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 14px;
  align-items: start;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}

.dicks-drawer__item-image {
  width: 64px;
  height: 64px;
  object-fit: contain;
  border-radius: 8px;
  background: var(--surface-base);
}

.dicks-drawer__item-name {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 1.4rem;
  line-height: 1.25;
  color: var(--text-primary);
}

.dicks-drawer__item-variant {
  font-size: 1.15rem;
  margin-top: 2px;
  color: var(--text-tertiary);
}

.dicks-drawer__item-price {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.4rem;
  color: var(--text-primary);
  white-space: nowrap;
}

.dicks-drawer__upsell {
  padding: 16px 24px;
  background: var(--surface-base);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.dicks-drawer__upsell-text {
  font-size: 1.2rem;
  line-height: 1.4;
  color: var(--text-secondary);
}

.dicks-drawer__footer {
  padding: 20px 24px;
  padding-bottom: max(20px, env(safe-area-inset-bottom));
  border-top: 1px solid var(--border);
}

.dicks-drawer__subtotal {
  display: flex;
  justify-content: space-between;
  margin-bottom: 16px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.6rem;
}

.dicks-drawer__shipping-badge {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 1.2rem;
  font-weight: 500;
  color: var(--flavor-sv);
  margin-bottom: 12px;
}

.dicks-drawer__shipping-badge svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.dicks-drawer__empty-state {
  text-align: center;
  padding: 40px 0;
}

.dicks-drawer__empty-text {
  font-size: 1rem;
  color: var(--text-secondary);
  margin-bottom: 16px;
}

.dicks-drawer__item-qty {
  margin-top: 4px;
  font-size: 0.8125rem;
  color: var(--text-tertiary);
}

.dicks-drawer__upsell-link {
  color: var(--brand-red);
  font-weight: 500;
  margin-left: 4px;
  text-decoration: none;
}

.dicks-drawer__upsell-link:hover {
  text-decoration: underline;
}

/* Free-shipping / 15%-off progress bar */
.dicks-drawer__progress {
  margin-bottom: 14px;
}

.dicks-drawer__progress-text {
  margin: 0 0 8px;
  font-size: 1.2rem;
  font-weight: 500;
  color: var(--text-secondary);
}

.dicks-drawer__progress.is-unlocked .dicks-drawer__progress-text {
  color: var(--flavor-sv);
  font-weight: 700;
}

.dicks-drawer__progress-track {
  height: 6px;
  border-radius: 100px;
  background: var(--surface-overlay);
  overflow: hidden;
}

.dicks-drawer__progress-fill {
  height: 100%;
  border-radius: 100px;
  background: var(--brand-gold);
  transition: width var(--transition-base);
}

.dicks-drawer__progress.is-unlocked .dicks-drawer__progress-fill {
  background: var(--flavor-sv);
}

/* Line-item layout, quantity stepper + remove */
.dicks-drawer__item-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.dicks-drawer__item-controls {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
}

.dicks-drawer__qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius-button);
  background: var(--surface-elevated);
}

.dicks-drawer__qty-btn {
  width: 34px;
  height: 34px;
  border: none;
  background: none;
  color: var(--text-primary);
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  transition: color var(--transition-fast);
}

.dicks-drawer__qty-btn:hover {
  color: var(--brand-red);
}

.dicks-drawer__qty-value {
  min-width: 30px;
  text-align: center;
  font-size: 1.3rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.dicks-drawer__remove {
  border: none;
  background: none;
  padding: 0;
  font-size: 1.15rem;
  color: var(--text-tertiary);
  text-decoration: underline;
  cursor: pointer;
  transition: color var(--transition-fast);
}

.dicks-drawer__remove:hover {
  color: var(--brand-red);
}

/* Drawer Checkout button — larger, more prominent than the base .dicks-btn */
.dicks-drawer__footer .dicks-btn--full {
  font-size: 1.5rem;
  padding: 18px 28px;
  letter-spacing: 0.08em;
}

/* =================================================================
   14. MOBILE STICKY BAR (PDP)
   ================================================================= */

.dicks-sticky-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  min-height: 56px;
  background: var(--surface-elevated);
  border-top: 1px solid var(--border);
  z-index: var(--z-sticky);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--gutter-mobile);
  transform: translateY(100%);
  transition: transform var(--transition-base);
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
}

.dicks-sticky-bar.is-visible {
  transform: translateY(0);
}

.dicks-sticky-bar__info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dicks-sticky-bar__name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.875rem;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 180px;
}

.dicks-sticky-bar__price {
  font-size: 0.75rem;
  color: var(--text-secondary);
}

.dicks-sticky-bar .dicks-btn {
  padding: 10px 24px;
  flex-shrink: 0;
}

/* Only show on mobile */
@media screen and (min-width: 750px) {
  .dicks-sticky-bar {
    display: none !important;
  }
}

/* =================================================================
   15. BUNDLE VARIANT TILES (PDP)
   ================================================================= */

.dicks-variant-tiles {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

@media screen and (min-width: 750px) {
  .dicks-variant-tiles {
    grid-template-columns: repeat(2, 1fr);
  }
}

.dicks-variant-tile {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-card);
  background: var(--surface-elevated);
  cursor: pointer;
  transition: all var(--transition-fast);
  min-height: 44px;
  position: relative;
}

.dicks-variant-tile:hover {
  border-color: var(--border-strong);
  transform: translateY(-2px);
}

.dicks-variant-tile--selected {
  border-color: var(--brand-red);
  background: rgba(197, 40, 28, 0.04);
}

.dicks-variant-tile--selected::after {
  content: '✓';
  position: absolute;
  top: 8px;
  right: 10px;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--brand-red);
}

.dicks-variant-tile--disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.dicks-variant-tile--disabled .dicks-variant-tile__label {
  text-decoration: line-through;
}

.dicks-variant-tile__thumbs {
  display: flex;
}

.dicks-variant-tile__thumbs > :not(:first-child) {
  margin-left: -8px; /* overlapping thumbs */
}

.dicks-variant-tile__thumb {
  width: 36px;
  height: 36px;
  object-fit: contain;
}

.dicks-variant-tile__label {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.875rem;
  color: var(--text-primary);
}

/* =================================================================
   16. QUANTITY STEPPER
   ================================================================= */

.dicks-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius-button);
  overflow: hidden;
}

.dicks-qty__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1.125rem;
  color: var(--text-primary);
  transition: background-color var(--transition-fast);
}

.dicks-qty__btn:hover {
  background-color: var(--surface-overlay);
}

.dicks-qty__input {
  width: 40px;
  text-align: center;
  border: none;
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 500;
  background: transparent;
  -moz-appearance: textfield;
}

.dicks-qty__input::-webkit-inner-spin-button,
.dicks-qty__input::-webkit-outer-spin-button {
  -webkit-appearance: none;
}

/* =================================================================
   17. COLLAPSIBLE TABS (PDP)
   ================================================================= */

.dicks-tabs {
  border-top: 1px solid var(--border);
  margin-top: 24px;
}

.dicks-tab {
  border-bottom: 1px solid var(--border);
}

.dicks-tab__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 16px 0;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.9375rem;
  color: var(--text-primary);
  text-align: left;
}

.dicks-tab__trigger:hover {
  color: var(--brand-red);
}

.dicks-tab__icon {
  transition: transform var(--transition-fast);
  font-size: 1rem;
}

.dicks-tab.is-open .dicks-tab__icon {
  transform: rotate(45deg);
}

.dicks-tab__content {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--transition-base);
}

.dicks-tab.is-open .dicks-tab__content {
  max-height: 500px; /* JS will set exact height */
}

.dicks-tab__content-inner {
  padding: 0 0 16px;
  font-size: 0.875rem;
  color: var(--text-secondary);
  line-height: 1.7;
}

/* =================================================================
   18. DAWN COMPONENT OVERRIDES
   ================================================================= */

/* Override Dawn's default card styling in collections */
.card-wrapper {
  border-radius: var(--radius-card);
}

.card {
  border-radius: var(--radius-card);
}

/* Override Dawn button styles */
.button, .shopify-challenge__button {
  border-radius: var(--radius-button) !important;
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
}

/* Override Dawn's section spacing to use our system */
.section-template--*:not(.section-footer) {
  padding-top: 0;
  padding-bottom: 0;
}

/* Fix focus styles — global baseline */
*:focus-visible {
  outline: 2px solid var(--brand-red);
  outline-offset: 2px;
}

/* Component-specific focus enhancements */
.dicks-pill:focus-visible {
  outline: 2px solid var(--brand-red);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(197, 40, 28, 0.15);
}

.dicks-drawer__close:focus-visible {
  outline: 2px solid var(--brand-red);
  outline-offset: 4px;
}

.dicks-product-card:focus-within {
  box-shadow: var(--shadow-card-hover);
}

.dicks-cross-sell__card:focus-visible {
  outline: 2px solid var(--brand-red);
  outline-offset: 2px;
  transform: translateY(-2px);
}

.product-form__submit:focus-visible {
  outline: 2px solid var(--brand-red) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 4px rgba(197, 40, 28, 0.15) !important;
}

/* Variant tile focus for PDP */
.dicks-variant-tile:focus-visible {
  outline: 2px solid var(--brand-red);
  outline-offset: 2px;
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .dicks-product-card:hover {
    transform: none;
  }

  .dicks-variant-tile:hover {
    transform: none;
  }

  .dicks-sticky-bar {
    transition: none;
  }
}

/* =================================================================
   19. PRODUCT DETAIL PAGE (PDP) OVERRIDES
   Transforms Dawn's default product page into Dick's design language.
   No new templates needed — CSS-only overrides on Dawn's section.
   ================================================================= */

/* PDP Title — Barlow Condensed, semi-bold (900 read too heavy), left-aligned */
.product__title {
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  font-size: clamp(1.9rem, 4.2vw, 2.85rem) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.005em !important;
  color: var(--text-primary) !important;
}

/* PDP "Add to cart" button → "Add to Bag" styling */
.product-form__submit.button {
  background-color: var(--brand-red) !important;
  color: var(--text-on-brand) !important;
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 2.1rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  border-radius: var(--radius-button) !important;
  padding: 19px 28px !important;
  min-height: 66px;
  transition: background-color var(--transition-fast), transform var(--transition-fast) !important;
}

.product-form__submit.button:hover {
  background-color: var(--brand-red-hover) !important;
}

.product-form__submit.button:active {
  transform: scale(0.97);
}

.product-form__submit.button[disabled] {
  background-color: var(--surface-overlay) !important;
  color: var(--text-tertiary) !important;
  cursor: not-allowed;
}

/* PDP price — the hero price under the caption. Big and unmissable (~2.5×
   the old size). Selector covers both Dawn's .price--large modifier and the
   plain .price container so it lands regardless of section settings. */
.price--large .price-item,
.product__info-container .price .price-item,
.product__info-wrapper .price .price-item {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 3.4rem !important;
  line-height: 1.1 !important;
  color: var(--text-primary) !important;
}

/* Per-unit price shown inline next to the PDP price, e.g. "$41.11 ($2.99/bag)".
   Muted grey to match the struck-through retail price; sized well below the
   headline price so it reads as a secondary unit-price note. */
.dicks-per-unit {
  font-family: var(--font-body);
  font-size: 1.5rem;
  font-weight: 500;
  color: rgba(var(--color-foreground), 0.7);
  margin-left: 0.6rem;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* PDP subtitle ("8-pack · 2.75oz bags · Ripple-cut") — uniform, calmer size */
.product__text.subtitle {
  font-family: var(--font-body) !important;
  font-size: 1.0625rem !important;
  font-weight: 500 !important;
  color: var(--text-secondary) !important;
  letter-spacing: 0 !important;
  margin-top: 6px;
}

/* PDP form labels ("Size", "Quantity") — uniform, bolder, more out front */
.product-form__input .form__label,
.product-form__quantity .form__label,
.product-form__input > legend.form__label {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 1.0625rem !important;
  letter-spacing: 0.02em !important;
  color: var(--text-primary) !important;
  margin-bottom: 10px !important;
}

/* "Size" heading matches the "Pick your flavor" eyebrow exactly (same font,
   size, weight, tracking, uppercase) so the two choice headers read as a pair */
.product-form__input legend.form__label {
  font-size: 1.375rem !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
}

/* PDP variant picker radios → retro chip-bag illustration buttons. The whole
   bag (number + "BAGS") is an inline SVG injected by pdp-size-icons.liquid; the
   text label is visually hidden. Selection is shown on the card, not the art. */
.product-form__input input[type="radio"] + label {
  position: relative;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 12px 18px !important;
  border: 2px solid var(--border) !important;
  border-radius: 16px !important;
  cursor: pointer;
  transition: border-color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast) !important;
  min-height: auto;
  background: var(--surface-elevated) !important;
}

/* Injected bag illustration (portrait 120:150) */
.dicks-size-ico {
  display: block;
  width: 104px;
  height: 130px;
}

.product-form__input input[type="radio"] + label:hover {
  border-color: var(--border-strong) !important;
  transform: translateY(-2px);
}

/* Selected → red card + check badge */
.product-form__input input[type="radio"]:checked + label {
  border-color: var(--brand-red) !important;
  background: color-mix(in srgb, var(--brand-red) 6%, var(--surface-elevated)) !important;
  box-shadow: 0 6px 18px -10px rgba(197, 40, 28, 0.55);
}
.product-form__input input[type="radio"]:checked + label::after {
  content: '✓';
  position: absolute;
  top: 6px;
  right: 9px;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1;
  color: var(--brand-red);
}

/* Hide a single-value SIZE picker (e.g. the 4-Play variety pack's lone
   "16 bags (4 of each flavor)" option). With no flavor switcher on that PDP the
   bag-SVG JS never runs, so the chip-bag CSS above renders it as a broken,
   low-contrast pill with a stray checkmark. One option = nothing to choose, so
   drop it entirely — the sole variant still posts via the product form. */
.product-form__input:has(input[type="radio"]:only-of-type) {
  display: none;
}

/* PDP: push the product content below the oversized logo badge, which overhangs
   ~60px past the header band and otherwise collides with the top gallery
   thumbnail. Desktop only — the badge only overhangs at >=990px. */
@media screen and (min-width: 990px) {
  .dicks-pdp .product {
    padding-top: 48px;
  }

  /* Content pages (Contact, Is This For Real, Wholesale, generic pages): push
     the page title down so it clears the overhanging logo badge. */
  .dicks-page .main-page-title {
    margin-top: 48px;
  }
}

/* Content-page body copy — much larger & readable. The theme root is 10px, so
   the default rte size renders tiny; this roughly triples it. */
.dicks-page .rte {
  font-size: 2.6rem;
  line-height: 1.65;
}
.dicks-page .rte p {
  margin-bottom: 1.4rem;
}

/* PDP quantity selector — match our design */
.quantity {
  border: 1px solid var(--border) !important;
  border-radius: var(--radius-button) !important;
  overflow: hidden;
}

.quantity__input {
  font-family: var(--font-body) !important;
  font-weight: 500 !important;
  background: transparent !important;
}

.quantity__button {
  border: none !important;
}

.quantity__button:hover {
  background-color: var(--surface-overlay) !important;
}

/* PDP media gallery — subtle rounded corners on images */
.product__media-item img {
  border-radius: var(--radius-card) !important;
}

/* PDP accordion/collapsible tab styling */
.product__accordion .summary__title {
  font-family: var(--font-body) !important;
}

.product__accordion .accordion__title {
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: 1.5rem !important;
}

/* PDP info area text */
.product__text,
.product__text.subtitle {
  font-family: var(--font-body) !important;
  color: var(--text-secondary) !important;
}

/* -----------------------------------------------------------------
   PDP INFO COLUMN — readable copy below the buy buttons.
   The theme's root is 10px and body is 1rem (=10px), so the
   description, FAQ, list items and collapsibles all inherit 10px.
   Bump the reading copy to comfortable sizes (mobile + desktop).
   ----------------------------------------------------------------- */

/* Shopify dynamic-checkout "More payment options" link */
.shopify-payment-button__more-options {
  font-size: 1.5rem !important;
}

/* Free-shipping note (custom Liquid block under the buttons) */
.dicks-ship-note {
  font-size: 1.5rem !important;
  line-height: 1.4;
}

/* Product description + FAQ rich text */
.product__description.rte,
.product__description.rte p,
.product__description.rte li,
.product__description.rte a {
  font-size: 1.6rem !important;
  line-height: 1.65 !important;
}
.product__description.rte h1,
.product__description.rte h2,
.product__description.rte h3,
.product__description.rte h4,
.product__description.rte h5,
.product__description.rte h6 {
  font-size: 1.85rem !important;
  line-height: 1.3 !important;
}

/* Collapsible tab (Shipping & Freshness / Ingredients) body copy */
.product__accordion .accordion__content,
.product__accordion .accordion__content p,
.product__accordion .accordion__content li,
.product__accordion .accordion__content a {
  font-size: 1.5rem !important;
  line-height: 1.6 !important;
}

/* Share button label */
.share-button__button,
.share-button .share-button__button {
  font-size: 1.5rem !important;
}

/* PDP cross-sell section styling */
.dicks-cross-sell {
  border-top: 1px solid var(--border);
  margin-top: 32px;
  padding-top: 24px;
}

.dicks-cross-sell__heading {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.125rem;
  margin-bottom: 16px;
  color: var(--text-primary);
}

.dicks-cross-sell__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

@media screen and (min-width: 750px) {
  .dicks-cross-sell__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Cross-sell mini card (smaller version of product card) */
.dicks-cross-sell__card {
  display: flex;
  flex-direction: column;
  background: var(--surface-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  overflow: hidden;
  text-decoration: none;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.dicks-cross-sell__card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-card-hover);
}

.dicks-cross-sell__card img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: contain;
  padding: 12px;
}

.dicks-cross-sell__card-info {
  padding: 8px 12px 12px;
}

.dicks-cross-sell__card-name {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.75rem;
  color: var(--text-primary);
  margin: 0;
  line-height: 1.3;
}

.dicks-cross-sell__card-price {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.875rem;
  color: var(--text-primary);
  margin-top: 4px;
}

/* =================================================================
   20. PRODUCT RECOMMENDATIONS SECTION OVERRIDE
   Dawn's built-in product recommendations, styled with our design tokens.
   ================================================================= */

.product-recommendations .grid__item .card {
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  overflow: hidden;
  background: var(--surface-elevated);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.product-recommendations .grid__item .card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-card-hover);
}

.product-recommendations__heading {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
}

/* =============================================================================
   22. BUNDLE BUILDER (Uncle Ray's Style)
   ============================================================================= */

/* --- Section Reset --- */
.bb-section {
  padding: 0 0 80px;
}

/* --- Hero Banner --- */
.bb-hero {
  background: var(--brand-red);
  color: var(--text-on-brand);
  padding: 40px 0;
  margin-bottom: 32px;
  text-align: center;
}

.bb-hero__title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin: 0;
  color: var(--text-on-brand);
}

.bb-hero__sub {
  font-size: 1.0625rem;
  opacity: 0.9;
  margin: 8px 0 0;
  color: var(--text-on-brand);
}

/* --- 2-Column Layout --- */
.bb-layout {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 40px;
  align-items: start;
}

@media (max-width: 960px) {
  .bb-layout {
    grid-template-columns: 1fr;
  }
}

/* --- Size Selector Row --- */
.bb-size-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}

.bb-size-row__label {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--text-primary);
}

.bb-size-row__options {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.bb-size-pill {
  padding: 8px 20px;
  border: 2px solid var(--border-subtle);
  border-radius: 100px;
  background: var(--surface-card);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--text-primary);
  cursor: pointer;
  transition: all var(--transition-fast);
  white-space: nowrap;
}

.bb-size-pill:hover {
  border-color: var(--brand-red);
  color: var(--brand-red);
}

.bb-size-pill--active {
  background: var(--brand-red);
  border-color: var(--brand-red);
  color: var(--text-on-brand);
}

.bb-size-pill--active:hover {
  color: var(--text-on-brand);
}

.bb-size-pill[disabled] {
  opacity: 0.4;
  cursor: not-allowed;
}

/* --- Product Flavor Grid --- */
.bb-flavor-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

@media (max-width: 768px) {
  .bb-flavor-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 400px) {
  .bb-flavor-grid {
    grid-template-columns: 1fr;
    max-width: 280px;
    margin: 0 auto;
  }
}

/* --- Product Card --- */
.bb-product-card {
  border: 2px solid var(--border-subtle);
  border-radius: var(--radius-card);
  background: var(--surface-card);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
  position: relative;
}

.bb-product-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}

.bb-product-card--selected {
  border-color: var(--brand-red);
  box-shadow: 0 0 0 2px rgba(197, 40, 28, 0.12);
}

.bb-product-card__media {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  position: relative;
}

.bb-product-card__img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transition: transform 0.3s ease;
}

.bb-product-card:hover .bb-product-card__img {
  transform: scale(1.06);
}

.bb-product-card__body {
  padding: 8px 12px 4px;
  text-align: center;
  flex: 1;
}

.bb-product-card__name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.9375rem;
  margin: 0;
  color: var(--text-primary);
}

.bb-product-card__desc {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  margin: 2px 0 0;
}

/* --- Card Actions (Add / Stepper) --- */
.bb-product-card__actions {
  padding: 8px 12px 12px;
  display: flex;
  justify-content: center;
}

.bb-add-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 2px solid var(--brand-red);
  border-radius: 50%;
  background: transparent;
  color: var(--brand-red);
  cursor: pointer;
  transition: all var(--transition-fast);
  padding: 0;
}

.bb-add-btn:hover:not([disabled]) {
  background: var(--brand-red);
  color: var(--text-on-brand);
}

.bb-add-btn[disabled] {
  opacity: 0.25;
  cursor: not-allowed;
  border-color: var(--border-subtle);
  color: var(--text-tertiary);
}

/* Quantity Stepper (appears after first add) */
.bb-qty-stepper {
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--surface-overlay);
  border-radius: 100px;
  padding: 4px;
}

.bb-qty-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: var(--surface-card);
  color: var(--text-primary);
  font-size: 1.125rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast);
  padding: 0;
  line-height: 1;
}

.bb-qty-btn:hover:not([disabled]) {
  background: var(--brand-red);
  color: var(--text-on-brand);
}

.bb-qty-btn[disabled] {
  opacity: 0.3;
  cursor: not-allowed;
}

.bb-qty-count {
  min-width: 32px;
  text-align: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--text-primary);
}

/* --- Sticky Sidebar --- */
.bb-sidebar {
  position: sticky;
  top: 100px;
}

@media (max-width: 960px) {
  .bb-sidebar {
    display: none;
  }
}

.bb-sidebar__inner {
  background: var(--surface-card);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-card);
  padding: 24px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.06);
}

.bb-sidebar__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.bb-sidebar__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.25rem;
  margin: 0;
  color: var(--text-primary);
}

.bb-sidebar__clear {
  font-size: 0.8125rem;
  color: var(--brand-red);
  background: none;
  border: none;
  cursor: pointer;
  font-weight: 600;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.bb-sidebar__clear:hover {
  opacity: 0.7;
}

/* --- Price Badge --- */
.bb-sidebar__badge {
  background: var(--brand-red);
  color: var(--text-on-brand);
  border-radius: 12px;
  padding: 16px;
  text-align: center;
  margin-bottom: 16px;
}

.bb-sidebar__badge-size {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.85;
}

.bb-sidebar__badge-price {
  display: block;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 2rem;
  line-height: 1.1;
  margin-top: 4px;
}

/* --- Item Count --- */
.bb-sidebar__count {
  font-size: 0.875rem;
  color: var(--text-secondary);
  margin: 0 0 12px;
}

.bb-sidebar__count-current {
  font-weight: 700;
  color: var(--text-primary);
}

/* --- Visual Slot Grid --- */
.bb-slots {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin-bottom: 16px;
}

.bb-slot {
  aspect-ratio: 1;
  border: 2px dashed var(--border-subtle);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: border-color var(--transition-fast);
  background: var(--surface-overlay);
}

.bb-slot--filled {
  border-style: solid;
  border-color: rgba(197, 40, 28, 0.2);
  background: var(--surface-elevated);
  animation: slotPop 0.25s ease-out;
}

@keyframes slotPop {
  0% { transform: scale(0.85); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

.bb-slot__img {
  width: 85%;
  height: 85%;
  object-fit: contain;
}

.bb-slot__label {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 0.875rem;
  color: var(--brand-red);
}

/* --- Sidebar Item List --- */
.bb-sidebar__items {
  margin-bottom: 12px;
  min-height: 32px;
}

.bb-sidebar__item {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px solid var(--border-subtle);
  font-size: 0.875rem;
}

.bb-sidebar__item:last-child {
  border-bottom: none;
}

.bb-sidebar__item-name {
  font-weight: 600;
  color: var(--text-primary);
}

.bb-sidebar__item-qty {
  font-weight: 600;
  color: var(--text-secondary);
}

.bb-sidebar__empty {
  font-size: 0.8125rem;
  color: var(--text-tertiary);
  margin: 0;
  font-style: italic;
}

/* --- Shipping Note --- */
.bb-sidebar__shipping {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--flavor-sv);
  margin-bottom: 16px;
}

/* --- Sidebar ATC --- */
.bb-sidebar__atc {
  width: 100%;
  padding: 14px;
  font-size: 1rem;
}

.bb-sidebar__atc[disabled] {
  opacity: 0.4;
  cursor: not-allowed;
}

/* --- Mobile Sticky Bar --- */
.bb-mobile-bar {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: var(--z-sticky);
  background: var(--surface-card);
  border-top: 1px solid var(--border-subtle);
  box-shadow: 0 -4px 20px rgba(0,0,0,0.08);
  padding: 12px 16px;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.bb-mobile-bar[aria-hidden="false"] {
  display: flex;
}

@media (min-width: 961px) {
  .bb-mobile-bar {
    display: none !important;
  }
}

@media (max-width: 960px) {
  .bb-mobile-bar[aria-hidden="false"] {
    display: flex;
  }
  
  /* Add bottom padding to page so bar doesn't cover content */
  .bb-section {
    padding-bottom: 100px;
  }
}

.bb-mobile-bar__info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.bb-mobile-bar__count {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.9375rem;
  color: var(--text-primary);
}

.bb-mobile-bar__price {
  font-size: 0.8125rem;
  color: var(--text-secondary);
}

.bb-mobile-bar__atc {
  padding: 10px 24px;
  white-space: nowrap;
}

.bb-mobile-bar__atc[disabled] {
  opacity: 0.4;
}

/* ============================================================
   HOME "BUILD A BOX" SECTION (.hbb-*)
   Imported from Claude Design "Dick's Chips Bundle Configurator".
   Two directions behind .hbb--make_bigger / .hbb--snack_counter.
   ============================================================ */

.hbb { overflow: hidden; }
.hbb .dicks-container { max-width: 1180px; }

/* shared bits ------------------------------------------------ */
.hbb-eyebrow {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.hbb-eyebrow--gold { color: var(--brand-gold); }
.hbb-eyebrow--red { color: var(--brand-red); }

.hbb-link {
  background: none;
  border: none;
  padding: 0;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1rem;
  color: var(--brand-red);
  cursor: pointer;
  text-decoration: underline;
}
/* Clear button in the "Your Box" panel — small, plain (non-bold, no underline). */
.hbb-panel--bigger .hbb-link { font-size: 1.5rem; font-weight: 400; text-decoration: none; }
.hbb-link--muted { color: var(--text-tertiary); }
.hbb-link[hidden] { display: none; }

.dpc-q { transition: transform var(--transition-fast); }
.dpc-q:active { transform: scale(0.97); }

.hbb-cta { width: 100%; min-height: 96px; padding: 20px 18px; font-size: 3.3rem; line-height: 1.05; letter-spacing: 0.02em; }

/* slot grid (shared) */
.hbb-slots {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
}
.hbb-slot {
  position: relative;
  aspect-ratio: 1;
  border-radius: 8px;
  border: 2px dashed var(--border-strong);
  background: var(--surface-overlay);
  cursor: pointer;
  padding: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hbb-slot--empty { cursor: default; }
.hbb-slot__plus {
  font-family: var(--font-display);
  font-size: 1.3rem;
  color: var(--border-strong);
}
.hbb-slot__fill {
  position: absolute;
  inset: 0;
  border-radius: 6px;
  border: 2px solid rgba(112, 34, 120, 0.22);
  background-color: var(--surface-elevated);
  background-size: auto 94%;
  background-position: center;
  background-repeat: no-repeat;
  animation: slotPop 0.28s var(--ease-out) both;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hbb-slot__fill--key {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--text-primary);
}
.hbb-slot__fill--key[data-flavor="salty"] { background-color: var(--wash-salty); }
.hbb-slot__fill--key[data-flavor="hot"]   { background-color: var(--wash-hot); }
.hbb-slot__fill--key[data-flavor="bbq"]   { background-color: var(--wash-bbq); }
.hbb-slot__fill--key[data-flavor="sv"]    { background-color: var(--wash-sv); }

/* Flavor color-coding for filled box slots — tint + edge match each bag's own
   color so the flavor is unmistakable at thumbnail size:
   salty = purple, hot = red, barbecue = black, lucky = green. */
.hbb-slot__fill[data-flavor="salty"] { background-color: rgba(78, 45, 109, 0.14);  border-color: rgba(78, 45, 109, 0.55); }
.hbb-slot__fill[data-flavor="hot"]   { background-color: rgba(197, 40, 28, 0.14);  border-color: rgba(197, 40, 28, 0.55); }
.hbb-slot__fill[data-flavor="bbq"]   { background-color: rgba(28, 28, 30, 0.12);   border-color: rgba(28, 28, 30, 0.60); }
.hbb-slot__fill[data-flavor="sv"]    { background-color: rgba(46, 139, 87, 0.15);  border-color: rgba(46, 139, 87, 0.55); }

@keyframes slotPop {
  from { transform: scale(0.82); opacity: 0.35; }
  to   { transform: scale(1); opacity: 1; }
}
@keyframes hbbToastIn {
  from { transform: translateY(10px); opacity: 0; }
  to   { transform: none; opacity: 1; }
}

.hbb-toast {
  margin-top: 12px;
  text-align: center;
  font-family: var(--font-body);
  font-size: 0.82rem;
  color: #fff;
  background: var(--surface-brand);
  border-radius: 8px;
  padding: 9px;
  animation: hbbToastIn 0.3s var(--ease-out) both;
}
.hbb-toast[hidden] { display: none; }

/* well flavor tints (shared by cards + rail) */
.hbb-flavor__well[data-flavor="salty"], .hbb-card__well[data-flavor="salty"] { background-color: var(--wash-salty); }
.hbb-flavor__well[data-flavor="hot"],   .hbb-card__well[data-flavor="hot"]   { background-color: var(--wash-hot); }
.hbb-flavor__well[data-flavor="bbq"],   .hbb-card__well[data-flavor="bbq"]   { background-color: var(--wash-bbq); }
.hbb-flavor__well[data-flavor="sv"],    .hbb-card__well[data-flavor="sv"]    { background-color: var(--wash-sv); }

/* ============ DIRECTION B — Make Dick's Bigger ============ */
.hbb-panel--bigger {
  background: var(--brand-purple);
  border-radius: var(--radius-card);
  padding: 46px 48px 52px;
}
.hbb-bigger__grid {
  display: grid;
  grid-template-columns: 1fr 470px;
  gap: 44px;
  /* Stretch so the "Your Box" panel matches the height of the flavor tiles
     on the left — its bottom lines up with the bottom two tiles. */
  align-items: stretch;
}
.hbb-bigger__title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(3.4rem, 5.4vw, 4.8rem);
  line-height: 1.02;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: #fff;
  margin: 12px 0 0;
}
.hbb-bigger__sub {
  font-family: var(--font-body);
  font-size: 1.75rem;
  line-height: var(--leading-normal, 1.55);
  color: rgba(255, 255, 255, 0.9);
  margin: 18px 0 0;
  max-width: 540px;
}
.hbb-flavor-rail {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 30px;
}
.hbb-flavor {
  text-align: left;
  border: none;
  border-radius: var(--radius-card);
  background: var(--surface-elevated);
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  box-shadow: var(--shadow-card);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}
.hbb-flavor:hover { transform: translateY(-2px); box-shadow: var(--shadow-card-hover); }
.hbb-flavor.is-selected { box-shadow: 0 0 0 3px var(--brand-gold); }
.hbb-flavor__well {
  display: block;
  aspect-ratio: 1.28;
  background-size: auto 116%;
  background-position: center 52%;
  background-repeat: no-repeat;
}
.hbb-flavor__body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 22px 20px;
}
.hbb-flavor__name {
  display: block;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 2.6rem;
  color: var(--text-primary);
  line-height: 1.08;
}
.hbb-flavor__count {
  display: block;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-tertiary);
  margin-top: 6px;
}
.hbb-flavor__plus {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: var(--brand-purple);
  color: #fff;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 2.4rem;
  line-height: 1;
}

.hbb-box {
  background: var(--surface-base);
  border-radius: 18px;
  padding: 24px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.22);
  /* Column layout so the totals + CTA sit flush at the bottom when the
     panel stretches to match the flavor tiles' height. */
  display: flex;
  flex-direction: column;
}
/* Push the totals + CTA block to the bottom of the stretched panel. */
.hbb-box__totals { margin-top: auto; }
.hbb-box__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 14px;
}
.hbb-box__label {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.4rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--text-tertiary);
}
.hbb-box__count {
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 3.4rem;
  line-height: 0.9;
  color: var(--brand-purple);
}
.hbb-box__count-max {
  font-size: 1.7rem;
  color: var(--text-tertiary);
  font-weight: 700;
}
.hbb-box .hbb-slots {
  background: var(--surface-elevated);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px;
  gap: 8px;
  margin-bottom: 16px;
  margin-top: 4px;
}
.hbb-box__quick { display: flex; gap: 10px; margin-bottom: 16px; }
.hbb-chip {
  flex: 1;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 2.7rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-primary);
  background: var(--surface-overlay);
  border: 1px solid var(--border);
  border-radius: 100px;
  padding: 15px;
  cursor: pointer;
}
.hbb-chip:hover { border-color: var(--border-strong); }
.hbb-box__totals {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 14px;
}
.hbb-box__bags { font-family: var(--font-body); font-size: 1.45rem; color: var(--text-secondary); }
.hbb-box__price { font-family: var(--font-display); font-weight: 600; font-size: 3.25rem; color: var(--text-primary); display: inline-flex; align-items: baseline; gap: 0.5rem; }
.hbb-box__price-retail { color: var(--text-secondary, #7a7a7a); opacity: 0.6; text-decoration: line-through; }
.hbb-box__price-wholesale { color: var(--text-primary); }
.hbb-box__wholesale-note { margin: 0.4rem 0 0; font-family: var(--font-body); font-size: 0.85rem; font-weight: 600; color: var(--text-secondary, #7a7a7a); }

/* ============ DIRECTION A — Snack Counter ============ */
.hbb-panel--counter {
  background: var(--surface-base);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  padding: 48px;
}
.hbb-counter__intro { max-width: 560px; margin-bottom: 30px; }
.hbb-counter__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(2rem, 3.4vw, 2.8rem);
  line-height: 1.05;
  color: var(--text-primary);
  margin: 6px 0 0;
}
.hbb-counter__sub {
  font-family: var(--font-body);
  font-size: var(--type-body-lg, 1.05rem);
  line-height: var(--leading-normal, 1.6);
  color: var(--text-secondary);
  margin: 14px 0 0;
}
.hbb-counter__grid {
  display: grid;
  grid-template-columns: 1fr 348px;
  gap: 36px;
  align-items: start;
}
.hbb-counter__flavors {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.hbb-card {
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  background: var(--surface-elevated);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-card);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.hbb-card.is-selected {
  border: 2px solid var(--brand-purple);
  box-shadow: 0 0 0 3px rgba(78, 45, 109, 0.1);
}
.hbb-card__well {
  aspect-ratio: 1.55;
  background-color: var(--surface-base);
  background-size: auto 86%;
  background-position: center;
  background-repeat: no-repeat;
}
.hbb-card__body { padding: 14px 16px 4px; }
.hbb-card__name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--text-primary);
  line-height: 1.1;
}
.hbb-card__tag {
  font-family: var(--font-body);
  font-size: var(--type-caption, 0.8rem);
  color: var(--text-tertiary);
  margin-top: 4px;
  line-height: 1.45;
  min-height: 34px;
}
.hbb-card__foot {
  padding: 6px 16px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.hbb-card__price {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-tertiary);
}
.hbb-stepper {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-pill);
  padding: 2px;
}
.hbb-stepper__btn {
  width: 34px;
  height: 34px;
  min-width: 34px;
  border: none;
  background: var(--surface-overlay);
  border-radius: 50%;
  font-family: var(--font-display);
  font-size: 1.2rem;
  line-height: 1;
  color: var(--text-primary);
  cursor: pointer;
}
.hbb-stepper__btn:hover { background: var(--border); }
.hbb-stepper__val {
  min-width: 26px;
  text-align: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1rem;
  color: var(--text-primary);
}

.hbb-summary__inner {
  position: sticky;
  top: 24px;
  background: var(--surface-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  padding: 24px;
  box-shadow: var(--shadow-elevated);
}
.hbb-summary__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.hbb-summary__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.3rem;
  margin: 0;
  color: var(--text-primary);
}
.hbb-summary__actions { display: flex; gap: 12px; }
.hbb-summary__badge {
  background: var(--surface-brand);
  color: #fff;
  border-radius: var(--radius-card);
  padding: 16px;
  text-align: center;
  margin-bottom: 16px;
}
.hbb-summary__badge-size {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  opacity: 0.85;
}
.hbb-summary__badge-price {
  display: block;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 2.1rem;
  line-height: 1.1;
  margin-top: 2px;
}
.hbb-summary__count {
  font-family: var(--font-body);
  font-size: var(--type-body-sm, 0.9rem);
  color: var(--text-secondary);
  margin: 0 0 12px;
}
.hbb-summary__count b { color: var(--text-primary); }
.hbb-summary .hbb-slots { margin-bottom: 18px; }
.hbb-freeship {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--brand-green);
  margin-bottom: 16px;
}
.hbb-freeship[hidden] { display: none; }

/* ============ Responsive ============ */
@media (max-width: 900px) {
  .hbb-bigger__grid,
  .hbb-counter__grid { grid-template-columns: 1fr; }
  .hbb-panel--bigger { padding: 32px 24px 36px; }
  .hbb-panel--counter { padding: 28px 20px; }
  .hbb-summary__inner { position: static; }
}
@media (max-width: 560px) {
  .hbb-flavor-rail,
  .hbb-counter__flavors { grid-template-columns: 1fr; }
}

/* =================================================================
   PDP FLAVOR SWITCHER (.dicks-fswitch)
   Format-aware "pick your flavor" strip on product pages.
   Rendered by snippets/pdp-flavor-switcher.liquid.
   ================================================================= */
.dicks-fswitch {
  margin: 6px 0 10px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.dicks-fswitch__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.dicks-fswitch__eyebrow {
  font-family: var(--font-display);
  font-size: 1.375rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-primary);
}
.dicks-fswitch__note {
  font-size: 0.75rem;
  color: var(--text-tertiary);
}

/* Flavor tiles */
.dicks-fswitch__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.dicks-fswitch__tile {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 13px 13px 15px;
  text-decoration: none;
  color: var(--text-primary);
  background: var(--surface-elevated);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-card);
  transition: transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
}
a.dicks-fswitch__tile:hover {
  transform: translateY(-2px);
  border-color: var(--fc);
  box-shadow: 0 6px 18px -8px rgba(0, 0, 0, 0.25);
}
.dicks-fswitch__tile.is-current {
  border-color: var(--fc);
  box-shadow: 0 0 0 1.5px var(--fc);
}
.dicks-fswitch__thumb {
  /* taller-than-square so the bag photo fills more of the tile and nudges
     the flavor name down a touch (price row was removed) */
  aspect-ratio: 5 / 6;
  border-radius: 10px;
  background: var(--surface-overlay);
  border-top: 3px solid var(--fc);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.dicks-fswitch__thumb img {
  width: 94%;
  height: 94%;
  object-fit: contain;
}
.dicks-fswitch__name {
  margin-top: 3px;
  font-family: var(--font-body);
  font-size: 1.6875rem;
  font-weight: 700;
  line-height: 1.15;
}
.dicks-fswitch__now {
  position: absolute;
  top: 8px;
  right: 8px;
  background: var(--text-primary);
  color: #fff;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 3px 7px;
  border-radius: var(--radius-pill);
}

/* Variety pack — compact inline selectable bar (a <button>) running full-width
   under the flavor tiles: [ thumb | text | price ]. */
.dicks-fswitch__variety {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  text-align: left;
  gap: 14px;
  margin-top: 12px;
  padding: 10px 16px;
  text-decoration: none;
  color: var(--text-primary);
  font: inherit;
  cursor: pointer;
  border: 2px solid var(--flavor-bbq);
  border-radius: var(--radius-card);
  background: color-mix(in srgb, var(--flavor-bbq) 12%, var(--surface-elevated));
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);
}
.dicks-fswitch__variety:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px -12px rgba(0, 0, 0, 0.3);
}
/* Selected → clearly chosen; mirrors the red "active" language used elsewhere */
.dicks-fswitch__variety.is-selected {
  border-color: var(--brand-red);
  background: color-mix(in srgb, var(--brand-red) 8%, var(--surface-elevated));
  box-shadow: 0 0 0 2px var(--brand-red);
}
.dicks-fswitch__variety-thumb {
  width: 52px;
  height: 52px;
  flex: none;
  border-radius: 10px;
  overflow: hidden;
  background: var(--surface-overlay);
  display: flex;
  align-items: center;
  justify-content: center;
}
.dicks-fswitch__variety-thumb img {
  width: 92%;
  height: 92%;
  object-fit: contain;
}
.dicks-fswitch__variety-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}
.dicks-fswitch__variety-tag {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--flavor-bbq) 42%, var(--text-primary));
}
.dicks-fswitch__variety-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1.15;
  margin-top: 1px;
}
.dicks-fswitch__variety-sub {
  font-size: 0.8125rem;
  color: var(--text-secondary);
  margin-top: 1px;
}
.dicks-fswitch__variety-cta {
  flex: none;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
}
.dicks-fswitch__variety-price {
  display: block;
  font-weight: 700;
  font-size: 1.25rem;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.dicks-fswitch__variety-value {
  font-size: 0.75rem;
  font-weight: 700;
  color: color-mix(in srgb, var(--flavor-sv) 72%, #000);
}

/* Build-your-own-box CTA (secondary to the variety hero) */
.dicks-fswitch__build {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding: 11px 14px;
  text-decoration: none;
  color: var(--text-primary);
  background: var(--surface-elevated);
  border: 1.5px dashed var(--border-strong);
  border-radius: var(--radius-card);
  transition: border-color var(--transition-fast), background var(--transition-fast);
}
.dicks-fswitch__build:hover {
  border-color: var(--brand-red);
  background: var(--surface-overlay);
}
.dicks-fswitch__build-text {
  font-size: 0.85rem;
}
.dicks-fswitch__build-text strong {
  font-weight: 700;
}
.dicks-fswitch__build-arrow {
  color: var(--brand-red);
  font-weight: 700;
  font-size: 1.05rem;
  flex: none;
}

/* Mobile: horizontal scroll for flavor tiles */
@media (max-width: 749px) {
  .dicks-fswitch__grid {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: 42%;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    margin: 0 -4px;
    padding: 0 4px 6px;
    -webkit-overflow-scrolling: touch;
  }
  .dicks-fswitch__tile {
    scroll-snap-align: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  a.dicks-fswitch__tile:hover,
  .dicks-fswitch__variety:hover {
    transform: none;
  }
}

/* =================================================================
   PDP MEDIA GALLERY — vertical thumbnail rail (desktop)
   Relocates Dawn's thumbnail slider from BELOW the main image to a
   fixed narrow column on the LEFT of the primary image. Desktop only;
   mobile keeps Dawn's horizontal scroller beneath the image.
   !important is required because section-main-product.css loads after
   this file (in-body <link>) and would otherwise win the cascade.
   ================================================================= */
@media screen and (min-width: 750px) {
  /* Lay the gallery out as [ thumbnail rail | main image ] */
  .product--thumbnail_slider .product__media-gallery {
    display: flex !important;
    flex-direction: row;
    align-items: flex-start;
    gap: 14px;
  }

  /* Main image viewer → right side, fills the remaining width */
  .product--thumbnail_slider .product__media-gallery > slider-component:not(.thumbnail-slider) {
    order: 2;
    flex: 1 1 auto;
    min-width: 0;
  }

  /* Thumbnail rail → left side, fixed narrow column */
  .product--thumbnail_slider .product__media-gallery .thumbnail-slider {
    order: 1;
    display: block !important;
    flex: 0 0 92px;
    width: 92px;
    margin: 0;
  }

  /* Stack the thumbnails vertically; scroll if they overflow the image height */
  .product--thumbnail_slider .thumbnail-slider .thumbnail-list.slider--tablet-up {
    display: flex !important;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 10px;
    padding: 2px;
    margin: 0;
    max-height: 640px;
    overflow-y: auto;
    scrollbar-width: none;
  }
  .product--thumbnail_slider .thumbnail-slider .thumbnail-list.slider--tablet-up::-webkit-scrollbar {
    display: none;
  }

  /* Each thumbnail fills the rail width (kept square by Dawn's ::before) */
  .product--thumbnail_slider .thumbnail-list.slider--tablet-up .thumbnail-list__item.slider__slide {
    width: 100% !important;
    flex: 0 0 auto;
  }

  /* Horizontal prev/next carets don't belong on a vertical rail */
  .product--thumbnail_slider .product__media-gallery .thumbnail-slider > .slider-button {
    display: none !important;
  }
}

/* Cart page column headers (PRODUCT / QUANTITY / TOTAL) — slightly larger than
   the theme's base 1rem caption for better readability. Scoped to the cart
   table so other .caption-with-letter-spacing usages are unaffected. */
.cart-items thead th.caption-with-letter-spacing {
  font-size: 1.3rem;
}

/* Cart page header row: "Your cart" title + "Continue shopping" link.
   Scoped to <cart-items> so other pages using these classes are untouched. */
cart-items .title-wrapper-with-link .title--primary {
  font-weight: 600;
}
cart-items .title-wrapper-with-link .underlined-link {
  font-size: 1.6rem;
}
