/* ==========================================================================
   LENIS SMOOTH SCROLL & LUXURY SCROLL ARCHITECTURE
   ========================================================================== */
html.lenis,
html.lenis body {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: clip;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

/* --- Liquid Emerald Scroll Progress Indicator (Removed from navbar as requested) --- */
.hot-scroll-progress {
  display: none !important;
}

/* --- Floating Luxury Scroll HUD & Back-to-Top Pill (Removed per user request) --- */
.hot-scroll-hud {
  display: none !important;
}

/* ==========================================================================
   HEALTH ON TOP ("HOT") — 1:1 REPLICA CONTACT US SECTION
   Aesthetics: Deep Dark Luxury (#121212), Emerald Green Accents (#558632)
   ========================================================================== */

/* --- Locked Brand Tokens (Health_On_Top_Color_Design_System.md — source of truth) --- */
:root {
  --hot-emerald-500: #558632;
  --hot-primary-500: #558632;
  --hot-primary-green: #558632;
  --hot-emerald-700: #3B5D23;
  --hot-primary-700: #3B5D23;
  --hot-emerald-hover: #669E3D;
  --hot-emerald-pressed: #466F29;
  --hot-bg-900: #121212;
  --hot-bg-800: #181818;
  --hot-surface-700: #1E1E1E;
  --hot-text-100: #FFFFFF;
  --hot-text-200: #E7ECE9;
  --hot-text-300: #A7B0AB;
  --hot-border-700: #2A2A2A;
  --hot-border-600: #383838;
  --hot-on-emerald: #FFFFFF;

  --hot-energy: #F2B84B;
  --hot-fresh: #72D6A5;
  --hot-info: #6FA8DC;
  --hot-warning: #F59E0B;
  --hot-error: #EF5B5B;
}

/* --- Design Tokens (repointed to locked brand values above) --- */
:root {
  --nav-height: 80px;
  --bg-core: var(--hot-bg-900);
  --bg-card: var(--hot-surface-700);
  --bg-card-hover: #252525;
  --bg-card-active: #2B2B2B;

  --accent-emerald: var(--hot-emerald-500);
  --accent-emerald-hover: var(--hot-emerald-hover);
  --accent-emerald-glow: transparent;
  --accent-emerald-subtle: rgba(85, 134, 50, 0.12);

  --text-primary: var(--hot-text-100);
  --text-secondary: var(--hot-text-200);
  --text-muted: var(--hot-text-300);

  --border-subtle: rgba(255, 255, 255, 0.08);
  --border-light: rgba(255, 255, 255, 0.14);

  /* Aeonik is the locked brand typeface (Health_On_Top_Aeonik_Typography_System.md) but is an
     unlicensed commercial font with no files available in this project. Switzer (Fontshare, free,
     metrically similar neo-grotesque) stands in until licensed Aeonik files can be added — swap
     the @font-face/link and this token's first value to restore Aeonik with no other changes. */
  --font-family-brand: 'Switzer', 'Aeonik', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --font-display: var(--font-family-brand);
  --font-body: var(--font-family-brand);

  /* Precision Fluid Typography Scale (Health_On_Top_Aeonik_Typography_System.md) */
  --font-display-xl: clamp(2.5rem, 5.5vw, 4.5rem);
  --font-display-l: clamp(2.1rem, 4.5vw, 3.75rem);
  --font-h1: clamp(1.85rem, 3.8vw, 3rem);
  --font-h2: clamp(1.45rem, 2.8vw, 2.25rem);
  --font-h3: clamp(1.2rem, 2vw, 1.625rem);
  --font-h4: clamp(1.05rem, 1.4vw, 1.25rem);
  --font-body-lg: clamp(1rem, 1.2vw, 1.125rem);
  --font-body-base: clamp(0.92rem, 1vw, 1rem);
  --font-body-sm: clamp(0.8rem, 0.9vw, 0.875rem);
  --font-label: clamp(0.7rem, 0.8vw, 0.75rem);

  /* Dynamic Fluid Spacing Scale */
  --space-3xs: clamp(0.125rem, 0.25vw, 0.25rem);
  --space-2xs: clamp(0.25rem, 0.5vw, 0.375rem);
  --space-xs: clamp(0.375rem, 0.75vw, 0.5rem);
  --space-sm: clamp(0.625rem, 1.2vw, 0.875rem);
  --space-md: clamp(1rem, 2vw, 1.5rem);
  --space-lg: clamp(1.5rem, 3vw, 2.25rem);
  --space-xl: clamp(2.25rem, 4.5vw, 3.5rem);
  --space-2xl: clamp(3.5rem, 7vw, 5.5rem);

  /* Layout & Container Max Dimensions */
  --container-max: 1440px;
  --container-gutter: clamp(1rem, 4vw, 3.5rem);
  --touch-target-min: 44px;

  /* Dynamic Viewport Units */
  --vh-100: 100vh;
  --dvh-100: 100dvh;

  --weight-regular: 400;
  --weight-medium: 500;
  --weight-bold: 700;
  --weight-black: 800;

  --leading-display: 1.05;
  --leading-heading: 1.15;
  --leading-body: 1.55;
  --leading-label: 1.3;

  --transition-fast: 0.18s cubic-bezier(0.16, 1, 0.3, 1);
  --transition-medium: 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  --transition-slow: 0.42s cubic-bezier(0.16, 1, 0.3, 1);
  --ease-premium: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* --- Global Reset & Strict 100vh Canvas --- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* Respect the OS-level motion preference sitewide. The hero image-sequence
   preloader (app.js) already skips its animation payload separately; this
   covers every CSS transition/animation/keyframe everywhere else. */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

html {
  scroll-padding-top: 0;
  scroll-behavior: smooth;
}

html,
body {
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  max-width: 100%;
  overflow-x: clip;
  background-color: var(--bg-core);
  color: var(--text-primary);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img,
video,
canvas {
  max-width: 100%;
  height: auto;
}

input,
select,
textarea,
button {
  font-family: inherit;
  font-size: inherit;
}

/* Prevent unwanted iOS Safari auto-zoom on focus while retaining desktop sizing */
@media (max-width: 768px) {
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="password"],
  input[type="number"],
  input[type="search"],
  select,
  textarea {
    font-size: 16px !important;
  }
}

/* Ambient Radial Glows & Cheap Glow Effects (Completely Removed for Clean Luxury Dark Design) */
.ambient-glow,
.ambient-glow-top-right,
.ambient-glow-center-left,
.hero-ambient-glow,
.quality-ambient-glow,
.quality-step-glow,
.build-ambient-glow-top,
.build-ambient-glow-right,
.ps-ambient-glow,
.fl-ambient-glow,
.wh-ambient-glow,
.oc-ambient-glow,
.loyalty-ambient-glow,
.loyalty-ambient-left-glow,
.loyalty-card-glow,
.nl-ambient-glow,
.referral-ambient-glow,
.pj-ambient-glow,
.ready-ambient-glow,
.cm-ambient-glow,
.fridge-ambient-glow,
.ns-ambient-glow,
.hot-faq-ambient-glow,
.pack-glow-aura,
.nutrition-visual-glow,
.transparency-dish-glow,
.transparency-glow-overlays,
.ingredient-glow-overlay {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Decorative Green Dashes, Bars & Accent Lines (Completely Removed for Zero-Dash Clean Layout) */
.footer-motto-line,
.footer-emerald-bar,
.mobile-drawer-green-dash,
.contact-ticker-dash,
.hot-pillar-dash,
.seq-hero-green-divider,
.seq-build-green-divider,
.tag-line,
.quality-eyebrow-bar,
.accent-indicator,
.ready-stamp-bar,
.chs-emerald-dash,
.loyalty-visual-dash,
.loyalty-botanical-dash,
.referral-accent-line,
.orders-accent-line,
.fav-green-pill,
.most-ordered-tagline-dash,
.footer-slogan-pill,
.new-user-tagline-bar,
.new-user-slogan-bar,
.rail-dots,
.dash-accent-line,
.green-underline,
.seq-stage3-stat-dash,
.cm-sub-dash,
.about-hero-eyebrow-divider {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
}

.contact-action-row::before,
.hot-pillar-card::before {
  display: none !important;
}

/* --- Hero Food Plate Cutout Placement (bleeds off right side, cutout plate with transparent background) --- */
.hero-dish-cutout {
  position: absolute;
  top: -10px;
  right: -120px;
  width: clamp(380px, 32vw, 540px);
  height: clamp(380px, 32vw, 540px);
  aspect-ratio: 1 / 1;
  z-index: 1;
  pointer-events: none;
  filter: drop-shadow(-20px 25px 45px rgba(0, 0, 0, 0.75));
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.hero-dish-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* Floating Fresh Ingredients Badge on Hero Dish from Master Reference */
.hero-dish-badge {
  position: absolute;
  bottom: 12%;
  left: 32%;
  background: rgba(14, 18, 15, 0.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 9999px;
  padding: 8px 18px 8px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.6);
  pointer-events: auto;
  user-select: none;
  animation: dishBadgeFloat 4s ease-in-out infinite;
}

@keyframes dishBadgeFloat {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-4px);
  }
}

.dish-badge-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--accent-emerald, #558632);
  color: #0d120f;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.dish-badge-icon svg {
  width: 18px;
  height: 18px;
}

.dish-badge-content {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.dish-badge-title {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.8px;
  color: #FFFFFF;
  text-transform: uppercase;
}

.dish-badge-sub {
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.65);
}

/* --- Main Canvas --- */
.contact-canvas {
  position: relative;
  z-index: 2;
  width: 100%;
  min-height: calc(100vh - 80px);
  padding: 4vh 4.5vw 36px 4.5vw;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  box-sizing: border-box;
}

/* --- TOP SECTION: Headline, Subtitle, Badges --- */
.top-section {
  max-width: 56%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  z-index: 3;
}

.contact-tag {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 0.8vh;
}

.tag-text {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--accent-emerald, #558632);
  text-transform: uppercase;
}

.tag-line {
  width: 26px;
  height: 2px;
  background-color: var(--accent-emerald, #558632);
  opacity: 0.85;
}

.hero-headline {
  font-family: var(--font-display, 'Bebas Neue', sans-serif);
  font-size: clamp(2.8rem, 4.8vw, 4.5rem);
  line-height: 0.94;
  letter-spacing: 0.5px;
  color: var(--text-primary, #FFFFFF);
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 1.2vh;
}

.emerald-dot {
  color: var(--accent-emerald, #558632);
  display: inline-block;
  font-family: inherit;
  font-weight: 800;
  margin-left: 2px;
}

.hero-subtitle {
  font-size: clamp(0.88rem, 1.1vw, 1.02rem);
  line-height: 1.5;
  color: var(--text-secondary, rgba(255, 255, 255, 0.65));
  font-weight: 400;
  max-width: 520px;
}

/* 3 Feature Badges from Master Design Reference */
.contact-feature-badges {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-top: 1.8vh;
  padding-top: 4px;
}

.cf-badge-item {
  display: flex;
  align-items: center;
  gap: 9px;
}

.cf-badge-icon {
  width: 26px;
  height: 26px;
  color: var(--accent-emerald, #558632);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.cf-badge-icon svg {
  width: 20px;
  height: 20px;
}

.cf-badge-info {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.cf-badge-title {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.6px;
  color: #FFFFFF;
  text-transform: uppercase;
}

.cf-badge-sub {
  font-size: 0.70rem;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 400;
}

/* --- MIDDLE SECTION: 5 Category Cards & Carousel Controls --- */
.cards-section {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  position: relative;
  z-index: 3;
}

.cards-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  flex: 1;
  height: 44vh;
  max-height: 440px;
  min-height: 380px;
}

/* Right Side Carousel Navigation Rail */
.cards-nav-rail {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 44px;
  gap: 10px;
  user-select: none;
}

.rail-label {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  transform: rotate(180deg);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 2px;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  margin-bottom: 6px;
  white-space: nowrap;
}

.rail-buttons {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.card-nav-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.card-nav-btn svg {
  width: 16px;
  height: 16px;
}

.card-nav-btn:hover {
  background: rgba(85, 134, 50, 0.15);
  border-color: var(--accent-emerald, #558632);
  color: var(--accent-emerald, #558632);
  transform: scale(1.08);
}

.card-nav-btn:active {
  transform: scale(0.94);
}

/* Category Card */
.category-card {
  position: relative;
  background: var(--bg-card, #1E1E1E);
  border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
  border-radius: 14px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  height: 100%;
  box-shadow: 0 10px 30px -5px rgba(0, 0, 0, 0.5);
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.category-card:hover {
  background: var(--bg-card-hover, #121814);
  border-color: rgba(255, 255, 255, 0.7);
  transform: translateY(-3px);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.7);
}

/* Active Highlighted State */
.category-card.active {
  border: 1.5px solid var(--accent-emerald, #558632);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.6);
  background: var(--bg-card-active, #1E1E1E);
}

.card-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
}

.card-content-top {
  padding: 1.8vh 1.1vw 1vh 1.1vw;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.card-icon-wrap {
  width: 28px;
  height: 28px;
  color: var(--accent-emerald, #558632);
  margin-bottom: 1vh;
  opacity: 0.95;
  display: flex;
  align-items: center;
}

.card-icon-wrap svg {
  width: 24px;
  height: 24px;
}

.card-title {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: clamp(0.85rem, 0.98vw, 0.98rem);
  font-weight: 800;
  letter-spacing: 0.5px;
  color: var(--text-primary, #FFFFFF);
  text-transform: uppercase;
  margin-bottom: 0.5vh;
  line-height: 1.2;
}

.card-description {
  font-size: clamp(0.68rem, 0.75vw, 0.75rem);
  line-height: 1.38;
  color: var(--text-secondary, rgba(255, 255, 255, 0.6));
  margin-bottom: 0.8vh;
  font-weight: 400;
}

.card-arrow-wrap {
  margin-top: auto;
  display: flex;
  align-items: center;
}

.card-arrow {
  display: inline-flex;
  align-items: center;
  color: var(--accent-emerald, #558632);
  opacity: 0.85;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.card-arrow svg {
  width: 16px;
  height: 16px;
}

.category-card:hover .card-arrow {
  transform: translateX(4px);
  opacity: 1;
}

/* Card Image Area */
.card-image-wrap {
  position: relative;
  width: 100%;
  height: 55%;
  overflow: hidden;
  background-color: #181818;
  margin-top: auto;
}

.card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}

.category-card:hover .card-img {
  transform: scale(1.06);
}

.card-img-gradient {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 38px;
  background: linear-gradient(to bottom, var(--bg-card, #1E1E1E) 0%, transparent 100%);
  pointer-events: none;
}

.category-card.active .card-img-gradient {
  background: linear-gradient(to bottom, var(--bg-card-active, #1E1E1E) 0%, transparent 100%);
}

/* Floating Action Button on Active Card */
.card-action-btn {
  position: absolute;
  bottom: 14px;
  left: 14px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--accent-emerald, #558632);
  border: none;
  color: #181818;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
  opacity: 0;
  pointer-events: none;
  transform: scale(0.8);
  transition: opacity 0.22s ease, transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), background 0.2s ease, box-shadow 0.2s ease;
  z-index: 5;
}

.category-card.active .card-action-btn {
  opacity: 1;
  pointer-events: auto;
  transform: scale(1);
}

.card-action-btn svg {
  width: 20px;
  height: 20px;
}

.card-action-btn:hover {
  background: #558632;
  transform: scale(1.12);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

/* --- BOTTOM SECTION: Simplified Contact Channels Dock --- */
.bottom-bar {
  background: rgba(14, 20, 16, 0.9);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(85, 134, 50, 0.28);
  border-radius: 9999px;
  padding: 12px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 16px 44px -8px rgba(0, 0, 0, 0.75);
  width: 100%;
  max-width: 1060px;
  box-sizing: border-box;
}

.channel-item {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  background: transparent;
  border: none;
  padding: 8px 16px;
  border-radius: 9999px;
  cursor: pointer;
  font-family: inherit;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  color: inherit;
}

.channel-item:hover {
  background: rgba(85, 134, 50, 0.12);
  transform: translateY(-1px);
}

.channel-icon-btn {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.12);
  border: 1px solid rgba(85, 134, 50, 0.3);
  color: #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.channel-item:hover .channel-icon-btn {
  background: #558632;
  color: #FFFFFF;
  border-color: #558632;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.channel-icon-btn svg {
  width: 19px;
  height: 19px;
}

.channel-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  text-align: left;
}

.channel-tag {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #558632;
  text-transform: uppercase;
}

.channel-main-val {
  font-size: 0.95rem;
  font-weight: 600;
  color: #FFFFFF;
  letter-spacing: 0.01em;
  transition: color 0.2s ease;
}

.bar-separator {
  width: 1px;
  height: 32px;
  background-color: rgba(255, 255, 255, 0.7);
}

@media (max-width: 900px) {
  .bottom-bar {
    flex-direction: column;
    border-radius: 24px;
    padding: 18px 20px;
    gap: 12px;
    align-items: stretch;
  }

  .bar-separator {
    width: 100%;
    height: 1px;
  }

  .channel-item {
    justify-content: flex-start;
    padding: 10px 14px;
  }
}

/* --- Interactive Drawer Modal --- */
.inquiry-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(0, 0, 0, 0.78);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-medium);
  padding: 20px;
}

.inquiry-modal-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

.inquiry-modal {
  position: relative;
  background: #181818;
  border: 1px solid rgba(85, 134, 50, 0.3);
  border-radius: 18px;
  width: 100%;
  max-width: 540px;
  padding: 32px;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.85);
  transform: translateY(20px) scale(0.97);
  transition: transform 0.3s var(--ease-bounce);
}

.inquiry-modal-backdrop.open .inquiry-modal {
  transform: translateY(0) scale(1);
}

.modal-close-btn {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--border-subtle);
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-fast), transform var(--transition-fast);
}

.modal-close-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  color: var(--text-primary);
}

.modal-header {
  margin-bottom: 20px;
}

.modal-category-tag {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 1.6px;
  color: var(--accent-emerald);
  margin-bottom: 4px;
  text-transform: uppercase;
}

.modal-title {
  font-family: var(--font-display);
  font-size: 2rem;
  letter-spacing: 0.5px;
  color: var(--text-primary);
  text-transform: uppercase;
  line-height: 1;
  margin-bottom: 6px;
}

.modal-subtitle {
  font-size: 0.84rem;
  color: var(--text-secondary);
  line-height: 1.4;
}

.modal-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.form-group label {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text-secondary);
}

.form-group input,
.form-group textarea {
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid var(--border-subtle);
  border-radius: 6px;
  padding: 10px 12px;
  color: var(--text-primary);
  font-family: inherit;
  font-size: 0.86rem;
  transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-fast), transform var(--transition-fast);
}

.form-group input:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--accent-emerald);
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 6px;
}

.sla-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.74rem;
  color: var(--text-secondary);
}

.live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--accent-emerald);
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.btn-submit-inquiry {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--accent-emerald);
  color: #121212;
  border: none;
  padding: 10px 22px;
  border-radius: 9999px;
  font-size: 0.86rem;
  font-weight: 800;
  cursor: pointer;
  transition: color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-fast), transform var(--transition-fast);
}

.btn-submit-inquiry:hover {
  background: var(--accent-emerald-hover);
}

/* Modal Success State */
.modal-success-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 16px 0;
  gap: 12px;
}

.success-icon-circle {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.12);
  border: 1px solid rgba(85, 134, 50, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
}

.modal-success-state h3 {
  font-size: 1.3rem;
  color: var(--text-primary);
}

.modal-success-state p {
  font-size: 0.86rem;
  color: var(--text-secondary);
  max-width: 360px;
  line-height: 1.45;
}

.btn-done {
  margin-top: 8px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid var(--border-light);
  color: var(--text-primary);
  padding: 8px 24px;
  border-radius: 9999px;
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
}

/* Toast */
.toast-container {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 2000;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}

.toast {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #1E1E1E;
  border: 1px solid var(--accent-emerald);
  color: var(--text-primary);
  padding: 10px 18px;
  border-radius: 9999px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.8);
  font-size: 0.82rem;
  font-weight: 600;
  opacity: 0;
  transform: translateY(12px);
  transition: color 0.3s var(--ease-bounce), background-color 0.3s var(--ease-bounce), border-color 0.3s var(--ease-bounce), box-shadow 0.3s var(--ease-bounce), opacity 0.3s var(--ease-bounce), transform 0.3s var(--ease-bounce);
  pointer-events: auto;
}

.toast.show {
  opacity: 1;
  transform: translateY(0);
}

.toast-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent-emerald);
}

/* Responsive Rules for Contact Us Page */
@media (max-width: 1200px) {
  .top-section {
    max-width: 65%;
  }

  .hero-dish-cutout {
    width: clamp(320px, 28vw, 420px);
    height: clamp(320px, 28vw, 420px);
    right: -80px;
    top: 0;
    opacity: 0.9;
  }

  .cards-grid {
    grid-template-columns: repeat(5, minmax(200px, 1fr));
    overflow-x: auto;
    padding-bottom: 8px;
    scroll-snap-type: x mandatory;
  }

  .category-card {
    scroll-snap-align: start;
  }
}

@media (max-width: 900px) {
  body.contact-page .contact-canvas {
    padding-top: calc(80px + 24px);
    height: auto;
    min-height: calc(100vh - 80px);
    max-height: none;
    overflow: visible;
    gap: 20px;
  }

  .top-section {
    max-width: 100%;
  }

  .hero-dish-cutout {
    opacity: 0.25;
    width: 260px;
    height: 260px;
    right: -60px;
    top: 15px;
  }

  .bottom-bar {
    flex-direction: column;
    height: auto;
    max-height: none;
    padding: 20px 24px;
    gap: 18px;
    align-items: flex-start;
    border-radius: 18px;
  }

  .bar-separator {
    display: none;
  }

  .channel-details,
  .channel-meta {
    margin-left: 0;
    text-align: left;
  }
}

/* ==========================================================================
   HEALTH ON TOP ("HOT") — 1:1 REPLICA HOMEPAGE HERO SECTION
   Aesthetics: 4K Cinematic Food Visual, Brand Display Type, Glowing Emerald Accents
   ========================================================================== */

/* --- Body & Canvas Setup --- */
body.hero-page {
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 100vh;
  overflow-x: clip;
  scroll-padding-top: 0;
  background-color: var(--bg-core);
  color: #FFFFFF;
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  position: relative;
}

.hero-canvas,
.philosophy-hero-section,
.problem-friction-section,
.protein-showcase-section,
.build-meal-section,
.customize-meal-section,
.week-ready-section,
.performance-packs-section,
.nutrition-breakdown-section,
.ingredient-transparency-section,
.quality-steps-section,
.goals-ally-section,
.gallery-archive-section,
.fulfillment-section,
.order-confirmed-section,
.nutrition-label-section {
  scroll-snap-align: none;
}

/* Ambient Top Edge Glow */
.hero-ambient-glow {
  position: absolute;
  top: 0;
  left: 30%;
  width: 500px;
  height: 250px;
  background: none;
  pointer-events: none;
  z-index: 2;
}

/* --- Top Navigation Bar (LOCKED ARCHITECTURE: Hero Section Only, Static/Absolute Positioning) --- */
.hero-navbar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--nav-height, 80px);
  padding: 0 3.5vw;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  z-index: 1000;
  background: rgba(5, 5, 5, 0.82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  transition: background 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease;
  box-sizing: border-box;
}

/* Centered Brand Logo (Column 2) */
.nav-brand {
  grid-column: 2;
  grid-row: 1;
  justify-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #FFFFFF;
  user-select: none;
  transition: opacity 0.2s ease;
}

.nav-brand:hover {
  opacity: 0.95;
}

.nav-brand-logo {
  height: 64px;
  width: 64px;
  object-fit: contain;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), filter 0.25s ease;
  flex-shrink: 0;
  display: block;
}

.nav-brand:hover .nav-brand-logo {
  transform: scale(1.06);
}

.brand-hot {
  display: flex;
  align-items: center;
  gap: 2px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 2.1rem;
  letter-spacing: 0.05em;
  color: #FFFFFF;
  line-height: 1;
}

.brand-reticle-wrap {
  width: 23px;
  height: 23px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 1px;
}

.brand-reticle {
  width: 100%;
  height: 100%;
}

.nav-brand .brand-text,
.brand-text {
  display: none !important;
}

/* Left Nav Links (Column 1) */
.nav-center-menu,
.nav-left-menu {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  display: flex;
  align-items: center;
  gap: clamp(1.2rem, 1.8vw, 2.2rem);
}

.nav-item {
  color: #E7ECE9;
  font-size: 0.86rem;
  font-weight: 500;
  text-decoration: none;
  letter-spacing: -0.01em;
  position: relative;
  padding: 6px 0;
  transition: color 0.2s ease;
  white-space: nowrap;
}

.nav-item:hover {
  color: #FFFFFF;
}

.nav-item.active {
  color: #558632;
  font-weight: 600;
}

.nav-item.active::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 2px;
  background: #558632;
  border-radius: 2px;
  box-shadow: none;
}

/* Right Nav Actions (Column 3) */
.nav-right-actions {
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.nav-btn-quick-order {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  outline: none;
  font-family: inherit;
  color: inherit;
  text-decoration: none;
}

.quick-order-icon-wrap {
  position: relative;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(85, 134, 50, 0.28);
  border: 1.5px solid #8CE848;
  outline: 1.5px solid #558632;
  outline-offset: 1px;
  box-shadow: none;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  animation: quickOrderWrapFlicker 3.2s ease-in-out infinite;
}

.quick-order-bolt-icon {
  width: 17px;
  height: 17px;
  color: #B4FF6E;
  fill: #B4FF6E;
  stroke: #B4FF6E;
  stroke-width: 1.2;
  transform-origin: center center;
  filter: brightness(1.35) drop-shadow(0 0 5px rgba(180, 255, 110, 0.65));
  transition: transform 0.25s var(--ease-bounce), filter 0.25s ease, background 0.25s ease;
  animation: quickOrderBoltFlicker 3.2s ease-in-out infinite;
}

/* Electric Lightning Flicker Animations */
@keyframes quickOrderBoltFlicker {
  0%, 100% {
    filter: brightness(1.35) drop-shadow(0 0 5px rgba(180, 255, 110, 0.65));
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
  3% {
    filter: brightness(0.8) drop-shadow(0 0 2px rgba(180, 255, 110, 0.25));
    opacity: 0.75;
    transform: scale(0.97) rotate(-2deg);
  }
  5% {
    filter: brightness(1.6) drop-shadow(0 0 8px rgba(180, 255, 110, 0.9));
    opacity: 1;
    transform: scale(1.06) rotate(3deg);
  }
  8% {
    filter: brightness(0.9) drop-shadow(0 0 3px rgba(180, 255, 110, 0.35));
    opacity: 0.82;
    transform: scale(0.99) rotate(0deg);
  }
  11% {
    filter: brightness(1.55) drop-shadow(0 0 7px rgba(180, 255, 110, 0.85));
    opacity: 1;
    transform: scale(1.04) rotate(-3deg);
  }
  14% {
    filter: brightness(1.35) drop-shadow(0 0 5px rgba(180, 255, 110, 0.65));
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
  48% {
    filter: brightness(1.35) drop-shadow(0 0 5px rgba(180, 255, 110, 0.65));
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
  50% {
    filter: brightness(0.7) drop-shadow(0 0 1px rgba(180, 255, 110, 0.2));
    opacity: 0.7;
    transform: scale(0.96) rotate(-1deg);
  }
  52% {
    filter: brightness(1.7) drop-shadow(0 0 10px rgba(180, 255, 110, 0.95));
    opacity: 1;
    transform: scale(1.08) rotate(4deg);
  }
  55% {
    filter: brightness(1.35) drop-shadow(0 0 5px rgba(180, 255, 110, 0.65));
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
  74% {
    filter: brightness(1.35) drop-shadow(0 0 5px rgba(180, 255, 110, 0.65));
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
  76% {
    filter: brightness(0.85) drop-shadow(0 0 2px rgba(180, 255, 110, 0.3));
    opacity: 0.8;
  }
  78% {
    filter: brightness(1.5) drop-shadow(0 0 7px rgba(180, 255, 110, 0.8));
    opacity: 1;
    transform: scale(1.03) rotate(-2deg);
  }
  81% {
    filter: brightness(1.35) drop-shadow(0 0 5px rgba(180, 255, 110, 0.65));
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
}

@keyframes quickOrderWrapFlicker {
  0%, 100% {
    background: rgba(85, 134, 50, 0.28);
    border-color: #8CE848;
    outline-color: #558632;
  }
  3% {
    background: rgba(85, 134, 50, 0.16);
    border-color: rgba(140, 232, 72, 0.5);
    outline-color: rgba(85, 134, 50, 0.5);
  }
  5% {
    background: rgba(85, 134, 50, 0.4);
    border-color: #B4FF6E;
    outline-color: #8CE848;
  }
  8% {
    background: rgba(85, 134, 50, 0.2);
    border-color: rgba(140, 232, 72, 0.6);
  }
  11% {
    background: rgba(85, 134, 50, 0.36);
    border-color: #8CE848;
    outline-color: #8CE848;
  }
  14%, 48% {
    background: rgba(85, 134, 50, 0.28);
    border-color: #8CE848;
    outline-color: #558632;
  }
  50% {
    background: rgba(85, 134, 50, 0.14);
    border-color: rgba(140, 232, 72, 0.4);
  }
  52% {
    background: rgba(85, 134, 50, 0.45);
    border-color: #B4FF6E;
    outline-color: #8CE848;
  }
  55%, 74% {
    background: rgba(85, 134, 50, 0.28);
    border-color: #8CE848;
    outline-color: #558632;
  }
  76% {
    background: rgba(85, 134, 50, 0.18);
    border-color: rgba(140, 232, 72, 0.5);
  }
  78% {
    background: rgba(85, 134, 50, 0.35);
    border-color: #8CE848;
  }
  81%, 100% {
    background: rgba(85, 134, 50, 0.28);
    border-color: #8CE848;
    outline-color: #558632;
  }
}

.nav-btn-quick-order:hover .quick-order-icon-wrap,
.nav-btn-quick-order:focus-visible .quick-order-icon-wrap {
  animation-play-state: paused;
  background: rgba(85, 134, 50, 0.42);
  border-color: #B4FF6E;
  outline: 1.5px solid #8CE848;
  outline-offset: 1px;
  transform: scale(1.08);
}

.nav-btn-quick-order:hover .quick-order-bolt-icon,
.nav-btn-quick-order:focus-visible .quick-order-bolt-icon {
  animation-play-state: paused;
  color: #B4FF6E;
  fill: #B4FF6E;
  stroke: #B4FF6E;
  filter: brightness(1.5) drop-shadow(0 0 8px rgba(180, 255, 110, 0.85));
  transform: scale(1.15) rotate(-8deg);
  opacity: 1;
}

.nav-btn-quick-order:active .quick-order-icon-wrap {
  transform: scale(0.94);
}

@media (prefers-reduced-motion: reduce) {
  .quick-order-bolt-icon,
  .quick-order-icon-wrap {
    animation: none !important;
  }
}

/* Hover Tooltip: "Quick Order" */
.quick-order-tooltip {
  position: absolute;
  top: calc(100% + 12px);
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  background: #181818;
  color: #FFFFFF;
  border: 1px solid rgba(85, 134, 50, 0.45);
  font-family: var(--font-family-brand), -apple-system, sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 6px;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.22s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0.22s;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.7);
  z-index: 1010;
}

.quick-order-tooltip::before {
  content: '';
  position: absolute;
  top: -5px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 8px;
  height: 8px;
  background: #181818;
  border-top: 1px solid rgba(85, 134, 50, 0.45);
  border-left: 1px solid rgba(85, 134, 50, 0.45);
}

.nav-btn-quick-order:hover .quick-order-tooltip,
.nav-btn-quick-order:focus-visible .quick-order-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.nav-btn-rewards,
.nav-btn-login {
  color: #FFFFFF;
  font-size: 0.86rem;
  font-weight: 500;
  text-decoration: none;
  transition: color 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.nav-btn-rewards:hover,
.nav-btn-login:hover {
  color: #558632;
}

.nav-btn-get-started {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 20px;
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #FFFFFF;
  text-decoration: none;
  font-size: 0.86rem;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.03);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.nav-btn-get-started .nav-arrow-icon {
  width: 14px;
  height: 14px;
  transition: transform 0.2s ease;
}

.nav-btn-get-started:hover {
  border-color: #558632;
  color: #558632;
  background: rgba(85, 134, 50, 0.08);
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.nav-btn-get-started:hover .nav-arrow-icon {
  transform: translateX(3px);
}

/* --- Account + Cart Cluster (Navbar) --- */
.nav-account-cluster {
  display: flex;
  align-items: center;
  gap: 1.1rem;
}

.nav-account-link {
  color: #FFFFFF;
  font-size: 0.86rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
  padding: 6px 14px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  display: inline-flex;
  align-items: center;
}

.nav-account-link:hover {
  color: var(--hot-emerald-500, #558632);
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(85, 134, 50, 0.35);
  transform: translateY(-1px);
}

.nav-account-cluster {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.nav-cart-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #FFFFFF;
  text-decoration: none;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.nav-cart-btn:hover {
  border-color: #558632;
  color: #558632;
  background: rgba(85, 134, 50, 0.1);
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.nav-cart-icon {
  width: 17px;
  height: 17px;
}

.nav-cart-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 9999px;
  background: #558632;
  color: #FFFFFF;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 17px;
  text-align: center;
  box-shadow: 0 0 0 2px #121212;
}

/* --- Global Navbar Cart Hover Popover --- */
.nav-cart-popover {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  width: 310px;
  background: #181818;
  border: 1px solid #2A2A2A;
  border-radius: 16px;
  padding: 18px 20px;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.6);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
  font-family: var(--font-family-brand), 'Switzer', -apple-system, BlinkMacSystemFont, sans-serif;
  color: #FFFFFF;
}

.nav-account-cluster:hover .nav-cart-popover,
.nav-cart-popover:hover,
.nav-cart-popover.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

.nav-cart-popover-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid #2A2A2A;
}

.nav-cart-popover-title {
  font-size: 1rem;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0;
  letter-spacing: -0.01em;
}

.nav-cart-popover-count {
  font-size: 0.8rem;
  color: #A7B0AB;
  font-weight: 500;
}

.nav-cart-popover-items {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 220px;
  overflow-y: auto;
  margin-bottom: 14px;
}

.nav-cart-popover-item {
  display: flex;
  align-items: center;
  gap: 12px;
}

.nav-cart-popover-item-thumb {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  overflow: hidden;
  background: #121212;
  border: 1px solid #2A2A2A;
  flex-shrink: 0;
}

.nav-cart-popover-item-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.nav-cart-popover-item-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.nav-cart-popover-item-name {
  font-size: 0.88rem;
  font-weight: 700;
  color: #FFFFFF;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nav-cart-popover-item-meta {
  font-size: 0.75rem;
  color: #A7B0AB;
}

.nav-cart-popover-item-price {
  font-size: 0.88rem;
  font-weight: 700;
  color: #FFFFFF;
  white-space: nowrap;
  flex-shrink: 0;
}

.nav-cart-popover-summary {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 12px;
  border-top: 1px solid #2A2A2A;
  margin-bottom: 14px;
}

.nav-cart-popover-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.82rem;
}

.nav-cart-popover-lbl {
  color: #A7B0AB;
}

.nav-cart-popover-val {
  color: #FFFFFF;
  font-weight: 600;
}

.nav-cart-popover-val.free {
  color: #558632;
  font-weight: 700;
}

.nav-cart-popover-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 42px;
  background: #558632;
  color: #FFFFFF;
  font-size: 0.9rem;
  font-weight: 700;
  border-radius: 10px;
  text-decoration: none;
  transition: background 0.2s ease;
  border: none;
  cursor: pointer;
}

.nav-cart-popover-btn:hover {
  background: #669E3D;
  color: #FFFFFF;
}

.nav-cart-popover-empty {
  text-align: center;
  padding: 16px 8px;
  color: #A7B0AB;
  font-size: 0.86rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

/* --- Mobile Hamburger Button & Universal Mobile Drawer --- */
.hot-hamburger-btn {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 5px;
  width: 32px;
  height: 32px;
  min-width: 32px;
  min-height: 32px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  color: #FFFFFF;
  z-index: 1001;
  transition: opacity 0.2s ease;
}

.hot-hamburger-btn:hover {
  opacity: 0.8;
}

.hot-hamburger-btn .hamburger-line {
  display: block;
  width: 22px;
  height: 2px;
  background-color: #FFFFFF;
  border-radius: 2px;
  transition: transform 0.25s ease, opacity 0.2s ease, background-color 0.2s ease;
}

.hot-hamburger-btn.active .hamburger-line.top {
  transform: translateY(7px) rotate(45deg);
}

.hot-hamburger-btn.active .hamburger-line.mid {
  opacity: 0;
  transform: scaleX(0);
}

.hot-hamburger-btn.active .hamburger-line.bot {
  transform: translateY(-7px) rotate(-45deg);
}

/* Universal Mobile Drawer Backdrop */
.hot-mobile-drawer-backdrop {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 99999;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.3s ease;
}

.hot-mobile-drawer-backdrop.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* Universal Mobile Drawer Sheet */
.hot-mobile-drawer {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100vw;
  height: 100%;
  height: 100dvh;
  background: #0B0D0C;
  display: flex;
  flex-direction: column;
  padding: clamp(1.25rem, 5vw, 2rem) clamp(1.25rem, 6vw, 2.25rem);
  padding-top: max(1.25rem, env(safe-area-inset-top));
  padding-bottom: max(1.5rem, env(safe-area-inset-bottom));
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  overflow-y: auto;
  overscroll-behavior: contain;
  box-sizing: border-box;
  z-index: 100000;
}

.hot-mobile-drawer-backdrop.active .hot-mobile-drawer {
  transform: translateX(0);
}

.mobile-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 1.5rem;
}

.mobile-drawer-brand {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.mobile-drawer-logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
}

.mobile-drawer-close {
  background: transparent;
  border: none;
  color: #FFFFFF;
  padding: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.mobile-drawer-close:hover {
  transform: rotate(90deg);
  opacity: 0.85;
}

.mobile-drawer-nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.35rem;
  padding: 1.25rem 0 0.5rem;
}

.mobile-nav-link {
  display: inline-block;
  font-family: var(--font-family-base), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 1.22rem;
  font-weight: 500;
  color: #F0F3F1;
  text-decoration: none;
  transition: color 0.2s ease;
  line-height: 1.3;
}

.mobile-nav-link:hover {
  color: #FFFFFF;
}

.mobile-nav-link.active {
  color: #558632;
  font-weight: 600;
}

.mobile-nav-link.active::after {
  content: '';
  display: block;
  width: 100%;
  height: 2.5px;
  background: #558632;
  border-radius: 2px;
  margin-top: 5px;
}

.mobile-drawer-divider {
  width: 100%;
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
  margin: 1.5rem 0 1.25rem;
}

.mobile-drawer-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: 100%;
}

.mobile-drawer-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 13px 18px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
  font-size: 0.95rem;
  font-weight: 500;
  text-decoration: none;
  box-sizing: border-box;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}

.mobile-drawer-btn:hover {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.25);
}

.mobile-drawer-btn:active {
  transform: scale(0.99);
}

.mobile-drawer-btn-icon {
  flex-shrink: 0;
  color: #FFFFFF;
}

.mobile-drawer-btn-label {
  color: #FFFFFF;
  flex-grow: 0;
}

.mobile-drawer-btn-arrow {
  margin-left: 2px;
  color: #FFFFFF;
}

.mobile-drawer-btn-quick-order {
  background: rgba(85, 134, 50, 0.12);
  border-color: rgba(85, 134, 50, 0.35);
  cursor: pointer;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 600;
  color: #FFFFFF;
}

.mobile-drawer-btn-quick-order:hover {
  background: rgba(85, 134, 50, 0.24);
  border-color: #8CE848;
}

.mobile-drawer-btn-quick-order .mobile-drawer-btn-icon {
  color: #B4FF6E;
  fill: #B4FF6E;
  filter: brightness(1.2) drop-shadow(0 0 3px rgba(180, 255, 110, 0.5));
}

.mobile-drawer-brand-footer {
  margin-top: auto;
  padding-top: 3rem;
  padding-bottom: clamp(1rem, 2.5vh, 1.75rem);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.mobile-drawer-tagline {
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #6C7570;
  line-height: 1.35;
  text-transform: uppercase;
}

.mobile-drawer-green-dash {
  width: 32px;
  height: 3px;
  background: #558632;
  border-radius: 2px;
}

/* --- Auth Pages (Login / Signup) --- */
.auth-section {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: calc(var(--nav-height, 80px) + 60px) 24px 80px;
}

.auth-card {
  width: 100%;
  max-width: 420px;
  background: var(--bg-card, #1E1E1E);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  padding: 40px 36px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
}

.auth-eyebrow {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-emerald, #558632);
  margin-bottom: 10px;
}

.auth-title {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 1.7rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 8px;
}

.auth-sub {
  font-size: 0.9rem;
  color: var(--text-secondary, #E7ECE9);
  opacity: 0.8;
  margin: 0 0 24px;
}

.auth-referral-banner[hidden] {
  display: none;
}

.auth-referral-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(85, 134, 50, 0.1);
  border: 1px solid rgba(85, 134, 50, 0.4);
  color: #FFFFFF;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 10px 14px;
  border-radius: 10px;
  margin-bottom: 20px;
}

.auth-referral-banner span {
  color: var(--accent-emerald, #558632);
}

.auth-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.auth-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
}

.auth-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-secondary, #E7ECE9);
  margin: 0;
  letter-spacing: 0.01em;
}

.auth-hint {
  font-size: 0.72rem;
  color: var(--text-muted, #A7B0AB);
  margin: 2px 0 0;
}

.auth-input {
  width: 100%;
  box-sizing: border-box;
  background: #121212;
  border: 1px solid #2A2A2A;
  border-radius: 8px;
  padding: 11px 14px;
  color: #FFFFFF;
  font-family: var(--font-family-brand), 'Switzer', -apple-system, sans-serif;
  font-size: 0.9rem;
  line-height: 1.4;
  outline: none;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.auth-input::placeholder {
  color: #555555;
}

.auth-input:focus {
  background: #151515;
  border-color: #558632;
  box-shadow: none;
}

.auth-password-wrap {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
}

.auth-password-wrap .auth-input {
  padding-right: 42px;
}

.auth-pw-toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  color: #A7B0AB;
  cursor: pointer;
  padding: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: color 0.15s ease;
  line-height: 1;
}

.auth-pw-toggle:hover {
  color: #FFFFFF;
}

.auth-pw-toggle svg {
  display: block;
}

.auth-error {
  color: var(--hot-error, #EF5B5B);
  font-size: 0.82rem;
  font-weight: 600;
  margin: 8px 0 0;
}

.auth-submit-btn {
  margin-top: 10px;
  padding: 12px 20px;
  border-radius: 8px;
  border: none;
  background: #558632;
  color: #FFFFFF;
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: none;
  transition: background-color 0.15s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  width: 100%;
}

.auth-submit-btn:hover:not(:disabled) {
  background: #669E3D;
  box-shadow: none;
  outline: none;
}

.auth-submit-btn:active:not(:disabled) {
  background: #466F29;
}

.auth-submit-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.auth-switch {
  margin: 22px 0 0;
  text-align: center;
  font-size: 0.85rem;
  color: var(--text-secondary, #E7ECE9);
  opacity: 0.85;
}

.auth-switch a {
  color: #558632;
  font-weight: 600;
  text-decoration: none;
}

.auth-switch a:hover {
  text-decoration: underline;
}

.auth-forgot-link {
  margin: 10px 0 0;
  text-align: right;
  font-size: 0.82rem;
}

.auth-forgot-link a {
  color: var(--text-secondary, #E7ECE9);
  opacity: 0.75;
  text-decoration: none;
}

.auth-forgot-link a:hover {
  opacity: 1;
  text-decoration: underline;
}

.auth-success {
  color: #7fb356;
  font-size: 0.82rem;
  font-weight: 600;
  margin: 14px 0 0;
}

/* --- Account & Admin Pages --- */
.account-section {
  min-height: 100vh;
  padding: calc(var(--nav-height, 80px) + 50px) 24px 80px;
}

.account-container {
  max-width: 900px;
  margin: 0 auto;
}

.account-header-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 28px;
}

.account-logout-btn {
  padding: 10px 20px;
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: transparent;
  color: #FFFFFF;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.account-logout-btn:hover {
  border-color: #558632;
  color: #558632;
}

.account-stats-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
  margin-bottom: 40px;
}

.account-stat-tile {
  background: var(--bg-card, #1E1E1E);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.account-stat-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-secondary, #A7B0AB);
  opacity: 0.75;
}

.account-stat-val {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: #FFFFFF;
}

.account-section-title {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 16px;
}

.account-orders-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.account-order-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  background: var(--bg-card, #1E1E1E);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 14px 18px;
  flex-wrap: wrap;
}

.account-order-label {
  display: block;
  font-weight: 600;
  color: #FFFFFF;
  font-size: 0.9rem;
}

.account-order-date {
  display: block;
  font-size: 0.76rem;
  color: var(--text-secondary, #A7B0AB);
  opacity: 0.75;
}

.account-order-total {
  font-weight: 700;
  color: #558632;
}

.account-empty-msg {
  color: var(--text-secondary, #A7B0AB);
  font-size: 0.88rem;
}

.account-empty-msg a {
  color: #558632;
  font-weight: 600;
}

.account-panels-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin: 0 0 40px;
}

.account-panel {
  background: var(--bg-card, #1E1E1E);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 22px;
}

.account-panel .auth-form {
  margin-top: 4px;
}

.account-panel .auth-label {
  margin: 12px 0 6px;
}

.account-panel .auth-submit-btn {
  margin-top: 18px;
  padding: 10px 18px;
  font-size: 0.85rem;
}

.order-status-pill {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  width: fit-content;
  max-width: max-content;
  padding: 3px 10px;
  border-radius: 9999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: rgba(255, 255, 255, 0.1);
  color: #E7ECE9;
  line-height: 1.2;
}

.order-status-pill[data-status="placed"],
.order-status-pill[data-status="confirmed"] {
  background: rgba(85, 134, 50, 0.18);
  color: #7fb356;
  border: 1px solid rgba(85, 134, 50, 0.35);
}

.order-status-pill[data-status="preparing"] {
  background: rgba(79, 163, 230, 0.18);
  color: #4FA3E6;
  border: 1px solid rgba(79, 163, 230, 0.35);
}

.order-status-pill[data-status="ready_or_out_for_delivery"] {
  background: rgba(155, 219, 110, 0.18);
  color: #9BDB6E;
  border: 1px solid rgba(155, 219, 110, 0.35);
}

.order-status-pill[data-status="completed"] {
  background: rgba(85, 134, 50, 0.25);
  color: #9BDB6E;
  border: 1px solid rgba(85, 134, 50, 0.4);
}

.order-status-pill[data-status="cancelled"] {
  background: rgba(239, 91, 91, 0.18);
  color: #EF5B5B;
  border: 1px solid rgba(239, 91, 91, 0.35);
}

.account-order-row-main {
  display: flex;
  flex-direction: column;
}

.account-order-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.account-reorder-btn {
  padding: 7px 16px;
  border-radius: 9999px;
  border: 1px solid rgba(85, 134, 50, 0.5);
  background: transparent;
  color: #7fb356;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.account-reorder-btn:hover:not(:disabled) {
  background: #558632;
  color: #fff;
}

.account-reorder-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.account-points-history-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.account-points-history-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 0.85rem;
}

.account-points-history-row:last-child {
  border-bottom: none;
}

.account-points-history-delta {
  font-weight: 700;
}

.account-points-history-delta.positive {
  color: #7fb356;
}

.account-points-history-delta.negative {
  color: #EF5B5B;
}

/* ==========================================================================
   ADMIN CRM (admin.html) — 2026-09-17 redesign.
   Left sidebar + topbar shell, real data tables, right-side detail drawers,
   toasts/confirm dialogs, and hand-rolled SVG charts. Every color/font value
   below is one of the existing --hot-* / --font-family-brand tokens already
   defined in this file's :root — no new colors introduced (locked palette).
   ========================================================================== */

/* --- Shell: sidebar + topbar + main --- */
/* ==========================================================================
   HEALTH ON TOP — STAFF ADMIN, KDS & FOOD CRM STYLES (v2.0)
   - Staff Terminal Login Gate with 256-bit security badge & demo quick-fill
   - Live Sync Pulsing Beacon, Audio Alert Chimes & Shortcuts
   - 1-Click Rush-Hour Speed Actions directly on order rows
   - Kitchen Display System (KDS / Prep Board) with Kanban Workflow
   - Chef Batch Prep Calculator (Protein Grams & Carb Portions Aggregator)
   - Authentic Thermal KOT (Kitchen Order Ticket) & Bag Label Printer
   - Fitness Customer CRM with Loyalty Tiers & Points Ledger
   ========================================================================== */

/* --- 1. Staff Authentication Gate --- */
.admin-auth-gate[hidden],
.admin-shell[hidden],
[hidden] {
  display: none !important;
}

.admin-auth-gate {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #121212;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.admin-login-card {
  width: 100%;
  max-width: 400px;
  background: #181818;
  border: 1px solid #2A2A2A;
  border-radius: 12px;
  padding: 32px 28px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.6);
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.admin-login-brand {
  display: flex;
  align-items: center;
  gap: 14px;
}

.admin-login-logo {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  border: 1px solid #2A2A2A;
  object-fit: contain;
  background: #121212;
  box-shadow: none;
}

.admin-login-brand-text {
  display: flex;
  flex-direction: column;
}

.admin-login-title {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0;
  letter-spacing: -0.01em;
}

.admin-security-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: rgba(85, 134, 50, 0.08);
  border: 1px solid rgba(85, 134, 50, 0.2);
  border-radius: 8px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #7fb356;
}

.pulse-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #558632;
  box-shadow: none;
  animation: beacon-pulse 1.8s infinite;
  flex-shrink: 0;
}

.admin-auth-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.admin-submit-btn {
  margin-top: 6px;
  background: #558632;
  color: #FFFFFF;
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  padding: 12px 20px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  box-shadow: none;
  transition: background-color 0.15s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.admin-submit-btn:hover:not(:disabled) {
  background: #669E3D;
  box-shadow: none;
  outline: none;
}

.admin-submit-btn:active:not(:disabled) {
  background: #466F29;
}

.admin-submit-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.admin-demo-quickfill {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 14px;
  border-top: 1px solid #2A2A2A;
}

.admin-demo-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--hot-text-300, #A7B0AB);
  font-weight: 600;
}

.admin-btn-demo {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid #2A2A2A;
  color: var(--hot-text-200, #E7ECE9);
  border-radius: 8px;
  padding: 9px 12px;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  text-align: left;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
}

.admin-btn-demo:hover {
  background: rgba(255, 255, 255, 0.07);
  border-color: #558632;
  color: #FFFFFF;
}

.admin-login-footer {
  text-align: center;
  padding-top: 4px;
}

.admin-back-link {
  font-size: 0.8rem;
  color: var(--hot-text-300, #A7B0AB);
  text-decoration: none;
  transition: color 0.15s ease;
}

.admin-back-link:hover {
  color: #FFFFFF;
  text-decoration: underline;
}

/* --- 2. Admin Shell Layout --- */
.admin-shell {
  display: grid;
  grid-template-columns: 240px 1fr;
  grid-template-rows: 64px 1fr;
  grid-template-areas:
    "sidebar topbar"
    "sidebar main";
  min-height: 100vh;
  background: var(--hot-bg-900, #121212);
}

.admin-sidebar {
  grid-area: sidebar;
  background: var(--hot-bg-800, #181818);
  border-right: 1px solid var(--hot-border-700, #2A2A2A);
  display: flex;
  flex-direction: column;
  padding: 18px 0;
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 30;
}

.admin-sidebar-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 20px 18px;
  border-bottom: 1px solid var(--hot-border-700, #2A2A2A);
  text-decoration: none;
}

.admin-sidebar-brand img {
  width: 32px;
  height: 32px;
  border-radius: 8px;
}

.admin-sidebar-brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}

.admin-sidebar-brand-text strong {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  color: var(--hot-text-100, #FFFFFF);
  font-size: 0.95rem;
  font-weight: 700;
}

.admin-sidebar-brand-text span {
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  color: var(--hot-text-300, #A7B0AB);
  text-transform: uppercase;
}

.admin-sidebar-status {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--hot-primary-400, #7fb356);
}

.admin-sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 0 10px;
  flex: 1;
}

.admin-nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  color: var(--hot-text-300, #A7B0AB);
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  border-left: 3px solid transparent;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
  position: relative;
}

.admin-nav-item:hover {
  background: rgba(255, 255, 255, 0.04);
  color: var(--hot-text-100, #FFFFFF);
}

.admin-nav-item.active {
  background: rgba(85, 134, 50, 0.14);
  color: var(--hot-text-100, #FFFFFF);
  border-left-color: var(--hot-primary-500, #558632);
}

.admin-nav-icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.admin-nav-label {
  flex: 1;
}

.admin-nav-badge {
  padding: 2px 7px;
  border-radius: 9999px;
  font-size: 0.7rem;
  font-weight: 800;
  background: var(--hot-primary-500, #558632);
  color: #FFFFFF;
}

.admin-nav-badge.kds-badge {
  background: #E6AF2E;
  color: #121212;
}

.admin-nav-shortcut {
  font-size: 0.65rem;
  color: rgba(255, 255, 255, 0.25);
  font-weight: 700;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 4px;
  padding: 1px 5px;
}

.admin-sidebar-footer {
  padding: 14px 18px 0;
  border-top: 1px solid var(--hot-border-700, #2A2A2A);
}

.admin-shortcuts-hint {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.74rem;
  color: var(--hot-text-300, #A7B0AB);
}

/* --- 3. Topbar --- */
.admin-topbar {
  grid-area: topbar;
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0 28px;
  background: var(--hot-bg-900, #121212);
  border-bottom: 1px solid var(--hot-border-700, #2A2A2A);
}

.admin-topbar-left {
  display: flex;
  align-items: center;
  gap: 16px;
}

.admin-topbar-title {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--hot-text-100, #FFFFFF);
  margin: 0;
}

.admin-sync-beacon {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: rgba(85, 134, 50, 0.12);
  border: 1px solid rgba(85, 134, 50, 0.25);
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--hot-primary-300, #9BDB6E);
  letter-spacing: 0.04em;
}

.beacon-glow {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #558632;
  box-shadow: 0 0 8px #558632;
  animation: beacon-pulse 1.4s infinite;
}

@keyframes beacon-pulse {
  0% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.3); opacity: 1; box-shadow: 0 0 12px #7fb356; }
  100% { transform: scale(0.9); opacity: 0.7; }
}

.admin-topbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.admin-topbar-search {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--hot-surface-700, #1E1E1E);
  border: 1px solid var(--hot-border-700, #2A2A2A);
  border-radius: 8px;
  padding: 8px 12px;
  min-width: 250px;
}

.admin-topbar-search input {
  background: none;
  border: none;
  outline: none;
  color: var(--hot-text-100, #FFFFFF);
  font-size: 0.82rem;
  width: 100%;
}

.admin-topbar-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--hot-border-600, #383838);
  background: rgba(255, 255, 255, 0.03);
  color: var(--hot-text-200, #E7ECE9);
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
}

.admin-topbar-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--hot-primary-500, #558632);
  color: #FFFFFF;
}

.admin-user-meta-pill {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.1;
}

.admin-user-role-tag {
  font-size: 0.62rem;
  color: var(--hot-primary-400, #7fb356);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.spin-anim {
  animation: spin-once 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes spin-once {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* --- 4. Main Page Container & Headers --- */
.admin-main {
  grid-area: main;
  padding: 28px;
  max-width: 1540px;
  width: 100%;
}

.admin-page {
  display: none;
}

.admin-page.active {
  display: block;
}

.admin-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 22px;
}

.admin-page-title {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--hot-text-100, #FFFFFF);
  margin: 0;
}

.admin-page-sub {
  font-size: 0.85rem;
  color: var(--hot-text-300, #A7B0AB);
  margin: 4px 0 0;
}

.admin-header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.admin-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 8px;
  border: none;
  background: var(--hot-primary-500, #558632);
  color: #FFFFFF;
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s ease;
  text-decoration: none;
}

.admin-btn-primary:hover {
  background: var(--hot-emerald-hover, #669E3D);
}

.admin-card-link {
  /* Unstyled before this — fell back to the browser default link blue
     (#0000ee), 1.88:1 against this dark background and effectively
     unreadable. */
  color: #669E3D;
  font-weight: 700;
  text-decoration: none;
}

.admin-card-link:hover {
  text-decoration: underline;
}

.admin-btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  border-radius: 8px;
  border: 1px solid var(--hot-border-600, #383838);
  background: transparent;
  color: var(--hot-text-100, #FFFFFF);
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
  text-decoration: none;
}

.admin-btn-secondary:hover {
  border-color: var(--hot-primary-500, #558632);
  color: var(--hot-primary-500, #558632);
}

/* --- 5. Rush Hour Speed Banner --- */
.admin-rush-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 14px;
  padding: 14px 20px;
  background: linear-gradient(90deg, rgba(85, 134, 50, 0.15) 0%, rgba(30, 30, 30, 0.8) 100%);
  border: 1px solid rgba(85, 134, 50, 0.3);
  border-radius: 12px;
  margin-bottom: 24px;
}

.rush-banner-left {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.rush-badge {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #9BDB6E;
  text-transform: uppercase;
}

.rush-banner-left p {
  font-size: 0.82rem;
  color: var(--hot-text-200, #E7ECE9);
  margin: 0;
}

.rush-banner-stats {
  display: flex;
  gap: 10px;
}

.rush-stat-chip {
  padding: 6px 14px;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  font-size: 0.8rem;
  color: var(--hot-text-200, #E7ECE9);
}

.rush-stat-chip strong {
  color: #7fb356;
  font-size: 0.92rem;
  margin-right: 4px;
}

/* --- 6. KPI Grid & Cards --- */
.admin-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.admin-kpi-card {
  background: var(--hot-surface-700, #1E1E1E);
  border: 1px solid var(--hot-border-700, #2A2A2A);
  border-radius: 12px;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.admin-kpi-label {
  font-size: 0.74rem;
  color: var(--hot-text-300, #A7B0AB);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
}

.admin-kpi-value {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 1.55rem;
  font-weight: 700;
  color: var(--hot-text-100, #FFFFFF);
}

.admin-kpi-sub {
  font-size: 0.76rem;
  color: var(--hot-text-300, #A7B0AB);
}

/* --- 7. Data Tables & Quick Action Buttons --- */
.admin-toolbar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.admin-filter-group {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  width: 100%;
}

.admin-table-wrap {
  background: var(--hot-surface-700, #1E1E1E);
  border: 1px solid var(--hot-border-700, #2A2A2A);
  border-radius: 12px;
  overflow-x: auto;
}

.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
  min-width: 800px;
}

.admin-table thead th {
  text-align: left;
  padding: 12px 16px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--hot-text-300, #A7B0AB);
  border-bottom: 1px solid var(--hot-border-600, #383838);
  white-space: nowrap;
}

.admin-table th[data-sortable] {
  cursor: pointer;
  user-select: none;
}

.admin-table th[data-sortable]:hover {
  color: var(--hot-text-100, #FFFFFF);
}

.admin-table th .sort-arrow {
  display: inline-block;
  margin-left: 4px;
  opacity: 0.4;
}

.admin-table th.sort-active .sort-arrow {
  opacity: 1;
  color: var(--hot-primary-500, #558632);
}

.admin-table tbody tr {
  border-bottom: 1px solid var(--hot-border-700, #2A2A2A);
  cursor: pointer;
  transition: background 0.12s ease;
}

.admin-table tbody tr:last-child {
  border-bottom: none;
}

.admin-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.035);
}

.admin-table td {
  padding: 13px 16px;
  color: var(--hot-text-200, #E7ECE9);
  vertical-align: middle;
}

.admin-table td.admin-td-strong {
  color: var(--hot-text-100, #FFFFFF);
  font-weight: 700;
}

.admin-table td.admin-td-money {
  font-weight: 700;
  color: var(--hot-text-100, #FFFFFF);
}

.admin-table td.admin-td-muted {
  color: var(--hot-text-300, #A7B0AB);
  font-size: 0.78rem;
}

.admin-customer-cell {
  display: flex;
  flex-direction: column;
}

.admin-customer-cell .customer-name {
  font-weight: 600;
  color: #FFFFFF;
}

.admin-customer-cell .customer-sub {
  font-size: 0.74rem;
  color: var(--hot-text-300, #A7B0AB);
}

.admin-pack-label {
  font-weight: 600;
  color: var(--hot-text-100, #FFFFFF);
}

.admin-fulfillment-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 700;
}

.admin-fulfillment-tag.delivery {
  background: rgba(79, 163, 230, 0.15);
  color: #4FA3E6;
  border: 1px solid rgba(79, 163, 230, 0.3);
}

.admin-fulfillment-tag.pickup {
  background: rgba(155, 219, 110, 0.15);
  color: #9BDB6E;
  border: 1px solid rgba(155, 219, 110, 0.3);
}

.order-status-pill {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  width: fit-content;
  max-width: max-content;
  padding: 3px 10px;
  border-radius: 9999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
}

.order-status-pill[data-status="placed"],
.order-status-pill[data-status="confirmed"] {
  background: rgba(85, 134, 50, 0.16);
  color: #7fb356;
  border: 1px solid rgba(85, 134, 50, 0.35);
}

.order-status-pill[data-status="preparing"] {
  background: rgba(79, 163, 230, 0.16);
  color: #4FA3E6;
  border: 1px solid rgba(79, 163, 230, 0.35);
}

.order-status-pill[data-status="ready_or_out_for_delivery"] {
  background: rgba(155, 219, 110, 0.16);
  color: #9BDB6E;
  border: 1px solid rgba(155, 219, 110, 0.35);
}

.order-status-pill[data-status="completed"] {
  background: rgba(85, 134, 50, 0.2);
  color: #8FD854;
  border: 1px solid rgba(85, 134, 50, 0.4);
}

.order-status-pill[data-status="cancelled"] {
  background: rgba(239, 91, 91, 0.16);
  /* #EF5B5B was 4.08:1 against this translucent-red-over-dark background —
     under 4.5:1. Lightened for this pill's text only. */
  color: #FF8A8A;
  border: 1px solid rgba(239, 91, 91, 0.35);
}

/* 1-Click Rush-Hour Quick Actions in rows */
.admin-quick-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.btn-fast-status {
  padding: 5px 10px;
  border-radius: 6px;
  border: 1px solid rgba(85, 134, 50, 0.4);
  background: rgba(85, 134, 50, 0.18);
  color: #9BDB6E;
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
}

.btn-fast-status:hover {
  background: var(--hot-primary-500, #558632);
  color: #FFFFFF;
  box-shadow: none;
}

.btn-fast-icon {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 1px solid var(--hot-border-600, #383838);
  background: rgba(255, 255, 255, 0.04);
  color: var(--hot-text-200, #E7ECE9);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  text-decoration: none;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
}

.btn-fast-icon:hover {
  border-color: #FFFFFF;
  color: #FFFFFF;
  background: rgba(255, 255, 255, 0.1);
}

.btn-fast-icon.btn-fast-whatsapp:hover {
  border-color: #25D366;
  color: #25D366;
  background: rgba(37, 211, 102, 0.12);
}

.admin-tier-badge {
  display: inline-block;
  padding: 3px 9px;
  border-radius: 9999px;
  background: rgba(85, 134, 50, 0.15);
  border: 1px solid rgba(85, 134, 50, 0.3);
  color: var(--hot-primary-300, #9BDB6E);
  font-size: 0.7rem;
  font-weight: 700;
}

/* --- Admin Table Pagination (Prev / Next) --- */
.admin-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  background: var(--hot-surface-700, #181818);
  border-top: 1px solid var(--hot-border-700, #2A2A2A);
  color: var(--hot-text-300, #A7B0AB);
  font-size: 0.84rem;
  font-weight: 500;
  border-radius: 0 0 12px 12px;
  width: 100%;
  box-sizing: border-box;
  position: sticky;
  left: 0;
}

.admin-pagination-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #242424;
  border: 1px solid #333333;
  border-radius: 8px;
  color: #FFFFFF;
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 8px 18px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  user-select: none;
  box-sizing: border-box;
}

.admin-pagination-btn:hover:not(:disabled) {
  background: #558632;
  border-color: #558632;
  color: #FFFFFF;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.admin-pagination-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  background: #181818;
  border-color: #262626;
  color: #666666;
  transform: none;
}

/* --- 8. Kitchen Display System (KDS) & Chef Batch Calculator --- */
.admin-batch-calculator {
  background: var(--hot-surface-700, #1E1E1E);
  border: 1px solid var(--hot-border-700, #2A2A2A);
  border-radius: 12px;
  padding: 18px 22px;
  margin-bottom: 24px;
}

.batch-calc-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.batch-title-cluster {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--hot-primary-400, #7fb356);
}

.batch-title-cluster h3 {
  font-size: 0.95rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0;
}

.batch-calc-tag {
  font-size: 0.74rem;
  font-weight: 800;
  background: var(--hot-primary-500, #558632);
  color: #FFFFFF;
  padding: 3px 10px;
  border-radius: 9999px;
}

.batch-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}

.batch-chip {
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--hot-border-700, #2A2A2A);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.batch-chip.protein {
  border-left: 3px solid var(--hot-primary-500, #558632);
}

.batch-chip.carb {
  border-left: 3px solid #E6AF2E;
}

.batch-chip.alert {
  border-left: 3px solid #4FA3E6;
  background: rgba(79, 163, 230, 0.06);
}

.batch-chip-title {
  font-size: 0.8rem;
  font-weight: 700;
  color: #FFFFFF;
}

.batch-chip-count {
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--hot-text-100, #FFFFFF);
}

.batch-grams {
  font-size: 0.74rem;
  color: var(--hot-text-300, #A7B0AB);
  font-weight: 500;
}

/* KDS Kanban Board */
.kds-board {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  align-items: flex-start;
}

.kds-column {
  background: var(--hot-bg-800, #181818);
  border: 1px solid var(--hot-border-700, #2A2A2A);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  min-height: 520px;
}

.kds-col-header {
  padding: 14px 16px;
  border-bottom: 1px solid var(--hot-border-700, #2A2A2A);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.kds-col-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.84rem;
  font-weight: 700;
  color: #FFFFFF;
}

.kds-col-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.status-placed .kds-col-dot { background: #E6AF2E; }
.status-confirmed .kds-col-dot { background: #7fb356; }
.status-preparing .kds-col-dot { background: #4FA3E6; }
.status-ready .kds-col-dot { background: #9BDB6E; }

.kds-col-count {
  padding: 2px 8px;
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.08);
  font-size: 0.72rem;
  font-weight: 800;
  color: #FFFFFF;
}

.kds-col-cards {
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}

.kds-empty-col {
  padding: 36px 12px;
  text-align: center;
  color: var(--hot-text-300, #A7B0AB);
  font-size: 0.78rem;
}

.kds-card {
  background: var(--hot-surface-700, #1E1E1E);
  border: 1px solid var(--hot-border-600, #383838);
  border-radius: 10px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
  transition: transform 0.15s ease, border-color 0.15s ease;
}

.kds-card:hover {
  border-color: var(--hot-primary-500, #558632);
  transform: translateY(-2px);
}

.kds-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.kds-order-num {
  font-size: 0.95rem;
  font-weight: 800;
  color: #FFFFFF;
}

.kds-customer-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8rem;
}

.kds-customer-line strong {
  color: var(--hot-text-100, #FFFFFF);
}

.kds-time {
  font-size: 0.7rem;
  color: var(--hot-text-300, #A7B0AB);
}

.kds-items-box {
  background: rgba(0, 0, 0, 0.25);
  border-radius: 6px;
  padding: 8px 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.kds-item-line {
  display: flex;
  gap: 6px;
  font-size: 0.78rem;
  line-height: 1.25;
}

.kds-qty {
  font-weight: 800;
  color: var(--hot-primary-400, #7fb356);
}

.kds-item-text {
  color: var(--hot-text-200, #E7ECE9);
}

.kds-special-instructions {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  background: rgba(214, 158, 46, 0.14);
  border: 1px solid rgba(214, 158, 46, 0.4);
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 0.76rem;
  line-height: 1.3;
  color: #E8B54C;
}
.kds-special-instructions i {
  flex-shrink: 0;
  margin-top: 2px;
}

.kds-card-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 6px;
  border-top: 1px solid var(--hot-border-700, #2A2A2A);
}

.btn-kds-advance {
  padding: 6px 12px;
  border-radius: 6px;
  border: 1px solid rgba(85, 134, 50, 0.4);
  background: var(--hot-primary-500, #558632);
  color: #FFFFFF;
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
}

.btn-kds-advance:hover {
  background: var(--hot-emerald-hover, #669E3D);
}

.btn-kds-print {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 1px solid var(--hot-border-600, #383838);
  background: transparent;
  color: var(--hot-text-200, #E7ECE9);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.btn-kds-print:hover {
  color: #FFFFFF;
  border-color: #FFFFFF;
}

/* --- 9. Thermal KOT Print Modal --- */
.admin-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2200;
  background: rgba(0, 0, 0, 0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.admin-modal-backdrop.open {
  opacity: 1;
  visibility: visible;
}

.admin-kot-box {
  background: var(--hot-bg-800, #181818);
  border: 1px solid var(--hot-border-600, #383838);
  border-radius: 14px;
  width: 100%;
  max-width: 420px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.8);
}

.kot-modal-header {
  padding: 16px 20px;
  border-bottom: 1px solid var(--hot-border-700, #2A2A2A);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.kot-modal-header h3 {
  font-size: 0.95rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0;
}

.kot-slip-container {
  padding: 20px;
  overflow-y: auto;
  background: #0d0f0e;
  display: flex;
  justify-content: center;
}

.kot-thermal-paper {
  background: #FFFFFF;
  color: #000000;
  font-family: 'Courier New', Courier, monospace;
  padding: 24px 20px;
  border-radius: 4px;
  width: 100%;
  max-width: 340px;
  font-size: 13px;
  line-height: 1.4;
  box-shadow: 0 4px 16px rgba(0,0,0,0.5);
}

.kot-header-center {
  text-align: center;
  margin-bottom: 8px;
}

.kot-brand-title {
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 0.1em;
  margin: 0 0 4px;
  color: #000000;
}

.kot-sub-tag {
  font-size: 11px;
  margin: 0;
  color: #333333;
}

.kot-divider-dashed {
  border-bottom: 1px dashed #444444;
  margin: 10px 0;
}

.kot-meta-row {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  margin-bottom: 3px;
}

.kot-fulfillment-badge {
  padding: 1px 6px;
  border-radius: 3px;
  font-weight: 800;
}

.kot-fulfillment-badge.deliv { background: #000000; color: #FFFFFF; }
.kot-fulfillment-badge.pick { background: #558632; color: #FFFFFF; }

.kot-address-box {
  background: #F0F0F0;
  padding: 6px 8px;
  border-radius: 4px;
  font-size: 11px;
  margin: 6px 0;
}

.kot-items-header {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  font-weight: 800;
  border-bottom: 1px solid #000000;
  padding-bottom: 3px;
  margin-bottom: 6px;
}

.kot-item-row {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.kot-item-desc {
  flex: 1;
  font-size: 12px;
}

.kot-item-price {
  font-weight: 700;
}

.kot-grand-total {
  font-size: 14px;
  border-top: 1px solid #000000;
  padding-top: 4px;
  margin-top: 4px;
}

.kot-footer-barcode {
  text-align: center;
  margin-top: 10px;
}

.kot-fake-barcode {
  letter-spacing: 2px;
  font-size: 14px;
  margin-bottom: 4px;
  font-weight: bold;
}

.kot-footer-barcode p {
  font-size: 10px;
  margin: 0;
  font-weight: bold;
}

.kot-modal-footer {
  padding: 14px 20px;
  border-top: 1px solid var(--hot-border-700, #2A2A2A);
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

/* --- 10. Drawer Elements & CRM Enhancements --- */
.admin-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 520px;
  max-width: 100vw;
  height: 100vh;
  max-height: 100vh;
  background: #181818;
  border-left: 1px solid #2A2A2A;
  box-shadow: -12px 0 40px rgba(0, 0, 0, 0.75);
  display: flex;
  flex-direction: column;
  z-index: 10001;
  transform: translateX(100%);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  font-family: inherit;
  color: #E7ECE9;
  overflow: hidden;
  overscroll-behavior: contain;
  pointer-events: auto;
}

.admin-drawer-backdrop.open .admin-drawer {
  transform: translateX(0);
}

@media (max-width: 640px) {
  .admin-drawer {
    width: 100vw;
    border-left: none;
  }
}

.admin-drawer-header {
  padding: 18px 24px;
  border-bottom: 1px solid #2A2A2A;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #141414;
  flex: 0 0 auto;
}

.admin-drawer-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0;
  letter-spacing: -0.02em;
}

.admin-drawer-close {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: #242424;
  border: 1px solid #333333;
  color: #A7B0AB;
  font-size: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.admin-drawer-close:hover {
  background: #333333;
  color: #FFFFFF;
  border-color: #558632;
}

.admin-drawer-body {
  padding: 24px;
  overflow-y: auto !important;
  overflow-x: hidden;
  flex: 1 1 0%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: #383838 transparent;
}

.admin-drawer-body::-webkit-scrollbar {
  width: 6px;
}

.admin-drawer-body::-webkit-scrollbar-thumb {
  background: #383838;
  border-radius: 4px;
}

.admin-drawer-footer {
  padding: 16px 24px;
  border-top: 1px solid #2A2A2A;
  background: #141414;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 12px;
}

.admin-drawer-section {
  background: #1E1E1E;
  border: 1px solid #2A2A2A;
  border-radius: 12px;
  padding: 18px 20px;
}

.admin-drawer-section h3 {
  font-size: 0.95rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 14px 0;
  letter-spacing: -0.01em;
}

.drawer-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}

.drawer-section-header h3 {
  margin: 0;
}

.admin-drawer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 0.86rem;
  color: #E7ECE9;
  gap: 12px;
}

.admin-drawer-row:last-child {
  border-bottom: none;
}

.admin-drawer-row > span:first-child {
  color: #A7B0AB;
  font-weight: 500;
}

.admin-drawer-row strong {
  color: #FFFFFF;
  font-weight: 700;
}

/* Customer-supplied special instructions (order.special_instructions) —
   deliberately styled apart from the neutral .admin-drawer-row list and the
   internal Staff Note above it, so kitchen/front-of-house staff can't miss a
   customer's own note (allergies, delivery/prep asks) while scanning an order. */
.admin-special-instructions-box {
  margin-top: 10px;
  padding: 10px 12px;
  background: rgba(214, 158, 46, 0.12);
  border: 1px solid rgba(214, 158, 46, 0.4);
  border-radius: 10px;
}
.admin-special-instructions-box strong {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #E8B54C;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.admin-special-instructions-box p {
  margin: 6px 0 0;
  color: #E7ECE9;
  font-size: 0.86rem;
  line-height: 1.4;
  white-space: pre-wrap;
}

/* Status badges — used by Coupons, Menu Availability, Subscriptions, and
   Payment Reconciliation tabs (admin.html) to show active/paused-style state. */
.admin-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.admin-badge-active {
  background: rgba(85, 134, 50, 0.18);
  color: #9BDB6E;
  border: 1px solid rgba(85, 134, 50, 0.4);
}
.admin-badge-paused {
  background: rgba(239, 91, 91, 0.14);
  color: #EF5B5B;
  border: 1px solid rgba(239, 91, 91, 0.35);
}

/* Menu Availability tab (admin.html #page-menu) */
.admin-menu-item-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.admin-menu-item-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
  flex-wrap: wrap;
}
.admin-menu-item-info {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 180px;
  color: #E7ECE9;
}

.admin-drawer-row code {
  background: #121212;
  padding: 2px 8px;
  border-radius: 6px;
  border: 1px solid #333333;
  color: #9BDB6E;
  font-family: monospace;
  font-size: 0.82rem;
}

.admin-fulfillment-tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 6px;
  font-size: 0.76rem;
  font-weight: 700;
}

.admin-fulfillment-tag.pickup {
  background: rgba(85, 134, 50, 0.18);
  color: #8cb66f;
  border: 1px solid rgba(85, 134, 50, 0.35);
}

.admin-fulfillment-tag.delivery {
  background: rgba(60, 130, 246, 0.18);
  color: #60a5fa;
  border: 1px solid rgba(60, 130, 246, 0.35);
}

.admin-timeline {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
  padding-left: 20px;
  border-left: 2px solid #2A2A2A;
  margin: 10px 0 0 6px;
}

.admin-timeline-item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.admin-timeline-dot {
  position: absolute;
  left: -27px;
  top: 4px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #558632;
  border: 2px solid #181818;
}

.admin-timeline-label {
  font-size: 0.88rem;
  font-weight: 700;
  color: #FFFFFF;
}

.admin-timeline-meta {
  font-size: 0.78rem;
  color: #8a968f;
  line-height: 1.4;
}

.admin-coupon-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.admin-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  width: 100%;
}

.admin-form-row > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
}

.admin-coupon-form > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
}

.admin-checkbox-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.85rem;
  color: #E7ECE9;
  cursor: pointer;
  margin: 4px 0;
}

.admin-checkbox-row input[type="checkbox"] {
  accent-color: #558632;
  width: 16px;
  height: 16px;
}

.drawer-contact-pills {
  display: flex;
  gap: 6px;
}

.contact-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--hot-border-600, #383838);
  color: var(--hot-text-100, #FFFFFF);
  font-size: 0.75rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.contact-pill:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: #558632;
}

.contact-pill.whatsapp {
  border-color: rgba(37, 211, 102, 0.4);
  color: #25D366;
}

.contact-pill.whatsapp:hover {
  background: rgba(37, 211, 102, 0.15);
}

.admin-drawer-item-box {
  background: #151515;
  border: 1px solid var(--hot-border-700, #2A2A2A);
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 8px;
}

.drawer-item-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.86rem;
  color: var(--hot-text-100, #FFFFFF);
}

.drawer-item-actions {
  display: flex;
  gap: 10px;
  margin-top: 8px;
}

.drawer-item-edit-btn,
.drawer-item-remove-btn {
  background: none;
  border: none;
  padding: 0;
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
  color: var(--hot-primary-400, #7fb356);
}

.drawer-item-remove-btn {
  color: #EF5B5B;
}

.drawer-item-edit-btn:hover,
.drawer-item-remove-btn:hover {
  text-decoration: underline;
}

.admin-map-link {
  color: var(--hot-primary-400, #7fb356);
  font-weight: 700;
  text-decoration: none;
}

.admin-map-link:hover {
  text-decoration: underline;
}

.admin-account-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 20px;
}

.shortcuts-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.shortcut-row {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.82rem;
  color: var(--hot-text-200, #E7ECE9);
}

.shortcut-row kbd {
  padding: 2px 8px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid var(--hot-border-600, #383838);
  border-radius: 6px;
  font-family: monospace;
  font-weight: 800;
  color: var(--hot-primary-300, #9BDB6E);
  min-width: 24px;
  text-align: center;
}

/* --- 11. Print Media Rules --- */
@media print {
  body * {
    visibility: hidden;
  }
  .admin-kot-box,
  .kot-slip-container,
  .kot-thermal-paper,
  .kot-thermal-paper * {
    visibility: visible;
  }
  .admin-modal-backdrop {
    position: static;
    background: transparent;
    opacity: 1;
    visibility: visible;
  }
  .admin-kot-box {
    box-shadow: none;
    border: none;
    max-width: 100%;
    margin: 0;
    padding: 0;
  }
  .kot-modal-header,
  .kot-modal-footer,
  .no-print {
    display: none !important;
  }
  .kot-thermal-paper {
    box-shadow: none;
    max-width: 100%;
    width: 100%;
    padding: 0;
  }
}

/* --- 12. Responsive Adjustments --- */
@media (max-width: 1200px) {
  .kds-board {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .admin-shell {
    grid-template-columns: 72px 1fr;
  }

  .admin-sidebar-brand-text,
  .admin-sidebar-status,
  .admin-nav-label,
  .admin-nav-shortcut,
  .admin-shortcuts-hint {
    display: none;
  }

  .admin-sidebar-brand {
    justify-content: center;
    padding: 0 0 16px;
  }

  .admin-nav-item {
    justify-content: center;
    padding: 12px;
  }
}

/* Desktop Defaults for Admin Mobile Helpers */
.admin-mobile-menu-btn {
  display: none;
}
.admin-topbar-brand-mobile {
  display: none;
}

@media (max-width: 768px) {
  .admin-shell {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    min-height: 100vh;
    background: #121212;
    overflow-x: hidden !important;
  }

  .admin-sidebar {
    position: fixed !important;
    top: 0 !important;
    left: -290px !important;
    width: 280px !important;
    height: 100vh !important;
    background: #181818 !important;
    border-right: 1px solid #2A2A2A !important;
    z-index: 1000 !important;
    transition: left 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
    box-shadow: 10px 0 30px rgba(0, 0, 0, 0.8) !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .admin-sidebar .admin-sidebar-brand-text {
    display: flex !important;
  }

  .admin-sidebar .admin-sidebar-status {
    display: flex !important;
  }

  .admin-sidebar .admin-nav-label {
    display: inline !important;
  }

  .admin-sidebar .admin-sidebar-brand {
    justify-content: flex-start !important;
    padding: 0 0 20px !important;
  }

  .admin-sidebar .admin-nav-item {
    justify-content: flex-start !important;
    padding: 10px 14px !important;
  }

  .admin-shell.mobile-nav-open .admin-sidebar {
    left: 0 !important;
  }

  /* Backdrop for mobile drawer */
  .admin-shell.mobile-nav-open::before {
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 999;
  }

  /* Topbar */
  .admin-topbar {
    height: 60px !important;
    padding: 10px 16px !important;
    background: #121212 !important;
    border-bottom: 1px solid #222222 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 100 !important;
  }

  .admin-topbar-left {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
  }

  .admin-mobile-menu-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: none !important;
    color: #E7ECE9 !important;
    padding: 4px !important;
    cursor: pointer !important;
  }

  .admin-topbar-brand-mobile {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
  }

  .admin-mobile-logo-img {
    height: 26px !important;
    width: auto !important;
    object-fit: contain !important;
  }

  .admin-mobile-brand-text {
    display: flex !important;
    flex-direction: column !important;
    line-height: 1 !important;
  }

  .admin-mobile-brand-text strong {
    font-size: 0.95rem !important;
    font-weight: 900 !important;
    color: #FFFFFF !important;
    letter-spacing: 0.04em !important;
  }

  .admin-mobile-brand-text span {
    font-size: 0.55rem !important;
    font-weight: 700 !important;
    color: #669E3D !important;
    letter-spacing: 0.06em !important;
  }

  .admin-topbar-title {
    display: none !important;
  }

  .admin-topbar-actions {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
  }

  .admin-topbar-search,
  #btn-audio-toggle,
  #btn-manual-sync {
    display: none !important;
  }

  .dash-user-cluster {
    position: relative;
  }

  .dash-user-pill {
    background: transparent !important;
    border: none !important;
    padding: 2px 4px !important;
    gap: 8px !important;
  }

  .dash-user-avatar {
    width: 34px !important;
    height: 34px !important;
    border-radius: 50% !important;
    background: #1c2619 !important;
    border: 1px solid #3b5d23 !important;
    color: #669E3D !important;
    font-weight: 800 !important;
    font-size: 0.9rem !important;
  }

  .admin-user-meta-pill {
    display: flex !important;
    flex-direction: column !important;
    text-align: left !important;
    gap: 1px !important;
  }

  .admin-user-meta-pill span:first-child {
    font-size: 0.8rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    line-height: 1 !important;
  }

  .admin-user-role-tag {
    font-size: 0.62rem !important;
    font-weight: 700 !important;
    color: #669E3D !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    line-height: 1 !important;
  }

  .dash-user-chevron {
    width: 14px !important;
    height: 14px !important;
    color: #A7B0AB !important;
  }

  /* Admin Main Container */
  .admin-main {
    padding: 16px 16px 40px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }

  .admin-page {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* Operations Command Page Header */
  .admin-page-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 14px !important;
    margin-bottom: 16px !important;
  }

  .admin-page-title {
    font-size: 1.6rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    margin: 0 !important;
    letter-spacing: -0.01em !important;
  }

  .admin-page-sub {
    font-size: 0.82rem !important;
    color: #A7B0AB !important;
    margin: 4px 0 0 !important;
    line-height: 1.35 !important;
  }

  .admin-header-actions {
    width: 100% !important;
  }

  .admin-header-actions .admin-btn-primary {
    width: 100% !important;
    background: #558632 !important;
    color: #FFFFFF !important;
    border-radius: 8px !important;
    padding: 12px 18px !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    border: none !important;
    text-decoration: none !important;
  }

  .admin-header-actions .admin-btn-primary:hover {
    background: #669E3D !important;
  }

  /* 2x2 KPI Grid */
  .admin-kpi-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
    margin-bottom: 16px !important;
  }

  .admin-kpi-card {
    background: #181818 !important;
    border: 1px solid #2A2A2A !important;
    border-radius: 12px !important;
    padding: 14px 14px 12px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
  }

  .admin-kpi-label {
    font-size: 0.68rem !important;
    font-weight: 700 !important;
    color: #A7B0AB !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
  }

  .admin-kpi-value {
    font-size: 1.55rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    line-height: 1.1 !important;
    margin: 2px 0 !important;
  }

  .admin-kpi-sub {
    font-size: 0.74rem !important;
    color: #A7B0AB !important;
    line-height: 1.25 !important;
  }

  /* Rush Hour Banner */
  .admin-rush-banner {
    background: #151c14 !important;
    border: 1px solid rgba(85, 134, 50, 0.35) !important;
    border-radius: 12px !important;
    padding: 14px !important;
    margin-bottom: 22px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }

  .rush-badge {
    font-size: 0.74rem !important;
    font-weight: 800 !important;
    color: #669E3D !important;
    letter-spacing: 0.05em !important;
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
  }

  .rush-banner-left p {
    font-size: 0.78rem !important;
    color: #A7B0AB !important;
    margin: 4px 0 0 !important;
    line-height: 1.35 !important;
  }

  .rush-banner-stats {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .rush-stat-chip {
    background: #121212 !important;
    border: 1px solid #262626 !important;
    border-radius: 8px !important;
    padding: 8px 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    font-size: 0.74rem !important;
    font-weight: 600 !important;
    color: #E7ECE9 !important;
    box-sizing: border-box !important;
  }

  .rush-stat-chip strong {
    color: #669E3D !important;
    font-size: 0.95rem !important;
    font-weight: 800 !important;
  }

  /* Live Incoming Orders Card Header */
  .admin-chart-card {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .admin-table-wrap {
    display: block !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    border-radius: 12px !important;
    overscroll-behavior-x: contain !important;
    touch-action: pan-x pan-y !important;
  }

  .admin-table {
    min-width: 860px !important;
    width: 100% !important;
    table-layout: auto !important;
  }

  .admin-table th,
  .admin-table td {
    white-space: nowrap !important;
  }

  .admin-toolbar {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .admin-toolbar .auth-input {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .admin-pagination {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 10px !important;
    text-align: center !important;
    padding: 14px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .admin-pagination-btn {
    padding: 8px 20px !important;
    font-size: 0.84rem !important;
  }

  .admin-card-header-flex {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 12px !important;
  }

  .admin-card-header-flex h2 {
    font-size: 1.2rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    margin: 0 !important;
  }

  .admin-card-link {
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    color: #a78bfa !important;
    text-decoration: underline !important;
  }

  /* Table-to-Card transformation for Dashboard Stream & Orders Table */
  #dash-recent-orders-table,
  #orders-table {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0 8px !important;
    box-sizing: border-box !important;
  }

  #dash-recent-orders-table thead,
  #orders-table thead {
    display: none !important;
  }

  #dash-recent-orders-table tbody,
  #orders-table tbody {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    width: 100% !important;
  }

  #dash-recent-orders-table tr,
  #orders-table tr {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: #181818 !important;
    border: 1px solid #2A2A2A !important;
    border-radius: 10px !important;
    padding: 12px 14px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    position: relative !important;
    cursor: pointer !important;
    gap: 8px !important;
    transition: background 0.15s ease, border-color 0.15s ease !important;
  }

  #dash-recent-orders-table tr:hover,
  #orders-table tr:hover {
    background: #1e1e1e !important;
    border-color: #383838 !important;
  }

  #dash-recent-orders-table tr::after,
  #orders-table tr::after {
    content: '›';
    font-size: 1.15rem;
    color: #777777;
    font-weight: 600;
    margin-left: 2px;
    flex-shrink: 0;
  }

  #dash-recent-orders-table td,
  #orders-table td {
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
  }

  #dash-recent-orders-table td.admin-td-strong,
  #orders-table td.admin-td-strong {
    font-size: 0.82rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    flex-shrink: 0 !important;
    min-width: 38px !important;
  }

  #dash-recent-orders-table td:nth-child(2),
  #orders-table td:nth-child(2) {
    flex: 1.2 !important;
    min-width: 0 !important;
  }

  #dash-recent-orders-table td:nth-child(2) .admin-customer-cell,
  #orders-table td:nth-child(2) .admin-customer-cell {
    display: flex !important;
    flex-direction: column !important;
    gap: 1px !important;
  }

  #dash-recent-orders-table .customer-name,
  #orders-table .customer-name {
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    color: #FFFFFF !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #dash-recent-orders-table .customer-sub,
  #orders-table .customer-sub {
    font-size: 0.72rem !important;
    color: #A7B0AB !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #dash-recent-orders-table td:nth-child(3),
  #orders-table td:nth-child(3) {
    flex: 1.1 !important;
    min-width: 0 !important;
  }

  #dash-recent-orders-table .admin-pack-label,
  #orders-table .admin-pack-label {
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    color: #E7ECE9 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  #dash-recent-orders-table td.admin-td-money,
  #orders-table td.admin-td-money {
    font-size: 0.84rem !important;
    font-weight: 700 !important;
    color: #FFFFFF !important;
    flex-shrink: 0 !important;
    margin-right: 2px !important;
  }

  #dash-recent-orders-table td:nth-child(5),
  #dash-recent-orders-table td:nth-child(7),
  #dash-recent-orders-table td:nth-child(8),
  #orders-table td:nth-child(5),
  #orders-table td:nth-child(7),
  #orders-table td:nth-child(8) {
    display: none !important;
  }

  #dash-recent-orders-table td:nth-child(6),
  #orders-table td:nth-child(6) {
    flex-shrink: 0 !important;
  }

  #dash-recent-orders-table .order-status-pill,
  #orders-table .order-status-pill {
    font-size: 0.65rem !important;
    padding: 4px 8px !important;
    border-radius: 6px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.02em !important;
  }

  .admin-batch-calculator {
    padding: 14px !important;
    margin-bottom: 16px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .batch-grid {
    display: flex !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    gap: 10px !important;
    padding-bottom: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overscroll-behavior-x: contain !important;
    touch-action: pan-x pan-y !important;
  }

  .batch-chip {
    flex: 0 0 220px !important;
    min-width: 220px !important;
  }

  .kds-board {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    gap: 14px !important;
    padding-bottom: 16px !important;
    scroll-snap-type: x mandatory;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overscroll-behavior-x: contain !important;
    touch-action: pan-x pan-y !important;
  }

  .kds-column {
    flex: 0 0 280px !important;
    width: 280px !important;
    min-width: 280px !important;
    max-width: 280px !important;
    scroll-snap-align: start;
    box-sizing: border-box !important;
  }

  .admin-table-wrap::-webkit-scrollbar,
  .kds-board::-webkit-scrollbar,
  .batch-grid::-webkit-scrollbar {
    height: 6px;
  }
  .admin-table-wrap::-webkit-scrollbar-track,
  .kds-board::-webkit-scrollbar-track,
  .batch-grid::-webkit-scrollbar-track {
    background: #181818;
    border-radius: 4px;
  }
  .admin-table-wrap::-webkit-scrollbar-thumb,
  .kds-board::-webkit-scrollbar-thumb,
  .batch-grid::-webkit-scrollbar-thumb {
    background: #333333;
    border-radius: 4px;
  }
}


/* --- Referral QR + Live Referrals List (rewards.html) --- */
.referral-qr-wrap[hidden] {
  display: none;
}

.referral-qr-wrap {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 18px;
}

.referral-qr-wrap canvas {
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: #FFFFFF;
  padding: 6px;
}

.referral-qr-caption {
  max-width: 160px;
  font-size: 0.76rem;
  color: var(--text-secondary, #A7B0AB);
  opacity: 0.8;
  line-height: 1.4;
}

.your-referrals-wrap {
  margin-top: 28px;
}

.your-referrals-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
}

.your-referral-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 10px 14px;
  font-size: 0.85rem;
  color: #FFFFFF;
}

.your-referral-status {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 9999px;
}

.your-referral-status.pending {
  color: #F2B84B;
  background: rgba(242, 184, 75, 0.12);
}

.your-referral-status.completed {
  color: #558632;
  background: rgba(85, 134, 50, 0.14);
}

/* --- Main Hero Stage (Starts cleanly below Navbar) --- */
.hero-canvas {
  position: relative;
  width: 100vw;
  height: calc(100vh - var(--nav-height, 80px));
  margin-top: var(--nav-height, 80px);
  overflow: hidden;
  z-index: 5;
}

/* 4K Food Visual Layer */
.hero-visual-container {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.hero-4k-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
  display: block;
  filter: contrast(1.03) brightness(1.02);
  transition: transform 8s cubic-bezier(0.25, 1, 0.5, 1);
}

.hero-visual-container:hover .hero-4k-img {
  transform: scale(1.015);
}

.hero-visual-vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, #121212 0%, #121212 32%, rgba(5, 5, 5, 0.85) 44%, transparent 64%);
}

/* Far-Left Step Rail '01' */
.hero-left-rail {
  position: absolute;
  left: 3.2vw;
  top: 17.5vh;
  bottom: 22vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 15;
  pointer-events: none;
}

.rail-num {
  font-size: 0.86rem;
  font-weight: 700;
  color: #558632;
  letter-spacing: 0.06em;
  margin-bottom: 14px;
}

.rail-dots {
  width: 2px;
  flex: 1;
  background: repeating-linear-gradient(to bottom, #558632 0, #558632 2.5px, transparent 2.5px, transparent 8px);
  opacity: 0.55;
}

/* Hero Typography Content */
.hero-headline-wrap {
  position: absolute;
  left: 4.2vw;
  top: clamp(24px, 5vh, 48px);
  z-index: 20;
  max-width: 54vw;
}

.hero-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(4.4rem, 7.8vw, 8.6rem);
  line-height: 0.88;
  font-weight: 400;
  letter-spacing: 0.015em;
  color: #FFFFFF;
  text-transform: uppercase;
  margin: 0 0 1.35rem 0;
  text-shadow: 0 4px 28px rgba(0, 0, 0, 0.7);
}

.title-line {
  display: block;
}

.hero-green-dot {
  display: inline-block;
  width: clamp(14px, 1.2vw, 20px);
  height: clamp(14px, 1.2vw, 20px);
  background: #558632;
  border-radius: 50%;
  outline: 1.5px solid #558632; outline-offset: 1px;
  margin-left: clamp(4px, 0.5vw, 10px);
  margin-bottom: clamp(6px, 0.7vw, 12px);
  vertical-align: bottom;
}

.hero-tagline {
  font-size: clamp(1rem, 1.35vw, 1.25rem);
  color: #E7ECE9;
  font-weight: 400;
  line-height: 1.4;
  margin: 0 0 2.4rem 0;
  letter-spacing: -0.01em;
}

/* Primary CTA Button (Glowing Emerald) */
.hero-cta-box {
  display: flex;
  align-items: center;
}

.hero-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 16px 42px;
  border-radius: 9999px;
  background: #558632;
  color: #FFFFFF;
  text-decoration: none;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32), 0 1px 2px rgba(0, 0, 0, 0.2);
  transition: color 0.28s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.28s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1), transform 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
}

.hero-btn-primary .btn-arrow {
  width: 18px;
  height: 18px;
  transition: transform 0.25s ease;
}

.hero-btn-primary:hover {
  background: #669E3D;
  color: #FFFFFF;
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.7);
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.25);
}

.hero-btn-primary:hover .btn-arrow {
  transform: translateX(4px);
}

/* Scroll Cue Indicator */
.hero-scroll-cue {
  position: absolute;
  left: 4.2vw;
  bottom: 4vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  z-index: 20;
  user-select: none;
}

.scroll-mouse {
  width: 19px;
  height: 30px;
  border: 1.8px solid rgba(255, 255, 255, 0.35);
  border-radius: 9999px;
  display: flex;
  justify-content: center;
  padding-top: 5px;
}

.scroll-wheel {
  width: 3px;
  height: 6px;
  background: #558632;
  border-radius: 9999px;
  animation: scrollWheelBounce 1.8s infinite cubic-bezier(0.65, 0, 0.35, 1);
  box-shadow: none;
}

@keyframes scrollWheelBounce {
  0% {
    opacity: 1;
    transform: translateY(0);
  }

  60% {
    opacity: 0.2;
    transform: translateY(9px);
  }

  100% {
    opacity: 0;
    transform: translateY(12px);
  }
}

.scroll-label {
  font-size: 0.58rem;
  letter-spacing: 0.2em;
  font-weight: 700;
  color: #A7B0AB;
}

/* Bottom Feature Badges Bar */
.hero-bottom-badges {
  position: absolute;
  left: 8vw;
  bottom: 3.8vh;
  display: flex;
  align-items: center;
  gap: 2.2vw;
  z-index: 20;
  background: transparent;
  border: none;
  padding: 0;
}

.feature-badge {
  display: flex;
  align-items: center;
  gap: 11px;
}

.badge-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.12);
  border: 1px solid rgba(85, 134, 50, 0.32);
  color: #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.badge-icon svg {
  width: 14px;
  height: 14px;
}

.badge-info {
  display: flex;
  flex-direction: column;
}

.badge-sub {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #8A92A0;
}

.badge-val {
  font-size: 0.88rem;
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: 0.02em;
}

.badge-rule {
  width: 1px;
  height: 24px;
  background: rgba(255, 255, 255, 0.1);
}

/* Bottom Right Controls */
.hero-bottom-controls {
  position: absolute;
  right: 4.2vw;
  bottom: 3.6vh;
  display: flex;
  align-items: center;
  gap: 24px;
  z-index: 25;
}

.slide-pagination {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  cursor: pointer;
  user-select: none;
}

.slide-cur {
  color: #FFFFFF;
  font-variant-numeric: tabular-nums;
}

.slide-dash {
  width: 34px;
  height: 1.5px;
  background: rgba(255, 255, 255, 0.4);
  position: relative;
  overflow: hidden;
}

.slide-dash::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #558632;
  transform: translateX(-100%);
  transition: transform 0.4s ease;
}

.slide-pagination:hover .slide-dash::after {
  transform: translateX(0);
}

.slide-tot {
  color: #A7B0AB;
  font-variant-numeric: tabular-nums;
}

.btn-sound-toggle {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(18, 20, 19, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  position: relative;
}

.btn-sound-toggle .sound-icon {
  width: 18px;
  height: 18px;
  transition: transform 0.2s ease;
}

.btn-sound-toggle:hover {
  border-color: #558632;
  background: rgba(85, 134, 50, 0.16);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
  transform: scale(1.06);
}

.sound-status-dot {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #558632;
  opacity: 0;
  transition: opacity 0.2s;
}

.btn-sound-toggle.playing .sound-status-dot {
  opacity: 1;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.btn-sound-toggle.playing .sound-wave {
  animation: soundPulse 1.2s infinite ease-in-out alternate;
}

.btn-sound-toggle.playing .wave-2 {
  animation-delay: 0.2s;
}

@keyframes soundPulse {
  0% {
    opacity: 0.3;
  }

  100% {
    opacity: 1;
  }
}

/* --- Interactive Drawer / Modal for Meal Customizer & Quick Order --- */
body.drawer-open {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

.hero-drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  z-index: 10000;
  display: flex;
  justify-content: flex-end;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  overscroll-behavior: contain;
}

.hero-drawer-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

.hero-drawer {
  width: 100%;
  max-width: 480px;
  height: 100%;
  max-height: 100vh;
  background: #181818;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
  padding: 32px 28px 24px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: -15px 0 45px rgba(0, 0, 0, 0.85);
  box-sizing: border-box;
  overflow: hidden;
  overscroll-behavior: contain;
}

.hero-drawer-backdrop.open .hero-drawer {
  transform: translateX(0);
}

.drawer-header {
  position: relative;
  flex-shrink: 0;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.drawer-tag {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #558632;
  margin-bottom: 6px;
}

.drawer-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 2.4rem;
  letter-spacing: 0.02em;
  color: #FFFFFF;
  margin: 0 0 8px 0;
  line-height: 1;
}

.drawer-desc {
  font-size: 0.86rem;
  color: #E7ECE9;
  line-height: 1.45;
  margin: 0;
}

.drawer-close {
  position: absolute;
  top: 0;
  right: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #FFFFFF;
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s, opacity 0.2s, transform 0.2s;
}

.drawer-close:hover {
  background: rgba(255, 255, 255, 0.15);
}

.drawer-body {
  margin: 16px 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  padding-right: 6px;
}

/* Custom sleek scrollbar for drawer body */
.drawer-body::-webkit-scrollbar {
  width: 6px;
}

.drawer-body::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 3px;
}

.drawer-body::-webkit-scrollbar-thumb {
  background: rgba(85, 134, 50, 0.4);
  border-radius: 3px;
}

.drawer-body::-webkit-scrollbar-thumb:hover {
  background: rgba(85, 134, 50, 0.7);
}

.step-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: #E7ECE9;
  margin-bottom: 10px;
}

.option-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.option-pill {
  width: 100%;
  text-align: left;
  padding: 10px 14px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #E7ECE9;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
}

.option-pill:hover {
  border-color: rgba(85, 134, 50, 0.4);
  color: #FFFFFF;
}

.option-pill.active {
  background: rgba(85, 134, 50, 0.12);
  border-color: #558632;
  color: #FFFFFF;
}

/* Sold-out proteins/carbs/seasonings — server/routes/menu.js availability,
   staff-controlled via the admin Menu Availability tab (see app.js's
   getHotMenuAvailability()). Disabled and struck through rather than hidden,
   so the option is still visible as "not today" instead of vanishing. */
.option-pill-sold-out,
.option-pill:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  text-decoration: line-through;
  pointer-events: none;
}

.pill-price-tag {
  font-size: 0.76rem;
  font-weight: 700;
  color: #558632;
  background: rgba(85, 134, 50, 0.12);
  padding: 3px 8px;
  border-radius: 6px;
  border: 1px solid rgba(85, 134, 50, 0.25);
  letter-spacing: 0.02em;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  margin-left: auto;
}

.option-pill.active .pill-price-tag {
  color: #a8ff53;
  background: rgba(85, 134, 50, 0.25);
  border-color: #558632;
}

.drawer-summary {
  margin-top: 16px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  flex-shrink: 0;
}

.summary-line {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 16px;
}

.summary-line span {
  font-size: 0.68rem;
  color: #A7B0AB;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.summary-line strong {
  font-size: 0.92rem;
  color: #FFFFFF;
}

.summary-price {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.price-val {
  font-size: 1.4rem;
  font-weight: 800;
  color: #558632;
}

.drawer-submit-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 22px;
  border-radius: 9999px;
  background: #558632;
  color: #121212;
  font-weight: 700;
  font-size: 0.88rem;
  text-decoration: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
}

.drawer-submit-btn:hover {
  background: #669E3D;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
}

@media (max-width: 768px) {
  .hero-drawer {
    width: 100%;
    max-width: 100%;
    height: 100%;
    height: 100dvh;
    max-height: 100dvh;
    padding: 20px 16px calc(24px + env(safe-area-inset-bottom, 0px));
    border-left: none;
    border-radius: 0;
  }

  .drawer-header {
    flex-shrink: 0;
    padding-bottom: 12px;
  }

  .drawer-title {
    font-size: 1.9rem;
  }

  .drawer-body {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    overscroll-behavior: contain;
    padding-right: 4px;
    padding-bottom: 32px;
  }
}

/* ==========================================================================
   HEALTH ON TOP — LUXURY PAYMENT INTERFACE MODAL
   Ready for Live Payment Gateway Connection (Stripe / Square API)
   ========================================================================== */
.hot-payment-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.86);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  z-index: 100020;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  padding: 20px;
  box-sizing: border-box;
}

.hot-payment-modal-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

.hot-payment-modal {
  position: relative;
  width: 100%;
  max-width: 520px;
  max-height: 92vh;
  background: #181818;
  border: 1px solid rgba(85, 134, 50, 0.35);
  border-radius: 22px;
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.85);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: scale(0.95) translateY(12px);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
}

.hot-payment-modal-backdrop.open .hot-payment-modal {
  transform: scale(1) translateY(0);
}

.pm-header {
  position: relative;
  padding: 24px 28px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
}

.pm-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.pm-badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #558632;
}

.pm-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 1.8rem;
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: 0.02em;
  margin: 0 0 4px;
}

.pm-sub {
  font-size: 0.82rem;
  color: #A7B0AB;
  margin: 0;
  line-height: 1.4;
}

.pm-close-btn {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #FFFFFF;
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s, opacity 0.2s, transform 0.2s;
}

.pm-close-btn:hover {
  background: rgba(255, 255, 255, 0.16);
  transform: rotate(90deg);
}

.pm-body {
  padding: 22px 28px;
  overflow-y: auto;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
  box-sizing: border-box;
}

.pm-body::-webkit-scrollbar {
  width: 5px;
}

.pm-body::-webkit-scrollbar-thumb {
  background: rgba(85, 134, 50, 0.4);
  border-radius: 3px;
}

/* Order Summary Card */
.pm-order-summary {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 14px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.pm-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.82rem;
  color: #C0C8C3;
}

.pm-summary-row.pm-item-name {
  font-weight: 700;
  color: #FFFFFF;
  font-size: 0.88rem;
  padding-bottom: 6px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
}

.pm-summary-row.pm-total-row {
  font-size: 1.05rem;
  font-weight: 800;
  color: #FFFFFF;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.pm-summary-row.pm-total-row .pm-total-val {
  color: #558632;
  font-size: 1.25rem;
}

/* Payment Methods Tabs */
.pm-method-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}

.pm-tab-btn {
  padding: 10px 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  color: #A7B0AB;
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
  transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s, opacity 0.2s, transform 0.2s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
  font-family: inherit;
}

.pm-tab-btn.active {
  background: rgba(85, 134, 50, 0.16);
  border-color: #558632;
  color: #FFFFFF;
}

/* Form Inputs */
.pm-form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.pm-label {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #A7B0AB;
  text-transform: uppercase;
}

.pm-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.pm-input {
  width: 100%;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  color: #FFFFFF;
  font-size: 0.88rem;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.2s ease, background 0.2s ease;
  font-family: inherit;
}

.pm-input:focus {
  border-color: #558632;
  background: rgba(85, 134, 50, 0.06);
}

.pm-form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

/* Special instructions — collapsed by default behind a text-button toggle so
   the payment form doesn't grow for the common case of no note. */
.pm-special-instructions-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: none;
  border: none;
  padding: 2px 0;
  color: #558632;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}

.pm-special-instructions-toggle:hover {
  color: #6FA646;
  text-decoration: underline;
}

textarea.pm-input {
  resize: vertical;
  min-height: 70px;
  font-family: inherit;
  line-height: 1.4;
}

.pm-char-count {
  font-size: 0.68rem;
  color: #A7B0AB;
  text-align: right;
}

.pm-card-badges {
  position: absolute;
  right: 12px;
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.65rem;
  font-weight: 800;
  color: #7A847F;
  letter-spacing: 0.05em;
  pointer-events: none;
}

/* Stripe Payment Element — hosted card form container inside the payment modal */
.pm-stripe-status {
  font-size: 0.75rem;
  color: #A7B0AB;
  text-align: center;
  padding: 24px 0;
}

#stripe-payment-element {
  min-height: 0;
}

#stripe-payment-element:not(:empty) {
  min-height: 220px;
}

/* Gateway Ready Callout */
.pm-gateway-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  background: rgba(85, 134, 50, 0.09);
  border: 1px solid rgba(85, 134, 50, 0.26);
  border-radius: 10px;
  font-size: 0.75rem;
  color: #E7ECE9;
  line-height: 1.4;
}

.pm-gateway-icon {
  color: #558632;
  font-size: 1.1rem;
  flex-shrink: 0;
}

.pm-footer {
  padding: 18px 28px 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex-shrink: 0;
}

.pm-submit-btn {
  width: 100%;
  padding: 14px 24px;
  border-radius: 9999px;
  background: #558632;
  color: #121212;
  font-weight: 800;
  font-size: 0.95rem;
  border: none;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
  font-family: inherit;
}

.pm-submit-btn:hover {
  background: #669E3D;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
}

.pm-secure-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.7rem;
  color: #7A847F;
  text-align: center;
}

/* Success State Screen inside Payment Modal */
.pm-success-screen {
  padding: 40px 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.pm-success-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.16);
  border: 2px solid #558632;
  color: #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
}

.pm-success-title {
  font-size: 1.6rem;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0;
}

.pm-success-desc {
  font-size: 0.88rem;
  color: #C0C8C3;
  line-height: 1.5;
  max-width: 360px;
  margin: 0;
}

/* Toast System */
.hero-toast-container {
  position: fixed;
  top: 20px; /* top, not bottom: at the bottom it covered the builder's last options */
  left: 50%;
  transform: translateX(-50%);
  z-index: 300;
  pointer-events: none;
}

.hero-toast {
  background: #181818;
  border: 1px solid #558632;
  color: #FFFFFF;
  padding: 10px 22px;
  border-radius: 9999px;
  font-size: 0.84rem;
  font-weight: 600;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.9);
  display: flex;
  align-items: center;
  gap: 8px;
  animation: toastFade 3s forwards;
}

@keyframes toastFade {
  0% {
    opacity: 0;
    transform: translateY(12px);
  }

  10% {
    opacity: 1;
    transform: translateY(0);
  }

  85% {
    opacity: 1;
    transform: translateY(0);
  }

  100% {
    opacity: 0;
    transform: translateY(-10px);
  }
}

/* --- Responsive Adjustments --- */
@media (max-width: 1200px) {
  .hero-headline-wrap {
    max-width: 55vw;
  }

  .hero-bottom-badges {
    padding: 9px 18px;
    gap: 1.4vw;
  }
}

@media (max-width: 900px) {
  body.hero-page {
    height: auto;
    min-height: 100vh;
    min-height: 100dvh;
  }

  .hero-navbar {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding: 0 clamp(1rem, 4vw, 1.75rem);
    height: var(--nav-height, 74px);
  }

  .hot-hamburger-btn {
    display: flex;
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
  }

  .nav-brand {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
  }

  .nav-brand-logo {
    height: clamp(44px, 8.5vw, 54px);
    width: clamp(44px, 8.5vw, 54px);
  }

  .nav-center-menu,
  .nav-left-menu,
  .hero-navbar .nav-btn-quick-order,
  .nav-btn-quick-order,
  .nav-btn-get-started {
    display: none !important;
  }

  .nav-right-actions {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    display: flex;
    align-items: center;
    gap: clamp(0.75rem, 3.5vw, 1.35rem);
  }

  .nav-account-cluster {
    display: flex;
    align-items: center;
    gap: clamp(0.75rem, 3.5vw, 1.35rem);
  }

  .nav-account-text {
    display: none !important;
  }

  .nav-account-icon {
    display: block !important;
    width: 23px;
    height: 23px;
    color: #FFFFFF;
  }

  .nav-account-link {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
    min-height: auto;
    color: #FFFFFF;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1;
  }

  .nav-account-link:hover {
    background: transparent !important;
    border: none !important;
    color: #FFFFFF !important;
    transform: scale(1.05);
  }

  .nav-cart-btn {
    background: transparent !important;
    border: none !important;
    width: 24px !important;
    height: 24px !important;
    min-width: unset !important;
    padding: 0 !important;
    color: #FFFFFF !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
  }

  .nav-cart-btn:hover {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    transform: scale(1.05);
  }

  .nav-cart-icon {
    width: 22px !important;
    height: 22px !important;
  }

  .hero-canvas {
    height: auto;
    min-height: 100vh;
    min-height: 100dvh;
    padding-bottom: 120px;
  }

  .hero-visual-vignette {
    background: linear-gradient(180deg, rgba(5, 5, 5, 0.4) 0%, rgba(5, 5, 5, 0.95) 70%, #121212 100%);
  }

  .hero-headline-wrap {
    position: relative;
    left: auto;
    top: auto;
    margin-top: 100px;
    padding: 0 6vw;
    max-width: 100%;
  }

  .hero-left-rail {
    display: none;
  }

  .hero-bottom-badges {
    position: relative;
    left: auto;
    bottom: auto;
    margin: 30px 6vw 20px;
    flex-wrap: wrap;
    gap: 12px;
  }

  .hero-bottom-controls {
    position: relative;
    right: auto;
    bottom: auto;
    margin: 20px 6vw 40px;
  }
}

@media (max-width: 600px) {
  .nav-btn-get-started {
    padding: 7px 14px;
    font-size: 0.8rem;
  }

  .nav-account-link {
    padding: 0;
  }

  .nav-right-actions {
    gap: 0.85rem;
  }
}

/* ==========================================================================
   HEALTH ON TOP ("HOT") — 1:1 REPLICA: "YOUR WEEK. READY." SECTION
   Aesthetics: 4K Cinematic Food Visual Backdrop, Brand Display Headline,
   Emerald Glow Action Buttons, Micro-Feature Pillars & Continuous Rotating Stamp
   Strictly Scoped: No Impact on Hero Page or Contact Canvas
   ========================================================================== */

.week-ready-section,
.week-ready-hero {
  position: relative;
  width: 100vw;
  height: calc(100vh - var(--nav-height, 80px));
  min-height: calc(100vh - var(--nav-height, 80px));
  max-height: calc(100vh - var(--nav-height, 80px));
  margin-top: var(--nav-height, 80px);
  overflow: hidden;
  background-color: #121212;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  z-index: 6;
  box-sizing: border-box;
}

/* 4K Pure Natural Food Visual Layer — No filter, No darkening */
.week-ready-backdrop-container {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.week-ready-backdrop-container picture {
  display: block;
  width: 100%;
  height: 100%;
}

.week-ready-4k-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  filter: none;
  transform: none;
}

.week-ready-section:hover .week-ready-4k-img,
.week-ready-hero:hover .week-ready-4k-img {
  transform: none;
}

/* Vignette Layer Removed */
.week-ready-vignette {
  display: none !important;
}

/* Central Stage Container */
.week-ready-stage {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  max-width: 960px;
  padding: 0 24px;
  margin: auto;
}

/* Top Tagline / Kicker Badge */
.week-ready-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #558632;
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(0.72rem, 0.85vw, 0.86rem);
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin-bottom: clamp(0.5rem, 1vh, 0.9rem);
}

.kicker-sparkle {
  font-size: 0.88em;
  color: #558632;
  line-height: 1;
}

/* Main Display Headline (Brand Font) */
.week-ready-headline {
  font-family: var(--font-family-brand), sans-serif;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-shadow: 0 4px 40px rgba(0, 0, 0, 0.9);
}

.headline-brand-row {
  font-size: clamp(4.4rem, 9.6vw, 9.2rem);
  font-weight: 800;
  line-height: 0.92;
  letter-spacing: 0.03em;
  color: #F5F5F3;
  text-transform: uppercase;
  display: block;
}

.headline-tagline-row {
  font-size: clamp(1.8rem, 3.8vw, 3.4rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.005em;
  color: #558632;
  display: block;
  margin-top: clamp(6px, 1.2vh, 14px);
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.7);
}

.headline-row {
  font-size: clamp(4.6rem, 9.4vw, 8.8rem);
  line-height: 0.88;
  letter-spacing: 0.025em;
  color: #F5F5F3;
  text-transform: uppercase;
  display: block;
}

/* Subtitle with Emerald Highlight */
.week-ready-subtext {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(1.02rem, 1.35vw, 1.32rem);
  font-weight: 400;
  color: #C0C8C3;
  line-height: 1.55;
  margin-top: clamp(10px, 1.8vh, 18px);
  margin-bottom: clamp(18px, 2.8vh, 28px);
  max-width: 660px;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.7);
}

.accent-emerald-bold {
  color: #558632;
  font-weight: 600;
}

/* Call-to-Action Buttons Row */
.week-ready-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.1rem;
  margin-bottom: clamp(1.6rem, 3.4vh, 2.8rem);
}

/* Clean Premium Hero CTA Button — Health On Top Brand Green Theme */
.btn-hero-order {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: #558632;
  color: #FFFFFF;
  padding: 14px 36px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  font-family: var(--font-family-brand), sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  transition: background-color var(--transition-fast), transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);
  cursor: pointer;
}

.btn-hero-order:hover {
  background: #669E3D;
  border-color: rgba(255, 255, 255, 0.7);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.32);
}

.btn-hero-order:active {
  transform: translateY(0);
  background: #466F29;
}

.btn-hero-order .btn-arrow-svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 2.2;
  transition: transform var(--transition-fast);
}

.btn-hero-order:hover .btn-arrow-svg {
  transform: translateX(3px);
}

/* Primary Action Button (Green Gradient with Arrow Square) */
.btn-week-primary {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #558632;
  color: #FFFFFF;
  padding: 12px 20px 12px 24px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32), 0 1px 2px rgba(0, 0, 0, 0.2);
  transition: background-color var(--transition-medium), transform var(--transition-medium), box-shadow var(--transition-medium), color var(--transition-medium);
  cursor: pointer;
}

.btn-week-primary:hover {
  transform: translateY(-2px);
  background: #669E3D;
  color: #FFFFFF;
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.25);
}

.btn-arrow-badge {
  width: 26px;
  height: 26px;
  background: #FFFFFF;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #466F29;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);
  transition: transform var(--transition-fast);
}

.btn-week-primary:hover .btn-arrow-badge {
  transform: translate(1px, -1px);
}

.btn-arrow-svg {
  width: 14px;
  height: 14px;
}

/* Secondary Action Button (Dark Glass with Outline) */
.btn-week-secondary {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #FFFFFF;
  padding: 12px 20px 12px 24px;
  border-radius: 12px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.95rem;
  font-weight: 600;
  text-decoration: none;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
}

.btn-week-secondary:hover {
  border-color: #558632;
  color: #558632;
  background: rgba(85, 134, 50, 0.06);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
  transform: translateY(-2px);
}

.btn-arrow-box {
  width: 26px;
  height: 26px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.btn-week-secondary:hover .btn-arrow-box {
  border-color: #558632;
  color: #558632;
  transform: translate(1px, -1px);
}

/* Bottom 3 Feature Pillars */
.week-ready-pillars {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(1.4rem, 3vw, 3.2rem);
}

.pillar-item {
  display: flex;
  align-items: center;
  gap: 11px;
  text-align: left;
}

.pillar-icon-wrap {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.1);
  border: 1px solid rgba(85, 134, 50, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #558632;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.pillar-icon {
  width: 17px;
  height: 17px;
}

.pillar-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.pillar-label {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #FFFFFF;
  text-transform: uppercase;
  line-height: 1.2;
}

.pillar-sub {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.78rem;
  font-weight: 400;
  color: #E7ECE9;
  white-space: nowrap;
  line-height: 1.2;
}

/* Floating Circular Rotating Stamp / Seal (Right Side) */
.week-ready-stamp {
  position: absolute;
  right: 8.5vw;
  top: 48%;
  transform: translateY(-50%);
  width: 140px;
  height: 140px;
  z-index: 12;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
  cursor: pointer;
  transition: transform 0.3s ease;
}

.week-ready-stamp:hover {
  transform: translateY(-50%) scale(1.06);
}

.stamp-rotator {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  animation: stampRotate 24s linear infinite;
}

@keyframes stampRotate {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

.stamp-svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.stamp-path-text {
  fill: #558632;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.stamp-center {
  width: 66px;
  height: 66px;
  border-radius: 50%;
  border: 1.5px solid rgba(85, 134, 50, 0.45);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(5, 7, 6, 0.92);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  position: relative;
  z-index: 2;
}

.stamp-inner-ring {
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  border: 1px dashed rgba(85, 134, 50, 0.25);
  pointer-events: none;
}

.stamp-hot-pill {
  padding: 3px 9px;
  border-radius: 6px;
  border: 1px solid #558632;
  color: #FFFFFF;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 1.12rem;
  letter-spacing: 0.08em;
  line-height: 1;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

/* Responsive adjustments for tablet and mobile */
@media (max-width: 1100px) {
  .week-ready-stamp {
    display: none;
  }
}

@media (max-width: 768px) {
  .week-ready-section {
    height: auto;
    min-height: 100vh;
    padding: 100px 0 60px;
  }

  .week-ready-actions {
    flex-direction: column;
    width: 100%;
    max-width: 320px;
  }

  .btn-week-primary,
  .btn-week-secondary {
    width: 100%;
    justify-content: center;
  }

  .week-ready-pillars {
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
  }
}

/* ==========================================================================
   SECTION 03: "PICK YOUR PERFORMANCE PACK" (1:1 Exact Design Replication)
   Aesthetics: Deep Obsidian (#121212), Emerald Glow (#558632, #669E3D)
   ========================================================================== */

.performance-packs-section {
  position: relative;
  width: 100%;
  min-height: 100vh;
  background-color: #121212;
  background-image: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 50px 4.5vw 35px;
  overflow: hidden;
  box-sizing: border-box;
}

.packs-container {
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

/* --- Section Top Header Row --- */
.packs-header-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  margin-bottom: 20px;
}

/* Left: Eyebrow + Headline */
.packs-title-col {
  flex-shrink: 0;
}

.packs-kicker {
  display: block;
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 600;
  color: #558632;
  letter-spacing: 0.02em;
  text-transform: lowercase;
  margin-bottom: 8px;
}

.packs-headline {
  font-family: var(--font-body);
  font-size: 3.4rem;
  font-weight: 800;
  line-height: 0.95;
  letter-spacing: -0.04em;
  color: #FFFFFF;
  text-transform: lowercase;
  margin: 0;
  display: flex;
  flex-direction: column;
}

/* Center: Narrative Description & Tag */
.packs-intro-col {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 320px;
  padding-top: 10px;
}

.packs-intro-text {
  font-family: var(--font-body);
  font-size: 0.92rem;
  line-height: 1.5;
  color: #E7ECE9;
  font-weight: 500;
  margin: 0;
}

.packs-badge-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #558632;
  font-family: var(--font-body);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.packs-badge-icon {
  width: 16px;
  height: 16px;
  stroke: #558632;
  flex-shrink: 0;
}

/* Right: 3 Quality Pillars */
.packs-pillars-row {
  display: flex;
  gap: 36px;
  padding-top: 10px;
}

.pack-pillar-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 165px;
}

.pack-pillar-icon-box {
  width: 28px;
  height: 28px;
  color: #E7ECE9;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
}

.pack-pillar-icon-box svg {
  width: 100%;
  height: 100%;
}

.pack-pillar-title {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.35;
  color: #FFFFFF;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.pack-pillar-desc {
  font-family: var(--font-body);
  font-size: 0.76rem;
  line-height: 1.45;
  color: #E7ECE9;
  margin: 0;
}

/* --- 3 Packs Grid Stage with Continuous Horizontal Track Line --- */
.packs-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  align-items: end;
  margin-top: 25px;
  margin-bottom: 30px;
}

.packs-grid::before {
  content: '';
  position: absolute;
  top: 90px;
  left: 4%;
  right: 4%;
  height: 1px;
  background: rgba(255, 255, 255, 0.14);
  z-index: 1;
  pointer-events: none;
}

/* Pack Card Container */
.pack-card {
  position: relative;
  border-radius: 20px;
  padding: 18px 16px 24px;
  background: transparent;
  cursor: pointer;
  transition: color 0.35s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1), transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  border: 1px solid transparent;
  user-select: none;
  z-index: 2;
}

.pack-card:focus-visible {
  outline: 2px solid var(--hot-primary-green, #558632);
  outline-offset: 2px;
}

.pack-card.active-pack {
  background: #181818;
  border: 1px solid rgba(85, 134, 50, 0.4);
  box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.65);
}

/* Header with Number and Dot on the Track */
.pack-card-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 12px;
  position: relative;
  z-index: 3;
}

.pack-popular-badge {
  position: absolute;
  top: -30px;
  background: #3B5D23;
  color: #669E3D;
  font-family: var(--font-body);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  padding: 4px 14px;
  border-radius: 999px;
  text-transform: uppercase;
  border: 1px solid rgba(102, 158, 61, 0.3);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
  border: 1px solid rgba(255, 255, 255, 0.14);
  white-space: nowrap;
}

.pack-number-row {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 8px;
  margin-bottom: 10px;
}

.pack-number {
  font-family: var(--font-body);
  font-size: 3.4rem;
  font-weight: 800;
  color: #FFFFFF;
  line-height: 1;
  letter-spacing: -0.03em;
}

.pack-number-label {
  font-family: var(--font-body);
  font-size: 0.74rem;
  font-weight: 700;
  color: #E7ECE9;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.pack-node-point {
  position: relative;
  width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #121212;
  border-radius: 50%;
  z-index: 4;
}

.pack-node-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
  transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
}

.pack-node-halo {
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1.5px solid rgba(85, 134, 50, 0.45);
  transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
}

.pack-card.active-pack .pack-node-dot {
  background: #669E3D;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.pack-card.active-pack .pack-node-halo {
  border-color: rgba(102, 158, 61, 0.9);
  transform: scale(1.25);
}

/* --- 3D Visual Stage & Coming-Out-Of-Place Hover Animation --- */
.pack-visual-stage {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  min-height: 275px;
  margin: 10px 0 16px;
  perspective: 1200px;
}

/* Authentic Handwritten Script Annotations & Curved Arrows */
.pack-annot-wrap {
  position: absolute;
  left: -14px;
  bottom: 35px;
  z-index: 8;
  pointer-events: none;
}

.pack-annot-img {
  width: 100px;
  height: auto;
  display: block;
  filter: brightness(1.2);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Meal Stack Wrapper with 3D Depth */
.pack-stack-wrap {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  width: 100%;
  max-width: 255px;
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
  transform-style: preserve-3d;
  will-change: transform;
}

/* Emerald Ambient Ground Reflection */
.pack-glow-aura {
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 195px;
  height: 40px;
  border-radius: 50%;
  display: none !important;
  filter: blur(14px);
  pointer-events: none;
  transition: color 0.45s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.45s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.45s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.45s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1), transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 1;
}

/* Meal Stack Transparent Cutout */
.pack-stack-img {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 240px;
  height: auto;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 15px 25px rgba(0, 0, 0, 0.9));
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), filter 0.45s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, filter;
}

/* --- THE HOVER EXPERIENCE ("coming out of its place, zoom out and get bigger") --- */
.pack-card:hover .pack-stack-wrap {
  transform: translateY(-28px) scale(1.18);
}

.pack-card:hover .pack-stack-img {}

.pack-card:hover .pack-glow-aura {
  width: 260px;
  height: 65px;
  display: none !important;
  filter: blur(18px);
  transform: translateX(-50%) scale(1.35);
}

.pack-card:hover .pack-annot-img {
  transform: scale(1.08) rotate(-2deg);
}

/* Card Body Typography & Price */
.pack-card-body {
  text-align: center;
  position: relative;
  z-index: 3;
}

.pack-card-title {
  font-family: var(--font-body);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #FFFFFF;
  margin-bottom: 8px;
}

.pack-card-desc {
  font-family: var(--font-body);
  font-size: 0.84rem;
  color: #E7ECE9;
  line-height: 1.45;
  margin-bottom: 14px;
  min-height: 38px;
}

.pack-pricing-row {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 8px;
}

.pack-price-main {
  font-family: var(--font-body);
  font-size: 1.6rem;
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: -0.02em;
}

.pack-price-per {
  font-family: var(--font-body);
  font-size: 0.88rem;
  color: #E7ECE9;
  font-weight: 500;
}

/* --- Bottom Floating Summary Dock --- */
.packs-dock-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: 1220px;
  margin: 0 auto;
  position: relative;
  z-index: 15;
}

.packs-floating-dock {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 24px;
  background: rgba(14, 18, 16, 0.88);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.75);
  gap: 20px;
  box-sizing: border-box;
}

/* Dock Left Info */
.dock-left-info {
  display: flex;
  align-items: center;
  gap: 16px;
}

.dock-thumb-wrap {
  width: 68px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
}

.dock-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.6));
  transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
}

.dock-title-group {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.dock-title-row {
  display: flex;
  align-items: center;
}

.dock-pack-title {
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 800;
  color: #FFFFFF;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.dock-popular-pill {
  background: #3B5D23;
  color: #669E3D;
  font-family: var(--font-body);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  padding: 3px 8px;
  border-radius: 999px;
  margin-left: 10px;
  border: 1px solid rgba(102, 158, 61, 0.3);
  display: inline-block;
  transition: opacity 0.2s ease;
}

.dock-popular-pill.hidden {
  display: none;
}

.dock-price-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.dock-price-val {
  font-family: var(--font-body);
  font-size: 1.15rem;
  font-weight: 800;
  color: #FFFFFF;
}

.dock-price-per {
  font-family: var(--font-body);
  font-size: 0.82rem;
  color: #E7ECE9;
}

/* Dock Center Feature Badges */
.dock-center-badges {
  display: flex;
  align-items: center;
  gap: 14px;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 10px 18px;
}

.dock-feature-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 700;
  color: #558632;
  letter-spacing: 0.06em;
}

.dock-feature-pill svg {
  width: 15px;
  height: 15px;
}

.dock-divider {
  width: 1px;
  height: 16px;
  background: rgba(255, 255, 255, 0.12);
}

/* Dock Right Action */
.dock-right-action {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.dock-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #558632;
  color: #121212;
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 14px 28px;
  border-radius: 12px;
  border: none;
  cursor: pointer;
  transition: color 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, opacity 0.22s ease, transform 0.22s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
  text-transform: uppercase;
}

.dock-cta-btn svg {
  width: 18px;
  height: 18px;
  transition: transform 0.2s ease;
}

.dock-cta-btn:hover {
  background: #669E3D;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
}

.dock-cta-btn:hover svg {
  transform: translateX(4px);
}

/* Hanging Guarantee Tab */
.dock-hanging-tab {
  background: rgba(14, 18, 16, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: none;
  border-bottom-left-radius: 12px;
  border-bottom-right-radius: 12px;
  padding: 6px 22px;
  font-family: var(--font-body);
  font-size: 0.74rem;
  color: #E7ECE9;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: -1px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.dock-dot-sep {
  color: rgba(255, 255, 255, 0.7);
}

/* Trust Info */
.packs-trust-footer {
  width: 100%;
  display: flex;
  justify-content: flex-start;
  margin-top: 20px;
}

.trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 0.78rem;
  color: #E7ECE9;
}

.trust-leaf-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.trust-dot-sep {
  color: rgba(255, 255, 255, 0.7);
}

/* --- Responsive Adjustments for Performance Packs --- */
@media (max-width: 1200px) {
  .packs-header-row {
    flex-wrap: wrap;
    gap: 28px;
  }

  .packs-pillars-row {
    gap: 24px;
  }

  .packs-floating-dock {
    flex-wrap: wrap;
    justify-content: center;
  }
}

@media (max-width: 900px) {
  .performance-packs-section {
    min-height: auto;
    padding: 90px 4vw 60px;
  }

  .packs-headline {
    font-size: 2.8rem;
  }

  .packs-pillars-row {
    flex-wrap: wrap;
  }

  .packs-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .pack-annot-wrap {
    left: 20px;
  }

  .packs-track-wrapper {
    display: none;
  }

  .packs-floating-dock {
    flex-direction: column;
    text-align: center;
  }

  .dock-left-info {
    flex-direction: column;
  }

  .dock-center-badges {
    flex-direction: column;
  }

  .dock-hanging-tab {
    flex-direction: column;
    gap: 4px;
  }

  .packs-trust-footer {
    justify-content: center;
  }
}

/* ==========================================================================
   SECTION 04: "QUALITY YOU CAN SEE. IN EVERY MEAL." (1:1 Exact Design Replication)
   Aesthetics: Deep Luxury Obsidian (#121212), Vibrant Emerald (#558632),
   Crisp 9:16 Visual Master Assets, Strict 100vh Layout
   ========================================================================== */

.quality-steps-section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  background-color: #121212;
  background-image: none;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  padding: clamp(24px, 3.5vh, 48px) clamp(20px, 3vw, 48px) clamp(40px, 6vh, 76px);
  overflow: hidden;
  box-sizing: border-box;
}

.quality-ambient-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: none;
  z-index: 1;
}

.quality-container {
  max-width: 1620px;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  gap: clamp(16px, 2.5vh, 32px);
  position: relative;
  z-index: 2;
  box-sizing: border-box;
}

/* --- Section Top Header Row (Shifted Lower Together) --- */
.quality-header-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0;
  flex-shrink: 0;
  padding: 0 16px;
  width: 100%;
  max-width: 1080px;
  margin: clamp(22px, 3.4vh, 42px) auto 0;
}

.quality-eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: clamp(4px, 0.7vh, 7px);
}

.quality-eyebrow-text {
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #E7ECE9;
  text-transform: uppercase;
}

.quality-eyebrow-bar {
  width: 28px;
  height: 1.5px;
  background: #558632;
  display: inline-block;
  opacity: 0.85;
}

.quality-headline {
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: clamp(2.6rem, 3.8vw, 4.4rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.035em;
  color: #FFFFFF;
  text-align: center;
  margin: 0;
}

.quality-title-line {
  display: inline;
}

.quality-accent-green {
  color: #558632;
  font-weight: 800;
}

.quality-intro-col {
  max-width: 920px;
  margin: clamp(10px, 1.6vh, 18px) auto 0;
  padding: 0;
  text-align: center;
}

.quality-intro-text {
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: clamp(1.02rem, 1.22vw, 1.25rem);
  line-height: 1.45;
  color: #A1A1AA;
  font-weight: 400;
  text-align: center;
  margin: 0;
}

/* --- 5-Stage Process Visual Grid (Cards Separate With Equal Micro-Gaps) --- */
.quality-cards-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: clamp(10px, 1.1vw, 16px);
  width: 100%;
  max-width: min(1600px, 95vw);
  margin: 0 auto;
  flex: 0 0 auto;
  align-items: stretch;
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
  overflow: visible;
}

.quality-step-card {
  display: flex;
  flex-direction: column;
  height: auto;
  min-height: 0;
  justify-content: flex-start;
  gap: 0;
  background: #181818;
  border: 1px solid #2A2A2A;
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.quality-step-card:hover {
  background: #1E1E1E;
  border-color: #383838;
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.65);
}

/* Visual Media Container (Real 3:4 Aspect Ratio matching quality 1-5 photos) */
.quality-step-media {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 4.9;
  max-height: clamp(300px, 50vh, 520px);
  overflow: hidden;
  background: #121212;
  border-radius: 13px 13px 0 0;
}

.quality-step-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  border-radius: 13px 13px 0 0;
  transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), filter 0.35s ease;
}

.quality-step-card:hover .quality-step-img {
  transform: scale(1.04);
  filter: brightness(1.06);
}

.quality-step-glow {
  position: absolute;
  inset: 0;
  border-bottom: 2.5px solid transparent;
  pointer-events: none;
  transition: color 0.35s ease, background-color 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease, opacity 0.35s ease, transform 0.35s ease;
  z-index: 2;
}

.quality-step-card:hover .quality-step-glow {
  border-bottom-color: #558632;
  box-shadow: none;
}

/* Card Content Area (Centered directly beneath image, snug padding, zero dead space) */
.quality-step-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: clamp(8px, 1.2vh, 14px) clamp(8px, 0.9vw, 14px) clamp(10px, 1.4vh, 16px);
  gap: 4px;
  flex-shrink: 0;
  border-top: 1px solid #242424;
  background: #181818;
  border-radius: 0 0 13px 13px;
  transition: background 0.3s ease;
}

.quality-step-card:hover .quality-step-content {
  background: #1E1E1E;
}

.quality-step-heading {
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: clamp(0.95rem, 1.1vw, 1.15rem);
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: -0.02em;
  line-height: 1.2;
  text-align: center;
  margin: 0;
}

.quality-step-desc {
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: clamp(0.72rem, 0.78vw, 0.84rem);
  line-height: 1.42;
  color: #9CA3AF;
  font-weight: 400;
  text-align: center;
  margin: 0;
}

/* --- Responsive Adaptations --- */
@media (max-width: 1200px) {
  .quality-header-row {
    padding: 0 12px;
  }

  .quality-intro-col {
    max-width: 680px;
  }
}

@media (max-width: 1024px) {
  .quality-steps-section {
    height: auto;
    min-height: 100vh;
    max-height: none;
    padding: 80px 24px 40px;
    overflow-y: visible;
  }

  .quality-header-row {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 14px;
  }

  .quality-intro-col {
    max-width: 100%;
    padding: 0;
  }

  .quality-intro-divider {
    display: none;
  }

  .quality-script-col {
    display: none;
  }

  .quality-cards-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 14px;
    padding-bottom: 16px;
    margin: 20px 0;
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-overflow-scrolling: touch;
  }

  .quality-cards-grid::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }

  .quality-step-card {
    flex: 0 0 clamp(280px, 75vw, 320px);
    min-width: clamp(280px, 75vw, 320px);
    scroll-snap-align: start;
  }

  .quality-step-media {
    aspect-ratio: 3 / 4.9;
    max-height: 480px;
  }

  .quality-footer-row {
    flex-wrap: wrap;
    gap: 12px;
  }

  .quality-footer-center {
    order: 3;
    width: 100%;
    max-width: 100%;
  }
}

/* ==========================================================================
   SECTION 05: "DIFFERENT GOALS. ONE ALLY." (1:1 Exact Design Replication)
   Aesthetics: Deep Obsidian Canvas (#121212), 4-Column Bento Geometry,
   Ultra-HD 4K Visual Master Assets, Zero Footer, Strict 100vh Layout
   ========================================================================== */

.goals-ally-section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  background-color: #121212;
  background-image: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(16px, 2.5vh, 26px) 4.2vw;
  box-sizing: border-box;
  overflow: hidden;
}

.goals-container {
  max-width: 1580px;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: clamp(12px, 1.8vh, 20px);
  position: relative;
  z-index: 2;
  box-sizing: border-box;
}

/* --- Section Top Header Bar (Eyebrow & Filter Tabs) --- */
.goals-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  flex-shrink: 0;
  padding: 0 4px;
}

.goals-eyebrow {
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: clamp(0.72rem, 0.85vw, 0.82rem);
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: #558632;
  margin: 0;
  user-select: none;
}

/* Top Right Category Filter Tabs */
.goals-tabs {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2vw, 32px);
  list-style: none;
  margin: 0;
  padding: 0;
}

.goals-tab {
  background: transparent;
  border: none;
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: clamp(0.85rem, 0.95vw, 0.95rem);
  font-weight: 500;
  color: #71717A;
  cursor: pointer;
  padding: 4px 0;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  transition: color 0.25s ease;
  user-select: none;
}

.goals-tab:hover {
  color: #FFFFFF;
}

.goals-tab.active {
  color: #558632;
  font-weight: 600;
}

.goals-tab-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background-color: #558632;
  opacity: 0;
  transform: scale(0);
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  position: absolute;
  bottom: -6px;
  left: 50%;
  margin-left: -2.5px;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.goals-tab.active .goals-tab-dot {
  opacity: 1;
  transform: scale(1);
}

/* --- 4-Column Bento Grid Stage --- */
.goals-bento-stage {
  flex: 1;
  min-height: 0;
  display: flex;
  gap: clamp(10px, 1.1vw, 16px);
  width: 100%;
  align-items: stretch;
}

/* --- Column 1: Left Narrative Anchor & Bottom Card --- */
.goals-col-1 {
  flex: 1.18;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: clamp(10px, 1.2vh, 16px);
}

.goals-col-1-top {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: clamp(10px, 1.6vh, 18px);
  padding-top: clamp(2px, 0.5vh, 8px);
}

.goals-headline {
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: clamp(2.3rem, 4.2vw, 4.3rem);
  font-weight: 800;
  line-height: 0.96;
  letter-spacing: -0.04em;
  color: #FFFFFF;
  margin: 0;
}

.goals-headline-line {
  display: block;
}

.goals-narrative {
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: clamp(0.84rem, 0.98vw, 0.98rem);
  line-height: 1.5;
  color: #E7ECE9;
  margin: 0;
  font-weight: 400;
  max-width: 380px;
}

.goals-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 22px;
  border-radius: 6px;
  border: 1px solid rgba(85, 134, 50, 0.6);
  background: rgba(85, 134, 50, 0.03);
  color: #558632;
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  align-self: flex-start;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

.goals-cta-btn:hover {
  background: rgba(85, 134, 50, 0.16);
  border-color: #558632;
  color: #558632;
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
  transform: translateY(-1px);
}

.goals-cta-arrow {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  transition: transform 0.25s ease;
}

.goals-cta-btn:hover .goals-cta-arrow {
  transform: translate(2px, -2px);
}

/* --- Column 2: Center-Left --- */
.goals-col-2 {
  flex: 1.0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.1vh, 16px);
  justify-content: space-between;
}

/* --- Column 3: Center-Right --- */
.goals-col-3 {
  flex: 1.0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.1vh, 16px);
  justify-content: space-between;
}

/* --- Column 4: Right Anchor --- */
.goals-col-4 {
  flex: 0.88;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.1vh, 16px);
  justify-content: space-between;
}

/* --- Base Card Styles --- */
.goals-card {
  position: relative;
  border-radius: 16px;
  overflow: hidden;
  cursor: pointer;
  background-color: #121212;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease, border-color 0.35s ease, filter 0.35s ease;
  user-select: none;
  min-height: 0;
}

.goals-card:hover {
  transform: translateY(-3px);
  border-color: rgba(85, 134, 50, 0.55);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.85);
  z-index: 5;
}

.goals-card-img {
  width: 100%;
  height: 100%;
  object-fit: fill;
  display: block;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), filter 0.35s ease;
}

.goals-card:hover .goals-card-img {
  filter: brightness(1.05);
}

/* Specific Card Proportions */
#card-keep-going {
  flex: 1.0;
}

#card-train-hard {
  flex: 1.34;
}

#card-stay-focused {
  flex: 1.0;
}

#card-join-50k {
  flex: 0.68;
}

#card-work-busy {
  flex: 1.34;
}

#card-fuel-better {
  flex: 0.95;
}

#card-better-together {
  flex: 0.82;
}

#card-eat-better {
  flex: 1.05;
}

#card-live-well {
  flex: 1.0;
}

/* --- Social Proof Card (Interactive Luxury Component) --- */
.goals-card-social {
  background: #121212;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(10px, 1.4vh, 16px) clamp(12px, 1.2vw, 20px);
  position: relative;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6);
  transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  text-decoration: none;
}

.goals-card-social:hover {
  transform: translateY(-2px);
  border-color: rgba(85, 134, 50, 0.6);
  box-shadow: 0 14px 35px rgba(0, 0, 0, 0.85);
}

.goals-social-left {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1vw, 16px);
}

.goals-avatar-stack {
  display: flex;
  align-items: center;
}

.goals-avatar-group-img {
  height: clamp(34px, 4.2vh, 46px);
  width: auto;
  display: block;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.6));
}

.goals-social-copy {
  display: flex;
  flex-direction: column;
}

.goals-social-sub {
  color: #558632;
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: clamp(0.74rem, 0.88vw, 0.86rem);
  font-weight: 800;
  letter-spacing: 0.02em;
  margin: 0;
  line-height: 1.2;
}

.goals-social-main {
  color: #FFFFFF;
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: clamp(0.68rem, 0.78vw, 0.78rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.3;
  margin: 2px 0 0 0;
}

.goals-social-action {
  width: clamp(32px, 3.8vh, 42px);
  height: clamp(32px, 3.8vh, 42px);
  border-radius: 50%;
  border: 1px solid #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #558632;
  background: transparent;
  flex-shrink: 0;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.goals-social-action svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
}

.goals-card-social:hover .goals-social-action {
  background: #558632;
  color: #000000;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
  transform: scale(1.08);
}

/* Card Category Filtering State */
.goals-card.dimmed {
  opacity: 0.35;
  filter: grayscale(0.6);
  transform: scale(0.98);
}

/* --- Responsive Adaptations --- */
@media (max-width: 1200px) {
  .goals-headline {
    font-size: clamp(2rem, 3.4vw, 3rem);
  }

  .goals-narrative {
    font-size: 0.82rem;
  }
}

@media (max-width: 900px) {
  .goals-ally-section {
    height: auto;
    min-height: 100vh;
    max-height: none;
    padding: 80px 4vw 60px;
    overflow-y: auto;
  }

  .goals-header-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .goals-tabs {
    flex-wrap: wrap;
    gap: 16px;
  }

  .goals-bento-stage {
    flex-direction: column;
    gap: 16px;
  }

  .goals-col-1,
  .goals-col-2,
  .goals-col-3,
  .goals-col-4 {
    width: 100%;
    flex: none;
  }

  .goals-card {
    height: 280px;
  }
}

/* ==========================================================================
   SECTION 06: "BEHIND THE MEALS" (1:1 Exact Match Desktop & Mobile - 100vh Wall)
   Strictly Scoped: 100vh Desktop Wall (18 Boxes), 15 Boxes Mobile Masonry, Tight Gaps
   ========================================================================== */

/* Gallery Page: Natural Height with Smooth Scrolling */
body.gallery-page {
  min-height: 100vh;
  height: auto;
  overflow-x: hidden;
  overflow-y: auto;
  background-color: #121212;
}

.behind-meals-section {
  position: relative;
  width: 100%;
  min-height: auto;
  background-color: #121212;
  color: #ffffff;
  padding: 120px 32px 100px;
  box-sizing: border-box;
  overflow: visible;
  display: flex;
  flex-direction: column;
}

/* Ambient Subtle Lighting */
.behind-meals-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 70vw;
  max-width: 1100px;
  height: 400px;
  background: none;
  pointer-events: none;
  z-index: 1;
}

.behind-meals-container {
  position: relative;
  width: 100%;
  max-width: 1560px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  z-index: 2;
}

/* Header Section */
.behind-meals-header {
  flex: 0 0 auto;
  text-align: center;
  margin: 0 auto 48px;
  padding: 0 16px;
  box-sizing: border-box;
  max-width: 900px;
}

.behind-meals-eyebrow {
  display: inline-block;
  font-family: var(--font-family-brand), "Switzer", -apple-system, sans-serif;
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 3px;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: 14px;
}

.behind-meals-title {
  font-family: var(--font-family-brand), "Switzer", -apple-system, sans-serif;
  font-size: clamp(2.6rem, 5.2vw, 4.4rem);
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.035em;
  line-height: 1.08;
  margin: 0 0 18px;
}

.behind-meals-sub {
  font-family: var(--font-family-brand), "Switzer", -apple-system, sans-serif;
  font-size: clamp(1.02rem, 1.35vw, 1.22rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.72);
  max-width: 760px;
  margin: 0 auto;
}

/* ==========================================================================
   DESKTOP 4-ROW GALLERY (Spacious, Natural Height & Generous Spacing)
   ========================================================================== */
.behind-meals-desktop {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
  box-sizing: border-box;
}

.bm-desk-row {
  display: flex;
  gap: 16px;
  width: 100%;
  box-sizing: border-box;
}

/* Row heights */
.bm-desk-row-1 {
  height: 350px;
}

.bm-desk-row-2 {
  height: 290px;
}

.bm-desk-row-3 {
  height: 290px;
}

.bm-desk-row-4 {
  height: 310px;
}

/* Row 1: 4 cards with wide hero centerpiece bowl */
.bm-desk-row-1 .card-r1-1 {
  flex: 22 1 0%;
}

.bm-desk-row-1 .card-r1-2 {
  flex: 38 1 0%;
}

.bm-desk-row-1 .card-r1-3 {
  flex: 20 1 0%;
}

.bm-desk-row-1 .card-r1-4 {
  flex: 20 1 0%;
}

/* Row 2: 4 cards */
.bm-desk-row-2 .card-r2-1 {
  flex: 24 1 0%;
}

.bm-desk-row-2 .card-r2-2 {
  flex: 26 1 0%;
}

.bm-desk-row-2 .card-r2-3 {
  flex: 26 1 0%;
}

.bm-desk-row-2 .card-r2-4 {
  flex: 24 1 0%;
}

.bm-desk-row-2 .card-r2-5 {
  flex: 20 1 0%;
}

/* Row 3: 4 cards */
.bm-desk-row-3 .card-r3-1 {
  flex: 26 1 0%;
}

.bm-desk-row-3 .card-r3-2 {
  flex: 24 1 0%;
}

.bm-desk-row-3 .card-r3-3 {
  flex: 26 1 0%;
}

.bm-desk-row-3 .card-r3-4 {
  flex: 24 1 0%;
}

.bm-desk-row-3 .card-r3-5 {
  flex: 20 1 0%;
}

/* Row 4: 3 cards */
.bm-desk-row-4 .card-r4-1 {
  flex: 33.33 1 0%;
}

.bm-desk-row-4 .card-r4-2 {
  flex: 33.33 1 0%;
}

.bm-desk-row-4 .card-r4-3 {
  flex: 33.34 1 0%;
}

.bm-desk-row-4 .card-r4-4 {
  flex: 25 1 0%;
}

/* ==========================================================================
   PHONE / MOBILE MASONRY GRID
   ========================================================================== */
.behind-meals-mobile {
  display: none;
  width: 100%;
  max-width: 668px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* ==========================================================================
   GALLERY FRAME COMPONENT (Clean, Pure Imagery)
   ========================================================================== */
.gallery-frame {
  position: relative;
  height: 100%;
  border-radius: 14px;
  overflow: hidden;
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-sizing: border-box;
  cursor: pointer;
  user-select: none;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1),
    border-color 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.gallery-frame:hover {
  transform: translateY(-4px) scale(1.015);
  z-index: 10;
  border-color: rgba(85, 134, 50, 0.5);
  box-shadow: 0 18px 36px -8px rgba(0, 0, 0, 0.8);
}

.gallery-frame:focus-visible {
  outline: 2px solid #558632;
  outline-offset: 2px;
}

/* Image Element */
.frame-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.gallery-frame:hover .frame-image {
  transform: scale(1.05);
}

.frame-badge,
.frame-placeholder {
  display: none !important;
}

/* Placeholder Element (Modern, Clean, Sharp Dark Gradient) */
.frame-placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 6px 8px;
  box-sizing: border-box;
  background: #181818;
  color: rgba(255, 255, 255, 0.85);
  text-align: center;
  pointer-events: none;
}

.frame-placeholder-icon {
  width: 18px;
  height: 18px;
  stroke: #558632;
  opacity: 0.85;
  margin-bottom: 3px;
  flex-shrink: 0;
}

.frame-placeholder-slot {
  font-family: var(--font-family-brand), "Switzer", sans-serif;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 1px;
  color: #72d6a5;
  text-transform: uppercase;
  margin-bottom: 2px;
}

.frame-placeholder-title {
  font-family: var(--font-family-brand), "Switzer", sans-serif;
  font-size: 0.68rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.15;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-bottom: 2px;
}

.frame-placeholder-hint {
  font-family: var(--font-family-brand), "Switzer", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: -0.01em;
}

/* Subtle Frame Badge (Overlay when image is loaded) */
.frame-badge {
  position: absolute;
  bottom: 6px;
  left: 6px;
  padding: 3px 7px;
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 4px;
  display: none;
  flex-direction: column;
  gap: 1px;
  pointer-events: none;
  z-index: 5;
}

.gallery-frame.has-img .frame-badge {
  display: flex;
}

.frame-badge-num {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.52rem;
  font-weight: 700;
  color: #a7b0ab;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

.frame-badge-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.58rem;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: -0.01em;
}

/* Bottom Accent on Mobile */
.behind-meals-bottom-accent {
  display: none !important;
}

/* ==========================================================================
   FULL SCREEN LIGHTBOX MODAL
   ========================================================================== */
.bm-lightbox {
  position: fixed;
  inset: 0;
  z-index: 999999;
  background: rgba(0, 0, 0, 0.94);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
  padding: 16px;
  box-sizing: border-box;
}

.bm-lightbox.active {
  opacity: 1;
  pointer-events: auto;
}

.bm-lightbox-dialog {
  position: relative;
  max-width: 94vw;
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.bm-lightbox-media-wrap {
  position: relative;
  max-width: 90vw;
  max-height: 80vh;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.95);
  border: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  background: #181818;
}

.bm-lightbox-img {
  max-width: 90vw;
  max-height: 80vh;
  object-fit: contain;
  display: block;
}

.bm-lightbox-placeholder {
  width: min(80vw, 600px);
  height: min(60vh, 400px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #1E1E1E;
  padding: 24px;
  text-align: center;
  box-sizing: border-box;
}

.bm-lightbox-footer {
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 600px;
  padding: 0 6px;
}

.bm-lightbox-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.bm-lightbox-counter {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.7rem;
  letter-spacing: 1.5px;
  color: #72d6a5;
  font-weight: 700;
  text-transform: uppercase;
}

.bm-lightbox-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: #ffffff;
}

.bm-lightbox-close-btn {
  position: absolute;
  top: 20px;
  right: 24px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  z-index: 10;
}

.bm-lightbox-close-btn:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: rotate(90deg);
}

.bm-lightbox-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  z-index: 10;
}

.bm-lightbox-nav-btn:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: translateY(-50%) scale(1.08);
}

.bm-lightbox-prev {
  left: 20px;
}

.bm-lightbox-next {
  right: 20px;
}

/* ==========================================================================
   RESPONSIVE MEDIA QUERIES (Behind the Meals)
   ========================================================================== */
@media (max-width: 900px) {
  body.gallery-page {
    height: auto !important;
    min-height: 100vh !important;
    max-height: none !important;
    overflow-y: auto !important;
  }

  .behind-meals-desktop {
    display: none !important;
  }

  .behind-meals-mobile {
    display: block !important;
  }

  .behind-meals-section {
    height: auto !important;
    min-height: 100vh !important;
    max-height: none !important;
    overflow-y: auto !important;
    padding: 76px 12px 24px !important;
  }

  .behind-meals-container {
    height: auto !important;
    min-height: 0 !important;
  }

  .behind-meals-header {
    margin-bottom: 28px;
    padding: 0 12px;
  }

  .behind-meals-eyebrow {
    display: inline-block !important;
    font-size: 0.76rem !important;
    letter-spacing: 2px !important;
    margin-bottom: 8px !important;
  }

  .behind-meals-title {
    font-size: clamp(2.2rem, 7vw, 3rem) !important;
    margin-bottom: 10px !important;
    line-height: 1.12 !important;
  }

  .behind-meals-sub {
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
  }

  /* 4-Column Mosaic Grid */
  .behind-meals-mobile .bm-phone-mosaic {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 8px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .behind-meals-mobile .bm-phone-card-1 {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    height: 250px !important;
  }

  .behind-meals-mobile .bm-phone-card-2 {
    grid-column: 2 !important;
    grid-row: 1 !important;
    height: 150px !important;
  }

  .behind-meals-mobile .bm-phone-card-3 {
    grid-column: 3 !important;
    grid-row: 1 !important;
    height: 150px !important;
  }

  .behind-meals-mobile .bm-phone-card-4 {
    grid-column: 4 !important;
    grid-row: 1 !important;
    height: 150px !important;
  }

  .behind-meals-mobile .bm-phone-card-5 {
    grid-column: 1 !important;
    grid-row: 3 !important;
    height: 170px !important;
  }

  .behind-meals-mobile .bm-phone-card-6 {
    grid-column: 2 !important;
    grid-row: 2 / span 2 !important;
    height: 270px !important;
  }

  .behind-meals-mobile .bm-phone-card-7 {
    grid-column: 3 !important;
    grid-row: 2 / span 2 !important;
    height: 270px !important;
  }

  .behind-meals-mobile .bm-phone-card-8 {
    grid-column: 4 !important;
    grid-row: 2 !important;
    height: 140px !important;
  }

  .behind-meals-mobile .bm-phone-card-9 {
    grid-column: 4 !important;
    grid-row: 3 !important;
    height: 130px !important;
  }

  /* Middle 4-Card Row */
  .behind-meals-mobile .bm-phone-row-mid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 8px !important;
    margin-top: 8px !important;
    width: 100% !important;
  }

  .behind-meals-mobile .bm-phone-card-10,
  .behind-meals-mobile .bm-phone-card-11,
  .behind-meals-mobile .bm-phone-card-12,
  .behind-meals-mobile .bm-phone-card-13 {
    height: 140px !important;
  }

  /* Bottom 2-Card Row */
  .behind-meals-mobile .bm-phone-row-bot {
    display: grid !important;
    grid-template-columns: 1.15fr 2.3fr !important;
    gap: 8px !important;
    margin-top: 8px !important;
    width: 100% !important;
  }

  .behind-meals-mobile .bm-phone-card-14,
  .behind-meals-mobile .bm-phone-card-15 {
    height: 160px !important;
  }
}

@media (max-width: 520px) {
  .behind-meals-section {
    padding: 90px 12px 40px !important;
  }

  .behind-meals-mobile .bm-phone-mosaic {
    gap: 6px !important;
  }

  .behind-meals-mobile .bm-phone-row-mid {
    gap: 6px !important;
    margin-top: 6px !important;
  }

  .behind-meals-mobile .bm-phone-row-bot {
    gap: 6px !important;
    margin-top: 6px !important;
  }

  .behind-meals-mobile .bm-phone-card-1 {
    height: 190px !important;
  }

  .behind-meals-mobile .bm-phone-card-2 {
    height: 115px !important;
  }

  .behind-meals-mobile .bm-phone-card-3 {
    height: 115px !important;
  }

  .behind-meals-mobile .bm-phone-card-4 {
    height: 115px !important;
  }

  .behind-meals-mobile .bm-phone-card-5 {
    height: 135px !important;
  }

  .behind-meals-mobile .bm-phone-card-6 {
    height: 210px !important;
  }

  .behind-meals-mobile .bm-phone-card-7 {
    height: 210px !important;
  }

  .behind-meals-mobile .bm-phone-card-8 {
    height: 105px !important;
  }

  .behind-meals-mobile .bm-phone-card-9 {
    height: 100px !important;
  }

  .behind-meals-mobile .bm-phone-card-10,
  .behind-meals-mobile .bm-phone-card-11,
  .behind-meals-mobile .bm-phone-card-12,
  .behind-meals-mobile .bm-phone-card-13 {
    height: 110px !important;
  }

  .behind-meals-mobile .bm-phone-card-14,
  .behind-meals-mobile .bm-phone-card-15 {
    height: 125px !important;
  }

  .frame-placeholder-icon {
    width: 14px;
    height: 14px;
    margin-bottom: 1px;
  }

  .frame-placeholder-slot {
    font-size: 0.48rem;
    letter-spacing: 0.5px;
    margin-bottom: 1px;
  }

  .frame-placeholder-title {
    font-size: 0.54rem;
    line-height: 1.1;
    margin-bottom: 1px;
  }

  .frame-placeholder-hint {
    font-size: 0.58rem;
  }

  .bm-lightbox-nav-btn {
    width: 36px;
    height: 36px;
  }

  .bm-lightbox-prev {
    left: 6px;
  }

  .bm-lightbox-next {
    right: 6px;
  }

  .bm-lightbox-close-btn {
    top: 10px;
    right: 10px;
    width: 36px;
    height: 36px;
  }
}

/* ==========================================================================
   MULTI-PAGE LAYOUT CLEARANCES (Home, Nutrition, Gallery, Order, About, Contact)
   ========================================================================== */

/* ==========================================================================
   CONTACT US HERO SECTION (100vh Fullscreen Luxury Culinary Hub)
   - Left-aligned live typography: Kicker, Display Headline "Let's talk.", Subtitle
   - Interactive Direct Contact Action Rows (Instagram, Email, Phone) with hover physics
   - Right-side high-res 16:9 dark slate meal container visual
   - Bottom Ticker: "GOOD FOOD FUELS GREAT DAYS." / "FITNESS WITHOUT THE FRICTION. —"
   ========================================================================== */

.contact-hero-fullscreen {
  position: relative;
  width: 100%;
  min-height: 100vh;
  background-color: #121212;
  background-image: url('assets/webp/final/contacthero.webp');
  background-size: cover;
  background-position: center right;
  background-repeat: no-repeat;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
  overflow: hidden;
  padding-top: var(--nav-height, 80px);
}

.contact-hero-bg-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(18, 18, 18, 0.10);
  pointer-events: none;
  z-index: 2;
}

.contact-hero-container {
  position: relative;
  z-index: 5;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: clamp(24px, 3.5vh, 48px) clamp(24px, 5.5vw, 80px);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex: 1;
  box-sizing: border-box;
}

.contact-hero-content {
  max-width: 540px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  animation: heroContentFadeIn 0.85s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes heroContentFadeIn {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.contact-main-heading {
  font-family: var(--font-heading, 'Switzer', sans-serif);
  font-size: clamp(3.4rem, 5.5vw, 5.8rem);
  font-weight: 800;
  line-height: 0.95;
  letter-spacing: -0.04em;
  color: #FFFFFF;
  margin: 0 0 1.25rem 0;
  text-transform: none;
  text-align: left;
}

.hot-green-highlight {
  color: #558632 !important;
  font-style: normal;
}

.contact-hero-desc {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: clamp(1.1rem, 1.3vw, 1.25rem);
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.78);
  margin-bottom: 2rem;
  font-weight: 400;
  max-width: 500px;
  text-align: left;
}

/* Contact Action Rows */
.contact-action-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  max-width: 440px;
}

.contact-action-row {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 14px 20px;
  background: rgba(24, 24, 24, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  color: #FFFFFF;
  text-decoration: none;
  cursor: pointer;
  transition: color 0.28s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.28s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1), transform 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  width: 100%;
  box-sizing: border-box;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  position: relative;
  overflow: hidden;
}

.contact-action-row::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: #558632;
  opacity: 0;
  transition: opacity 0.25s ease;
}

.contact-action-row:hover {
  background: rgba(32, 32, 32, 0.95);
  border-color: rgba(85, 134, 50, 0.5);
  transform: translateX(6px);
  box-shadow: 0 12px 32px -6px rgba(0, 0, 0, 0.7);
}

.contact-action-row:hover::before {
  opacity: 1;
}

.action-icon-wrap {
  width: 46px;
  height: 46px;
  min-width: 46px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
  flex-shrink: 0;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.action-icon-wrap svg {
  width: 22px;
  height: 22px;
}

.contact-action-row:hover .action-icon-wrap {
  background: rgba(85, 134, 50, 0.18);
  border-color: rgba(85, 134, 50, 0.5);
  color: #558632;
}

.action-text-wrap {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
  text-align: left;
}

.action-title {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 1.15rem;
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: -0.015em;
  line-height: 1.2;
}

.action-subtitle {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.65);
  text-transform: uppercase;
}

.action-arrow-wrap {
  color: rgba(255, 255, 255, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
  width: 26px;
  height: 26px;
}

.contact-action-row:hover .action-arrow-wrap {
  color: #558632;
  transform: translateX(4px);
}

/* ==========================================================================
   CONTACT DESK FORM CARD (1:1 Exact Replica)
   ========================================================================== */
.contact-hero-form-wrapper {
  flex: 1;
  max-width: 470px;
  width: 100%;
  display: flex;
  justify-content: flex-end;
  animation: heroContentFadeIn 0.95s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.contact-desk-card {
  position: relative;
  width: 100%;
  background: rgba(20, 20, 20, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 22px;
  padding: clamp(22px, 3vh, 28px) clamp(20px, 2.5vw, 26px);
  box-shadow: 0 30px 70px -15px rgba(0, 0, 0, 0.85), 0 0 1px 1px rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(28px);
  -webkit-backdrop-filter: blur(28px);
  box-sizing: border-box;
  overflow: hidden;
}

.contact-desk-header {
  margin-bottom: 16px;
}

.contact-desk-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.contact-desk-title {
  font-family: var(--font-heading, 'Switzer', sans-serif);
  font-size: 1.18rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: #FFFFFF;
  margin: 0;
  text-transform: uppercase;
}

.contact-desk-online-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(85, 134, 50, 0.15);
  border: 1px solid rgba(85, 134, 50, 0.35);
  border-radius: 20px;
  padding: 4px 10px;
}

.cd-online-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #558632;
  box-shadow: none;
  animation: pulseDot 2s infinite ease-in-out;
}

@keyframes pulseDot {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.3);
    opacity: 0.7;
  }
}

.cd-online-text {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: #558632;
  text-transform: uppercase;
}

.contact-desk-sub {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.65);
  margin: 5px 0 0 0;
  font-weight: 400;
}

.contact-desk-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.cd-form-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.cd-label {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.82rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.9);
}

.cd-input,
.cd-textarea {
  width: 100%;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  padding: 10px 14px;
  color: #FFFFFF;
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.88rem;
  transition: color 0.2s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  outline: none;
}

.cd-input::placeholder,
.cd-textarea::placeholder {
  color: rgba(255, 255, 255, 0.35);
}

.cd-input:focus,
.cd-textarea:focus {
  border-color: #558632;
  background: rgba(255, 255, 255, 0.07);
  box-shadow: none;
}

.cd-textarea {
  resize: vertical;
  min-height: 75px;
}

/* Chips Grid */
.cd-chips-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 2px;
}

.cd-chip {
  padding: 6px 13px;
  border-radius: 30px;
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.78);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  user-select: none;
}

.cd-chip:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.25);
  color: #FFFFFF;
}

.cd-chip.active {
  background: rgba(85, 134, 50, 0.2);
  border-color: #558632;
  color: #FFFFFF;
}

/* Submit Button (HOT Green) */
.cd-submit-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #558632;
  color: #FFFFFF;
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.95rem;
  font-weight: 800;
  padding: 13px 20px;
  border-radius: 11px;
  border: none;
  cursor: pointer;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  margin-top: 4px;
}

.cd-submit-btn:hover {
  background: #669E3D;
  transform: translateY(-2px);
}

.cd-submit-btn:active {
  background: #466F29;
  transform: translateY(0);
}

.cd-btn-arrow {
  stroke: #FFFFFF;
  transition: transform 0.25s ease;
}

.cd-submit-btn:hover .cd-btn-arrow {
  transform: translateX(4px);
}

.cd-footer-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.74rem;
  color: rgba(255, 255, 255, 0.55);
  margin-top: 4px;
  text-align: center;
}

.cd-footer-note svg {
  color: rgba(255, 255, 255, 0.55);
}

/* Success Overlay */
.cd-success-overlay {
  position: absolute;
  inset: 0;
  background: rgba(18, 18, 18, 0.96);
  backdrop-filter: blur(14px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 30px;
  border-radius: 22px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 10;
}

.cd-success-overlay.active {
  opacity: 1;
  pointer-events: auto;
}

.cd-success-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.15);
  border: 1.5px solid #558632;
  color: #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}

.cd-success-overlay h3 {
  font-family: var(--font-heading, 'Switzer', sans-serif);
  font-size: 1.3rem;
  color: #FFFFFF;
  margin: 0 0 6px 0;
}

.cd-success-overlay p {
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.7);
  margin: 0 0 16px 0;
  max-width: 280px;
}

.cd-reset-btn {
  padding: 8px 18px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #FFFFFF;
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.cd-reset-btn:hover {
  background: rgba(255, 255, 255, 0.15);
}

/* Bottom Ticker Bar */
.contact-hero-bottom-bar {
  position: relative;
  z-index: 5;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 clamp(24px, 5.5vw, 80px) clamp(16px, 2.5vh, 28px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
}

.contact-hero-bottom-left {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: clamp(0.72rem, 0.8vw, 0.8rem);
  font-weight: 700;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
}

.contact-hero-bottom-right {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: clamp(0.72rem, 0.8vw, 0.8rem);
  font-weight: 700;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 10px;
}

.contact-ticker-dash {
  display: inline-block;
  width: 18px;
  height: 3px;
  background: #558632;
  border-radius: 2px;
}

/* ==========================================================================
   SECTION 02: COME SAY HI (100vh Luxury Storefront Section)
   ========================================================================== */
.come-say-hi-section {
  position: relative;
  width: 100%;
  min-height: 100vh;
  background-color: #121212;
  background-image: radial-gradient(circle at 15% 50%, rgba(85, 134, 50, 0.05) 0%, transparent 50%);
  display: flex;
  align-items: center;
  box-sizing: border-box;
  padding: clamp(60px, 8vh, 100px) 0;
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.come-say-hi-container {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 clamp(24px, 5.5vw, 80px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(40px, 6vw, 80px);
  box-sizing: border-box;
}

.say-hi-info-col {
  max-width: 520px;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.say-hi-heading {
  font-family: var(--font-heading, 'Switzer', sans-serif);
  font-size: clamp(3.2rem, 5.5vw, 5.4rem);
  font-weight: 800;
  line-height: 0.96;
  letter-spacing: -0.035em;
  color: #FFFFFF;
  margin: 0 0 1.25rem 0;
}

.say-hi-desc {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: clamp(1.05rem, 1.2vw, 1.2rem);
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 2.2rem;
  max-width: 460px;
}

.say-hi-details-list {
  display: flex;
  flex-direction: column;
  gap: 22px;
  width: 100%;
  margin-bottom: 2.4rem;
}

.say-hi-detail-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}

.say-hi-icon-wrap {
  width: 44px;
  height: 44px;
  min-width: 44px;
  border-radius: 12px;
  background: rgba(85, 134, 50, 0.12);
  border: 1px solid rgba(85, 134, 50, 0.3);
  color: #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}

.say-hi-item-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.say-hi-item-title {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 1.1rem;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0;
  letter-spacing: -0.01em;
}

.say-hi-item-text {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.92rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.7);
  margin: 0;
}

.say-hi-hours-table {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-top: 4px;
}

.say-hi-hour-row {
  display: flex;
  justify-content: space-between;
  gap: 32px;
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.9rem;
}

.say-hi-hour-row .hour-day {
  color: rgba(255, 255, 255, 0.65);
}

.say-hi-hour-row .hour-time {
  color: #FFFFFF;
  font-weight: 600;
}

.say-hi-hour-row .hour-time.closed {
  color: rgba(255, 255, 255, 0.45);
}

.say-hi-directions-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 26px;
  border-radius: 30px;
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #FFFFFF;
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.92rem;
  font-weight: 700;
  text-decoration: none;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.say-hi-directions-btn:hover {
  background: #222222;
  border-color: #558632;
  color: #FFFFFF;
  transform: translateX(4px);
}

/* Right Column: Interactive Map & Storefront Showcase */
.say-hi-visual-col {
  flex: 1.1;
  max-width: 620px;
  width: 100%;
  display: flex;
  justify-content: flex-end;
}

.say-hi-map-card {
  position: relative;
  width: 100%;
  height: 480px;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 32px 80px -20px rgba(0, 0, 0, 0.85);
  background: #141414;
}

.say-hi-google-map {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  border-radius: 24px;
}

.say-hi-map-bg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.68) contrast(1.15);
  display: block;
}

.say-hi-map-vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 50%, transparent 35%, rgba(18, 18, 18, 0.75) 100%), linear-gradient(to top, rgba(18, 18, 18, 0.85) 0%, transparent 40%);
  pointer-events: none;
}

.map-place-tag {
  position: absolute;
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  color: rgba(255, 255, 255, 0.4);
  text-transform: uppercase;
  pointer-events: none;
}

.tag-riverside {
  top: 18%;
  left: 20%;
}

.tag-downtown {
  top: 28%;
  right: 24%;
}

.tag-victoria {
  bottom: 35%;
  left: 18%;
}

.tag-stpaul {
  top: 42%;
  left: 36%;
}

/* Map Pin */
.map-hot-pin-cluster {
  position: absolute;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 5;
}

.pin-core-marker {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #558632;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  position: relative;
}

.pin-pulse-wave {
  position: absolute;
  top: 19px;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  border: 2px solid #558632;
  opacity: 0.8;
  animation: pinPulse 2.4s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
  pointer-events: none;
}

.pin-pulse-wave.wave-2 {
  animation-delay: 1.2s;
}

@keyframes pinPulse {
  0% {
    width: 20px;
    height: 20px;
    opacity: 0.9;
  }
  100% {
    width: 90px;
    height: 90px;
    opacity: 0;
  }
}

.pin-location-badge {
  margin-top: 8px;
  background: rgba(18, 18, 18, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 8px;
  padding: 4px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(8px);
}

.pin-loc-name {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.78rem;
  font-weight: 800;
  color: #FFFFFF;
}

.pin-loc-sub {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.65rem;
  color: rgba(255, 255, 255, 0.6);
}

/* Overlapping Storefront Photo Inset Card */
.say-hi-storefront-inset {
  position: absolute;
  bottom: 18px;
  right: 18px;
  width: 250px;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.9);
  z-index: 6;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.say-hi-storefront-inset:hover {
  transform: translateY(-4px) scale(1.02);
}

.storefront-photo-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.storefront-photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.storefront-card-badge {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 12px 14px;
  background: linear-gradient(to top, rgba(12, 12, 12, 0.96) 0%, rgba(12, 12, 12, 0.7) 70%, transparent 100%);
  display: flex;
  flex-direction: column;
  gap: 2px;
  box-sizing: border-box;
}

.storefront-badge-brand {
  font-family: var(--font-heading, 'Switzer', sans-serif);
  font-size: 0.78rem;
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: 0.04em;
}

.storefront-badge-tagline {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.64rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.7);
}

/* ==========================================================================
   Responsive Adjustments for Contact Sections
   ========================================================================== */
@media (max-width: 1080px) {
  .contact-hero-container {
    flex-direction: column;
    align-items: center;
    gap: 40px;
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .come-say-hi-container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .say-hi-info-col {
    display: contents;
  }

  .say-hi-heading {
    order: 1;
    width: 100%;
    margin-bottom: 12px;
  }

  .say-hi-desc {
    order: 2;
    width: 100%;
    margin-bottom: 24px;
    max-width: 100%;
  }

  .say-hi-visual-col {
    order: 3;
    width: 100%;
    max-width: 100%;
    margin-bottom: 28px;
  }

  .say-hi-details-list {
    order: 4;
    width: 100%;
    margin-bottom: 26px;
  }

  .say-hi-directions-btn {
    order: 5;
    align-self: flex-start;
  }

  .say-hi-storefront-inset {
    display: none !important;
  }

  .contact-hero-fullscreen {
    height: auto;
    min-height: 100vh;
    background-image: url('assets/webp/final/contacthero-m.webp');
    background-position: center top;
    background-size: cover;
    background-repeat: no-repeat;
  }

  .come-say-hi-section {
    height: auto;
    min-height: 100vh;
  }

  .contact-hero-content {
    max-width: 100%;
    width: 100%;
    align-items: flex-start;
    text-align: left;
  }

  .contact-action-list {
    max-width: 100%;
    margin-top: clamp(18px, 3.5vh, 32px);
  }

  .say-hi-map-card {
    height: 380px;
  }
}

@media (max-width: 640px) {
  .contact-action-list {
    margin-top: clamp(22px, 4.5vh, 38px);
  }

  .contact-desk-card {
    padding: 20px 16px;
  }

  .say-hi-map-card {
    height: 320px;
  }

  .say-hi-storefront-inset {
    display: none !important;
  }
}


/* Gallery Page: clearance under fixed 80px navbar */
body.gallery-page .behind-meals-section {
  padding-top: 100px;
  height: auto;
  min-height: auto;
  box-sizing: border-box;
}

/* Nutrition Page: ensure label section clears fixed 80px navbar and fills viewport gracefully */
body.nutrition-page .nutrition-label-section,
body.nutrition-page .nutrition-breakdown-section {
  padding-top: calc(80px + 6px);
  min-height: 100vh;
  box-sizing: border-box;
}

/* About Us Page: strict 100vh canvas sections */
body.about-page .problem-friction-section {
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  box-sizing: border-box;
}

body.about-page .quality-steps-section {
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  box-sizing: border-box;
}

body.about-page .protein-showcase-section {
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  box-sizing: border-box;
}

/* Order Page: ensure build section clears fixed 80px navbar smoothly */
body.order-page .build-meal-section {
  padding-top: 110px;
}

/* ==========================================================================
   NUTRITION SECTION: "SEE THE NUTRITION — REAL FUEL. REAL RESULTS."
   1:1 Reference Replication (Dark Luxury #121212, Neon Green #558632)
   ========================================================================== */

.nutrition-breakdown-section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  background-color: #121212;
  background-image: none;
  color: #FFFFFF;
  padding: 32px 4.5vw 28px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  box-sizing: border-box;
  font-family: var(--font-body, sans-serif);
}

/* Ambient Subtle Lighting */
.nutrition-breakdown-section::before {
  content: '';
  position: absolute;
  top: -10%;
  right: -5%;
  width: 480px;
  height: 480px;
  background: none;
  pointer-events: none;
  filter: blur(80px);
}

/* --- Top Sub-Bar (1:1 Reference) --- */
.nutrition-top-bar {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 22px;
  z-index: 10;
}

.nutrition-bar-left {
  display: flex;
  align-items: center;
  gap: 28px;
}

.nutrition-bar-tag {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #FFFFFF;
  text-transform: uppercase;
}

.nutrition-bar-counter {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.7);
  font-feature-settings: 'tnum';
}

.nutrition-bar-center {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.nutrition-bar-logo {
  font-family: var(--font-display, sans-serif);
  font-size: 24px;
  letter-spacing: 0.14em;
  font-weight: 800;
  color: #FFFFFF;
  text-transform: uppercase;
  white-space: nowrap;
}

.nutrition-bar-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(18, 22, 20, 0.65);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  padding: 8px 18px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #FFFFFF;
  text-decoration: none;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.nutrition-bar-btn:hover {
  background: rgba(24, 32, 27, 0.9);
  border-color: #558632;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
  transform: translateY(-1px);
}

.btn-dot-live {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
  display: inline-block;
  animation: pulseDotLive 2s infinite ease-in-out;
}

@keyframes pulseDotLive {

  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: 0.4;
    transform: scale(0.85);
  }
}

.btn-arrow-up-right {
  width: 14px;
  height: 14px;
  transition: transform 0.2s ease;
}

.nutrition-bar-btn:hover .btn-arrow-up-right {
  transform: translate(2px, -2px);
}

/* --- Main Stage Grid --- */
.nutrition-stage {
  position: relative;
  width: 100%;
  flex: 1;
  display: grid;
  grid-template-columns: 340px 1fr 280px;
  align-items: center;
  gap: 40px;
  margin: 16px 0;
  z-index: 5;
}

/* --- Left Column: Typography & Serving Basis --- */
.nutrition-left-col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  z-index: 6;
}

.nutrition-eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.nutrition-title {
  font-size: clamp(42px, 4.2vw, 64px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.035em;
  color: #FFFFFF;
  margin: 0 0 26px 0;
  display: flex;
  flex-direction: column;
  text-transform: lowercase;
}

.title-word {
  display: inline-block;
}

.accent-dot {
  color: #558632;
  display: inline-block;
  font-weight: 900;
}

.nutrition-desc {
  font-size: 14.5px;
  font-weight: 400;
  line-height: 1.65;
  color: #E7ECE9;
  margin-bottom: 34px;
  max-width: 320px;
  letter-spacing: -0.01em;
}

.nutrition-serving-badge {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  background: rgba(14, 18, 16, 0.45);
  backdrop-filter: blur(12px);
  padding: 8px 16px 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.serving-icon-ring {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1.5px solid #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(85, 134, 50, 0.08);
  flex-shrink: 0;
}

.serving-cutlery-icon {
  width: 20px;
  height: 20px;
  color: #558632;
}

.serving-text-group {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.serving-label {
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #E7ECE9;
  text-transform: uppercase;
}

.serving-val {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #FFFFFF;
  text-transform: uppercase;
}

/* --- Center Visual Layer --- */
.nutrition-visual-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  perspective: 1200px;
  z-index: 4;
}

.nutrition-dish-card {
  position: relative;
  max-width: 780px;
  width: 100%;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  transform-style: preserve-3d;
  will-change: transform;
  cursor: grab;
}

.nutrition-dish-card:active {
  cursor: grabbing;
}

.nutrition-food-img {
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 28px 56px rgba(0, 0, 0, 0.95));
  pointer-events: none;
  user-select: none;
}

.nutrition-visual-glow {
  position: absolute;
  inset: 15% 15%;
  background: none;
  pointer-events: none;
  z-index: -1;
  filter: blur(40px);
}

/* --- Right Column: Macro Cards --- */
.nutrition-right-col {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  width: 100%;
  max-width: 250px;
  justify-self: end;
  z-index: 6;
}

.macro-cards-stack {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
}

.macro-card {
  position: relative;
  width: 100%;
  padding: 16px 20px 12px;
  background: rgba(14, 18, 16, 0.72);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
  overflow: hidden;
}

.macro-card:hover {
  background: rgba(20, 26, 23, 0.88);
  border-color: rgba(85, 134, 50, 0.35);
  transform: translateX(-4px);
}

.macro-card.is-active-macro {
  border: 1.5px solid #558632;
  background: rgba(16, 22, 18, 0.88);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.55);
}

.macro-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}

.macro-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #E7ECE9;
  text-transform: uppercase;
}

.macro-pulse-dot {
  position: absolute;
  right: 14px;
  top: 18px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.macro-val-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 6px;
}

.macro-num {
  font-size: 40px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.03em;
  color: #FFFFFF;
  font-feature-settings: 'tnum';
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.macro-unit {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.55);
}

.macro-sparkline {
  width: 100%;
  height: 22px;
  margin-top: 2px;
}

.sparkline-svg {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}

.macro-disclaimer {
  font-size: 11px;
  font-weight: 400;
  line-height: 1.5;
  color: #A7B0AB;
  text-align: right;
  margin-top: 14px;
  max-width: 230px;
  letter-spacing: -0.01em;
}

/* --- Bottom Floating Tray Dock --- */
.nutrition-bottom-dock {
  width: 100%;
  display: flex;
  justify-content: center;
  z-index: 10;
  margin-top: 10px;
}

.nutrition-dock-card {
  display: inline-flex;
  align-items: center;
  background: rgba(12, 16, 14, 0.88);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 22px;
  padding: 10px 22px;
  gap: 20px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.7);
  max-width: 100%;
}

.dock-current-meal {
  display: flex;
  align-items: center;
  gap: 14px;
}

.current-thumb-wrap {
  position: relative;
  width: 50px;
  height: 50px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.14);
  flex-shrink: 0;
  background: #000000;
}

.current-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: opacity 0.25s ease;
}

.thumb-active-dot {
  position: absolute;
  bottom: 3px;
  right: 3px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #558632;
  box-shadow: none;
}

.current-meta {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.current-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #E7ECE9;
  text-transform: uppercase;
}

.current-name {
  font-size: 13px;
  font-weight: 600;
  color: #FFFFFF;
  white-space: nowrap;
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -0.01em;
}

.dock-divider {
  width: 1px;
  height: 38px;
  background: rgba(255, 255, 255, 0.1);
}

/* 3D Rotation Widget */
.dock-rotate-widget {
  position: relative;
  width: 66px;
  height: 66px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border-radius: 50%;
  transition: transform 0.25s ease, background 0.25s ease;
}

.dock-rotate-widget:hover {
  background: rgba(255, 255, 255, 0.04);
  transform: scale(1.05);
}

.rotate-curve-text {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  animation: spinSlowCube 16s linear infinite;
  pointer-events: none;
}

@keyframes spinSlowCube {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.curve-label {
  font-size: 7.2px;
  font-weight: 700;
  letter-spacing: 0.2em;
  fill: rgba(255, 255, 255, 0.65);
  text-transform: uppercase;
  font-family: var(--font-body, sans-serif);
}

.rotate-cube-icon {
  width: 22px;
  height: 22px;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Meals Carousel */
.dock-meals-carousel {
  display: flex;
  align-items: center;
  gap: 10px;
}

.meal-thumb-item {
  position: relative;
  width: 84px;
  height: 52px;
  border-radius: 12px;
  overflow: hidden;
  border: 1.5px solid rgba(255, 255, 255, 0.1);
  background: #000000;
  padding: 0;
  cursor: pointer;
  transition: color 0.22s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

.meal-thumb-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.meal-thumb-item:hover {
  border-color: rgba(255, 255, 255, 0.7);
  transform: translateY(-2px);
}

.meal-thumb-item.is-active-meal {
  border-color: #558632;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
  transform: scale(1.04);
}

.meal-corner-icon {
  position: absolute;
  top: 3px;
  right: 4px;
  font-size: 10px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.8);
  pointer-events: none;
  line-height: 1;
}

.dock-nav-arrows {
  display: flex;
  align-items: center;
  gap: 8px;
}

.dock-arrow-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  padding: 0;
}

.dock-arrow-btn svg {
  width: 15px;
  height: 15px;
}

.dock-arrow-btn:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #558632;
  color: #558632;
  transform: scale(1.05);
}

/* --- Responsive Layout --- */
@media (max-width: 1200px) {
  .nutrition-stage {
    grid-template-columns: 280px 1fr 240px;
    gap: 24px;
  }

  .nutrition-title {
    font-size: 40px;
  }

  .macro-num {
    font-size: 34px;
  }

  .current-name {
    max-width: 160px;
  }
}

@media (max-width: 992px) {
  .nutrition-breakdown-section {
    min-height: auto;
    padding: 30px 24px 36px;
  }

  .nutrition-stage {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .nutrition-left-col {
    align-items: center;
    text-align: center;
  }

  .nutrition-desc {
    max-width: 480px;
  }

  .nutrition-right-col {
    max-width: 100%;
    align-items: center;
    justify-self: center;
  }

  .macro-cards-stack {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    max-width: 500px;
  }

  .macro-disclaimer {
    text-align: center;
  }

  .nutrition-dock-card {
    flex-wrap: wrap;
    justify-content: center;
  }
}

@media (max-width: 640px) {
  .nutrition-top-bar {
    flex-direction: column;
    gap: 14px;
  }

  .nutrition-bar-center {
    position: static;
    transform: none;
  }

  .macro-cards-stack {
    grid-template-columns: 1fr;
  }

  .nutrition-dock-card {
    gap: 12px;
    padding: 12px;
  }

  .dock-divider {
    display: none;
  }

  .dock-meals-carousel {
    overflow-x: auto;
    max-width: 100%;
    padding-bottom: 4px;
  }
}

/* ==========================================================================
   SECTION: INGREDIENT TRANSPARENCY ("WHAT'S IN YOUR MEAL, NOTHING TO HIDE.")
   1:1 Reference Replication (Deep Charcoal #121212, Emerald #558632)
   ========================================================================== */

.ingredient-transparency-section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  background-color: #121212;
  background-image:
none;
  color: #FFFFFF;
  padding: 24px 4vw 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-sizing: border-box;
  font-family: var(--font-body, sans-serif);
}

.ingredient-transparency-section::before {
  content: '';
  position: absolute;
  top: 15%;
  left: 30%;
  width: 550px;
  height: 550px;
  background: none;
  pointer-events: none;
  filter: blur(100px);
}

.transparency-container {
  position: relative;
  width: 100%;
  max-width: 1540px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 360px auto 350px;
  justify-content: center;
  align-items: center;
  gap: 0 24px;
  z-index: 2;
  height: 100%;
  max-height: calc(100vh - 48px);
}

/* --- Left Column: Typography & Badges --- */
.transparency-left-col {
  display: flex;
  flex-direction: column;
  gap: 14px;
  z-index: 5;
}

/* Eyebrow */
.transparency-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.transparency-eyebrow-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.transparency-eyebrow-text {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #E0E0E0;
  text-transform: uppercase;
}

/* Headline */
.transparency-headline {
  font-family: var(--font-body, sans-serif);
  font-size: clamp(32px, 3.1vw, 46px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #FFFFFF;
  margin: 0;
  display: flex;
  flex-direction: column;
}

.transparency-title-line {
  display: block;
}

.transparency-accent-dot {
  color: #558632;
}

/* Description */
.transparency-description {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 14px;
  line-height: 1.48;
  color: rgba(255, 255, 255, 0.68);
}

.transparency-p-main {
  margin: 0;
  color: rgba(255, 255, 255, 0.75);
}

.transparency-p-sub {
  margin: 0;
  color: rgba(255, 255, 255, 0.58);
}

/* Feature Leaf Badge */
.transparency-leaf-badge {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 2px;
}

.leaf-badge-icon-wrap {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.08);
  border: 1px solid rgba(85, 134, 50, 0.28);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

.leaf-svg-icon {
  width: 18px;
  height: 18px;
  color: #558632;
}

.leaf-badge-text-wrap {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.leaf-text-top {
  font-size: 12.5px;
  font-weight: 600;
  color: #FFFFFF;
  letter-spacing: -0.01em;
}

.leaf-text-bot {
  font-size: 11.5px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.5);
}

/* Macro Stats Capsule */
.transparency-macro-capsule {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(18, 24, 20, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 10px 16px;
  margin-top: 2px;
  max-width: 340px;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.macro-capsule-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.capsule-num {
  font-size: 18px;
  font-weight: 700;
  color: #558632;
  letter-spacing: -0.02em;
  font-feature-settings: 'tnum';
}

.capsule-label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
}

.capsule-divider {
  width: 1px;
  height: 22px;
  background: rgba(255, 255, 255, 0.08);
}

/* Video Action Button */
.transparency-video-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(22, 28, 25, 0.65);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  padding: 5px 14px 5px 6px;
  cursor: pointer;
  width: fit-content;
  margin-top: 2px;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.transparency-video-btn:hover {
  background: rgba(85, 134, 50, 0.12);
  border-color: rgba(85, 134, 50, 0.35);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}

.video-btn-play-circle {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s ease;
}

.transparency-video-btn:hover .video-btn-play-circle {
  background: #558632;
}

.video-play-icon {
  width: 13px;
  height: 13px;
  color: #FFFFFF;
  margin-left: 2px;
  transition: color 0.2s ease;
}

.transparency-video-btn:hover .video-play-icon {
  color: #121212;
}

.video-btn-label {
  font-size: 12.5px;
  font-weight: 600;
  color: #FFFFFF;
  letter-spacing: -0.01em;
}

.video-btn-duration {
  font-size: 11px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.65);
  background: rgba(0, 0, 0, 0.35);
  padding: 2px 7px;
  border-radius: 5px;
  font-feature-settings: 'tnum';
}

/* --- Center Column: 4K Exploded Meal Prep Visual --- */
.transparency-center-stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  max-height: calc(100vh - 40px);
  perspective: 1200px;
  z-index: 4;
}

/* 4K Dish Wrap & 3D Tilt */
.transparency-dish-wrap {
  position: relative;
  max-width: 490px;
  width: 100%;
  height: 100%;
  max-height: calc(100vh - 46px);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  transform-style: preserve-3d;
  will-change: transform;
  cursor: grab;
}

.transparency-dish-wrap:active {
  cursor: grabbing;
}

.transparency-exploded-img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: calc(100vh - 54px);
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 25px 50px rgba(0, 0, 0, 0.98));
  user-select: none;
  pointer-events: none;
}

.transparency-dish-glow {
  position: absolute;
  inset: 15% 15%;
  background: none;
  pointer-events: none;
  z-index: -1;
  filter: blur(55px);
}

/* Interactive Glowing Overlays for Ingredients */
.transparency-glow-overlays {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.ingredient-glow-overlay {
  position: absolute;
  left: 20%;
  right: 12%;
  border-radius: 50%;
  background: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

.ingredient-glow-overlay.glow-protein {
  top: 25%;
  height: 8%;
}

.ingredient-glow-overlay.glow-seasoning {
  top: 35%;
  height: 6%;
}

.ingredient-glow-overlay.glow-carb {
  top: 44%;
  height: 8%;
}

.ingredient-glow-overlay.glow-carb-seasoning {
  top: 54%;
  height: 6%;
}

.ingredient-glow-overlay.glow-vegetables {
  top: 63%;
  height: 9%;
}

.ingredient-glow-overlay.is-active-glow {
  opacity: 1;
}

/* Bottom Scroll Hint */
.transparency-scroll-hint {
  position: absolute;
  bottom: 0px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  pointer-events: none;
  z-index: 8;
}

.scroll-hint-text {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
}

.scroll-hint-arrow {
  width: 14px;
  height: 14px;
  color: #558632;
  animation: pulseArrow 2s ease-in-out infinite;
}

@keyframes pulseArrow {

  0%,
  100% {
    transform: translateY(0);
    opacity: 0.7;
  }

  50% {
    transform: translateY(5px);
    opacity: 1;
  }
}

/* --- Right Column: Callout Annotations & Vector Arrows --- */
.transparency-right-col {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  height: 100%;
  max-height: calc(100vh - 46px);
  z-index: 6;
}

.transparency-callouts-stack {
  position: relative;
  width: 100%;
  height: 100%;
  max-height: 680px;
}

.transparency-callout-card {
  position: absolute;
  right: 0;
  width: fit-content;
  display: flex;
  align-items: center;
  cursor: pointer;
  padding: 8px 14px 8px 18px;
  border-radius: 8px;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

#callout-protein {
  top: 23%;
}

#callout-seasoning {
  top: 33%;
}

#callout-carb {
  top: 44%;
}

#callout-carb-seasoning {
  top: 54%;
}

#callout-vegetables {
  top: 65%;
}

.transparency-callout-card:hover,
.transparency-callout-card.is-active-callout {
  background: rgba(255, 255, 255, 0.04);
  transform: translateX(6px);
}

/* Vector Arrow Connector */
.callout-connector-wrap {
  position: absolute;
  left: -95px;
  width: 105px;
  height: 36px;
  pointer-events: none;
  z-index: 5;
}

.connector-arrow-svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.connector-dot {
  fill: rgba(255, 255, 255, 0.35);
  transition: fill 0.25s ease, filter 0.25s ease;
}

.connector-dot.dot-green {
  fill: #558632;
}

.connector-path {
  fill: none;
  stroke: rgba(255, 255, 255, 0.24);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke 0.25s ease, filter 0.25s ease, stroke-width 0.25s ease;
}

.transparency-callout-card:hover .connector-dot,
.transparency-callout-card.is-active-callout .connector-dot {
  fill: #558632 !important;
}

.transparency-callout-card:hover .connector-path,
.transparency-callout-card.is-active-callout .connector-path {
  stroke: #558632 !important;
  stroke-width: 2 !important;
}

.connector-arrow-svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.connector-dot {
  fill: rgba(255, 255, 255, 0.35);
  transition: fill 0.25s ease, filter 0.25s ease;
}

.connector-dot.dot-green {
  fill: #558632;
}

.connector-path {
  fill: none;
  stroke: rgba(255, 255, 255, 0.24);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke 0.25s ease, filter 0.25s ease, stroke-width 0.25s ease;
}

.transparency-callout-card:hover .connector-dot,
.transparency-callout-card.is-active-callout .connector-dot {
  fill: #558632 !important;
}

.transparency-callout-card:hover .connector-path,
.transparency-callout-card.is-active-callout .connector-path {
  stroke: #558632 !important;
  stroke-width: 2 !important;
}

.callout-text-wrap {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.callout-category {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #FFFFFF;
  text-transform: uppercase;
  transition: color 0.2s ease;
}

.transparency-callout-card:hover .callout-category,
.transparency-callout-card.is-active-callout .callout-category {
  color: #558632;
}

.callout-title {
  font-size: 14.5px;
  font-weight: 600;
  color: #558632;
  letter-spacing: -0.01em;
  margin: 0;
  line-height: 1.2;
}

.callout-meta {
  font-size: 11.5px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.65);
  margin: 0;
  font-feature-settings: 'tnum';
}

.callout-tags {
  font-size: 11px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.7);
  margin: 0;
}

.meta-sep {
  color: rgba(255, 255, 255, 0.7);
  margin: 0 2px;
}

/* --- Video Modal Preview --- */
.transparency-video-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.transparency-video-modal.is-open {
  opacity: 1;
  pointer-events: auto;
}

.video-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.video-modal-card {
  position: relative;
  width: 90%;
  max-width: 720px;
  background: #0D120F;
  border: 1px solid rgba(85, 134, 50, 0.3);
  border-radius: 20px;
  padding: 28px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.85);
  transform: scale(0.95);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 2;
}

.transparency-video-modal.is-open .video-modal-card {
  transform: scale(1);
}

.video-modal-close {
  position: absolute;
  top: 18px;
  right: 22px;
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.6);
  font-size: 28px;
  cursor: pointer;
  line-height: 1;
  transition: color 0.2s ease;
}

.video-modal-close:hover {
  color: #558632;
}

.video-modal-header {
  margin-bottom: 18px;
}

.video-modal-tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #558632;
  text-transform: uppercase;
  display: block;
  margin-bottom: 6px;
}

.video-modal-title {
  font-size: 20px;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0;
}

.video-modal-viewport {
  position: relative;
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  background: #000000;
  aspect-ratio: 16/9;
}

.video-modal-poster {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.7;
}

.video-modal-play-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: radial-gradient(circle, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.7) 100%);
}

.video-modal-pulse-circle {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #558632;
  color: #121212;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
}

.video-modal-pulse-circle svg {
  width: 24px;
  height: 24px;
  margin-left: 3px;
}

.video-modal-status {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #FFFFFF;
}

.video-modal-progress-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: rgba(255, 255, 255, 0.15);
}

.video-progress-fill {
  width: 45%;
  height: 100%;
  background: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

/* --- Responsive Breakpoints for Transparency Section --- */
@media (max-width: 1360px) {
  .transparency-container {
    grid-template-columns: 320px 1fr 280px;
    gap: 20px;
  }

  .transparency-headline {
    font-size: 42px;
  }

  .transparency-seal-stamp {
    left: -4%;
    width: 100px;
    height: 100px;
  }
}

@media (max-width: 1100px) {
  .ingredient-transparency-section {
    min-height: auto;
    padding: 60px 4vw 48px;
  }

  .transparency-container {
    grid-template-columns: 1fr;
    gap: 48px;
    max-width: 760px;
  }

  .transparency-left-col {
    align-items: center;
    text-align: center;
  }

  .transparency-headline {
    align-items: center;
  }

  .transparency-leaf-badge {
    justify-content: center;
  }

  .transparency-seal-stamp {
    position: static;
    margin: 0 auto 16px;
  }

  .transparency-right-col {
    max-width: 100%;
  }

  .transparency-callouts-stack {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

@media (max-width: 640px) {
  .transparency-callouts-stack {
    grid-template-columns: 1fr;
  }

  .transparency-macro-capsule {
    width: 100%;
    padding: 12px 14px;
  }

  .capsule-num {
    font-size: 17px;
  }

  .capsule-label {
    font-size: 8.5px;
  }
}

/* ==========================================================================
   BUILD YOUR PERFECT MEAL — 1:1 INTERACTIVE SELECTION UI & MENU BOARD
   Theme: Deep Obsidian (#121212), Emerald Laser (#558632), Luxury Slate
   ========================================================================== */

.build-meal-section {
  position: relative;
  width: 100%;
  min-height: 100vh;
  background-color: #121212;
  color: #FFFFFF;
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, sans-serif;
  padding: 100px 32px 140px;
  box-sizing: border-box;
  overflow: hidden;
  z-index: 5;
}

/* Ambient Radial Glows */
.build-ambient-glow-top {
  position: absolute;
  top: -150px;
  left: 50%;
  transform: translateX(-50%);
  width: 900px;
  height: 450px;
  background: none;
  pointer-events: none;
  z-index: 1;
}

.build-ambient-glow-right {
  position: absolute;
  top: 40%;
  right: -200px;
  width: 650px;
  height: 650px;
  background: none;
  pointer-events: none;
  z-index: 1;
}

.build-container {
  position: relative;
  max-width: 1380px;
  margin: 0 auto;
  z-index: 2;
}

/* Section Header & View Mode Switcher */
.build-top-nav-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  flex-wrap: wrap;
  gap: 16px;
}

.build-brand-badge {
  display: flex;
  align-items: center;
  gap: 12px;
}

.build-brand-hot-pill {
  background: #558632;
  color: #000000;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 16px;
  letter-spacing: 1.5px;
  padding: 4px 10px;
  border-radius: 6px;
  font-weight: 800;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
}

.build-brand-sub {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  color: #E7ECE9;
  text-transform: uppercase;
}

.build-view-switcher {
  display: inline-flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  padding: 4px;
  gap: 4px;
}

.view-mode-pill {
  background: transparent;
  border: none;
  color: #E7ECE9;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13px;
  font-weight: 600;
  padding: 8px 18px;
  border-radius: 999px;
  cursor: pointer;
  transition: color 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, opacity 0.22s ease, transform 0.22s ease;
  display: flex;
  align-items: center;
  gap: 6px;
}

.view-mode-pill:hover {
  color: #FFFFFF;
}

.view-mode-pill.active {
  background: #558632;
  color: #121212;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

/* ==========================================================================
   VIEW 1: INTERACTIVE STEP BUILDER (Split Screen Layout)
   ========================================================================== */
.interactive-builder-stage {
  display: block;
  animation: fadeInStage 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.interactive-builder-stage.hidden,
.menu-board-stage.hidden {
  display: none !important;
}

@keyframes fadeInStage {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Stepper Track */
.builder-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
  position: relative;
  background: rgba(13, 19, 16, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 16px;
  padding: 14px 24px;
  backdrop-filter: blur(12px);
  overflow-x: auto;
  scrollbar-width: none;
}

.builder-stepper::-webkit-scrollbar {
  display: none;
}

.stepper-item {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 6px 10px;
  border-radius: 8px;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}

.stepper-num {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  color: #E7ECE9;
  border: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13px;
  font-weight: 700;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.stepper-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.2px;
  color: #A7B0AB;
  text-transform: uppercase;
  transition: color 0.2s ease;
}

.stepper-item:hover .stepper-label {
  color: #FFFFFF;
}

.stepper-item.active .stepper-num {
  background: #558632;
  color: #121212;
  border-color: #558632;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.stepper-item.active .stepper-label {
  color: #558632;
}

.stepper-item.completed .stepper-num {
  background: rgba(85, 134, 50, 0.15);
  color: #558632;
  border-color: rgba(85, 134, 50, 0.4);
}

.stepper-divider {
  flex: 1;
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
  margin: 0 12px;
  min-width: 24px;
}

/* Split Columns */
.builder-split-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 36px;
  align-items: start;
}

/* Left Pane: Steps Content */
.builder-left-pane {
  background: rgba(13, 19, 16, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  padding: 36px;
  backdrop-filter: blur(16px);
  position: relative;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
}

.step-panel {
  display: none;
  animation: fadeInStep 0.25s ease;
}

.step-panel.active {
  display: block;
}

@keyframes fadeInStep {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.step-eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 2px;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.step-headline {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 34px;
  font-weight: 800;
  line-height: 1.15;
  color: #FFFFFF;
  margin-bottom: 8px;
  letter-spacing: -0.5px;
}

.step-subtext {
  font-size: 14px;
  color: #E7ECE9;
  line-height: 1.5;
  margin-bottom: 28px;
}

/* Cards Grids */
.b-cards-grid {
  display: grid;
  gap: 16px;
}

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

.grid-3col {
  grid-template-columns: repeat(3, 1fr);
}

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

/* Card Component */
.b-card {
  position: relative;
  background: #181818;
  border: 1.5px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 16px;
  cursor: pointer;
  transition: color 0.22s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.b-card:hover {
  border-color: rgba(85, 134, 50, 0.45);
  background: #121A15;
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.55);
}

.b-card.selected {
  border-color: #558632;
  background: #1E1E1E;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.55);
}

/* Checkmark badge in card */
.b-card-check {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  z-index: 3;
}

.b-card-check svg {
  width: 13px;
  height: 13px;
  stroke: transparent;
  stroke-width: 3;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.b-card.selected .b-card-check {
  background: #558632;
  border-color: #558632;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}

.b-card.selected .b-card-check svg {
  stroke: #121212;
}

/* Card Visual Wrapper */
.b-card-media {
  position: relative;
  width: 100%;
  height: 130px;
  border-radius: 10px;
  overflow: hidden;
  background: #121212;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}

.b-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.b-card:hover .b-card-media img {
  transform: scale(1.06);
}

.b-card-media.contain-fit img {
  object-fit: contain;
  padding: 6px;
}

/* Card Info */
.b-card-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 4px;
}

.b-card-title {
  font-size: 15px;
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: 0.2px;
}

.b-card-badge {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1px;
  color: #558632;
  background: rgba(85, 134, 50, 0.12);
  padding: 2px 7px;
  border-radius: 4px;
}

.b-card-desc {
  font-size: 12px;
  color: #E7ECE9;
  line-height: 1.4;
  margin-bottom: 8px;
}

.b-card-tags {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  font-size: 11px;
  color: #A7B0AB;
  font-weight: 500;
}

.b-card-tags span {
  display: inline-flex;
  align-items: center;
}

.tag-dot {
  width: 3px;
  height: 3px;
  background: #383838;
  border-radius: 50%;
  margin: 0 4px;
}

/* Seasoning Card Compact Style */
.b-card-seasoning {
  padding: 14px 12px;
  text-align: center;
  align-items: center;
}

.b-card-seasoning .b-card-media {
  height: 90px;
  background: transparent;
}

.b-card-seasoning .b-card-title {
  font-size: 13.5px;
  text-align: center;
}

/* Veggie Portion Box */
.veggie-portion-panel {
  background: #181818;
  border: 1.5px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 24px;
  margin-top: 20px;
}

.portion-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.portion-label {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #FFFFFF;
  text-transform: uppercase;
}

.portion-options-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.portion-btn {
  background: rgba(255, 255, 255, 0.04);
  border: 1.5px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 14px;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  color: #FFFFFF;
}

.portion-btn:hover {
  border-color: rgba(85, 134, 50, 0.4);
  background: rgba(85, 134, 50, 0.05);
}

.portion-btn.active {
  border-color: #558632;
  background: rgba(85, 134, 50, 0.12);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

.portion-bowl-svg {
  width: 38px;
  height: 38px;
  stroke: #558632;
  stroke-width: 1.7;
  fill: none;
}

.portion-text-info strong {
  display: block;
  font-size: 16px;
  font-weight: 800;
  color: #FFFFFF;
}

.portion-text-info span {
  font-size: 12px;
  color: #E7ECE9;
}

/* Pack Tiers Cards in Step 5 */
.pack-tier-card {
  position: relative;
  background: #181818;
  border: 1.5px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 20px;
  cursor: pointer;
  transition: color 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, opacity 0.22s ease, transform 0.22s ease;
}

.pack-tier-card:hover {
  border-color: rgba(85, 134, 50, 0.4);
  transform: translateY(-3px);
}

.pack-tier-card.selected {
  border-color: #558632;
  background: #1E1E1E;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.55);
}

.pack-popular-badge {
  position: absolute;
  top: -10px;
  right: 18px;
  background: #558632;
  color: #121212;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1px;
  padding: 3px 10px;
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
}

.pack-tier-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 8px;
}

.pack-tier-name {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.5px;
  color: #E7ECE9;
  text-transform: uppercase;
}

.pack-tier-meals {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 26px;
  color: #FFFFFF;
  margin-bottom: 4px;
}

.pack-tier-price {
  font-size: 22px;
  font-weight: 800;
  color: #558632;
}

.pack-tier-per {
  font-size: 12px;
  color: #A7B0AB;
}

/* Add-on Protein Bag in Step 5 */
.addon-protein-banner {
  background: #181818;
  border: 1.5px solid rgba(85, 134, 50, 0.3);
  border-radius: 16px;
  padding: 20px;
  margin-top: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.addon-left-info {
  display: flex;
  align-items: center;
  gap: 16px;
}

.addon-bag-img-wrap {
  width: 90px;
  height: 60px;
  border-radius: 8px;
  overflow: hidden;
  background: #121212;
}

.addon-bag-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.addon-details strong {
  display: block;
  font-size: 15px;
  font-weight: 800;
  color: #FFFFFF;
  margin-bottom: 4px;
}

.addon-details span {
  font-size: 12px;
  color: #E7ECE9;
  display: block;
}

.addon-price-action {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.addon-price-display {
  display: flex;
  flex-direction: column;
}

.addon-price-val {
  font-size: 20px;
  font-weight: 800;
  color: #558632;
  line-height: 1.1;
}

.addon-price-unit {
  font-size: 11px;
  font-weight: 600;
  color: #9CA3AF;
  letter-spacing: 0.3px;
}

/* Plus/Minus Quantity Stepper */
.addon-qty-stepper {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #111413;
  border: 1.5px solid rgba(85, 134, 50, 0.4);
  border-radius: 999px;
  padding: 4px 6px;
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.6);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.addon-qty-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
  color: #FFFFFF;
  font-size: 18px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.18s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.18s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.18s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.18s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.18s cubic-bezier(0.16, 1, 0.3, 1), transform 0.18s cubic-bezier(0.16, 1, 0.3, 1);
  user-select: none;
  line-height: 1;
}

.addon-qty-btn:hover:not(:disabled) {
  background: #558632;
  border-color: #558632;
  color: #121212;
  transform: scale(1.08);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.addon-qty-btn:active:not(:disabled) {
  transform: scale(0.95);
}

.addon-qty-btn:disabled {
  opacity: 0.28;
  cursor: not-allowed;
  border-color: rgba(255, 255, 255, 0.7);
}

.addon-qty-count {
  min-width: 28px;
  text-align: center;
  font-size: 16px;
  font-weight: 800;
  color: #FFFFFF;
  font-family: var(--font-family-brand), sans-serif;
  letter-spacing: 0.5px;
}

.addon-protein-banner.has-items {
  border-color: #558632;
  background: rgba(85, 134, 50, 0.12);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
}

/* Left Bottom Nav Controls */
.builder-nav-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  flex-wrap: wrap;
  gap: 16px;
}

.builder-note {
  font-size: 13px;
  color: #A7B0AB;
}

.builder-nav-btns {
  display: flex;
  align-items: center;
  gap: 12px;
}

.btn-builder-back {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #E7ECE9;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13px;
  font-weight: 700;
  padding: 12px 22px;
  border-radius: 10px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.btn-builder-back:hover {
  color: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.7);
}

.btn-builder-continue {
  background: #558632;
  border: none;
  color: #121212;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 14px;
  font-weight: 800;
  padding: 12px 28px;
  border-radius: 10px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: color 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, opacity 0.22s ease, transform 0.22s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
}

.btn-builder-continue:hover {
  background: #669E3D;
  transform: translateX(2px);
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
}

/* ==========================================================================
   RIGHT COLUMN: STICKY LIVE PREVIEW & MACRO PANEL
   ========================================================================== */
.builder-right-pane {
  position: sticky;
  top: 90px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.live-preview-box-card {
  position: relative;
  background: #121212;
  border: 1.5px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  padding: 24px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
}

.live-preview-badge {
  position: absolute;
  top: 20px;
  right: 20px;
  background: rgba(13, 19, 16, 0.85);
  border: 1px solid rgba(85, 134, 50, 0.35);
  border-radius: 12px;
  padding: 8px 14px;
  backdrop-filter: blur(8px);
  z-index: 5;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
}

.badge-pulse-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #558632;
  margin-right: 6px;
  outline: 1.5px solid #558632; outline-offset: 1px;
  animation: pulseDot 1.8s infinite;
}

@keyframes pulseDot {

  0%,
  100% {
    transform: scale(1);
    opacity: 1;
  }

  50% {
    transform: scale(1.4);
    opacity: 0.6;
  }
}

.badge-tag-text {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.2px;
  color: #FFFFFF;
  text-transform: uppercase;
}

.badge-tag-sub {
  display: block;
  font-size: 10.5px;
  color: #E7ECE9;
  margin-top: 2px;
}

.preview-tray-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 20px;
  overflow: hidden;
  perspective: 1200px;
  background: #181818;
  box-shadow: inset 0 0 35px rgba(0, 0, 0, 0.9), 0 20px 45px rgba(0, 0, 0, 0.65);
  user-select: none;
}

.meal-box-3d-chassis {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

.box-3d-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  display: block;
  transform: translateZ(0);
  transition: opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1), transform 0.35s var(--ease-bounce);
}

.box-3d-layer.layer-base {
  z-index: 1;
}

.box-3d-layer.layer-carb {
  z-index: 2;
  transform: translateZ(12px);
}

.box-3d-layer.layer-veggie {
  z-index: 3;
  transform: translateZ(15px);
}

.box-3d-layer.layer-protein {
  z-index: 4;
  transform: translateZ(20px);
}

.box-3d-layer.layer-seasoning {
  z-index: 5;
  transform: translateZ(24px);
  mix-blend-mode: screen;
}

.box-3d-layer.layer-overlay {
  z-index: 6;
  transform: translateZ(28px);
}

.box-glass-glare {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 7;
  background: radial-gradient(circle at var(--glare-x, 50%) var(--glare-y, 30%), rgba(255, 255, 255, 0.12) 0%, transparent 60%);
  opacity: 0.7;
  mix-blend-mode: overlay;
  transition: opacity 0.3s ease;
}

.box-3d-hint {
  position: absolute;
  bottom: 12px;
  left: 14px;
  z-index: 8;
  background: rgba(13, 19, 16, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  padding: 4px 10px;
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  color: #E7ECE9;
  backdrop-filter: blur(8px);
  pointer-events: none;
  letter-spacing: 0.3px;
}

.box-3d-hint svg {
  color: #558632;
}

/* Layer Update Animations */
.food-drop-animate {
  animation: foodDropAnim 0.38s var(--ease-bounce) forwards;
}

@keyframes foodDropAnim {
  0% {
    opacity: 0;
    transform: translateZ(35px) scale(1.08) translateY(-14px);
  }

  100% {
    opacity: 1;
    transform: translateZ(20px) scale(1) translateY(0);
  }
}

.seasoning-dust-animate {
  animation: seasoningDustAnim 0.42s ease-out forwards;
}

@keyframes seasoningDustAnim {
  0% {
    opacity: 0;
    filter: brightness(2.2) contrast(1.4);
    transform: translateZ(40px) scale(1.06);
  }

  100% {
    opacity: 1;
    filter: brightness(1) contrast(1);
    transform: translateZ(24px) scale(1);
  }
}

/* Floating Selected Tags */
.preview-chips-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.preview-chip {
  background: rgba(85, 134, 50, 0.1);
  border: 1px solid rgba(85, 134, 50, 0.3);
  color: #FFFFFF;
  font-size: 11.5px;
  font-weight: 600;
  padding: 5px 12px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.preview-chip-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #558632;
}

/* Nutrition Summary Card */
.nutrition-summary-card {
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 20px 24px;
}

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

.nutri-title-group {
  display: flex;
  align-items: center;
  gap: 6px;
}

.nutri-title {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.5px;
  color: #FFFFFF;
  text-transform: uppercase;
}

.nutri-sub {
  font-size: 11px;
  color: #A7B0AB;
}

.nutri-macros-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  text-align: center;
}

.macro-box {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  padding: 10px 4px;
}

.macro-box-label {
  font-size: 10px;
  font-weight: 700;
  color: #E7ECE9;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.macro-box-val {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 24px;
  color: #558632;
  line-height: 1;
}

.macro-box-unit {
  font-size: 9.5px;
  color: #A7B0AB;
}

/* Green Callout Banner */
.performance-callout-banner {
  background: linear-gradient(135deg, rgba(85, 134, 50, 0.15) 0%, rgba(85, 134, 50, 0.04) 100%);
  border: 1px solid rgba(85, 134, 50, 0.3);
  border-radius: 16px;
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.callout-left {
  display: flex;
  align-items: center;
  gap: 14px;
}

.callout-icon-box {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #558632;
  color: #121212;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.callout-icon-box svg {
  width: 18px;
  height: 18px;
}

.callout-text {
  font-size: 12.5px;
  color: #FFFFFF;
  line-height: 1.4;
  font-weight: 500;
}

.callout-tag {
  font-size: 11px;
  font-weight: 700;
  color: #558632;
  white-space: nowrap;
}

/* ==========================================================================
   VIEW 2: NEW COMPLETE MENU BOARD (Build Your Pack Dark Dashboard)
   ========================================================================== */
.menu-board-stage {
  animation: fadeInStage 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  width: 100%;
}

/* MAIN 2-COLUMN GRID (Outer Layout) */
.board-pack-main-grid {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 32px;
  align-items: flex-start;
  max-width: 1280px;
  margin: 0 auto;
  width: 100%;
}

.board-pack-container {
  background: #121212;
  border: 1px solid #2A2A2A;
  border-radius: 20px;
  padding: 32px 36px 36px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.9);
  position: relative;
  width: 100%;
  box-sizing: border-box;
}

/* TOP BRAND & SLOGAN HEADER */
.board-pack-top-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 24px;
}

.board-brand-title {
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 1.8px;
  color: #FFFFFF;
}

.board-brand-subtitle {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.4px;
  color: #A7B0AB;
  margin-top: 2px;
}

.board-slogan-text {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.8px;
  color: #A7B0AB;
  text-transform: uppercase;
}

/* LEFT COLUMN */
.board-pack-left-column {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* RIGHT COLUMN (OUTSIDE CONTAINER, SHIFTED SLIGHTLY RIGHT) */
.board-pack-right-column {
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 24px;
  width: 100%;
  max-width: 340px;
  margin-left: 4px;
}

/* Top Navigation Row (Back on left, Meals/Pickup on right) */
.board-pack-nav-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  max-width: 1280px;
  margin: 0 auto 20px auto;
  width: 100%;
}

/* Back Button to Pack Selection */
.board-pack-back-wrap {
  margin-bottom: 0;
  display: flex;
  align-items: center;
}

.board-pack-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #A7B0AB;
  font-family: var(--font-family-brand), 'Switzer', -apple-system, sans-serif;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  padding: 8px 16px 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  width: fit-content;
  cursor: pointer;
  outline: none;
  line-height: 1.2;
}

.board-pack-back-btn i,
.board-pack-back-btn svg {
  transition: transform 0.25s ease;
  color: var(--color-primary-green, #558632);
}

.board-pack-back-btn:hover {
  color: #FFFFFF;
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  transform: translateX(-3px);
}

.board-pack-back-btn:hover i,
.board-pack-back-btn:hover svg {
  transform: translateX(-2px);
}

.board-pack-title-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 28px;
  gap: 16px;
}

.board-pack-title {
  font-size: 44px;
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: -0.5px;
  line-height: 1.05;
  margin: 0 0 6px 0;
}

.board-pack-desc {
  font-size: 14px;
  color: #A7B0AB;
  margin: 0;
  font-weight: 500;
}

.board-pack-meta-pill {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1.2px;
  color: #E7ECE9;
  margin-bottom: 0;
  width: auto;
}

.board-meta-meals-dropdown-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 1;
}

.board-meta-meals-icon {
  position: absolute;
  left: 14px;
  pointer-events: none;
  color: #558632;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.board-meta-meals-select {
  background: #181818;
  border: 1.5px solid #2A2A2A;
  color: #FFFFFF;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 1.2px;
  padding: 11px 32px 11px 38px;
  border-radius: 12px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  outline: none;
  width: 100%;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

.board-meta-meals-select:hover,
.board-meta-meals-select:focus {
  border-color: #558632;
  background: #202020;
  outline: 1.5px solid #558632;
  outline-offset: 1px;
}

.board-meta-meals-select option {
  background: #181818;
  color: #FFFFFF;
  font-weight: 700;
}

.board-dropdown-chevron {
  position: absolute;
  right: 12px;
  pointer-events: none;
  color: #558632;
  z-index: 2;
}

.board-meta-fulfillment-btn {
  background: #181818;
  border: 1.5px solid #2A2A2A;
  color: #E7ECE9;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 1.2px;
  padding: 11px 18px;
  border-radius: 12px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  outline: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex: 1;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

.board-meta-fulfillment-btn .board-meta-btn-icon {
  color: #558632;
  flex-shrink: 0;
}

.board-meta-fulfillment-btn:hover {
  border-color: #558632;
  color: #FFFFFF;
  background: rgba(85, 134, 50, 0.18);
  transform: translateY(-1px);
}

.board-meta-sep {
  color: #383838;
}

.board-meta-edit-btn {
  background: none;
  border: none;
  color: #558632;
  font-size: 12px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  padding: 0;
  letter-spacing: 1.2px;
  transition: opacity 0.2s ease;
}

.board-meta-edit-btn:hover {
  opacity: 0.8;
  text-decoration: underline;
}

/* STEP CARDS SECTION */
.board-step-card-section {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 24px;
  margin-bottom: 24px;
  position: relative;
}

.board-step-heading-row {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 175px;
  min-width: 175px;
  flex-shrink: 0;
  padding-top: 4px;
  position: relative;
}

.board-step-num-circle {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1.5px solid #383838;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: #E7ECE9;
  background: #121212;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Step Active (HOT Green) */
.board-step-card-section.is-active .board-step-num-circle {
  background: #558632 !important;
  border-color: #558632 !important;
  color: #FFFFFF !important;
}

.board-step-card-section.is-active .board-step-name {
  color: #558632 !important;
}

/* Desktop Interconnecting Vertical Step Rail Line */
@media (min-width: 861px) {
  .board-step-card-section {
    position: relative;
  }

  .board-step-card-section[data-step="1"]::after,
  .board-step-card-section[data-step="2"]::after,
  .board-step-card-section[data-step="3"]::after {
    content: '';
    position: absolute;
    left: 14px; /* Center of 30px circle */
    top: 20px; /* Center of this step circle */
    bottom: -30px; /* Spans full section height and connects directly into next step circle */
    width: 2px;
    background: #558632;
    z-index: 1;
    opacity: 0;
    transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    pointer-events: none;
  }

  .board-step-card-section.connected-to-next::after {
    opacity: 1 !important;
  }
}

.board-addon-circle {
  border-color: rgba(85, 134, 50, 0.45);
  color: #558632;
  background: rgba(85, 134, 50, 0.08);
}

.board-step-titles {
  display: flex;
  flex-direction: column;
}

.board-step-name {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 1.2px;
  color: #FFFFFF;
  margin: 0;
  line-height: 1.2;
  transition: color 0.3s ease;
}

.board-step-subtext {
  font-size: 11px;
  font-weight: 600;
  color: #A7B0AB;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin: 0;
  line-height: 1.3;
}

/* FOOD CARDS GRIDS */
.board-cards-grid {
  flex: 1;
  display: grid;
  gap: 12px;
}

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

.board-grid-6 {
  grid-template-columns: repeat(6, 1fr);
}

/* Step 1: Selected Protein Display (Single Centered Card) */
.board-step-card-section[data-step="1"] .board-cards-grid {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
}

.board-step-card-section[data-step="1"] .board-food-card {
  width: 100% !important;
  max-width: 175px !important;
  border-radius: 12px !important;
  border: 1.5px solid #558632 !important;
  background: #181818 !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.45) !important;
  margin: 0 auto !important;
  cursor: default !important;
}

.board-step-card-section[data-step="1"] .board-food-card:not(.active) {
  display: none !important;
}

.board-step-card-section[data-step="1"] .board-food-card .board-card-photo {
  width: 100% !important;
  aspect-ratio: 16 / 11 !important;
  border-radius: 10px 10px 0 0 !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.board-step-card-section[data-step="1"] .board-food-card .board-card-photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  border-radius: 10px 10px 0 0 !important;
}

.board-step-card-section[data-step="1"] .board-food-card .board-card-label {
  padding: 6px 10px 8px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  text-align: center !important;
}

/* FOOD CARD */
.board-food-card {
  background: #181818;
  border: 1.5px solid #2A2A2A;
  border-radius: 12px;
  padding: 0;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: color 0.2s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  user-select: none;
}

.board-food-card:hover {
  border-color: rgba(85, 134, 50, 0.5);
  background: #1E1E1E;
  transform: translateY(-2px);
}

.board-food-card.active {
  border-color: #558632;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* CIRCULAR PROTEIN SEASONING CARDS (Step 2) */
.board-step-card-section[data-step="2"] .board-food-card {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 2px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.board-step-card-section[data-step="2"] .board-food-card .board-card-photo {
  width: 76px;
  height: 76px;
  max-width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  border: 1.5px solid #2A2A2A;
  background: #181818;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  box-sizing: border-box;
  margin: 0 auto;
  transition: color 0.22s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
}

.board-step-card-section[data-step="2"] .board-food-card .board-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  transform: scale(1.68);
  transform-origin: center center;
  transition: transform 0.3s ease;
}

.board-step-card-section[data-step="2"] .board-food-card:hover .board-card-photo {
  border-color: rgba(85, 134, 50, 0.65);
  background: #202020;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.board-step-card-section[data-step="2"] .board-food-card:hover .board-card-photo img {
  transform: scale(1.82);
}

.board-step-card-section[data-step="2"] .board-food-card.active .board-card-photo {
  border-color: #558632;
  background: #192314;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5);
}

.board-step-card-section[data-step="2"] .board-food-card .board-card-check-badge {
  top: 0px;
  right: calc(50% - 38px);
}

.board-step-card-section[data-step="2"] .board-card-label {
  margin-top: 6px;
  padding: 0;
  font-size: 11.5px;
  font-weight: 600;
  color: #A7B0AB;
  text-align: center;
  transition: color 0.2s ease;
}

.board-step-card-section[data-step="2"] .board-food-card:hover .board-card-label,
.board-step-card-section[data-step="2"] .board-food-card.active .board-card-label {
  color: #FFFFFF;
  font-weight: 700;
}

.board-card-check-badge {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #558632;
  color: #FFFFFF;
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 5;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.6);
}

.board-food-card.active .board-card-check-badge {
  display: flex;
}

.board-card-photo {
  width: 100%;
  aspect-ratio: 16 / 11;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #121212;
}

.board-card-photo.square-photo {
  aspect-ratio: 1 / 1;
}

.board-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.board-food-card:hover .board-card-photo img {
  transform: scale(1.06);
}

.board-card-label {
  font-size: 11.5px;
  font-weight: 600;
  color: #E7ECE9;
  padding: 6px 4px 8px;
  text-align: center;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}

/* STEP 3: CARBS (Scaled down by 10%) */
.board-step-card-section[data-step="3"] .board-cards-grid {
  max-width: 90%;
  gap: 10px;
}

.board-step-card-section[data-step="3"] .board-food-card .board-card-photo {
  aspect-ratio: 16 / 10;
}

.board-step-card-section[data-step="3"] .board-food-card .board-card-label {
  padding: 5px 4px 7px;
  font-size: 11px;
}

/* STEP 4: PORTION TOGGLE */
.board-portion-toggle-wrapper {
  flex: 1;
  display: inline-flex;
  align-items: center;
  background: #181818;
  border: 1.5px solid #2A2A2A;
  border-radius: 30px;
  padding: 4px;
  width: 100%;
  max-width: 440px;
  box-sizing: border-box;
}

.board-portion-pill {
  flex: 1;
  padding: 12px 20px;
  min-width: 90px;
  border: none;
  background: transparent;
  color: #A7B0AB;
  font-family: var(--font-family-brand), 'Switzer', -apple-system, sans-serif;
  font-size: 14.5px;
  font-weight: 700;
  border-radius: 24px;
  cursor: pointer;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.board-portion-pill:hover:not(.active) {
  color: #FFFFFF;
  background: rgba(255, 255, 255, 0.05);
}

.board-portion-pill.active {
  background: #558632;
  color: #FFFFFF;
  font-weight: 800;
  box-shadow: none;
}

/* STEP 5: ADD-ONS ROW */
.board-addon-card-row {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #181818;
  border: 1.5px solid #2A2A2A;
  border-radius: 14px;
  padding: 14px 20px;
  max-width: 600px;
}

.board-addon-left {
  display: flex;
  align-items: center;
  gap: 16px;
}

.board-addon-thumb {
  width: 58px;
  height: 58px;
  border-radius: 10px;
  background: #121212;
  border: 1px solid #2A2A2A;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.board-addon-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.board-addon-title {
  font-size: 13.5px;
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: 0.6px;
}

.board-addon-sub {
  font-size: 11.5px;
  color: #A7B0AB;
  margin: 2px 0 4px 0;
}

.board-addon-price {
  font-size: 12px;
  font-weight: 700;
  color: #E7ECE9;
}

.board-addon-stepper {
  display: inline-flex;
  align-items: center;
  background: #121212;
  border: 1px solid #2A2A2A;
  border-radius: 20px;
  padding: 3px 8px;
  gap: 12px;
}

.board-stepper-btn {
  width: 28px;
  height: 28px;
  border: none;
  background: transparent;
  color: #E7ECE9;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
}

.board-stepper-btn:hover:not(:disabled) {
  background: rgba(85, 134, 50, 0.15);
  color: #558632;
}

.board-stepper-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.board-stepper-val {
  font-size: 14px;
  font-weight: 700;
  color: #FFFFFF;
  min-width: 14px;
  text-align: center;
}

/* ADD-ON TOGGLE BUTTON */
.board-addon-toggle-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #242424;
  border: 1.5px solid #3A3A3A;
  border-radius: 20px;
  padding: 8px 18px;
  color: #E7ECE9;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: color 0.2s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  user-select: none;
}

.board-addon-toggle-btn:hover {
  background: #2E2E2E;
  border-color: #558632;
  color: #FFFFFF;
  transform: translateY(-1px);
}

.board-addon-toggle-btn.active,
.board-addon-toggle-btn[aria-pressed="true"] {
  background: #558632;
  border-color: #558632;
  color: #FFFFFF;
  box-shadow: none;
}

.board-addon-card-row.is-active {
  border-color: #558632;
  background: #192015;
}

/* CUSTOMIZE EACH MEAL SIDEBAR CARD (UNDER ORDER DETAILS) */
.board-customize-sidebar-card {
  background: #181818;
  border: 1.5px solid #2A2A2A;
  border-radius: 18px;
  padding: 18px 20px;
  margin-top: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.board-customize-card-content {
  display: flex;
  align-items: center;
  gap: 12px;
}

.board-customize-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: #202020;
  border: 1px solid #333333;
  color: #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.board-customize-question {
  font-size: 12.5px;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0;
  line-height: 1.35;
}

.btn-board-customise-each {
  width: 100%;
  background: #121212;
  border: 1.5px solid #383838;
  color: #FFFFFF;
  font-size: 13px;
  font-weight: 700;
  padding: 10px 16px;
  border-radius: 20px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
}

.btn-board-customise-each:hover {
  border-color: #558632;
  color: #558632;
  background: rgba(85, 134, 50, 0.1);
  transform: translateY(-1px);
}

/* RIGHT COLUMN: STICKY ORDER SIDEBAR */
.board-pack-right-column {
  position: sticky;
  top: 96px;
  display: flex;
  flex-direction: column;
  margin-top: 0;
}

.board-sidebar-kicker {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 2.2px;
  color: #717D77;
  text-align: right;
  margin-bottom: 14px;
  text-transform: uppercase;
}

.board-order-sidebar-card {
  background: #181818;
  border: 1.5px solid #2A2A2A;
  border-radius: 18px;
  padding: 24px 22px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

.board-sidebar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
}

.board-sidebar-title {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 1px;
  color: #FFFFFF;
  margin: 0;
}

.board-sidebar-edit-link {
  background: none;
  border: none;
  color: #558632;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
  letter-spacing: 1px;
}

.board-sidebar-pack-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.board-sidebar-pack-name {
  font-size: 15px;
  font-weight: 700;
  color: #FFFFFF;
}

.board-sidebar-pack-price {
  font-size: 16px;
  font-weight: 800;
  color: #FFFFFF;
}

.board-sidebar-items-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 20px;
}

.board-summary-item {
  display: flex;
  align-items: center;
  gap: 12px;
}

.board-summary-thumb {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background: #121212;
  border: 1px solid #2A2A2A;
  overflow: hidden;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.board-summary-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.board-summary-details {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.board-summary-main {
  font-size: 13.5px;
  font-weight: 700;
  color: #FFFFFF;
}

.board-summary-sub {
  font-size: 11.5px;
  color: #A7B0AB;
}

.board-sidebar-divider {
  height: 1px;
  background: #2A2A2A;
  margin: 18px 0;
}

.board-sidebar-total-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.board-total-label {
  font-size: 14px;
  color: #A7B0AB;
  font-weight: 600;
}

.board-total-amount {
  font-size: 24px;
  font-weight: 800;
  color: #FFFFFF;
}

.board-sidebar-actions-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  margin-bottom: 20px;
}

.btn-board-add-to-cart {
  width: 100%;
  background: rgba(255, 255, 255, 0.08);
  border: 1.5px solid rgba(255, 255, 255, 0.16);
  border-radius: 30px;
  padding: 13px 20px;
  color: #FFFFFF;
  font-family: var(--font-family-brand), 'Switzer', -apple-system, sans-serif;
  font-size: 14.5px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  cursor: pointer;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
}

.btn-board-add-to-cart:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.3);
  transform: translateY(-1px);
  color: #FFFFFF;
}

.btn-board-add-to-cart:active {
  transform: translateY(0);
  background: rgba(255, 255, 255, 0.06);
}

.btn-board-buy-now {
  width: 100%;
  background: #558632;
  border: 1.5px solid #558632;
  border-radius: 30px;
  padding: 13px 20px;
  color: #FFFFFF;
  font-family: var(--font-family-brand), 'Switzer', -apple-system, sans-serif;
  font-size: 14.5px;
  font-weight: 800;
  letter-spacing: 0.3px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  cursor: pointer;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
}

.btn-board-buy-now:hover {
  background: #669E3D;
  border-color: #669E3D;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4);
}

.btn-board-buy-now:active {
  background: #466F29;
  transform: translateY(0);
}

.board-sidebar-meta-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  background: #121212;
  border: 1.5px solid #2A2A2A;
  border-radius: 12px;
  padding: 10px 8px;
  margin-top: 0;
  margin-bottom: 20px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}

.board-fulfillment-item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #A7B0AB;
  width: 100%;
  padding: 6px 4px;
  border-radius: 8px;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.board-fulfillment-item:first-child {
  border-right: 1px solid #242424;
}

.board-fulfillment-item.clickable {
  cursor: pointer;
}

.board-fulfillment-item.clickable:hover {
  background: rgba(255, 255, 255, 0.04);
}

.board-fulfillment-item.clickable:hover .board-ful-title {
  color: #FFFFFF;
}

.board-fulfillment-item.clickable:hover .board-ful-sub {
  color: #669E3D;
}

.board-fulfillment-item svg,
.board-fulfillment-item i {
  color: #558632;
  flex-shrink: 0;
}

.board-ful-text {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.board-ful-title {
  font-size: 13px;
  font-weight: 700;
  color: #FFFFFF;
}

.board-ful-sub {
  font-size: 11px;
  font-weight: 700;
}

.board-ful-sub.green {
  color: #558632;
}

.board-ful-sub.underline {
  color: #A7B0AB;
  text-decoration: underline;
}

.board-sidebar-note {
  font-size: 11.5px;
  color: #717D77;
  text-align: center;
  margin: 0;
}

/* FOOTER TAGLINE BAR */
.board-pack-bottom-bar {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 36px;
  padding-top: 20px;
  border-top: 1px solid #2A2A2A;
}

.board-bottom-left {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 2px;
  color: #6B7280;
  line-height: 1.4;
  text-transform: uppercase;
}

.board-bottom-right {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 2px;
  color: #6B7280;
  text-transform: uppercase;
}

/* DATE SCHEDULE CALENDAR MODAL */
.hot-schedule-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.82);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

.hot-schedule-modal-backdrop.open {
  opacity: 1;
  visibility: visible;
}

.hot-schedule-modal {
  background: #141414;
  border: 1.5px solid #2A2A2A;
  border-radius: 20px;
  width: 100%;
  max-width: 520px;
  padding: 26px 24px;
  position: relative;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.7);
  transform: scale(0.96) translateY(10px);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  max-height: 90vh;
  overflow-y: auto;
}

.hot-schedule-modal-backdrop.open .hot-schedule-modal {
  transform: scale(1) translateY(0);
}

.hot-schedule-close-btn {
  position: absolute;
  top: 18px;
  right: 18px;
  background: #202020;
  border: 1px solid #333333;
  color: #A7B0AB;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.hot-schedule-close-btn:hover {
  background: #2A2A2A;
  color: #FFFFFF;
}

.hot-schedule-header {
  margin-bottom: 16px;
}

.hot-schedule-title {
  font-size: 20px;
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: -0.3px;
  margin: 0 0 6px 0;
}

.hot-schedule-sub {
  font-size: 13px;
  color: #A7B0AB;
  margin: 0;
}

.hot-schedule-mode-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  background: #101010;
  border: 1px solid #282828;
  border-radius: 10px;
  padding: 4px;
  margin-bottom: 18px;
}

.hot-schedule-mode-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px;
  background: transparent;
  border: none;
  border-radius: 6px;
  color: #A7B0AB;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.hot-schedule-mode-btn:hover {
  color: #FFFFFF;
}

.hot-schedule-mode-btn.active {
  background: #558632;
  color: #FFFFFF;
}

.hot-schedule-section-label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.2px;
  color: #717D77;
  text-transform: uppercase;
  margin-bottom: 8px;
  display: block;
}

.hot-schedule-days-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-bottom: 18px;
}

.hot-schedule-day-card {
  background: #1A1A1A;
  border: 1.5px solid #2A2A2A;
  border-radius: 12px;
  padding: 10px 4px;
  text-align: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.hot-schedule-day-card:hover {
  border-color: rgba(85, 134, 50, 0.6);
  background: #202020;
}

.hot-schedule-day-card.active {
  border-color: #558632;
  background: #182214;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.hot-schedule-day-name {
  font-size: 10.5px;
  font-weight: 700;
  color: #A7B0AB;
  text-transform: uppercase;
}

.hot-schedule-day-date {
  font-size: 17px;
  font-weight: 800;
  color: #FFFFFF;
}

.hot-schedule-day-month {
  font-size: 10px;
  font-weight: 600;
  color: #717D77;
}

.hot-schedule-day-card.active .hot-schedule-day-name,
.hot-schedule-day-card.active .hot-schedule-day-month {
  color: #558632;
}

.hot-schedule-times-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 20px;
  max-height: 196px;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
  scrollbar-width: thin;
  scrollbar-color: #558632 #1A1A1A;
  padding-right: 6px;
}

.hot-schedule-times-grid.two-col {
  grid-template-columns: 1fr 1fr;
  max-height: none;
  overflow-y: visible;
}

.hot-schedule-times-grid::-webkit-scrollbar {
  width: 6px;
  display: block;
}

.hot-schedule-times-grid::-webkit-scrollbar-track {
  background: #181818;
  border-radius: 4px;
}

.hot-schedule-times-grid::-webkit-scrollbar-thumb {
  background: #558632;
  border-radius: 4px;
}

.hot-schedule-times-grid::-webkit-scrollbar-thumb:hover {
  background: #669E3D;
}

.hot-schedule-time-pill {
  background: #1A1A1A;
  border: 1.5px solid #2A2A2A;
  border-radius: 8px;
  padding: 9px 8px;
  font-size: 12px;
  font-weight: 700;
  color: #E7ECE9;
  text-align: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}

.hot-schedule-time-pill:hover {
  border-color: rgba(85, 134, 50, 0.6);
  background: #202020;
}

.hot-schedule-time-pill.active {
  border-color: #558632;
  background: #182214;
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.hot-schedule-info-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  background: rgba(85, 134, 50, 0.08);
  border: 1px solid rgba(85, 134, 50, 0.25);
  border-radius: 8px;
  font-size: 12px;
  color: #C1C9C4;
  margin-bottom: 18px;
}

.hot-schedule-info-bar svg {
  color: #558632;
  flex-shrink: 0;
}

.hot-schedule-confirm-btn {
  width: 100%;
  background: #558632;
  border: none;
  border-radius: 12px;
  padding: 13px 20px;
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.3px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}

.hot-schedule-confirm-btn:hover {
  background: #669E3D;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

/* RESPONSIVE BREAKPOINTS */
@media (max-width: 1024px) {
  .board-pack-main-grid {
    grid-template-columns: 1fr;
  }

  .board-pack-right-column {
    position: static;
    margin-top: 24px;
  }

  .board-grid-6 {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .board-pack-nav-row {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin: 0 auto 16px auto;
    width: 100%;
    max-width: 440px;
  }

  .board-pack-back-btn {
    padding: 7px 12px 7px 9px;
    font-size: 12px;
  }

  .board-pack-meta-pill {
    gap: 6px;
    margin-bottom: 0;
  }

  .board-meta-meals-select {
    padding: 7px 22px 7px 28px;
    font-size: 11.5px;
    letter-spacing: 0.8px;
    border-radius: 10px;
  }

  .board-meta-meals-icon {
    left: 8px;
    width: 13px;
    height: 13px;
  }

  .board-dropdown-chevron {
    right: 7px;
    width: 11px;
    height: 11px;
  }

  .board-meta-fulfillment-btn {
    padding: 7px 10px;
    font-size: 11.5px;
    letter-spacing: 0.8px;
    border-radius: 10px;
    gap: 5px;
  }

  .board-meta-fulfillment-btn .board-meta-btn-icon {
    width: 13px;
    height: 13px;
  }

  .board-pack-container {
    padding: 24px 16px;
    border-radius: 16px;
    max-width: 460px;
    margin: 0 auto;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .board-pack-main-grid {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .board-pack-left-column {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .board-pack-title-row {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    margin-bottom: 24px;
  }

  .board-pack-title-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
  }

  .board-pack-title {
    font-size: clamp(34px, 8.5vw, 40px) !important;
    font-weight: 800 !important;
    letter-spacing: -0.5px !important;
    line-height: 1.15 !important;
    text-align: center !important;
    width: 100% !important;
  }

  /* Remove description below Build Your Pack on mobile view */
  .board-pack-desc {
    display: none !important;
  }

  .board-step-card-section {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    gap: 14px;
    margin-bottom: 24px;
  }

  .board-step-heading-row {
    width: 100%;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .board-step-heading-row::after {
    display: none !important;
  }

  .board-step-titles {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .board-step-name,
  .board-step-subtext {
    text-align: center;
  }

  .board-cards-grid {
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
    justify-content: center;
  }

  .board-step-card-section[data-step="1"] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
  }

  .board-step-card-section[data-step="1"] .board-cards-grid {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 440px !important;
    margin: 0 auto !important;
  }

  .board-step-card-section[data-step="1"] .board-food-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
    max-width: 155px !important;
    margin: 0 auto !important;
    border-radius: 12px !important;
    border: 1.5px solid #558632 !important;
    background: #181818 !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.45) !important;
  }

  .board-step-card-section[data-step="1"] .board-food-card:not(.active) {
    display: none !important;
  }

  .board-step-card-section[data-step="1"] .board-food-card .board-card-photo {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 auto !important;
    width: 100% !important;
    aspect-ratio: 16 / 11 !important;
    text-align: center !important;
    border-radius: 10px 10px 0 0 !important;
    overflow: hidden !important;
  }

  .board-step-card-section[data-step="1"] .board-food-card .board-card-photo img {
    object-fit: cover !important;
    object-position: center center !important;
    margin: 0 auto !important;
    display: block !important;
    border-radius: 10px 10px 0 0 !important;
    width: 100% !important;
    height: 100% !important;
  }

  .board-step-card-section[data-step="1"] .board-food-card .board-card-label {
    padding: 6px 10px 8px !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    color: #FFFFFF !important;
    text-align: center !important;
  }

  .board-grid-4 {
    grid-template-columns: repeat(2, 1fr);
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
  }

  /* Step 3: Carbs Boxes 10% Size Reduction on Mobile */
  .board-step-card-section[data-step="3"] .board-cards-grid {
    max-width: 395px !important;
    gap: 10px !important;
  }

  .board-step-card-section[data-step="3"] .board-food-card .board-card-photo {
    aspect-ratio: 16 / 10 !important;
  }

  .board-step-card-section[data-step="3"] .board-food-card .board-card-label {
    padding: 5px 3px 6px !important;
    font-size: 11px !important;
  }

  .board-grid-6 {
    grid-template-columns: repeat(3, 1fr);
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
  }

  .board-portion-toggle-wrapper {
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
    display: flex;
    justify-content: center;
  }

  .board-portion-pill {
    flex: 1;
    min-width: 0;
    padding: 12px 14px;
    font-size: 14px;
  }

  /* Center the whole Add-ons section */
  .board-addon-section {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    margin: 0 auto 24px auto !important;
    text-align: center !important;
  }

  .board-addon-card-row {
    width: 100% !important;
    max-width: 440px !important;
    margin: 0 auto 10px auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 12px 16px !important;
    box-sizing: border-box !important;
  }

  .board-addon-left {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    text-align: left !important;
    min-width: 0 !important;
  }

  .board-addon-info {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    text-align: left !important;
    min-width: 0 !important;
  }

  .board-addon-title {
    text-align: left !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    margin: 0 0 2px 0 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  /* Remove add-on descriptions on mobile view */
  .board-addon-sub {
    display: none !important;
  }

  .board-addon-price {
    text-align: left !important;
    font-size: 11.5px !important;
    font-weight: 400 !important;
    color: #A7B0AB !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  .board-addon-stepper {
    flex-shrink: 0 !important;
  }

  .board-pack-right-column {
    width: 100%;
    max-width: 440px;
    margin: 20px auto 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  /* Hide detailed Order Box items on mobile: show only Total and Action Buttons */
  .board-sidebar-header,
  .board-sidebar-items-list,
  .board-sidebar-divider,
  .board-sidebar-meta-row,
  .board-sidebar-note,
  .board-customize-sidebar-card {
    display: none !important;
  }

  .board-order-sidebar-card {
    width: 100%;
    max-width: 440px;
    margin: 0 auto;
    padding: 16px 18px;
    border-radius: 16px;
    box-shadow: 0 8px 26px rgba(0, 0, 0, 0.4);
    box-sizing: border-box;
  }

  .board-sidebar-total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    padding: 0 4px;
  }

  .board-total-label {
    font-size: 14px;
    font-weight: 700;
    color: #A7B0AB;
    letter-spacing: 0.8px;
    text-transform: uppercase;
  }

  .board-total-amount {
    font-size: 22px;
    font-weight: 800;
    color: #FFFFFF;
  }

  .board-sidebar-actions-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    width: 100%;
    margin-bottom: 0;
  }

  .btn-board-add-to-cart,
  .btn-board-buy-now {
    margin-bottom: 0;
    padding: 13px 10px;
    font-size: 13px;
    font-weight: 800;
    border-radius: 999px;
    white-space: nowrap;
  }

  .board-pack-bottom-bar {
    width: 100%;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
    margin-top: 24px;
    padding-top: 16px;
  }

  .board-bottom-left,
  .board-bottom-right {
    text-align: center;
  }

  .board-customize-prompt-banner {
    flex-direction: column;
    align-items: stretch;
  }

  .board-prompt-actions {
    flex-direction: column;
  }

  .btn-board-customise-each,
  .btn-board-keep-setup {
    width: 100%;
    text-align: center;
  }
}

/* ==========================================================================
   CUSTOMIZER MODAL POPUP (Meal-by-Meal Selection Interface)
   ========================================================================== */
.customizer-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.customizer-modal-backdrop.open {
  opacity: 1;
  visibility: visible;
}

.customizer-modal-window {
  background: #111613;
  border: 1.5px solid rgba(85, 134, 50, 0.45);
  border-radius: 20px;
  width: 100%;
  max-width: 900px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.9);
  transform: scale(0.95) translateY(10px);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  overflow: hidden;
}

.customizer-modal-backdrop.open .customizer-modal-window {
  transform: scale(1) translateY(0);
}

/* Modal Header */
.customizer-modal-header {
  padding: 22px 28px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  background: rgba(255, 255, 255, 0.02);
}

.customizer-modal-kicker-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
}

.customizer-modal-kicker {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  color: #558632;
  text-transform: uppercase;
}

.customizer-pack-indicator {
  background: rgba(85, 134, 50, 0.18);
  border: 1px solid rgba(85, 134, 50, 0.4);
  color: #E7ECE9;
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 6px;
  font-weight: 600;
}

.customizer-modal-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 28px;
  color: #FFFFFF;
  letter-spacing: 0.8px;
  margin: 0 0 4px 0;
  line-height: 1.1;
}

.customizer-modal-sub {
  font-size: 13.5px;
  color: #9CA3AF;
  margin: 0;
}

.customizer-modal-close {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #9CA3AF;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  flex-shrink: 0;
}

.customizer-modal-close:hover {
  color: #FFFFFF;
  background: rgba(255, 255, 255, 0.12);
  border-color: #558632;
}

/* Pack Switcher in Modal */
.customizer-pack-switcher {
  padding: 12px 28px;
  background: rgba(0, 0, 0, 0.25);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.customizer-switcher-lbl {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #9CA3AF;
  text-transform: uppercase;
}

.customizer-pack-pills {
  display: flex;
  gap: 8px;
}

.customizer-pack-pill {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #E7ECE9;
  border-radius: 8px;
  padding: 6px 14px;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.customizer-pack-pill:hover {
  border-color: #558632;
  color: #FFFFFF;
}

.customizer-pack-pill.active {
  background: #558632;
  border-color: #558632;
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

/* Scroll Area & Meal Cards */
.customizer-meals-scroll-area {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  padding: 20px 28px;
  max-height: 58vh;
}

.customizer-meals-scroll-area::-webkit-scrollbar {
  width: 6px;
}

.customizer-meals-scroll-area::-webkit-scrollbar-thumb {
  background: rgba(85, 134, 50, 0.4);
  border-radius: 4px;
}

.customizer-meals-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.customizer-meal-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 16px 20px;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.customizer-meal-card:hover {
  border-color: rgba(85, 134, 50, 0.35);
  background: rgba(85, 134, 50, 0.03);
}

.customizer-meal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.customizer-meal-num-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 15px;
  letter-spacing: 1.2px;
  color: #558632;
  font-weight: 700;
}

.customizer-meal-summary-pill {
  font-size: 11.5px;
  color: #9CA3AF;
  background: rgba(255, 255, 255, 0.04);
  padding: 2px 8px;
  border-radius: 4px;
}

.customizer-selects-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}

.customizer-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.customizer-label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.8px;
  color: #9CA3AF;
  text-transform: uppercase;
}

.customizer-select {
  background: #181E1A;
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 12.5px;
  font-family: inherit;
  cursor: pointer;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  width: 100%;
}

.customizer-select:focus,
.customizer-select:hover {
  border-color: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.customizer-select option {
  background: #181E1A;
  color: #FFFFFF;
  padding: 6px 10px;
}

/* Modal Footer */
.customizer-modal-footer {
  padding: 16px 28px;
  background: rgba(10, 14, 12, 0.95);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.customizer-footer-summary {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.customizer-footer-pack-name {
  font-size: 12px;
  color: #9CA3AF;
  letter-spacing: 0.5px;
}

.customizer-footer-price {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 26px;
  color: #558632;
  font-weight: 700;
  letter-spacing: 1px;
}

.btn-customizer-place-order {
  background: #558632;
  color: #FFFFFF;
  border: none;
  border-radius: 12px;
  padding: 14px 28px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 17px;
  letter-spacing: 1.2px;
  font-weight: 800;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.4);
  transition: color 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, opacity 0.22s ease, transform 0.22s ease;
}

.btn-customizer-place-order:hover {
  background: #467028;
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.4);
}

@media (max-width: 820px) {
  .customizer-selects-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .customizer-modal-window {
    width: calc(100% - 24px);
    max-width: 620px;
    height: 92vh;
    height: 92dvh;
    max-height: 92dvh;
    border-radius: 18px;
  }

  .customizer-modal-header {
    flex-shrink: 0;
    padding: 18px 22px 14px;
  }

  .customizer-pack-switcher {
    flex-shrink: 0;
    padding: 10px 22px;
  }

  .customizer-meals-scroll-area {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    overscroll-behavior: contain;
    padding: 16px 22px 24px;
  }

  .customizer-modal-footer {
    flex-shrink: 0;
    padding: 14px 22px;
  }
}

@media (max-width: 520px) {
  .customizer-selects-grid {
    grid-template-columns: 1fr;
  }

  .customizer-modal-window {
    width: calc(100% - 16px);
    height: 94vh;
    height: 94dvh;
    max-height: 94dvh;
    border-radius: 16px;
    margin: auto;
  }

  .customizer-modal-header,
  .customizer-meals-scroll-area,
  .customizer-modal-footer,
  .customizer-pack-switcher {
    padding-left: 14px;
    padding-right: 14px;
  }

  .customizer-modal-header {
    padding-top: 14px;
    padding-bottom: 12px;
  }

  .customizer-modal-title {
    font-size: 22px;
  }

  .customizer-modal-footer {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding-top: 12px;
    padding-bottom: 14px;
  }

  .btn-customizer-place-order {
    width: 100%;
    justify-content: center;
    padding: 12px 20px;
  }
}

/* Bottom Floating Dock / Sticky Order Bar */
.build-floating-dock {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 48px);
  max-width: 1100px;
  background: rgba(8, 12, 10, 0.94);
  border: 1.5px solid rgba(85, 134, 50, 0.45);
  border-radius: 999px;
  padding: 12px 24px;
  backdrop-filter: blur(20px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  z-index: 999;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.75);
  transition: transform 0.3s ease, opacity 0.3s ease;
}

@media (min-width: 1025px) {
  .menu-board-stage:not(.hidden)~.build-floating-dock {
    display: none !important;
  }
}

.dock-selection-summary {
  display: flex;
  align-items: center;
  gap: 14px;
  overflow: hidden;
}

.dock-thumb-box {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  overflow: hidden;
  border: 1.5px solid #558632;
  flex-shrink: 0;
}

.dock-thumb-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dock-text-group strong {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: #FFFFFF;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 450px;
}

.dock-text-group span {
  font-size: 12px;
  color: #E7ECE9;
  white-space: nowrap;
}

.dock-order-action {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-shrink: 0;
}

.dock-price-display {
  text-align: right;
}

.dock-total-price {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 26px;
  color: #558632;
  line-height: 1;
}

.dock-pack-label {
  font-size: 10px;
  color: #A7B0AB;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.dock-order-btn {
  background: #558632;
  border: none;
  color: #121212;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13.5px;
  font-weight: 800;
  padding: 12px 24px;
  border-radius: 999px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: color 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, opacity 0.22s ease, transform 0.22s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
  text-decoration: none;
}

.dock-order-btn:hover {
  background: #669E3D;
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
  transform: scale(1.02);
}

/* Responsive Breakpoints */
@media (max-width: 1200px) {
  .builder-split-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .builder-right-pane {
    position: static;
  }

  .poster-header-row {
    grid-template-columns: 1fr 1fr;
  }

  .poster-brand-crest {
    grid-column: span 2;
    justify-content: center;
  }

  .poster-addon-row {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 900px) {
  .build-meal-section {
    padding: 80px 16px 60px;
  }

  .poster-frame {
    padding: 24px 16px;
  }

  .poster-proteins-grid,
  .poster-carbs-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .poster-seasonings-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .poster-veggies-row {
    grid-template-columns: 1fr;
  }

  .poster-packs-grid {
    grid-template-columns: 1fr;
  }

  .poster-header-row {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .poster-hero-meal-box {
    margin: 0 auto;
    max-width: 320px;
  }

  .poster-main-title {
    font-size: 44px;
  }

  .dock-selection-summary {
    max-width: 200px;
  }
}

@media (max-width: 600px) {

  .grid-2col,
  .grid-3col,
  .grid-4col {
    grid-template-columns: 1fr;
  }

  .portion-options-grid {
    grid-template-columns: 1fr;
  }

  .build-floating-dock {
    border-radius: 18px;
    flex-direction: column;
    padding: 14px 18px;
    gap: 12px;
  }

  .dock-selection-summary {
    max-width: 100%;
    width: 100%;
  }

  .dock-order-action {
    width: 100%;
    justify-content: space-between;
  }
}

/* ==========================================================================
   PROTEIN, YOUR WAY: "KEEP THE PROTEIN. LOSE THE PREP."
   Strict 100vh Section Canvas — 1:1 Design Mockup Replica
   ========================================================================== */

.protein-showcase-section {
  position: relative;
  width: 100%;
  min-height: 100vh;
  height: 100vh;
  max-height: 100vh;
  overflow: hidden;
  background-color: #121212 !important;
  color: #FFFFFF;
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, sans-serif;
  box-sizing: border-box;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin-top: 0;
}

/* Ambient Radial Lighting */
.ps-ambient-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
none;
  z-index: 1;
}

/* Inner Layout Canvas */
.ps-grid-stage {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: clamp(700px, 86vh, 860px);
  max-width: 1920px;
  margin: 0 auto;
  box-sizing: border-box;
  z-index: 2;
}

/* Far-Left Vertical Step Rail */
.ps-left-rail {
  position: absolute;
  left: 2.2vw;
  top: 34vh;
  height: 22vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  z-index: 25;
  pointer-events: none;
}

.ps-rail-num,
.ps-rail-num-end {
  font-size: 0.78rem;
  font-weight: 700;
  color: #A7B0AB;
  letter-spacing: 0.06em;
  user-select: none;
}

.ps-rail-track {
  width: 2px;
  flex: 1;
  margin: 10px 0;
  background: rgba(255, 255, 255, 0.12);
  position: relative;
  border-radius: 2px;
}

.ps-rail-thumb {
  position: absolute;
  left: -1px;
  top: 0;
  width: 4px;
  height: 25%;
  background: #558632;
  border-radius: 2px;
  outline: 1.5px solid #558632; outline-offset: 1px;
  transition: top 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Left Content Column (Vertically Centered and Uniformly Populated) */
.ps-left-content {
  position: absolute;
  left: clamp(24px, 3.2vw, 48px);
  top: 50%;
  transform: translateY(-50%);
  width: min(27vw, 380px);
  z-index: 20;
}

/* Eyebrow Pill */
.ps-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 1.6vh;
}

.ps-eyebrow-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.ps-eyebrow-text {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #558632;
  text-transform: uppercase;
}

/* Display Headline */
.ps-headline {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(3.6rem, 5.2vw, 5.8rem);
  line-height: 0.88;
  font-weight: 900;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  margin: 0 0 2.2vh 0;
}

.ps-hl-line {
  display: block;
}

.ps-hl-line.ps-white {
  color: #FFFFFF;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.8);
}

.ps-hl-line.ps-green {
  color: #558632;
}

/* Tagline Paragraph */
.ps-tagline {
  font-size: clamp(0.98rem, 1.15vw, 1.15rem);
  color: #E7ECE9;
  font-weight: 400;
  line-height: 1.5;
  margin: 0 0 clamp(36px, 7vh, 75px) 0;
  letter-spacing: -0.01em;
}

/* 4 Inline Feature Badges Strip */
.ps-features-strip {
  display: flex;
  align-items: flex-start;
  gap: 1.2vw;
  margin-bottom: clamp(28px, 5vh, 50px);
}

.ps-feature-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.ps-feature-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
}

.ps-feature-icon svg {
  width: 22px;
  height: 22px;
}

.ps-feature-text {
  display: flex;
  flex-direction: column;
}

.ps-feat-val {
  font-size: 0.9rem;
  font-weight: 800;
  color: #558632;
  letter-spacing: 0.03em;
  line-height: 1.2;
}

.ps-feat-lbl {
  font-size: 0.64rem;
  font-weight: 700;
  color: #A7B0AB;
  letter-spacing: 0.05em;
  line-height: 1.25;
  text-transform: uppercase;
}

.ps-feature-sep {
  width: 1px;
  height: 34px;
  background: rgba(255, 255, 255, 0.12);
  align-self: center;
}

/* Action Buttons */
.ps-cta-row {
  display: flex;
  align-items: center;
  gap: 24px;
}

.ps-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 15px 34px;
  border-radius: 9999px;
  background: #669E3D;
  color: #121212;
  border: none;
  font-size: 0.98rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
  border: 1px solid rgba(255, 255, 255, 0.14);
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.ps-btn-primary .ps-btn-arr {
  width: 16px;
  height: 16px;
  transition: transform 0.25s ease;
}

.ps-btn-primary:hover {
  background: #669E3D;
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
}

.ps-btn-primary:hover .ps-btn-arr {
  transform: translateX(4px);
}

.ps-btn-secondary {
  display: inline-flex;
  flex-direction: column;
  color: #FFFFFF;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-decoration: none;
  position: relative;
  padding-bottom: 5px;
  cursor: pointer;
}

.ps-sec-underline {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: #558632;
  transform: scaleX(0.44);
  transform-origin: left;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.ps-btn-secondary:hover .ps-sec-underline {
  transform: scaleX(1);
}

/* Top-Right Floating Crest Card */
.ps-crest-card {
  position: absolute;
  right: 5vw;
  top: calc(80px + 2vh);
  background: rgba(14, 18, 16, 0.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 14px 22px;
  display: flex;
  align-items: center;
  gap: 16px;
  z-index: 25;
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.55);
}

.ps-crest-hex {
  width: 36px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ps-hex-svg {
  width: 100%;
  height: 100%;
}

.ps-crest-heading {
  display: block;
  font-size: 0.8rem;
  font-weight: 800;
  color: #FFFFFF;
  line-height: 1.25;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ps-crest-sub {
  display: block;
  font-size: 0.72rem;
  color: #A7B0AB;
  margin-top: 3px;
}

/* ==========================================================================
   4-Protein Showcase Stage (Uniformly Distributed & Scaled)
   ========================================================================== */
.ps-proteins-stage {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 10;
  pointer-events: none;
}

.ps-protein-card {
  position: absolute;
  display: flex;
  align-items: center;
  gap: clamp(10px, 1vw, 16px);
  pointer-events: auto;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;
}

/* Positioning for each Protein Card — Exact Reference Staggered 2x2 Cascade (Equalized Heights) */

/* 1. Chicken Breast (Top Left) */
#ps-card-0 {
  left: 31vw;
  top: clamp(40px, 8vh, 85px);
  width: auto;
}

#ps-card-0 .ps-protein-img-wrap {
  width: clamp(170px, 12.5vw, 240px);
  filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.8));
}

#ps-card-0 .ps-protein-meta {
  position: relative;
  left: auto;
  top: auto;
}

/* 2. Lean Beef (Bottom Middle-Left - Card id ps-card-1 in HTML) */
#ps-card-1 {
  left: 45.5vw;
  top: clamp(305px, 45vh, 460px);
  width: auto;
}

#ps-card-1 .ps-protein-img-wrap {
  width: clamp(185px, 13.8vw, 270px);
  filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.85));
}

#ps-card-1 .ps-protein-meta {
  position: relative;
  left: auto;
  top: auto;
}

/* 3. Tofu (Top Middle-Right - Card id ps-card-2 in HTML) */
#ps-card-2 {
  left: 65vw;
  top: clamp(40px, 8vh, 85px);
  width: auto;
}

#ps-card-2 .ps-protein-img-wrap {
  width: clamp(120px, 8.6vw, 165px);
  filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.8));
}

#ps-card-2 .ps-protein-meta {
  position: relative;
  left: auto;
  top: auto;
}

/* 4. Chicken Thigh (Bottom Right - Card id ps-card-3 in HTML) */
#ps-card-3 {
  left: 77.5vw;
  top: clamp(305px, 45vh, 460px);
  width: auto;
}

#ps-card-3 .ps-protein-img-wrap {
  width: clamp(118px, 8.4vw, 160px);
  filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.9));
}

#ps-card-3 .ps-protein-meta {
  position: relative;
  left: auto;
  top: auto;
}

.ps-protein-img {
  width: 100%;
  height: auto;
  display: block;
  user-select: none;
  pointer-events: none;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.ps-protein-card:hover .ps-protein-img {
  transform: scale(1.05);
}

/* Meta Stats Box with Left Emerald Stem */
.ps-protein-meta {
  display: flex;
  align-items: flex-start;
  gap: clamp(8px, 0.8vw, 13px);
  z-index: 15;
}

.ps-meta-stem {
  width: 2.5px;
  height: clamp(120px, 14.5vh, 160px);
  background: #558632;
  outline: 1.5px solid #558632;
  outline-offset: 1px;
  flex-shrink: 0;
}

.ps-meta-content {
  display: flex;
  flex-direction: column;
  gap: clamp(5px, 0.7vh, 8px);
}

.ps-protein-name {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(0.92rem, 1.05vw, 1.22rem);
  font-weight: 800;
  color: #558632;
  line-height: 1.08;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0;
}

.ps-meta-stat {
  display: flex;
  flex-direction: column;
}

.ps-stat-val {
  font-size: clamp(1.4rem, 1.6vw, 1.95rem);
  font-weight: 800;
  color: #FFFFFF;
  line-height: 1.04;
  letter-spacing: 0.01em;
}

.ps-stat-lbl {
  font-size: clamp(0.6rem, 0.68vw, 0.76rem);
  color: #A7B0AB;
  font-weight: 600;
  letter-spacing: 0.055em;
  text-transform: uppercase;
  margin-top: 1px;
}

/* ==========================================================================
   Bottom Navigation Track Bar & Arrows
   ========================================================================== */
.ps-bottom-bar {
  position: absolute;
  left: 7.2vw;
  right: 5vw;
  bottom: 3.5vh;
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 25;
}

.ps-tabs-track {
  display: flex;
  align-items: center;
  gap: 3.8vw;
  flex: 1;
}

.ps-tab-item {
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  min-width: 140px;
}

.ps-tab-indicator {
  width: 100%;
  height: 2px;
  background: rgba(255, 255, 255, 0.14);
  margin-bottom: 12px;
  position: relative;
  border-radius: 1px;
  transition: background 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s;
}

.ps-tab-item.active .ps-tab-indicator {
  background: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.ps-tab-label {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ps-tab-idx {
  font-size: 0.82rem;
  font-weight: 700;
  color: #A7B0AB;
  letter-spacing: 0.06em;
  transition: color 0.3s;
}

.ps-tab-item.active .ps-tab-idx {
  color: #558632;
}

.ps-tab-title {
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #A7B0AB;
  text-transform: uppercase;
  transition: color 0.3s;
}

.ps-tab-item.active .ps-tab-title {
  color: #558632;
}

.ps-tab-item:hover .ps-tab-title,
.ps-tab-item:hover .ps-tab-idx {
  color: #E7ECE9;
}

.ps-arrow-controls {
  display: flex;
  align-items: center;
  gap: 14px;
}

.ps-arrow-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #181818;
  border: 1.5px solid rgba(255, 255, 255, 0.18);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.ps-arrow-btn svg {
  width: 17px;
  height: 17px;
}

.ps-arrow-btn.active,
.ps-arrow-btn:hover {
  border-color: #558632;
  color: #558632;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
  transform: scale(1.05);
}

/* ==========================================================================
   Responsive Breakpoints for 100vh Protein Showcase
   ========================================================================== */
/* ==========================================================================
   Responsive Breakpoints for Protein Showcase
   ========================================================================== */
.ps-marquee-track {
  display: contents;
}

.ps-marquee-group {
  display: contents;
}

.ps-marquee-group[aria-hidden="true"] {
  display: none !important;
}

@media (max-width: 1280px) {
  .ps-headline {
    font-size: clamp(2.8rem, 4vw, 3.8rem);
  }

  .ps-left-content {
    width: clamp(240px, 25vw, 290px);
    left: clamp(16px, 2vw, 24px);
  }

  .ps-proteins-stage {
    left: 0;
    width: 100%;
    right: 0;
  }

  #ps-card-0 {
    left: 31vw;
  }

  #ps-card-1 {
    left: 47vw;
  }

  #ps-card-2 {
    left: 63.5vw;
  }

  #ps-card-3 {
    left: 76.5vw;
  }

  #ps-card-0 .ps-protein-img-wrap {
    width: clamp(125px, 9.8vw, 175px);
  }

  #ps-card-1 .ps-protein-img-wrap {
    width: clamp(140px, 11vw, 195px);
  }

  #ps-card-2 .ps-protein-img-wrap {
    width: clamp(95px, 7.4vw, 130px);
  }

  #ps-card-3 .ps-protein-img-wrap {
    width: clamp(92px, 7.2vw, 125px);
  }

  .ps-protein-meta {
    gap: clamp(6px, 0.6vw, 10px);
  }

  .ps-meta-stem {
    height: clamp(95px, 12vh, 130px);
  }

  .ps-protein-name {
    font-size: clamp(0.82rem, 0.92vw, 1.05rem);
  }

  .ps-stat-val {
    font-size: clamp(1.15rem, 1.25vw, 1.5rem);
  }
}

@media (max-width: 900px) {
  .protein-showcase-section {
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
    padding: clamp(60px, 8vh, 80px) 16px 50px 16px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    background-color: #0b0d0e !important;
  }

  .ps-left-rail,
  .ps-crest-card,
  .ps-bottom-bar {
    display: none !important;
  }

  .ps-grid-stage {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 500px !important;
    min-height: auto !important;
    margin: 0 auto !important;
    padding: 0 !important;
    position: relative !important;
    z-index: 2;
  }

  .ps-left-content {
    display: contents !important;
  }

  /* 1. Centered Headline */
  .ps-headline {
    order: 1 !important;
    font-size: clamp(2.4rem, 10.5vw, 3.6rem) !important;
    line-height: 0.92 !important;
    font-weight: 900 !important;
    text-align: center !important;
    letter-spacing: -0.01em !important;
    margin: 0 0 16px 0 !important;
    width: 100% !important;
  }

  .ps-hl-line {
    display: block !important;
  }

  .ps-hl-line.ps-white {
    color: #FFFFFF !important;
  }

  .ps-hl-line.ps-green {
    color: #558632 !important;
  }

  /* 2. Centered Tagline */
  .ps-tagline {
    order: 2 !important;
    font-size: clamp(0.92rem, 3.8vw, 1.05rem) !important;
    line-height: 1.45 !important;
    text-align: center !important;
    color: #b5beb8 !important;
    margin: 0 auto 26px auto !important;
    max-width: 350px !important;
  }

  /* 3. Auto Moving Continuous Marquee Stage */
  .ps-proteins-stage {
    order: 3 !important;
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
    margin-right: calc(-50vw + 50%) !important;
    height: auto !important;
    overflow: hidden !important;
    display: block !important;
    pointer-events: auto !important;
    padding: 12px 0 24px 0 !important;
    mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%) !important;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%) !important;
  }

  .ps-marquee-track {
    display: flex !important;
    width: max-content !important;
    animation: psContinuousMarquee 22s linear infinite !important;
    will-change: transform !important;
  }

  .ps-marquee-track:hover {
    animation-play-state: paused !important;
  }

  .ps-marquee-group {
    display: flex !important;
    align-items: flex-start !important;
    gap: 24px !important;
    padding-right: 24px !important;
    flex-shrink: 0 !important;
  }

  .ps-marquee-group[aria-hidden="true"] {
    display: flex !important;
  }

  .ps-protein-card {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 140px !important;
    flex-shrink: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: auto !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }

  .ps-protein-img-wrap {
    width: 125px !important;
    height: 165px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    filter: drop-shadow(0 14px 28px rgba(0, 0, 0, 0.85)) !important;
    margin: 0 auto !important;
  }

  .ps-protein-img {
    width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
  }

  .ps-protein-meta {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    text-align: center !important;
  }

  .ps-meta-stem {
    display: none !important;
  }

  .ps-meta-content {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    text-align: center !important;
  }

  .ps-protein-name {
    color: #558632 !important;
    font-size: 0.95rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.06em !important;
    line-height: 1.15 !important;
    margin: 0 0 2px 0 !important;
    text-transform: uppercase !important;
    text-align: center !important;
  }

  .ps-meta-stat {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    line-height: 1.15 !important;
    gap: 2px !important;
  }

  .ps-stat-val {
    font-size: 1.25rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    letter-spacing: -0.01em !important;
    line-height: 1.1 !important;
  }

  .ps-stat-lbl {
    font-size: 0.62rem !important;
    font-weight: 700 !important;
    color: #8e9992 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    line-height: 1.1 !important;
  }

  /* 4. 4 Feature Badges Strip (Below Marquee) */
  .ps-features-strip {
    order: 4 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    width: 100% !important;
    max-width: 440px !important;
    gap: 4px !important;
    margin: 0 auto 30px auto !important;
    padding: 0 4px !important;
    box-sizing: border-box !important;
  }

  .ps-feature-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 6px !important;
    flex: 1 1 0px !important;
    min-width: 0 !important;
  }

  .ps-feature-icon {
    width: 24px !important;
    height: 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .ps-feature-icon svg {
    width: 22px !important;
    height: 22px !important;
    stroke: #558632 !important;
  }

  .ps-feature-text {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    width: 100% !important;
  }

  .ps-feat-val {
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    color: #558632 !important;
    line-height: 1.15 !important;
    letter-spacing: 0.02em !important;
    white-space: nowrap !important;
  }

  .ps-feat-lbl {
    font-size: 0.5rem !important;
    font-weight: 700 !important;
    color: #8e9992 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
  }

  .ps-feature-sep {
    width: 1px !important;
    height: 28px !important;
    background: rgba(255, 255, 255, 0.12) !important;
    flex-shrink: 0 !important;
    align-self: center !important;
    margin: 0 2px !important;
  }

  /* 5. CTA Row (Buttons) */
  .ps-cta-row {
    order: 5 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 16px !important;
    width: 100% !important;
    max-width: 360px !important;
    margin: 0 auto !important;
  }

  .ps-btn-primary {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 16px 28px !important;
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    border-radius: 9999px !important;
    background: #669E3D !important;
    color: #111111 !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
  }

  .ps-btn-primary .ps-btn-arr {
    width: 18px !important;
    height: 18px !important;
    stroke: #111111 !important;
  }

  .ps-btn-secondary {
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #FFFFFF !important;
    letter-spacing: 0.08em !important;
    text-decoration: none !important;
    padding-bottom: 4px !important;
  }

  .ps-sec-underline {
    position: static !important;
    margin-top: 4px !important;
    width: 80px !important;
    height: 2px !important;
    background: #558632 !important;
    transform: none !important;
  }
}

@keyframes psContinuousMarquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* ==========================================================================
   FULFILLMENT SECTION (1:1 Exact Mockup Replica with Real Map)
   ========================================================================== */
.fulfillment-section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  background-color: #121212;
  background: #121212;
  color: #FFFFFF;
  overflow: hidden;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 22px 48px 16px 48px;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  font-family: var(--font-family-brand), sans-serif;
  z-index: 10;
}

.fl-ambient-glow {
  position: absolute;
  top: 0;
  right: 15%;
  width: 600px;
  height: 400px;
  background: none;
  pointer-events: none;
  z-index: 1;
}

.fl-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: space-between;
  position: relative;
  z-index: 2;
  max-width: 1520px;
  margin: 0 auto;
  width: 100%;
}

/* --- Top Header Bar --- */
.fl-top-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 44px;
  flex-shrink: 0;
}

.fl-brand-logo {
  display: flex;
  flex-direction: column;
  font-family: var(--font-family-brand), sans-serif;
  font-weight: 900;
  font-size: 1.18rem;
  line-height: 0.92;
  letter-spacing: 0.6px;
  text-decoration: none;
  color: #FFFFFF;
}

.fl-logo-row-1 {
  color: #FFFFFF;
}

.fl-logo-row-2 {
  color: #FFFFFF;
}

.fl-center-badge {
  background: rgba(18, 26, 21, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 9999px;
  padding: 6px 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 0.82rem;
}

.fl-badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
  flex-shrink: 0;
}

.fl-badge-tag {
  color: #558632;
  font-weight: 800;
  letter-spacing: 1px;
  font-size: 0.76rem;
}

.fl-badge-sub {
  color: #E7ECE9;
  font-weight: 500;
  font-size: 0.8rem;
  margin-left: 4px;
}

.fl-location-pill {
  position: relative;
  background: rgba(18, 26, 21, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 9999px;
  padding: 6px 16px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  font-size: 0.82rem;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  user-select: none;
}

.fl-location-pill:hover,
.fl-location-pill:focus-visible {
  border-color: rgba(85, 134, 50, 0.4);
  background: rgba(18, 26, 21, 0.85);
}

.fl-loc-intro {
  color: #E7ECE9;
}

.fl-loc-city {
  color: #FFFFFF;
  font-weight: 700;
}

.fl-chevron-icon {
  width: 14px;
  height: 14px;
  stroke: #E7ECE9;
  transition: transform 0.2s;
}

.fl-location-pill.open .fl-chevron-icon {
  transform: rotate(180deg);
}

.fl-city-dropdown {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  background: #181818;
  border: 1px solid rgba(85, 134, 50, 0.25);
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.85);
  padding: 6px 0;
  min-width: 230px;
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
  transition: color 0.22s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

.fl-city-dropdown.open {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.fl-city-option {
  padding: 10px 16px;
  font-size: 0.8rem;
  color: #E7ECE9;
  cursor: pointer;
  transition: color 0.15s, background-color 0.15s, border-color 0.15s, box-shadow 0.15s, opacity 0.15s, transform 0.15s;
}

.fl-city-option:hover {
  background: rgba(85, 134, 50, 0.1);
  color: #558632;
}

.fl-city-option.active {
  color: #558632;
  font-weight: 700;
  background: rgba(85, 134, 50, 0.08);
}

/* --- 3-Column Main Stage --- */
.fl-stage-grid {
  display: grid;
  grid-template-columns: 290px 480px 1fr;
  gap: 32px;
  flex: 1;
  align-items: stretch;
  margin-top: 12px;
  margin-bottom: 12px;
  min-height: 0;
}

/* --- COLUMN 1: Value Props --- */
.fl-col-props {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-right: 8px;
}

.fl-main-title {
  font-size: 3.4rem;
  font-weight: 800;
  line-height: 0.96;
  letter-spacing: -0.8px;
  margin: 0 0 16px 0;
  text-transform: lowercase;
}

.fl-title-line {
  display: block;
  color: #FFFFFF;
}

.fl-title-green {
  color: #558632;
}

.fl-subtext {
  font-size: 0.88rem;
  color: #E7ECE9;
  line-height: 1.45;
  margin: 0 0 28px 0;
}

.fl-props-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.fl-prop-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.fl-prop-icon-wrap {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.07);
  border: 1px solid rgba(85, 134, 50, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.fl-prop-icon-wrap svg {
  width: 17px;
  height: 17px;
}

.fl-prop-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 2px 0;
}

.fl-prop-desc {
  font-size: 0.78rem;
  color: #E7ECE9;
  margin: 0;
  line-height: 1.35;
}

/* --- COLUMN 2: Interactive Card --- */
.fl-col-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.fl-interactive-panel {
  background: rgba(14, 20, 16, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  padding: 18px 20px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.fl-mode-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  background: rgba(6, 9, 7, 0.65);
  padding: 4px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.fl-tab-btn {
  border: 1px solid transparent;
  background: transparent;
  color: #A7B0AB;
  padding: 10px 14px;
  border-radius: 9px;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  transition: color 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, opacity 0.22s ease, transform 0.22s ease;
}

.fl-tab-icon {
  width: 17px;
  height: 17px;
  stroke: currentColor;
}

.fl-tab-btn:hover {
  color: #E7ECE9;
}

.fl-tab-btn.active {
  background: linear-gradient(135deg, rgba(85, 134, 50, 0.2), rgba(85, 134, 50, 0.06));
  color: #FFFFFF;
  border: 1px solid rgba(85, 134, 50, 0.38);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}

.fl-tab-btn.active .fl-tab-icon {
  stroke: #558632;
}

.fl-card-block {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fl-block-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.fl-block-label {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.8px;
  color: #E7ECE9;
  text-transform: uppercase;
}

.fl-action-link {
  background: none;
  border: none;
  color: #558632;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
  transition: opacity 0.2s;
}

.fl-action-link:hover {
  text-decoration: underline;
}

.fl-store-subcard {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(22, 30, 25, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 12px;
  padding: 10px 12px;
  transition: border-color 0.2s;
}

.fl-store-thumb {
  width: 58px;
  height: 58px;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
  background: #121212;
}

.fl-store-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fl-store-title {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  color: #FFFFFF;
  margin-bottom: 2px;
}

.fl-store-sub {
  display: block;
  font-size: 0.78rem;
  color: #E7ECE9;
  margin-bottom: 2px;
}

.fl-store-hours {
  display: block;
  font-size: 0.72rem;
  color: #A7B0AB;
}

.fl-delivery-input-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(22, 30, 25, 0.6);
  border: 1px solid rgba(85, 134, 50, 0.3);
  border-radius: 12px;
  padding: 10px 14px;
}

.fl-delivery-input-wrap svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.fl-delivery-input-wrap input {
  background: transparent;
  border: none;
  outline: none;
  color: #FFFFFF;
  font-family: inherit;
  font-size: 0.82rem;
  width: 100%;
}

.fl-date-pills {
  display: grid;
  grid-template-columns: repeat(4, 1fr) 42px;
  gap: 6px;
}

.fl-pill {
  background: rgba(22, 30, 25, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 9px;
  padding: 8px 4px;
  text-align: center;
  color: #FFFFFF;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  font-family: inherit;
}

.fl-pill:hover {
  border-color: rgba(255, 255, 255, 0.7);
  background: rgba(22, 30, 25, 0.7);
}

.fl-pill.active {
  background: rgba(85, 134, 50, 0.12);
  border-color: #558632;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}

.fl-pill-sub {
  font-size: 0.68rem;
  color: #E7ECE9;
  font-weight: 600;
}

.fl-pill.active .fl-pill-sub {
  color: #558632;
}

.fl-pill-main {
  font-size: 0.82rem;
  color: #FFFFFF;
  font-weight: 700;
}

.fl-pill-cal {
  width: 42px;
  padding: 0;
  color: #E7ECE9;
}

.fl-pill-cal svg {
  width: 18px;
  height: 18px;
}

.fl-pill-cal:hover svg {
  color: #558632;
}

.fl-time-pills-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
}

.fl-time-pills {
  display: flex;
  gap: 6px;
  flex: 1;
  overflow: hidden;
}

.fl-time-pill {
  flex: 1;
  white-space: nowrap;
  background: rgba(22, 30, 25, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  padding: 9px 8px;
  font-size: 0.74rem;
  font-weight: 600;
  color: #FFFFFF;
  text-align: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  font-family: inherit;
}

.fl-time-pill:hover {
  border-color: rgba(255, 255, 255, 0.7);
  background: rgba(22, 30, 25, 0.7);
}

.fl-time-pill.active {
  background: rgba(85, 134, 50, 0.12);
  border-color: #558632;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
  color: #FFFFFF;
}

.fl-time-arrow {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: rgba(22, 30, 25, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #E7ECE9;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s, opacity 0.2s, transform 0.2s;
}

.fl-time-arrow svg {
  width: 16px;
  height: 16px;
}

.fl-time-arrow:hover {
  border-color: #558632;
  color: #558632;
}

.fl-time-note {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.72rem;
  color: #E7ECE9;
  margin-top: 2px;
}

.fl-time-note svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.fl-policies-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 2px;
}

.fl-policy-card {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: rgba(18, 24, 20, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  padding: 10px 12px;
}

.fl-policy-icon {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: rgba(85, 134, 50, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.fl-policy-icon svg {
  width: 15px;
  height: 15px;
}

.fl-policy-title {
  display: block;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.5px;
  color: #FFFFFF;
  margin-bottom: 2px;
  text-transform: uppercase;
}

.fl-policy-desc {
  font-size: 0.7rem;
  color: #E7ECE9;
  margin: 0;
  line-height: 1.3;
}

/* --- COLUMN 3: REAL Interactive Leaflet Map --- */
.fl-col-map {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.6);
  min-height: 380px;
}

.fl-map-frame {
  position: relative;
  width: 100%;
  height: 100%;
}

.fl-leaflet-container {
  width: 100%;
  height: 100%;
  min-height: 380px;
  background: #181818;
}

/* Clean Dark Mode Styling for Real OpenStreetMap Tiles without Watermarks */
#fl-leaflet-map .leaflet-tile {
  filter: invert(100%) hue-rotate(180deg) brightness(62%) contrast(135%) grayscale(65%);
}


/* Override Leaflet default container backgrounds & controls */
.leaflet-container {
  background-color: #181818 !important;
  font-family: var(--font-family-brand), sans-serif !important;
}

.leaflet-control-zoom {
  display: none !important;
}

.leaflet-control-attribution {
  background: rgba(5, 7, 6, 0.7) !important;
  color: #556259 !important;
  font-size: 9px !important;
  padding: 2px 6px !important;
}

.leaflet-control-attribution a {
  color: #558632 !important;
}

/* Custom Zoom Buttons */
.fl-map-zoom-controls {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fl-zoom-btn {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(14, 18, 15, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #FFFFFF;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s, opacity 0.2s, transform 0.2s;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
}

.fl-zoom-btn:hover {
  border-color: #558632;
  color: #558632;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
}

/* Pulsing Custom Pin Marker */
.pulse-marker-wrap {
  position: relative;
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: -26px;
  margin-top: -26px;
  cursor: pointer;
}

.pulse-marker-ring {
  position: absolute;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: 2px solid rgba(85, 134, 50, 0.8);
  background: rgba(85, 134, 50, 0.16);
  animation: pulseRingAnim 2.4s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}

.pulse-marker-center {
  position: relative;
  z-index: 2;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #558632;
  color: #121212;
  display: flex;
  align-items: center;
  justify-content: center;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.pulse-marker-center svg {
  width: 18px;
  height: 18px;
  stroke: #121212;
}

@keyframes pulseRingAnim {
  0% {
    transform: scale(0.4);
    opacity: 1;
  }

  75%,
  100% {
    transform: scale(1.65);
    opacity: 0;
  }
}

/* Floating Store Card on Map */
.fl-floating-store-card {
  position: absolute;
  bottom: 16px;
  left: 16px;
  right: 16px;
  z-index: 1000;
  background: rgba(12, 17, 14, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 14px;
  padding: 12px 14px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fl-fsc-body {
  display: flex;
  align-items: center;
  gap: 12px;
}

.fl-fsc-thumb {
  width: 62px;
  height: 62px;
  border-radius: 9px;
  overflow: hidden;
  flex-shrink: 0;
  background: #000;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.fl-fsc-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fl-fsc-title-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 2px;
}

.fl-fsc-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: #FFFFFF;
}

.fl-fsc-badge {
  font-size: 0.65rem;
  font-weight: 700;
  color: #558632;
  background: rgba(85, 134, 50, 0.12);
  border: 1px solid rgba(85, 134, 50, 0.32);
  border-radius: 999px;
  padding: 2px 8px;
}

.fl-fsc-location {
  font-size: 0.76rem;
  color: #E7ECE9;
  margin-bottom: 3px;
}

.fl-fsc-rating {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.76rem;
  color: #FFFFFF;
}

.fl-star {
  color: #558632;
  font-size: 0.85rem;
}

.fl-reviews {
  color: #E7ECE9;
}

.fl-fsc-eta {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.72rem;
  color: #E7ECE9;
  margin-top: 2px;
}

.fl-fsc-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding-top: 8px;
  color: #E7ECE9;
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s;
  cursor: pointer;
}

.fl-fsc-link:hover {
  color: #558632;
}

.fl-fsc-link svg {
  width: 14px;
  height: 14px;
}

/* --- BOTTOM DOCK: FULFILLMENT SUMMARY BAR --- */
.fl-bottom-dock {
  background: rgba(13, 18, 15, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 12px 20px;
  box-shadow: 0 14px 35px rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  flex-shrink: 0;
}

.fl-dock-inner {
  display: flex;
  flex-direction: column;
}

.fl-dock-tag {
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 1.2px;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.fl-dock-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.fl-dock-col {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.fl-mode-indicator {
  display: flex;
  align-items: center;
  gap: 8px;
}

.fl-dock-icon {
  width: 18px;
  height: 18px;
}

.fl-dock-change-link {
  background: none;
  border: none;
  color: #558632;
  font-size: 0.74rem;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  text-align: left;
  margin-top: 2px;
}

.fl-dock-change-link:hover {
  text-decoration: underline;
}

.fl-dock-divider {
  width: 1px;
  height: 32px;
  background: rgba(255, 255, 255, 0.08);
}

.fl-dock-lbl {
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.6px;
  color: #E7ECE9;
  text-transform: uppercase;
}

.fl-dock-val {
  font-size: 0.86rem;
  font-weight: 700;
  color: #FFFFFF;
}

.fl-dock-sub {
  font-size: 0.74rem;
  color: #E7ECE9;
}

.fl-dock-reward {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(85, 134, 50, 0.06);
  border: 1px solid rgba(85, 134, 50, 0.2);
  border-radius: 10px;
  padding: 8px 14px;
  cursor: pointer;
  transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s, opacity 0.2s, transform 0.2s;
}

.fl-dock-reward:hover {
  border-color: rgba(85, 134, 50, 0.4);
  background: rgba(85, 134, 50, 0.1);
}

.fl-reward-icon {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: rgba(85, 134, 50, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.fl-reward-icon svg {
  width: 16px;
  height: 16px;
}

.fl-reward-headline {
  font-size: 0.76rem;
  font-weight: 700;
  color: #FFFFFF;
}

.fl-reward-sub {
  font-size: 0.68rem;
  color: #558632;
}

.fl-reward-arr {
  width: 14px;
  height: 14px;
  stroke: #E7ECE9;
  margin-left: 4px;
}

.fl-btn-continue {
  background: #558632;
  color: #121212;
  border: none;
  border-radius: 10px;
  padding: 10px 24px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: inherit;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
  transition: color 0.2s, background-color 0.2s, border-color 0.2s, box-shadow 0.2s, opacity 0.2s, transform 0.2s;
  min-width: 160px;
}

.fl-btn-continue:hover {
  background: #558632;
  transform: translateY(-1px);
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
}

.fl-btn-main {
  font-size: 0.86rem;
  font-weight: 800;
  letter-spacing: 0.5px;
}

.fl-btn-sub {
  font-size: 0.68rem;
  font-weight: 600;
  opacity: 0.85;
}

/* --- Trust & Help Footer Strip --- */
.fl-footer-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.74rem;
  color: #A7B0AB;
  padding-top: 6px;
  flex-shrink: 0;
}

.fl-trust-items {
  display: flex;
  align-items: center;
  gap: 24px;
}

.fl-trust-item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.fl-trust-item svg {
  width: 14px;
  height: 14px;
  stroke: #A7B0AB;
}

.fl-help-item {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: opacity 0.2s;
}

.fl-help-item:hover {
  opacity: 0.85;
}

.fl-chat-link {
  color: #558632;
  font-weight: 600;
  text-decoration: underline;
}

.fl-help-item svg {
  width: 14px;
  height: 14px;
  stroke: #558632;
}

/* ==========================================================================
   Responsive Breakpoints for Fulfillment Section
   ========================================================================== */
@media (max-width: 1280px) {
  .fulfillment-section {
    padding: 16px 28px 12px 28px;
  }

  .fl-stage-grid {
    grid-template-columns: 260px 420px 1fr;
    gap: 20px;
  }

  .fl-main-title {
    font-size: 2.8rem;
  }
}

@media (max-width: 1024px) {
  .fulfillment-section {
    height: auto;
    min-height: 100vh;
    max-height: none;
    overflow-y: visible;
    padding: 30px 20px;
  }

  .fl-stage-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .fl-col-map {
    height: 360px;
  }

  .fl-dock-content {
    flex-wrap: wrap;
    gap: 16px;
  }

  .fl-footer-strip {
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
  }
}


/* ==========================================================================
   SECTION: YOUR CART / WEEK HANDLED (1:1 Design Reference Layout)
   ========================================================================== */
.week-handled-section,
.cart-page-section {
  position: relative;
  background-color: #121212;
  color: #FFFFFF;
  font-family: var(--font-family-brand), 'Switzer', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  padding: 32px 32px 60px;
  margin-top: var(--nav-height, 80px);
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  min-height: calc(100vh - 80px);
}

.wh-ambient-glow {
  position: absolute;
  top: -150px;
  right: -100px;
  width: 500px;
  height: 500px;
  background: none;
  pointer-events: none;
  z-index: 0;
}

.wh-container {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
  z-index: 1;
}

/* --- Top Continue Shopping Row --- */
.wh-top-bar {
  display: flex;
  align-items: center;
  margin-bottom: 16px;
}

.wh-btn-continue-shop {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #A7B0AB;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.15s ease, transform 0.15s ease;
}

.wh-btn-continue-shop:hover {
  color: #FFFFFF;
  transform: translateX(-3px);
}

/* --- Main Headline Block --- */
.wh-headline-block {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 28px;
}

.wh-main-headline {
  font-family: var(--font-family-brand), 'Bebas Neue', sans-serif;
  font-size: clamp(3rem, 5.5vw, 4.2rem);
  font-weight: 900;
  color: #FFFFFF;
  line-height: 1;
  letter-spacing: 0.02em;
  margin: 0;
  text-transform: uppercase;
}

.wh-cart-subtitle {
  font-size: 1rem;
  color: #A7B0AB;
  font-weight: 500;
  margin: 0;
  line-height: 1.3;
}

/* --- Section Headers with Caps --- */
.wh-section-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.wh-section-subtitle-caps {
  font-size: 0.88rem;
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0;
}

.wh-btn-clear-cart {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: none;
  color: #78827C;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  padding: 4px 6px;
  transition: color 0.15s ease;
}

.wh-btn-clear-cart:hover {
  color: #EF4444;
}

/* --- Main 2-Column Grid --- */
.wh-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(360px, 0.85fr);
  gap: 36px;
  align-items: start;
}

/* --- Left Column: Meals, Pickup & Delivery, Add to your order --- */
.wh-col-meals {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.wh-meals-section-wrap {
  width: 100%;
}

.wh-meals-list {
  display: flex;
  flex-direction: column;
  width: 100%;
}

/* --- Meal Item Card (Exact Reference Matching) --- */
.wh-meal-card,
.wh-meal-group-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 0;
  border-bottom: 1px solid #1F1F1F;
  gap: 20px;
  width: 100%;
  box-sizing: border-box;
  transition: border-color 0.2s ease;
}

.wh-meal-card:first-child {
  padding-top: 6px;
}

.wh-meal-card-left {
  display: flex;
  align-items: center;
  gap: 20px;
  min-width: 0;
  flex: 1;
}

.wh-meal-thumb-wrap {
  position: relative;
  width: 96px;
  height: 96px;
  border-radius: 12px;
  overflow: hidden;
  background: #181818;
  border: 1px solid #282828;
  flex-shrink: 0;
}

.wh-meal-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.wh-card-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  flex: 1;
}

.wh-meal-title {
  font-size: 1.18rem;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0;
  line-height: 1.25;
}

.wh-meal-desc {
  font-size: 0.88rem;
  color: #A7B0AB;
  margin: 0;
  line-height: 1.35;
}

.wh-meal-macros {
  font-size: 0.82rem;
  color: #78827C;
  margin-top: 2px;
  font-weight: 500;
}

.wh-meal-card-mid-row .wh-meal-qty-stepper,
.wh-meal-card-bot-row .wh-meal-price-col {
  display: none;
}

/* Right side of meal card: Stepper, Price, Trash */
.wh-meal-card-right {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-shrink: 0;
}

.wh-meal-qty-stepper {
  display: inline-flex;
  align-items: center;
  background: #181818;
  border: 1px solid #2A2A2A;
  border-radius: 8px;
  padding: 4px 10px;
  gap: 14px;
}

.wh-meal-qty-btn {
  background: transparent;
  border: none;
  color: #A7B0AB;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  font-weight: 700;
  cursor: pointer;
  transition: color 0.15s ease;
  padding: 0;
}

.wh-meal-qty-btn:hover {
  color: #FFFFFF;
}

.wh-meal-qty-val {
  min-width: 14px;
  text-align: center;
  font-size: 0.95rem;
  font-weight: 700;
  color: #FFFFFF;
}

.wh-meal-price-col {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  min-width: 70px;
  text-align: right;
  gap: 2px;
}

.wh-meal-total-price {
  font-size: 1.18rem;
  font-weight: 800;
  color: #FFFFFF;
  line-height: 1.2;
}

.wh-meal-unit-price {
  font-size: 0.8rem;
  color: #78827C;
  line-height: 1.2;
}

.wh-btn-remove-meal {
  background: transparent;
  border: none;
  color: #78827C;
  cursor: pointer;
  padding: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 0.15s ease;
}

.wh-btn-remove-meal:hover {
  color: #EF4444;
}

.wh-mobile-trash {
  display: none !important;
}

.wh-desktop-trash {
  display: inline-flex !important;
}

/* Empty Meal Pack state */
.wh-meals-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 20px;
  background: #181818;
  border: 1px dashed #2A2A2A;
  border-radius: 16px;
  text-align: center;
  gap: 14px;
  margin: 12px 0;
}

.wh-empty-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.03);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #2A2A2A;
  color: #558632;
}

.wh-empty-text {
  font-size: 0.95rem;
  color: #A7B0AB;
  margin: 0;
}

.wh-btn-build-pack {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border-radius: 10px;
  background: #558632;
  color: #FFFFFF;
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s ease;
}

.wh-btn-build-pack:hover {
  background: #669E3D;
}

/* --- Section 2: Pickup & Delivery Card --- */
.wh-fulfillment-section {
  margin-top: 12px;
  width: 100%;
}

.wh-btn-change-fulfillment {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: none;
  border: none;
  color: #558632;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
  transition: color 0.15s ease;
}

.wh-btn-change-fulfillment:hover {
  color: #669E3D;
}

.wh-fulfillment-card {
  background: #181818;
  border: 1px solid #2A2A2A;
  border-radius: 14px;
  padding: 18px 24px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease;
  width: 100%;
  box-sizing: border-box;
}

.wh-fulfillment-card:hover {
  border-color: #383838;
  background: #1C1C1C;
}

.wh-ff-col {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.wh-ff-icon-circle {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: rgba(85, 134, 50, 0.12);
  border: 1px solid rgba(85, 134, 50, 0.35);
  color: #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.wh-ff-details {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.wh-ff-title {
  font-size: 0.98rem;
  font-weight: 800;
  color: #FFFFFF;
}

.wh-ff-sub {
  font-size: 0.84rem;
  color: #78827C;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.wh-ff-divider {
  width: 1px;
  height: 38px;
  background: #262626;
}

/* --- Section 3: Add To Your Order --- */
.wh-addons-section {
  margin-top: 12px;
  width: 100%;
}

.wh-addons-section-sub {
  font-size: 0.84rem;
  color: #78827C;
}

.wh-addons-catalog-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 12px;
}

.wh-addon-catalog-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  background: #181818;
  border: 1px solid #2A2A2A;
  border-radius: 14px;
  padding: 14px 16px;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.wh-addon-catalog-card:hover {
  border-color: #383838;
}

.wh-addon-catalog-thumb {
  width: 60px;
  height: 60px;
  border-radius: 10px;
  overflow: hidden;
  background: #121212;
  border: 1px solid #282828;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.wh-addon-catalog-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.wh-addon-catalog-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.wh-addon-catalog-name {
  font-size: 0.95rem;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0;
}

.wh-addon-catalog-desc {
  font-size: 0.78rem;
  color: #78827C;
  margin: 0;
  line-height: 1.3;
}

.wh-addon-catalog-price {
  font-size: 0.85rem;
  font-weight: 700;
  color: #E7ECE9;
  margin-top: 2px;
}

.wh-btn-add-addon,
.wh-addon-add-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #181818;
  border: 1px solid #2E2E2E;
  border-radius: 9999px;
  padding: 7px 18px;
  color: #FFFFFF;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
  text-decoration: none;
  line-height: 1;
}

.wh-btn-add-addon:hover,
.wh-addon-add-btn:hover {
  background: #558632;
  border-color: #558632;
  color: #FFFFFF;
  transform: translateY(-1px);
}

.wh-btn-add-addon:active,
.wh-addon-add-btn:active {
  background: #466F29;
  border-color: #466F29;
  transform: translateY(0);
}

.wh-addon-catalog-stepper {
  display: inline-flex;
  align-items: center;
  background: #181818;
  border: 1px solid #2E2E2E;
  border-radius: 9999px;
  padding: 4px 10px;
  gap: 10px;
  flex-shrink: 0;
}

.wh-addon-qty-btn {
  background: transparent;
  border: none;
  color: #A7B0AB;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 700;
  cursor: pointer;
  border-radius: 50%;
  transition: color 0.15s ease, background-color 0.15s ease;
  padding: 0;
}

.wh-addon-qty-btn:hover:not(:disabled) {
  color: #FFFFFF;
  background: rgba(255, 255, 255, 0.08);
}

.wh-addon-qty-btn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.wh-addon-qty-val {
  min-width: 16px;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 800;
  color: #FFFFFF;
}

/* --- Right Column: Order Summary Panel --- */
.wh-col-summary {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: sticky;
  top: 100px;
}

.wh-summary-panel {
  background: #181818;
  border: 1px solid #2A2A2A;
  border-radius: 18px;
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
}

.wh-summary-title {
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #FFFFFF;
  margin: 0;
}

.wh-summary-items-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

.wh-summary-item-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.92rem;
  color: #E7ECE9;
}

.wh-summary-item-line .item-name {
  color: #E7ECE9;
  font-weight: 500;
}

.wh-summary-item-line .item-cost {
  color: #FFFFFF;
  font-weight: 700;
}

.wh-summary-divider {
  height: 1px;
  background: #2A2A2A;
  margin: 4px 0;
}

/* Accordions in Summary */
.wh-accordion-item {
  border-bottom: 1px solid #222222;
  padding: 2px 0 6px;
}

.wh-accordion-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: none;
  border: none;
  padding: 8px 0;
  color: #E7ECE9;
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  text-align: left;
  transition: color 0.15s ease;
}

.wh-accordion-trigger:hover {
  color: #FFFFFF;
}

.wh-accordion-icon {
  color: #78827C;
  transition: transform 0.2s ease;
}

.wh-accordion-item.is-open .wh-accordion-icon {
  transform: rotate(180deg);
}

.wh-accordion-content {
  padding: 8px 0 6px;
  width: 100%;
}

/* Tip selection */
.wh-tip-buttons {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
}

.wh-tip-btn {
  background: #121212;
  border: 1px solid #2A2A2A;
  border-radius: 8px;
  color: #E7ECE9;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 8px 0;
  cursor: pointer;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
  text-align: center;
}

.wh-tip-btn:hover {
  border-color: #558632;
  color: #FFFFFF;
}

.wh-tip-btn.active {
  background: #558632;
  border-color: #558632;
  color: #FFFFFF;
}

.wh-custom-tip-wrap {
  margin-top: 6px;
}

.wh-custom-tip-input-group {
  display: flex;
  align-items: center;
  background: #121212;
  border: 1px solid #2A2A2A;
  border-radius: 8px;
  padding: 6px 12px;
  gap: 6px;
}

.wh-custom-tip-input-group:focus-within {
  border-color: #558632;
}

.wh-custom-tip-currency {
  color: #A7B0AB;
  font-size: 0.85rem;
  font-weight: 700;
}

.wh-custom-tip-input {
  background: transparent;
  border: none;
  outline: none;
  box-shadow: none;
  color: #FFFFFF;
  font-size: 0.85rem;
  width: 100%;
}

/* Price rows */
.wh-price-rows {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.wh-price-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.92rem;
}

.wh-price-row[hidden] {
  display: none;
}

.wh-price-lbl {
  color: #A7B0AB;
  display: flex;
  align-items: center;
  gap: 4px;
}

.wh-info-icon {
  font-size: 0.72rem;
  color: #A7B0AB;
  cursor: help;
}

.wh-price-val {
  color: #FFFFFF;
  font-weight: 600;
}

.wh-price-val.free {
  color: #558632;
  font-weight: 700;
}

.wh-loyalty-row .wh-price-lbl {
  color: #E7ECE9;
}

.wh-credit-val {
  color: #558632;
  font-weight: 700;
}

/* Coupon Input Row */
.wh-coupon-inline-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 4px 0;
}

.wh-coupon-input-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #121212;
  border: 1px solid #2A2A2A;
  border-radius: 8px;
  padding: 8px 12px;
  transition: border-color 0.2s ease;
}

.wh-coupon-input-wrap:focus-within {
  border-color: #558632;
}

.wh-coupon-input-icon {
  color: #A7B0AB;
  flex-shrink: 0;
}

.wh-coupon-input-field {
  background: transparent;
  border: none;
  outline: none;
  color: #FFFFFF;
  font-size: 0.84rem;
  width: 100%;
  font-family: inherit;
}

.wh-coupon-input-field::placeholder {
  color: #6E7672;
}

.wh-coupon-apply-btn {
  padding: 8px 18px;
  border-radius: 8px;
  background: #558632;
  border: 1px solid #558632;
  color: #FFFFFF;
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
  white-space: nowrap;
}

.wh-coupon-apply-btn:hover {
  background: #669E3D;
  border-color: #669E3D;
}

.wh-coupon-apply-btn.is-remove {
  background: #242424;
  border-color: #383838;
  color: #E7ECE9;
}

.wh-coupon-apply-btn.is-remove:hover {
  background: #331A1A;
  border-color: #EF4444;
  color: #FF7070;
}

/* Total row */
.wh-total-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding-top: 6px;
}

.wh-total-lbl-wrap {
  display: flex;
  flex-direction: column;
}

.wh-total-lbl {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #FFFFFF;
}

.wh-total-currency {
  font-size: 0.75rem;
  font-weight: 600;
  color: #78827C;
  letter-spacing: 0.5px;
}

.wh-total-val {
  font-size: clamp(2.1rem, 3.2vw, 2.7rem);
  font-weight: 900;
  color: #FFFFFF;
  letter-spacing: -0.02em;
  line-height: 1;
}

/* Proceed to Checkout CTA */
.wh-btn-checkout {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 54px;
  border-radius: 12px;
  background: #558632;
  border: none;
  color: #FFFFFF;
  font-size: 1.05rem;
  font-weight: 800;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.15s ease;
  box-shadow: none;
}

.wh-btn-checkout:hover {
  background: #669E3D;
}

.wh-btn-checkout:active {
  background: #466F29;
  transform: scale(0.99);
}

.wh-trust-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.8rem;
  color: #78827C;
  margin-top: -6px;
}

/* Reward Points Box */
.wh-reward-box {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #141c13;
  border: 1px solid rgba(85, 134, 50, 0.35);
  border-radius: 12px;
  padding: 14px 16px;
  position: relative;
  cursor: pointer;
  transition: border-color 0.2s ease;
}

.wh-reward-box:hover {
  border-color: rgba(85, 134, 50, 0.6);
}

.wh-reward-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #558632;
}

.wh-reward-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
}

.wh-reward-points {
  font-size: 0.92rem;
  font-weight: 800;
  color: #FFFFFF;
}

.wh-reward-sub {
  font-size: 0.78rem;
  color: #78827C;
}

.wh-reward-arrow {
  color: #78827C;
  flex-shrink: 0;
}

/* ==========================================================================
   BOTTOM HELP STRIP
   ========================================================================== */
.cart-help-strip {
  margin-top: 48px;
  padding: 24px 0 0;
  border-top: 1px solid #222222;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.cart-help-strip-left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cart-help-strip-icon-circle {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #1C1C1C;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #78827C;
  flex-shrink: 0;
}

.cart-help-strip-title {
  font-size: 0.92rem;
  font-weight: 600;
  color: #FFFFFF;
}

.cart-help-strip-actions {
  display: flex;
  align-items: center;
  gap: 24px;
}

.cart-help-strip-action-btn {
  color: #A7B0AB;
  font-size: 0.88rem;
  font-weight: 500;
  text-decoration: none;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: color 0.15s ease;
}

.cart-help-strip-action-btn:hover {
  color: #FFFFFF;
}

/* Cart Page: Quick Chat Floating Button & Widget Disabled */
.standalone-cart-page #hot-chat-launcher,
.standalone-cart-page .hot-chat-launcher,
.standalone-cart-page .cart-floating-quick-chat,
body.standalone-cart-page #hot-chat-launcher,
body.standalone-cart-page .hot-chat-launcher {
  display: none !important;
}

/* In-Cart Meal Edit Modal */
.wh-edit-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease, visibility 0.25s ease;
  padding: 20px;
}

.wh-edit-modal-backdrop.open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.wh-edit-modal-window {
  width: 100%;
  max-width: 520px;
  background: #181818;
  border: 1px solid #2A2A2A;
  border-radius: 16px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.8);
  overflow: hidden;
  transform: scale(0.95) translateY(10px);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
}

.wh-edit-modal-backdrop.open .wh-edit-modal-window {
  transform: scale(1) translateY(0);
}

.wh-edit-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px;
  border-bottom: 1px solid #2A2A2A;
  background: #141414;
}

.wh-edit-modal-title-wrap {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.wh-edit-modal-eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  color: #558632;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.wh-edit-modal-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0;
}

.wh-edit-modal-close {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid #2A2A2A;
  color: #A7B0AB;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.wh-edit-modal-close:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
}

.wh-edit-modal-body {
  padding: 24px;
}

.wh-edit-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

@media (max-width: 540px) {
  .wh-edit-fields-grid {
    grid-template-columns: 1fr;
  }
}

.wh-edit-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.wh-edit-label {
  font-size: 0.76rem;
  font-weight: 600;
  color: #A7B0AB;
  letter-spacing: 0.02em;
}

.wh-edit-select {
  width: 100%;
  padding: 10px 12px;
  background: #121212;
  border: 1px solid #2A2A2A;
  border-radius: 8px;
  color: #FFFFFF;
  font-size: 0.85rem;
  font-family: inherit;
  font-weight: 500;
  cursor: pointer;
  outline: none;
  transition: border-color 0.2s ease;
}

.wh-edit-select:focus {
  border-color: #558632;
}

.wh-edit-select option {
  background: #181818;
  color: #FFFFFF;
}

.wh-edit-modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  border-top: 1px solid #2A2A2A;
  background: #141414;
  gap: 12px;
  flex-wrap: wrap;
}

.wh-edit-modal-builder-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #558632;
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
}

.wh-edit-modal-builder-link:hover {
  color: #669E3D;
  text-decoration: underline;
}

.wh-edit-footer-btns {
  display: flex;
  align-items: center;
  gap: 10px;
}

.wh-btn-modal-cancel {
  padding: 8px 16px;
  border-radius: 8px;
  background: transparent;
  border: 1px solid #2A2A2A;
  color: #D4D4D8;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
}

.wh-btn-modal-cancel:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #FFFFFF;
}

.wh-btn-modal-save {
  padding: 8px 18px;
  border-radius: 8px;
  background: #558632;
  border: 1px solid #558632;
  color: #FFFFFF;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}

.wh-btn-modal-save:hover {
  background: #669E3D;
  border-color: #669E3D;
}

/* --- Bottom Footer Dish Banner --- */
.cart-footer-banner {
  margin-top: 48px;
  border-top: 1px solid #2A2A2A;
  padding: 24px 0 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.cart-footer-dish-wrap {
  width: 140px;
  height: 90px;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.cart-footer-dish-wrap img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.cart-footer-motto {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 2px;
  color: #A7B0AB;
  text-transform: uppercase;
}

.cart-footer-help-link {
  color: #A7B0AB;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color 0.15s ease;
}

.cart-footer-help-link:hover {
  color: #FFFFFF;
}

/* ==========================================================================
   Responsive Breakpoints for Cart Page
   ========================================================================== */
@media (max-width: 992px) {
  .wh-main-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .cart-footer-banner {
    flex-direction: column;
    text-align: center;
    gap: 16px;
  }
}

/* Desktop Defaults for Cart Mobile Helpers */
.wh-cart-mobile-brand {
  display: none;
}
.wh-cart-mobile-sticky-bar {
  display: none;
}
.wh-meals-section-header {
  display: none;
}
.wh-meal-price-box-mobile {
  display: none;
}
.wh-remove-label {
  display: none;
}
.cart-mobile-help-section {
  display: none;
}

@media (max-width: 768px) {
  .standalone-cart-page {
    padding-top: 0 !important;
    overflow-x: hidden !important;
  }

  .cart-page-section {
    padding: 16px 16px calc(100px + env(safe-area-inset-bottom, 0px)) !important;
    margin-top: var(--nav-height, 74px) !important;
    background: #121212 !important;
    min-height: calc(100vh - var(--nav-height, 74px));
    width: 100% !important;
    max-width: 100vw !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }

  .wh-container {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  /* Cart Topbar: Back Link */
  .wh-top-bar {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: 4px 0 12px !important;
    margin-bottom: 2px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .wh-btn-continue-shop {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    color: #A7B0AB !important;
    text-decoration: none !important;
  }

  .wh-btn-continue-shop:hover {
    color: #FFFFFF !important;
  }

  /* Main Headline Block */
  .wh-headline-block {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    margin-bottom: 20px !important;
    width: 100% !important;
  }

  .wh-main-headline {
    font-family: var(--font-family-brand), 'Bebas Neue', sans-serif !important;
    font-size: 3.2rem !important;
    font-weight: 900 !important;
    color: #FFFFFF !important;
    margin: 0 !important;
    line-height: 0.95 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
  }

  .wh-cart-subtitle {
    font-size: 0.92rem !important;
    color: #A7B0AB !important;
    font-weight: 500 !important;
    margin-top: 4px !important;
    line-height: 1.3 !important;
  }

  /* Main Grid 1-column layout */
  .wh-main-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .wh-col-meals {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
  }

  .wh-col-summary {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    position: static !important;
  }

  /* Section Headers with Caps */
  .wh-section-header-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 12px !important;
    width: 100% !important;
  }

  .wh-section-subtitle-caps {
    font-size: 0.85rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    margin: 0 !important;
  }

  .wh-btn-clear-cart {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    background: transparent !important;
    border: none !important;
    color: #78827C !important;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    padding: 2px 4px !important;
  }

  /* Meal Item Card (Exact 1:1 Mobile Matching) */
  .wh-meal-card,
  .wh-meal-group-card {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: 16px 0 !important;
    border-bottom: 1px solid #1C1C1C !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    gap: 14px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin-bottom: 0 !important;
  }

  .wh-meal-card:first-child {
    padding-top: 4px !important;
  }

  .wh-meal-thumb-wrap {
    width: 90px !important;
    height: 90px !important;
    border-radius: 14px !important;
    background: #181818 !important;
    border: 1px solid #282828 !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
  }

  .wh-meal-thumb-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
  }

  .wh-card-info {
    flex: 1 !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
  }

  .wh-meal-card-top-row {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    width: 100% !important;
    gap: 8px !important;
  }

  .wh-meal-title {
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    margin: 0 !important;
    line-height: 1.2 !important;
  }

  .wh-btn-remove-meal {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: none !important;
    color: #78827C !important;
    cursor: pointer !important;
    padding: 2px !important;
    flex-shrink: 0 !important;
  }

  .wh-btn-remove-meal:hover {
    color: #EF4444 !important;
  }

  .wh-meal-card-mid-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    gap: 10px !important;
  }

  .wh-meal-desc {
    font-size: 0.78rem !important;
    color: #A7B0AB !important;
    line-height: 1.3 !important;
    flex: 1 !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  .wh-meal-card-mid-row .wh-meal-qty-stepper {
    display: inline-flex !important;
    align-items: center !important;
    background: #181818 !important;
    border: 1px solid #2A2A2A !important;
    border-radius: 9999px !important;
    padding: 3px 8px !important;
    gap: 10px !important;
    flex-shrink: 0 !important;
  }

  .wh-meal-qty-btn {
    background: transparent !important;
    border: none !important;
    color: #A7B0AB !important;
    width: 18px !important;
    height: 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    padding: 0 !important;
  }

  .wh-meal-qty-val {
    font-size: 0.88rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    min-width: 14px !important;
    text-align: center !important;
  }

  .wh-meal-card-bot-row {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    width: 100% !important;
    gap: 8px !important;
    margin-top: 2px !important;
  }

  .wh-meal-macros {
    font-size: 0.76rem !important;
    color: #78827C !important;
    font-weight: 500 !important;
  }

  .wh-meal-price-col {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    text-align: right !important;
    gap: 1px !important;
    flex-shrink: 0 !important;
  }

  .wh-meal-total-price {
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    line-height: 1.1 !important;
  }

  .wh-meal-unit-price {
    font-size: 0.78rem !important;
    color: #78827C !important;
    line-height: 1.1 !important;
  }

  .wh-meal-card-right {
    display: none !important;
  }

  /* Section 2: Pickup & Delivery Card */
  .wh-fulfillment-section {
    margin-top: 14px !important;
    width: 100% !important;
  }

  .wh-fulfillment-card {
    background: #181818 !important;
    border: 1px solid #2A2A2A !important;
    border-radius: 14px !important;
    padding: 14px 16px !important;
    display: grid !important;
    grid-template-columns: 1fr auto 1fr !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .wh-ff-col {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-width: 0 !important;
  }

  .wh-ff-icon-circle {
    width: 36px !important;
    height: 36px !important;
    border-radius: 8px !important;
    background: rgba(85, 134, 50, 0.12) !important;
    border: 1px solid rgba(85, 134, 50, 0.35) !important;
    color: #558632 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
  }

  .wh-ff-title {
    font-size: 0.92rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    line-height: 1.2 !important;
  }

  .wh-ff-sub {
    font-size: 0.76rem !important;
    color: #78827C !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .wh-ff-divider {
    width: 1px !important;
    height: 32px !important;
    background: #262626 !important;
  }

  /* Section 3: Add To Your Order */
  .wh-addons-section {
    margin-top: 14px !important;
    width: 100% !important;
  }

  .wh-addons-section-sub {
    font-size: 0.78rem !important;
    color: #78827C !important;
  }

  .wh-addons-catalog-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    margin-top: 10px !important;
    width: 100% !important;
  }

  .wh-addon-catalog-card {
    background: #181818 !important;
    border: 1px solid #2A2A2A !important;
    border-radius: 14px !important;
    padding: 12px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    gap: 8px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    min-height: 155px !important;
  }

  .wh-addon-catalog-thumb {
    width: 100% !important;
    height: 75px !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    background: #121212 !important;
    border: 1px solid #282828 !important;
  }

  .wh-addon-catalog-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
  }

  .wh-addon-catalog-info {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
  }

  .wh-addon-catalog-name {
    font-size: 0.88rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    margin: 0 !important;
  }

  .wh-addon-catalog-desc {
    font-size: 0.72rem !important;
    color: #78827C !important;
    margin: 0 !important;
    line-height: 1.25 !important;
  }

  .wh-addon-catalog-actions {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-top: 4px !important;
  }

  .wh-addon-catalog-price {
    font-size: 0.82rem !important;
    font-weight: 800 !important;
    color: #E7ECE9 !important;
  }

  .wh-addon-add-btn {
    background: #1C1C1C !important;
    border: 1px solid #2E2E2E !important;
    border-radius: 9999px !important;
    padding: 5px 12px !important;
    font-size: 0.8rem !important;
    font-weight: 700 !important;
    color: #FFFFFF !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    cursor: pointer !important;
  }

  /* Order Summary Panel on Mobile (Hidden by default or inline accordions) */
  .wh-col-summary {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
  }

  .wh-summary-panel {
    background: #181818 !important;
    border: 1px solid #2A2A2A !important;
    border-radius: 16px !important;
    padding: 16px 14px !important;
    gap: 12px !important;
    box-shadow: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Mobile Sticky Bottom Checkout Bar */
  .wh-cart-mobile-sticky-bar {
    display: flex !important;
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 1000 !important;
    background: #121212 !important;
    border-top: 1px solid #222222 !important;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)) !important;
    box-sizing: border-box !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.6) !important;
  }

  .wh-sticky-left-cluster {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-width: 0 !important;
  }

  .wh-sticky-expand-btn {
    width: 34px !important;
    height: 34px !important;
    border-radius: 8px !important;
    background: #1C1C1C !important;
    border: 1px solid #2A2A2A !important;
    color: #FFFFFF !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    cursor: pointer !important;
    padding: 0 !important;
  }

  .wh-sticky-total-info {
    display: flex !important;
    flex-direction: column !important;
    gap: 1px !important;
    min-width: 0 !important;
  }

  .wh-sticky-total-label {
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    color: #78827C !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    line-height: 1 !important;
  }

  .wh-sticky-total-val {
    font-size: 1.15rem !important;
    font-weight: 900 !important;
    color: #FFFFFF !important;
    line-height: 1.1 !important;
    letter-spacing: -0.01em !important;
    white-space: nowrap !important;
  }

  .wh-sticky-total-sub {
    font-size: 0.72rem !important;
    color: #A7B0AB !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }

  .wh-sticky-btn-checkout {
    flex-shrink: 0 !important;
    background: #558632 !important;
    color: #FFFFFF !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 12px 18px !important;
    font-size: 0.92rem !important;
    font-weight: 800 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    cursor: pointer !important;
    transition: background 0.2s ease, transform 0.15s ease !important;
    text-decoration: none !important;
  }

  .wh-sticky-btn-checkout:hover {
    background: #669E3D !important;
  }

  .wh-sticky-btn-checkout:active {
    background: #466F29 !important;
    transform: scale(0.98) !important;
  }

  /* Help strip on mobile */
  .cart-help-strip {
    margin-top: 24px !important;
    padding: 18px 0 0 !important;
    border-top: 1px solid #222222 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 12px !important;
    text-align: center !important;
  }

  .cart-help-strip-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
  }
}

  .cart-help-title {
    font-size: 0.95rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    margin: 0 !important;
  }

  .cart-help-sub {
    font-size: 0.78rem !important;
    color: #A7B0AB !important;
    margin: 0 0 8px !important;
  }

  .cart-help-buttons {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  .cart-help-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background: #121212 !important;
    border: 1px solid #2A2A2A !important;
    border-radius: 10px !important;
    padding: 11px 14px !important;
    color: #FFFFFF !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: border-color 0.2s ease, background 0.2s ease !important;
  }

  .cart-help-btn:hover {
    border-color: #383838 !important;
    background: #181818 !important;
  }

  .wh-forgot-something-row {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 16px 0 !important;
  }

  .wh-forgot-title {
    font-size: 1.05rem !important;
  }

  .wh-forgot-sub {
    font-size: 0.78rem !important;
  }

  .wh-browse-menu-link {
    font-size: 0.88rem !important;
  }

  .cart-recommendations-section {
    margin-top: 28px !important;
    padding-top: 20px !important;
    gap: 14px !important;
  }

  .cart-rec-headline {
    font-size: 1.25rem !important;
  }

  .cart-rec-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px !important;
  }

  .cart-rec-thumb-wrap {
    height: 110px !important;
  }

  .cart-rec-card-body {
    padding: 10px 12px !important;
    gap: 6px !important;
  }

  .cart-rec-card-title {
    font-size: 0.88rem !important;
  }

  .cart-rec-card-price {
    font-size: 0.78rem !important;
  }

  .cart-rec-add-btn {
    padding: 6px 0 !important;
    font-size: 0.78rem !important;
  }

  .cart-rec-nav-btn {
    display: none !important;
  }

  .cart-help-strip {
    display: none !important;
  }

  .cart-floating-quick-chat {
    bottom: 16px !important;
    right: 16px !important;
    padding: 8px 14px !important;
    font-size: 0.8rem !important;
  }

  .wh-card-actions {
    position: absolute;
    top: 8px;
    right: 8px;
  }

  .wh-addons-list {
    grid-template-columns: 1fr;
  }

  .wh-trust-item {
    flex: 1 1 100%;
    justify-content: flex-start;
  }
}

/* ==========================================================================
   ORDER CONFIRMED SECTION (1:1 Exact Mockup Replica - 100vh Locked)
   "you're all set. payment successful"
   ========================================================================== */
.order-confirmed-section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  background-color: #121212;
  background: #121212;
  color: #FFFFFF;
  overflow: hidden;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(14px, 2vh, 22px) clamp(24px, 4vw, 56px) clamp(8px, 1.2vh, 14px);
  scroll-snap-align: start;
  scroll-snap-stop: always;
  font-family: var(--font-family-brand), sans-serif;
  z-index: 10;
}

body.standalone-order-confirmed .order-confirmed-section {
  padding-top: calc(80px + clamp(6px, 1vh, 12px));
}

.oc-ambient-glow {
  position: absolute;
  top: -10%;
  left: 15%;
  width: 700px;
  height: 400px;
  background: none;
  pointer-events: none;
  z-index: 1;
}

.oc-container {
  padding-inline: clamp(16px, 4vw, 48px);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: space-between;
  position: relative;
  z-index: 2;
  max-width: 1480px;
  margin: 0 auto;
  width: 100%;
  min-height: 0;
}

/* --- Upper Stage (Left Info + Right Packaging Visual) --- */
.oc-main-stage {
  display: grid;
  grid-template-columns: minmax(320px, 450px) 1fr;
  gap: clamp(24px, 4vw, 60px);
  align-items: center;
  flex: 1 1 auto;
  min-height: 0;
  padding-bottom: clamp(6px, 1vh, 12px);
}

/* Left Hero & Details */
.oc-left-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.oc-status-ring {
  width: clamp(46px, 5.5vh, 56px);
  height: clamp(46px, 5.5vh, 56px);
  border-radius: 50%;
  border: 2.5px solid #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(85, 134, 50, 0.08);
  outline: 1.5px solid #558632; outline-offset: 1px;
  margin-bottom: clamp(8px, 1.2vh, 14px);
  animation: oc-ring-pulse 3s infinite ease-in-out;
}

@keyframes oc-ring-pulse {

  0%,
  100% {
    outline: 1.5px solid #558632; outline-offset: 1px;
  }

  50% {
    outline: 1.5px solid #558632; outline-offset: 1px;
  }
}

.oc-check-icon {
  width: 24px;
  height: 24px;
  color: #558632;
}

.oc-heading {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(2.3rem, 3.2vw, 3.4rem);
  font-weight: 800;
  color: #FFFFFF;
  line-height: 1.05;
  letter-spacing: -0.035em;
  margin: 0 0 2px 0;
}

.oc-subheading {
  font-size: clamp(1.0rem, 1.15vw, 1.18rem);
  color: #7C8B82;
  font-weight: 600;
  margin: 0 0 4px 0;
}

.oc-desc {
  font-size: clamp(0.84rem, 0.9vw, 0.94rem);
  color: #E7ECE9;
  line-height: 1.4;
  margin: 0 0 16px 0;
  max-width: 420px;
}

/* Order Summary Info Card */
.oc-info-card {
  background: rgba(14, 20, 16, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: clamp(4px, 0.6vh, 8px) clamp(16px, 1.6vw, 20px);
  max-width: 440px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.oc-info-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(10px, 1.3vh, 14px) 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.oc-info-row:last-child {
  border-bottom: none;
}

.oc-row-left {
  display: flex;
  align-items: center;
  gap: 14px;
}

.oc-row-icon {
  width: 20px;
  height: 20px;
  color: #A7B0AB;
  flex-shrink: 0;
}

.oc-row-text {
  display: flex;
  flex-direction: column;
}

.oc-row-label {
  font-size: 0.74rem;
  color: #A7B0AB;
  font-weight: 500;
  margin-bottom: 2px;
}

.oc-row-val {
  font-size: clamp(0.92rem, 1.0vw, 1.02rem);
  font-weight: 700;
  color: #FFFFFF;
}

.oc-row-badge {
  font-size: 0.86rem;
  font-weight: 600;
  color: #558632;
}

.oc-row-action {
  background: none;
  border: none;
  padding: 0;
  font-family: inherit;
  font-size: 0.86rem;
  font-weight: 600;
  color: #558632;
  cursor: pointer;
  transition: color 0.2s ease, text-decoration 0.2s ease;
}

.oc-row-action:hover {
  color: #558632;
  text-decoration: underline;
}

/* Right Packaging Visual Area */
.oc-right-visual {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
  width: 100%;
  height: 100%;
  min-height: 0;
  position: relative;
}

.oc-packaging-stage {
  position: relative;
  width: 100%;
  max-width: 860px;
  display: flex;
  flex-direction: column;
}

/* Step Headers (01 configured, 02 packed, 03 sealed & ready to go) */
.oc-step-progress-header {
  position: relative;
  width: 100%;
  height: clamp(55px, 7.5vh, 75px);
  margin-bottom: 2px;
}

.oc-step-col {
  position: absolute;
  top: -10px;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  cursor: pointer;
  transition: opacity 0.2s ease;
  z-index: 6;
}

.oc-step-col:hover {
  opacity: 0.85;
}

.oc-step-1 {
  left: 9.5%;
}

.oc-step-2 {
  left: 38.0%;
}

.oc-step-3 {
  left: 66.5%;
}

.oc-step-guide-line {
  width: 1px;
  height: clamp(100px, 14vh, 150px);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.45) 0%, rgba(255, 255, 255, 0.25) 60%, rgba(255, 255, 255, 0.08) 100%);
  margin-right: 12px;
  flex-shrink: 0;
}

.oc-step-info {
  display: flex;
  flex-direction: column;
}

.oc-step-num {
  font-size: clamp(0.88rem, 0.98vw, 1.02rem);
  font-weight: 700;
  color: #558632;
  line-height: 1.2;
  margin-bottom: 3px;
  letter-spacing: 0.03em;
}

.oc-step-label {
  font-size: clamp(0.78rem, 0.86vw, 0.88rem);
  font-weight: 500;
  color: #A0ABA4;
  line-height: 1.28;
}

/* Conveyor Visual Container */
.oc-conveyor-wrap {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
}

.oc-conveyor-img {
  width: 100%;
  height: auto;
  display: block;
  user-select: none;
  pointer-events: auto;
  filter: drop-shadow(0 14px 28px rgba(0, 0, 0, 0.6));
  transition: transform 0.3s ease;
}

.home-page .order-confirmed-section {
  padding-top: 92px;
  padding-bottom: 12px;
}

.oc-conveyor-img:hover {
  transform: scale(1.008);
}

/* Unified Bottom Card: Action Banner + Trust Pillars */
.oc-bottom-card {
  background: rgba(8, 18, 14, 0.92);
  border: 1px solid rgba(85, 134, 50, 0.18);
  border-radius: clamp(18px, 2.2vh, 26px);
  padding: clamp(10px, 1.3vh, 16px) clamp(16px, 1.8vw, 24px) clamp(12px, 1.6vh, 18px);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.3vh, 16px);
  flex-shrink: 0;
  margin-bottom: clamp(4px, 0.6vh, 8px);
}

/* Action Banner ("what's next?") */
.oc-next-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #1E1E1E;
  border: 1px solid rgba(85, 134, 50, 0.24);
  border-radius: 18px;
  padding: clamp(8px, 1.1vh, 12px) clamp(14px, 1.6vw, 22px);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.05);
}

.oc-next-left {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.3vw, 16px);
}

.oc-cube-badge {
  width: clamp(38px, 4.4vh, 46px);
  height: clamp(38px, 4.4vh, 46px);
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.1);
  border: 1.5px solid rgba(85, 134, 50, 0.32);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.oc-cube-icon {
  width: 22px;
  height: 22px;
  color: #558632;
}

.oc-next-text {
  display: flex;
  flex-direction: column;
}

.oc-next-title {
  font-size: clamp(0.92rem, 1.05vw, 1.06rem);
  font-weight: 700;
  color: #FFFFFF;
  margin-bottom: 2px;
}

.oc-next-desc {
  font-size: clamp(0.78rem, 0.88vw, 0.86rem);
  color: #E7ECE9;
  font-weight: 400;
  line-height: 1.35;
}

.oc-next-divider {
  width: 1px;
  height: 32px;
  background: rgba(255, 255, 255, 0.1);
  margin: 0 clamp(14px, 1.8vw, 24px);
  flex-shrink: 0;
}

.oc-btn-track {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(135deg, #3B5D23 0%, #558632 100%);
  color: #121212;
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(0.85rem, 0.95vw, 0.96rem);
  font-weight: 700;
  padding: clamp(9px, 1.2vh, 12px) clamp(18px, 1.8vw, 26px);
  border-radius: 12px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
  border: 1px solid rgba(255, 255, 255, 0.14);
  white-space: nowrap;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.oc-btn-track:hover {
  transform: translateY(-2px);
  background: linear-gradient(135deg, #558632 0%, #669E3D 100%);
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
}

.oc-arrow-circle {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #FFFFFF;
  color: #3B5D23;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.oc-btn-track:hover .oc-arrow-circle {
  transform: translateX(2px);
}

.oc-arrow-circle svg {
  width: 13px;
  height: 13px;
  stroke-width: 2.8;
}

/* Trust Badges Strip (4 Columns inside bottom card) */
.oc-trust-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(12px, 1.8vw, 24px);
  padding: 0 4px;
  flex-shrink: 0;
}

.oc-trust-item {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.9vw, 12px);
}

.oc-trust-icon {
  width: clamp(18px, 2.2vh, 22px);
  height: clamp(18px, 2.2vh, 22px);
  color: #A7B0AB;
  flex-shrink: 0;
}

.oc-trust-text {
  display: flex;
  flex-direction: column;
}

.oc-trust-title {
  font-size: clamp(0.78rem, 0.85vw, 0.88rem);
  font-weight: 700;
  color: #FFFFFF;
  margin-bottom: 2px;
}

.oc-trust-desc {
  font-size: clamp(0.68rem, 0.76vw, 0.78rem);
  color: #85948B;
  line-height: 1.3;
}

/* Footer Link */
.oc-footer-help {
  text-align: center;
  width: 100%;
  font-size: clamp(0.72rem, 0.8vw, 0.8rem);
  color: #A7B0AB;
  padding-bottom: 2px;
  flex-shrink: 0;
}

.oc-chat-link {
  color: #558632;
  text-decoration: none;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.2s ease, text-decoration 0.2s ease;
}

.oc-chat-link:hover {
  color: #669E3D;
  text-decoration: underline;
}

/* Modal for Order Details */
.oc-details-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(8px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.oc-details-modal-backdrop.active {
  opacity: 1;
  pointer-events: auto;
}

.oc-details-modal {
  background: #181818;
  border: 1px solid rgba(85, 134, 50, 0.3);
  border-radius: 20px;
  width: 90%;
  max-width: 480px;
  padding: 28px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.8);
  transform: translateY(20px);
  transition: transform 0.3s ease;
  position: relative;
}

.oc-details-modal-backdrop.active .oc-details-modal {
  transform: translateY(0);
}

.oc-modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(255, 255, 255, 0.08);
  border: none;
  color: #E7ECE9;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  transition: background 0.2s ease, color 0.2s ease;
}

.oc-modal-close:hover {
  background: rgba(255, 255, 255, 0.16);
  color: #FFFFFF;
}

/* Responsive Overrides for Tablet / Mobile */
@media (max-width: 1024px) {
  .order-confirmed-section {
    height: auto;
    min-height: 100vh;
    max-height: none;
    overflow-y: auto;
    padding: 32px 24px;
  }

  .oc-main-stage {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .oc-packaging-stage {
    max-width: 100%;
  }

  .oc-step-progress-header {
    padding-left: 0;
  }

  .oc-trust-strip {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .oc-next-banner {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .oc-next-divider {
    display: none;
  }

  .oc-btn-track {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 640px) {
  .oc-trust-strip {
    grid-template-columns: 1fr;
  }

  .oc-step-progress-header {
    height: auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .oc-step-col {
    position: static;
  }

  .oc-step-guide-line {
    display: none;
  }
}

/* ==========================================================================
   SECTION: LOYALTY — "MADE FOR CONSISTENCY" (1:1 Exact Mockup Replica - 100vh Locked)
   ========================================================================== */
.loyalty-section {
  position: relative;
  width: 100%;
  height: calc(100vh - var(--nav-height, 80px));
  min-height: calc(100vh - var(--nav-height, 80px));
  max-height: calc(100vh - var(--nav-height, 80px));
  background-color: #121212;
  background: #121212;
  color: #FFFFFF;
  overflow: hidden;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(16px, 2.5vh, 28px) clamp(24px, 4.5vw, 64px);
  scroll-snap-align: start;
  scroll-snap-stop: always;
  font-family: var(--font-family-brand), sans-serif;
  z-index: 10;
}

.home-page .loyalty-section {
  padding-top: clamp(16px, 2.4vh, 28px);
  padding-bottom: clamp(14px, 2vh, 22px);
  box-sizing: border-box;
}

/* Ambient Backdrops */
.loyalty-ambient-glow {
  position: absolute;
  top: 15%;
  right: 10%;
  width: 650px;
  height: 500px;
  background: none;
  pointer-events: none;
  z-index: 1;
}

.loyalty-ambient-left-glow {
  position: absolute;
  bottom: 10%;
  left: 5%;
  width: 450px;
  height: 350px;
  background: none;
  pointer-events: none;
  z-index: 1;
}

/* Main Two-Column Layout */
.loyalty-container {
  display: grid;
  grid-template-columns: minmax(320px, 380px) 1fr;
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
  height: 100%;
  max-height: 100%;
  max-width: 1540px;
  margin: 0 auto;
  width: 100%;
  position: relative;
  z-index: 2;
  min-height: 0;
}

/* Left Hero & Progress Content */
.loyalty-left-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  max-height: 100%;
  min-height: 0;
}

/* Category Tag: LOYALTY • */
.loyalty-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: clamp(8px, 1.3vh, 16px);
}

.loyalty-tag-text {
  font-size: clamp(11px, 1.2vh, 13px);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #E7ECE9;
}

.loyalty-tag-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background-color: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
  display: inline-block;
  animation: loyaltyPulse 2.8s ease-in-out infinite;
}

@keyframes loyaltyPulse {

  0%,
  100% {
    transform: scale(1);
    outline: 1.5px solid #558632; outline-offset: 1px;
  }

  50% {
    transform: scale(1.25);
    outline: 1.5px solid #558632; outline-offset: 1px;
  }
}

/* Main Headline */
.loyalty-headline {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(34px, 5.2vh, 60px);
  font-weight: 800;
  line-height: 1.04;
  letter-spacing: -0.035em;
  color: #FFFFFF;
  margin: 0 0 clamp(10px, 1.5vh, 18px) 0;
  text-transform: lowercase;
}

/* Paragraph Description */
.loyalty-desc {
  font-size: clamp(13px, 1.55vh, 16px);
  line-height: 1.52;
  color: #E7ECE9;
  margin: 0 0 clamp(16px, 2.4vh, 26px) 0;
  max-width: 360px;
}

/* "YOUR PROGRESS" Card */
.loyalty-progress-card {
  background: rgba(14, 20, 17, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: clamp(14px, 2vh, 22px) clamp(16px, 1.8vw, 22px);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.45);
  margin-bottom: clamp(12px, 1.8vh, 20px);
  transition: border-color 0.3s ease;
}

.loyalty-progress-card:hover {
  border-color: rgba(85, 134, 50, 0.28);
}

.lp-card-title {
  font-size: clamp(10px, 1.1vh, 11px);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #7D8D85;
  margin: 0 0 clamp(10px, 1.4vh, 16px) 0;
}

.lp-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: clamp(10px, 1.5vh, 16px);
}

.lp-stat-block {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.lp-stat-block.right {
  text-align: right;
  align-items: flex-end;
}

.lp-stat-label {
  font-size: clamp(9px, 1vh, 11px);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #6C7C74;
}

.lp-stat-val {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-size: clamp(16px, 2.2vh, 22px);
  font-weight: 700;
  color: #FFFFFF;
}

.lp-pts-num {
  font-weight: 800;
  color: #FFFFFF;
}

.lp-pts-unit {
  font-size: clamp(11px, 1.3vh, 13px);
  font-weight: 500;
  color: #E7ECE9;
}

.lp-arrow-btn {
  width: clamp(34px, 4.2vh, 42px);
  height: clamp(34px, 4.2vh, 42px);
  border-radius: 50%;
  border: 1px solid rgba(85, 134, 50, 0.35);
  background: rgba(85, 134, 50, 0.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #558632;
  cursor: pointer;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

.lp-arrow-btn svg {
  width: 18px;
  height: 18px;
  transition: transform 0.25s ease;
}

.lp-arrow-btn:hover {
  background: rgba(85, 134, 50, 0.18);
  border-color: #558632;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

.lp-arrow-btn:hover svg {
  transform: translateX(2px);
}

/* Progress Bar & Ticks */
.lp-progress-bar-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lp-progress-track {
  width: 100%;
  height: clamp(9px, 1.2vh, 12px);
  background: rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  overflow: hidden;
  position: relative;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.6);
}

.lp-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #3B5D23 0%, #558632 75%, #669E3D 100%);
  border-radius: 999px;
  box-shadow: none;
  transition: width 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
}

.lp-progress-fill::after {
  content: '';
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 8px;
  background: #FFFFFF;
  border-radius: 999px;
  opacity: 0.7;
  filter: blur(1px);
}

.lp-progress-ticks {
  display: flex;
  justify-content: space-between;
  padding: 0 2px;
  height: 5px;
}

.lp-progress-ticks span {
  width: 1px;
  height: 4px;
  background: rgba(255, 255, 255, 0.12);
}

.lp-progress-ticks span:nth-child(5n + 1) {
  height: 6px;
  background: rgba(255, 255, 255, 0.22);
}

.lp-progress-labels {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  font-weight: 600;
  color: #6C7A72;
  margin-top: 2px;
}

/* Motivation Note with Star */
.loyalty-motivation {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: clamp(14px, 2vh, 24px);
  color: #E7ECE9;
  font-size: clamp(12px, 1.4vh, 14px);
}

.loyalty-sparkle-icon {
  width: 15px;
  height: 15px;
  color: #558632;
  flex-shrink: 0;
}

/* Pill CTA Button: "HOW LOYALTY WORKS >" */
.loyalty-btn-works {
  background: #141414;
  border: 1px solid rgba(85, 134, 50, 0.4);
  border-radius: 999px;
  padding: clamp(10px, 1.4vh, 14px) clamp(20px, 2vw, 28px);
  color: #FFFFFF;
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(11px, 1.3vh, 13px);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
  width: 100%;
  max-width: 360px;
}

.loyalty-btn-arrow {
  width: 16px;
  height: 16px;
  color: #558632;
  margin-left: 12px;
  transition: transform 0.25s ease;
}

.loyalty-btn-works:hover {
  border-color: #558632;
  background: rgba(85, 134, 50, 0.1);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
  transform: translateY(-1px);
}

.loyalty-btn-works:hover .loyalty-btn-arrow {
  transform: translateX(4px);
}

/* ==========================================================================
   RIGHT STAGE CARD: 4-STAGE MEAL & LOYALTY TIMELINE
   ========================================================================== */
.loyalty-stage-card {
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  padding: clamp(16px, 2.6vh, 26px) clamp(20px, 2.4vw, 32px) clamp(16px, 2.2vh, 24px);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  max-height: 100%;
  box-sizing: border-box;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.65);
  min-height: 0;
}

/* Glowing Emerald Light Bloom Behind Stage 4 */
.loyalty-card-glow {
  position: absolute;
  top: -10%;
  right: -5%;
  width: 580px;
  height: 520px;
  background: none;
  pointer-events: none;
  z-index: 1;
}

/* Top Milestone Tracker Line & Nodes */
.loyalty-milestones {
  position: relative;
  width: 100%;
  height: clamp(24px, 3.5vh, 36px);
  margin-bottom: clamp(6px, 1vh, 12px);
  display: flex;
  align-items: center;
  z-index: 2;
  flex-shrink: 0;
}

.lm-track {
  position: absolute;
  top: 50%;
  left: 4%;
  right: 12.5%;
  height: 1.5px;
  background: linear-gradient(90deg, transparent 0%, rgba(85, 134, 50, 0.25) 5%, rgba(85, 134, 50, 0.45) 20%, rgba(85, 134, 50, 0.55) 100%);
  transform: translateY(-50%);
  z-index: 1;
}

.lm-nodes-grid {
  position: relative;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  align-items: center;
  z-index: 2;
}

.lm-node-col {
  display: flex;
  align-items: center;
  justify-content: center;
}

.lm-node {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1.5px solid #558632;
  background: #181818;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.lm-node:hover {
  transform: scale(1.3);
  outline: 1.5px solid #558632; outline-offset: 1px;
}

/* Double Ring Target Node for Stage 4 with Concentric Radar Ripples */
.lm-node-target {
  position: relative;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid #558632;
  background: #181818;
  display: flex;
  align-items: center;
  justify-content: center;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.lm-node-target::before {
  content: '';
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  border: 1px solid rgba(85, 134, 50, 0.28);
  pointer-events: none;
}

.lm-node-target::after {
  content: '';
  position: absolute;
  inset: -17px;
  border-radius: 50%;
  border: 1px solid rgba(85, 134, 50, 0.12);
  pointer-events: none;
}

.lm-target-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.lm-target-pulse {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 1px solid rgba(85, 134, 50, 0.4);
  animation: targetPulse 2.5s infinite ease-out;
  pointer-events: none;
}

@keyframes targetPulse {
  0% {
    transform: scale(0.9);
    opacity: 0.8;
  }

  100% {
    transform: scale(1.6);
    opacity: 0;
  }
}

/* Middle Panorama Visual Area */
.loyalty-panorama-wrap {
  position: relative;
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(2px, 0.6vh, 8px) 0;
}

.loyalty-panorama-img {
  width: 100%;
  height: 100%;
  max-height: clamp(250px, 48vh, 480px);
  object-fit: contain;
  object-position: center;
  filter: drop-shadow(0 18px 36px rgba(0, 0, 0, 0.7));
  user-select: none;
  pointer-events: auto;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.loyalty-panorama-wrap:hover .loyalty-panorama-img {
  transform: scale(1.008);
}

.loyalty-hotspots-grid {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  z-index: 2;
  pointer-events: none;
}

.loyalty-hotspot {
  pointer-events: auto;
  cursor: pointer;
  border-radius: 14px;
  transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
}

.loyalty-hotspot:hover {
  background: rgba(255, 255, 255, 0.015);
}

.loyalty-hotspot.active {
  background: transparent;
}

/* Bottom Text Columns Grid */
.loyalty-text-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(10px, 1.6vw, 24px);
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  padding-top: clamp(6px, 1vh, 12px);
}

.loyalty-text-col {
  cursor: pointer;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
  padding: 4px 6px;
  border-radius: 8px;
}

.loyalty-text-col:hover {
  background: rgba(255, 255, 255, 0.03);
}

.loyalty-text-col.active {
  background: transparent;
}

.loyalty-text-col.active .lc-title:not(.unlocked-title) {
  color: #FFFFFF;
}

.lc-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(13px, 1.7vh, 17px);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #FFFFFF;
  margin: 0 0 clamp(4px, 0.6vh, 6px) 0;
}

.lc-title.unlocked-title {
  color: #558632;
}

.lc-desc {
  font-size: clamp(11px, 1.3vh, 13px);
  line-height: 1.45;
  color: #E7ECE9;
  margin: 0;
}


/* ==========================================================================
   LOYALTY INFO MODAL (Explains "HOW LOYALTY WORKS")
   ========================================================================== */
.loyalty-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.loyalty-modal-backdrop.active {
  opacity: 1;
  pointer-events: auto;
}

.loyalty-modal {
  background: #181818;
  border: 1px solid rgba(85, 134, 50, 0.3);
  border-radius: 24px;
  padding: clamp(24px, 3.5vh, 36px);
  max-width: 580px;
  width: 100%;
  position: relative;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.75);
  transform: translateY(20px) scale(0.97);
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.loyalty-modal-backdrop.active .loyalty-modal {
  transform: translateY(0) scale(1);
}

.loyalty-modal-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: rgba(255, 255, 255, 0.08);
  color: #E7ECE9;
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.loyalty-modal-close:hover {
  background: rgba(255, 255, 255, 0.16);
  color: #FFFFFF;
}

.loyalty-modal-title {
  color: #FFFFFF;
  font-size: 1.4rem;
  font-weight: 800;
  margin: 0 0 8px 0;
  letter-spacing: -0.02em;
}

.loyalty-modal-sub {
  color: #E7ECE9;
  font-size: 0.92rem;
  margin: 0 0 20px 0;
}

.loyalty-modal-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 24px;
}

.loyalty-modal-tier {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  padding: 14px;
}

.loyalty-modal-tier.highlight {
  border-color: rgba(85, 134, 50, 0.4);
  background: rgba(85, 134, 50, 0.06);
}

.lmt-badge {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #558632;
  margin-bottom: 4px;
}

.lmt-name {
  font-size: 14px;
  font-weight: 700;
  color: #FFFFFF;
  margin-bottom: 4px;
}

.lmt-perk {
  font-size: 12px;
  color: #E7ECE9;
  line-height: 1.4;
}

/* Responsive Overrides for Tablet & Mobile */
@media (max-width: 1024px) {
  .loyalty-section {
    height: auto;
    min-height: 100vh;
    max-height: none;
    overflow-y: auto;
    padding: 32px 24px;
  }

  .loyalty-container {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .loyalty-stage-card {
    height: auto;
    padding: 24px 16px;
  }

  .loyalty-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .loyalty-col:not(:last-child)::after {
    display: none;
  }
}

@media (max-width: 640px) {
  .loyalty-grid {
    grid-template-columns: 1fr;
  }

  .lm-track {
    display: none;
  }

  .lm-nodes-grid {
    display: none;
  }

  .loyalty-modal-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   SECTION: NUTRITION TRANSPARENCY & ACTUAL PRODUCT LABELS (1:1 Exact Replicant)
   Strictly 100vh Locked — Zero Desktop Scrollbars
   ========================================================================== */

.nutrition-label-section {
  position: relative;
  width: 100%;
  min-height: 100vh;
  overflow: visible;
  background-color: #121212;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

/* Ambient Subtle Radial Glow in Center */
.nl-ambient-glow {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(500px, 65vw, 900px);
  height: clamp(400px, 60vh, 700px);
  background: none;
  pointer-events: none;
  z-index: 1;
}

/* 3-Column Main Grid Container */
.nl-container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1440px;
  min-height: 100%;
  margin: 0 auto;
  padding: clamp(12px, 2.2vh, 32px) clamp(24px, 4.5vw, 70px);
  display: grid;
  grid-template-columns: minmax(260px, 320px) 1fr minmax(210px, 270px);
  align-items: center;
  gap: clamp(16px, 2.5vw, 44px);
  box-sizing: border-box;
  transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
}

.nl-container.has-seasoning {
  grid-template-columns: minmax(260px, 320px) 1fr minmax(210px, 270px);
  max-width: 1440px;
}

.nl-container.no-seasoning {
  grid-template-columns: minmax(280px, 340px) 1fr;
  max-width: 1040px;
  justify-content: center;
}

.nl-container.no-seasoning .nl-right-col {
  display: none !important;
}

/* --------------------------------------------------------------------------
   LEFT COLUMN: Typography, Category Navigation, Dropdown
   -------------------------------------------------------------------------- */
.nl-left-col {
  position: relative;
  z-index: 30;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transform: translateY(-24px);
}

.nl-back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #94A3B8;
  font-size: 13.5px;
  font-weight: 500;
  text-decoration: none;
  margin-bottom: clamp(10px, 1.5vh, 18px);
  transition: color 0.2s ease, transform 0.2s ease;
  width: fit-content;
}

.nl-back-link:hover {
  color: #FFFFFF;
  transform: translateX(-3px);
}

.nl-back-arrow {
  width: 15px;
  height: 15px;
  stroke: currentColor;
  transition: transform 0.2s ease;
}

.nl-back-link:hover .nl-back-arrow {
  transform: translateX(-2px);
}

.nl-tag {
  display: none !important;
}

.nl-tag-text {
  display: none !important;
}

.nl-headline {
  font-family: var(--font-family-brand), -apple-system, sans-serif;
  font-size: clamp(64px, 6.8vw, 106px);
  font-weight: 800;
  line-height: 0.92;
  color: #FFFFFF;
  letter-spacing: -3px;
  margin: 0 0 clamp(8px, 1.3vh, 14px) 0;
}

.nl-headline-highlight {
  color: #558632;
}

.nl-desc {
  font-size: clamp(17px, 1.3vw, 21px);
  line-height: 1.45;
  color: #94A3B8;
  max-width: 520px;
  margin: 0 0 clamp(10px, 1.6vh, 18px) 0;
  font-family: var(--font-family-brand), -apple-system, sans-serif;
}

/* Category Selection */
.nl-category-group {
  display: flex;
  flex-direction: column;
  margin-bottom: clamp(10px, 1.5vh, 18px);
}

.nl-group-label {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 2px;
  color: #64748B;
  text-transform: uppercase;
  margin-bottom: clamp(6px, 1vh, 9px);
  font-family: var(--font-family-brand), -apple-system, sans-serif;
}

.nl-category-tabs {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: clamp(48px, 5vw, 68px);
}

.nl-cat-btn {
  background: transparent;
  border: none;
  padding: 0 0 6px 0;
  font-family: var(--font-family-brand), -apple-system, sans-serif;
  cursor: pointer;
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.nl-cat-icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
}

.nl-cat-icon {
  width: 26px;
  height: 26px;
  stroke: #64748B;
  transition: stroke 0.2s ease, transform 0.2s ease;
}

.nl-cat-label {
  font-size: clamp(13px, 1vw, 14.5px);
  font-weight: 600;
  letter-spacing: 0.2px;
  color: #64748B;
  transition: color 0.2s ease;
}

.nl-cat-btn:hover .nl-cat-icon {
  stroke: #E2E8F0;
  transform: translateY(-1px);
}

.nl-cat-btn:hover .nl-cat-label {
  color: #E2E8F0;
}

.nl-cat-btn.is-active .nl-cat-icon {
  stroke: #558632;
}

.nl-cat-btn.is-active .nl-cat-label {
  color: #FFFFFF;
}

.nl-cat-indicator {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: #558632;
  border-radius: 2px;
  opacity: 0;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.25s ease;
}

.nl-cat-btn.is-active .nl-cat-indicator {
  opacity: 1;
  transform: scaleX(1);
}

/* Dropdown Selection */
.nl-select-group {
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 50;
}

.nl-dropdown {
  position: relative;
  width: 100%;
  max-width: 320px;
  z-index: 50;
}

.nl-selected-name {
  font-size: 14.5px;
  font-weight: 600;
  color: #FFFFFF;
}

.nl-dropdown-trigger {
  width: 100%;
  background: #121417;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  padding: clamp(11px, 1.5vh, 15px) 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #FFFFFF;
  font-family: var(--font-family-brand), -apple-system, sans-serif;
  font-size: 14.5px;
  font-weight: 600;
  cursor: pointer;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.nl-dropdown-trigger:hover {
  border-color: rgba(85, 134, 50, 0.45);
  background: #16191D;
}

.nl-dropdown.is-open .nl-dropdown-trigger {
  border-color: #558632;
  box-shadow: none;
}

.nl-chevron-icon {
  width: 16px;
  height: 16px;
  color: #A7B0AB;
  transition: transform 0.25s ease, color 0.2s ease;
  flex-shrink: 0;
}

.nl-dropdown.is-open .nl-chevron-icon {
  transform: rotate(180deg);
  color: #558632;
}

.nl-dropdown-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  width: 100%;
  max-height: 220px;
  overflow-y: auto;
  background: #16191D;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 10px;
  padding: 6px;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.95);
  z-index: 100;
  display: none;
  flex-direction: column;
  gap: 2px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
}

.nl-dropdown-menu::-webkit-scrollbar {
  width: 4px;
}

.nl-dropdown-menu::-webkit-scrollbar-track {
  background: transparent;
}

.nl-dropdown-menu::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.2);
  border-radius: 4px;
}

.nl-dropdown.is-open .nl-dropdown-menu {
  display: flex;
  animation: nlDropdownFade 0.18s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.nl-dropdown.is-dropup .nl-dropdown-menu {
  top: auto;
  bottom: calc(100% + 6px);
  box-shadow: 0 -18px 42px rgba(0, 0, 0, 0.95);
  animation: nlDropdownFadeUp 0.18s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes nlDropdownFade {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes nlDropdownFadeUp {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.nl-dropdown-item {
  background: transparent;
  border: none;
  border-radius: 8px;
  padding: 10px 14px;
  text-align: left;
  font-family: var(--font-family-brand), -apple-system, sans-serif;
  font-size: 13.5px;
  font-weight: 500;
  color: #CBD5E1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: background 0.15s ease, color 0.15s ease;
}

.nl-dropdown-item:hover {
  background: rgba(85, 134, 50, 0.14);
  color: #8CE661;
}

.nl-dropdown-item.is-selected {
  background: rgba(85, 134, 50, 0.22);
  color: #FFFFFF;
  font-weight: 600;
}

/* Trust Features Row */
.nl-trust-row {
  display: flex;
  align-items: center;
  gap: clamp(8px, 1.2vw, 14px);
  margin-top: clamp(10px, 1.5vh, 18px);
  flex-wrap: wrap;
  position: relative;
  z-index: 10;
}

.nl-trust-item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: clamp(11.5px, 0.85vw, 13px);
  font-weight: 500;
  color: #94A3B8;
  white-space: nowrap;
}

.nl-trust-icon {
  width: 16px;
  height: 16px;
  stroke: #558632;
  flex-shrink: 0;
}

.nl-trust-divider {
  color: rgba(255, 255, 255, 0.16);
  font-size: 13px;
  user-select: none;
}

/* --------------------------------------------------------------------------
   CENTER COLUMN: Product Label Stage & Navigation
   -------------------------------------------------------------------------- */
.nl-center-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  max-height: 100%;
}

.nl-label-header {
  text-align: center;
  margin-bottom: clamp(8px, 1.4vh, 16px);
}

.nl-label-eyebrow {
  display: block;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 2px;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: 4px;
  font-family: var(--font-family-brand), -apple-system, sans-serif;
}

.nl-item-title {
  font-family: var(--font-family-brand), -apple-system, sans-serif;
  font-size: clamp(20px, 2.2vw, 32px);
  font-weight: 600;
  color: #FFFFFF;
  margin: 0;
  letter-spacing: -0.4px;
}

/* The Physical Card Container */
.nl-card-stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.nl-fact-card {
  width: clamp(260px, 22vw, 325px);
  height: clamp(370px, 57vh, 480px);
  background-color: #F2F0EB;
  color: #000000;
  border-radius: 4px;
  border: 1px solid #D9D6CE;
  box-shadow:
    0 22px 55px rgba(0, 0, 0, 0.92),
    0 2px 6px rgba(0, 0, 0, 0.4),
    inset 0 0 0 1px rgba(0, 0, 0, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
  padding: clamp(10px, 1.5vh, 15px) clamp(12px, 1.2vw, 17px);
  box-sizing: border-box;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.nl-toggle-badge {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: rgba(0, 0, 0, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #E7ECE9;
  font-size: 8.5px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  cursor: pointer;
  z-index: 10;
  font-family: var(--font-family-brand), sans-serif;
  letter-spacing: 0.5px;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
}

.nl-toggle-badge:hover {
  background: #558632;
  color: #000;
  border-color: #558632;
}

/* Authentic Canadian Bilingual Nutrition Facts Typography */
.nl-card-rendered {
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, sans-serif;
  color: #000000;
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: space-between;
  line-height: 1.16;
  user-select: none;
}

.nl-header-title {
  font-size: clamp(16px, 1.4vw, 20px);
  font-weight: 900;
  letter-spacing: -0.3px;
  line-height: 1.05;
}

.nl-header-fr {
  font-size: clamp(13px, 1.1vw, 16px);
  font-weight: 500;
  letter-spacing: -0.2px;
  line-height: 1.05;
  margin-bottom: 2px;
}

.nl-serving-en {
  font-size: clamp(9px, 0.75vw, 10.5px);
  font-weight: 400;
  line-height: 1.15;
}

.nl-serving-fr {
  font-size: clamp(9px, 0.75vw, 10.5px);
  font-weight: 400;
  line-height: 1.15;
  margin-bottom: 1px;
}

/* Dividers */
.nl-bar-thick {
  width: 100%;
  height: clamp(5px, 0.7vh, 7px);
  background-color: #000000;
  margin: 3px 0;
  flex-shrink: 0;
}

.nl-bar-med {
  width: 100%;
  height: clamp(2.5px, 0.4vh, 3.5px);
  background-color: #000000;
  margin: 2px 0;
  flex-shrink: 0;
}

.nl-bar-thin {
  width: 100%;
  height: 1px;
  background-color: #000000;
  margin: 1.5px 0;
  flex-shrink: 0;
}

/* Calories Block */
.nl-cal-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 1px 0;
}

.nl-cal-title {
  font-size: clamp(16px, 1.4vw, 21px);
  font-weight: 900;
  line-height: 1;
}

.nl-dv-header {
  font-size: clamp(7.5px, 0.65vw, 9px);
  text-align: right;
  line-height: 1.1;
  font-weight: 500;
}

.nl-dv-header span {
  display: block;
}

/* Nutrient Rows */
.nl-nutrient-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  font-size: clamp(9px, 0.75vw, 10.5px);
  line-height: 1.2;
}

.nl-nutrient-row.is-sub {
  padding-left: clamp(10px, 1vw, 14px);
}

.nl-nutrient-label {
  display: flex;
  gap: 3px;
}

.nl-nutrient-bold {
  font-weight: 700;
}

.nl-nutrient-dv {
  font-weight: 700;
  text-align: right;
}

/* Footnote */
.nl-footnote {
  font-size: clamp(7px, 0.58vw, 8px);
  line-height: 1.15;
  color: #181818;
  margin-top: 2px;
}

.nl-footnote span {
  display: block;
}

/* Real Label Image Container */
.nl-card-img-wrap {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.nl-real-label-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
  border-radius: 2px;
}

/* Bottom Controls */
.nl-nav-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(24px, 3.5vw, 44px);
  margin-top: clamp(12px, 1.8vh, 22px);
}

.nl-nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #8E95A5;
  padding: 4px;
  outline: none;
}

.nl-nav-btn:hover {
  color: #FFFFFF;
}

.nl-btn-circle {
  width: clamp(38px, 3vw, 46px);
  height: clamp(38px, 3vw, 46px);
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.04);
  transition: border-color 0.22s ease, background 0.22s ease, transform 0.22s ease, color 0.22s ease, box-shadow 0.22s ease;
}

.nl-btn-circle svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
}

.nl-nav-btn:hover .nl-btn-circle {
  border-color: #558632;
  color: #558632;
  background: rgba(85, 134, 50, 0.15);
  transform: scale(1.08);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

/* --------------------------------------------------------------------------
   RIGHT COLUMN: 5 Seasonings Stack
   -------------------------------------------------------------------------- */
.nl-right-col {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-self: center;
  height: clamp(370px, 57vh, 480px);
  max-height: 100%;
  padding-left: clamp(4px, 1.5vw, 24px);
}

.nl-seasoning-label {
  margin-bottom: clamp(14px, 2.2vh, 24px);
}

.nl-seasonings-list {
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.8vh, 18px);
  width: 100%;
}

.nl-seasoning-item {
  display: flex;
  align-items: center;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 3px 0;
  text-align: left;
  outline: none;
  transition: transform 0.2s ease;
}

/* Green Vertical Pill Indicator */
.nl-seasoning-indicator {
  width: 3px;
  height: clamp(22px, 2.8vh, 28px);
  background-color: #558632;
  border-radius: 2px;
  margin-right: 12px;
  opacity: 0;
  transform: scaleY(0.4);
  transform-origin: center;
  transition: opacity 0.22s ease, transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
  flex-shrink: 0;
}

.nl-seasoning-item.is-active .nl-seasoning-indicator {
  opacity: 1;
  transform: scaleY(1);
}

.nl-seasoning-thumb-wrap {
  width: clamp(38px, 3vw, 46px);
  height: clamp(38px, 3vw, 46px);
  border-radius: 50%;
  overflow: hidden;
  background: #000000;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-right: 14px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.nl-seasoning-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.68);
  transform-origin: center center;
  transition: transform 0.3s ease;
}

.nl-seasoning-item:hover .nl-seasoning-thumb {
  transform: scale(1.82);
}

.nl-seasoning-item:hover .nl-seasoning-thumb-wrap {
  transform: scale(1.08);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.5);
}

.nl-seasoning-name {
  font-family: var(--font-family-brand), -apple-system, sans-serif;
  font-size: clamp(12px, 0.9vw, 13.5px);
  font-weight: 500;
  color: #A7B0AB;
  line-height: 1.3;
  transition: color 0.2s ease, font-weight 0.2s ease;
}

.nl-seasoning-item:hover .nl-seasoning-name {
  color: #FFFFFF;
}

.nl-seasoning-item.is-active .nl-seasoning-name {
  color: #FFFFFF;
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   RESPONSIVE LAYOUT & LAPTOP OPTIMIZATIONS
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  .nl-container {
    grid-template-columns: 1fr 1.2fr 1fr;
    gap: 16px;
    padding: 20px 24px;
  }
}

@media (max-width: 860px) {
  body.nutrition-page .nutrition-label-section,
  .nutrition-label-section {
    height: auto !important;
    min-height: 100vh;
    max-height: none !important;
    overflow-y: visible !important;
    overflow-x: hidden !important;
    padding: calc(var(--nav-height, 74px) + 44px) 20px 64px 20px !important;
    display: block !important;
  }

  .nl-container,
  .nl-container.has-seasoning,
  .nl-container.no-seasoning {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    height: auto !important;
    min-height: auto !important;
    max-width: 100% !important;
    padding: 0 !important;
    align-items: center !important;
    text-align: center !important;
  }

  /* --- LEFT COLUMN: Use display contents to allow reordering tags to the bottom on mobile --- */
  .nl-left-col {
    display: contents !important;
  }

  .nl-tag,
  .nl-tag-text {
    display: none !important;
  }

  .nl-headline {
    order: 1 !important;
    font-size: clamp(60px, 16vw, 96px) !important;
    font-weight: 800 !important;
    line-height: 0.94 !important;
    color: #FFFFFF !important;
    letter-spacing: -2px !important;
    text-align: center !important;
    margin: 0 auto 16px auto !important;
    width: 100% !important;
    max-width: 520px !important;
  }

  .nl-headline-highlight {
    color: #558632 !important;
  }

  .nl-desc {
    order: 2 !important;
    font-size: clamp(16px, 4.2vw, 20px) !important;
    line-height: 1.45 !important;
    color: #8E95A5 !important;
    text-align: center !important;
    max-width: 440px !important;
    margin: 0 auto 24px auto !important;
    width: 100% !important;
  }

  .nl-category-group {
    order: 3 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    width: 100% !important;
    max-width: 440px !important;
    margin: 0 auto 24px auto !important;
  }

  .nl-group-label {
    font-size: 10.5px !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    color: #64748B !important;
    text-transform: uppercase !important;
    margin-bottom: 10px !important;
    text-align: center !important;
    display: block !important;
    width: 100% !important;
  }

  .nl-category-tabs {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(28px, 7vw, 48px) !important;
    width: 100% !important;
    margin: 0 auto !important;
  }

  .nl-cat-btn {
    padding: 0 0 6px 0 !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    letter-spacing: 0.2px !important;
    color: #64748B !important;
    text-transform: none;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 6px !important;
  }

  .nl-cat-btn.is-active .nl-cat-icon {
    stroke: #558632 !important;
  }

  .nl-cat-btn.is-active .nl-cat-label {
    color: #FFFFFF !important;
  }

  .nl-cat-indicator {
    height: 3px !important;
    background-color: #558632 !important;
    border-radius: 2px !important;
  }

  .nl-select-group {
    order: 4 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    width: 100% !important;
    max-width: 320px !important;
    margin: 0 auto 28px auto !important;
  }

  .nl-select-group .nl-group-label {
    text-align: center !important;
    width: 100% !important;
    display: block !important;
  }

  .nl-dropdown {
    width: 100% !important;
    max-width: 320px !important;
    margin: 0 auto !important;
    position: relative;
    z-index: 30;
  }

  .nl-dropdown-trigger {
    width: 100% !important;
    background: #121417 !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 12px !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #FFFFFF !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 8px !important;
  }

  .nl-dropdown-trigger .nl-selected-name {
    text-align: center !important;
  }

  .nl-dropdown-menu {
    width: 100% !important;
    left: 0 !important;
    right: 0 !important;
    box-sizing: border-box !important;
    background: #181818 !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 8px !important;
    z-index: 100 !important;
  }

  /* --- CENTER COLUMN: Title, Nutrition Fact Card (Same AR as Desktop) & Arrow Controls --- */
  .nl-center-col {
    order: 5 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
    margin-top: 0 !important;
    margin-bottom: 28px !important;
    height: auto !important;
    max-height: none !important;
  }

  .nl-label-header {
    display: none !important;
  }

  .nl-card-stage {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transform: none !important;
    margin: 0 auto !important;
  }

  .nl-fact-card {
    width: 100% !important;
    max-width: 315px !important;
    aspect-ratio: 310 / 460 !important;
    height: auto !important;
    min-height: 440px !important;
    border-radius: 4px !important;
    border: 1px solid #D9D6CE !important;
    background-color: #F2F0EB !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.85) !important;
    padding: 14px 16px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .nl-card-rendered {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    padding: 0 !important;
  }

  .nl-nav-controls {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 18px !important;
    margin-top: 18px !important;
    margin-bottom: 6px !important;
    width: 100% !important;
  }

  .nl-btn-circle {
    width: 44px !important;
    height: 44px !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    background: rgba(255, 255, 255, 0.04) !important;
  }

  /* --- RIGHT COLUMN: Seasonings Carousel --- */
  .nl-right-col {
    order: 6 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    width: 100% !important;
    padding-left: 0 !important;
    margin-top: 4px !important;
    margin-bottom: 8px !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  .nl-seasoning-label {
    margin-bottom: 12px !important;
    text-align: center !important;
    width: 100% !important;
  }

  .nl-seasonings-list {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 16px !important;
    width: 100% !important;
    max-width: 100% !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    padding: 6px 16px 16px 16px !important;
    scrollbar-width: none !important;
    box-sizing: border-box !important;
  }

  .nl-seasonings-list::-webkit-scrollbar {
    display: none !important;
  }

  .nl-seasoning-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    padding: 0 4px 12px 4px !important;
    position: relative !important;
    min-width: 64px !important;
    max-width: 74px !important;
    flex-shrink: 0 !important;
    scroll-snap-align: center !important;
  }

  /* Green line of selection BELOW seasoning name on mobile */
  .nl-seasoning-indicator {
    position: absolute !important;
    left: 50% !important;
    bottom: 0 !important;
    top: auto !important;
    transform: translateX(-50%) !important;
    width: 22px !important;
    height: 3px !important;
    background-color: #558632 !important;
    border-radius: 2px !important;
    margin-right: 0 !important;
    opacity: 0 !important;
    transition: opacity 0.2s ease, width 0.2s ease;
  }

  .nl-seasoning-item.is-active .nl-seasoning-indicator {
    opacity: 1 !important;
    width: 28px !important;
  }

  .nl-seasoning-thumb-wrap {
    width: 44px !important;
    height: 44px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    background: #000000 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.7) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-right: 0 !important;
    margin-bottom: 8px !important;
    flex-shrink: 0 !important;
  }

  .nl-seasoning-name {
    font-size: 11px !important;
    font-weight: 500 !important;
    color: #8E95A5 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    white-space: normal !important;
  }

  .nl-seasoning-item.is-active .nl-seasoning-name {
    color: #FFFFFF !important;
    font-weight: 700 !important;
  }

  /* --- 3 TAGS (TRUST FEATURES) AT THE VERY BOTTOM OF MOBILE VIEW --- */
  .nl-trust-row {
    order: 7 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px 10px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 20px auto 0 auto !important;
    padding: 0 8px !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-sizing: border-box !important;
  }

  .nl-trust-item {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    padding: 6px 12px !important;
    background: #181818 !important;
    border: 1px solid #2A2A2A !important;
    border-radius: 20px !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    color: #E7ECE9 !important;
    white-space: nowrap !important;
    width: auto !important;
  }

  .nl-trust-icon {
    width: 13px !important;
    height: 13px !important;
    stroke: #558632 !important;
    flex-shrink: 0 !important;
  }

  .nl-trust-divider {
    display: none !important;
  }
}

@media (max-height: 880px) and (min-width: 861px) {
  .nl-container {
    padding-top: 10px;
    padding-bottom: 14px;
    gap: clamp(14px, 2vw, 28px);
  }

  .nl-headline {
    font-size: clamp(48px, 5.4vw, 72px);
    margin-bottom: 8px;
  }

  .nl-desc {
    font-size: 21px;
    margin-bottom: 14px;
  }

  .nl-category-group {
    margin-bottom: 14px;
  }

  .nl-category-tabs {
    gap: 36px;
  }

  .nl-group-label {
    margin-bottom: 6px;
  }

  .nl-card-stage {
    transform: scale(0.95);
    transform-origin: center center;
  }
}

@media (max-height: 760px) and (min-width: 861px) {
  .nl-card-stage {
    transform: scale(0.88);
    transform-origin: center center;
  }

  .nl-headline {
    font-size: 48px;
  }
}

/* ==========================================================================
   ABOUT US HERO SECTION: "WE MAKE EATING WELL EASIER."
   Full Viewport (100vh Navbar + Hero), Deep Dark Luxury (#0D0F0E),
   Right-Sided Clean Meal Container Visual, HOT Emerald Green (#558632)
   ========================================================================== */

.about-hero-editorial-section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  background-color: #0b0e0c;
  overflow: hidden;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding-top: var(--nav-height, 80px);
  z-index: 10;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.about-hero-editorial-container {
  position: relative;
  width: 100%;
  height: 100%;
  max-width: 1800px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 clamp(2rem, 5vw, 6rem);
  box-sizing: border-box;
  overflow: hidden;
}

/* Background visual container & high-resolution right-aligned culinary visual */
.philosophy-hero-bg-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  overflow: hidden;
}

.about-hero-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right center;
  display: block;
  user-select: none;
  -webkit-user-drag: none;
  filter: none !important;
}

.about-hero-vignette-overlay {
  display: none !important;
}

/* Main Grid Stage: Left (Headline) + Center (Body Copy) + Right (Visual negative space) */
.about-hero-editorial-content {
  position: relative;
  z-index: 10;
  width: 100%;
  display: grid;
  grid-template-columns: minmax(360px, 1.35fr) minmax(280px, 0.95fr) 1.2fr;
  align-items: center;
  gap: clamp(2rem, 4vw, 5rem);
  box-sizing: border-box;
  transform: translateY(-17vh);
}

/* Left Column: Eyebrow + Main Title */
.about-hero-col-left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}

.about-hero-eyebrow-row {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  margin-bottom: clamp(0.8rem, 1.6vh, 1.2rem);
}

.about-hero-eyebrow-text {
  font-family: 'Switzer', -apple-system, sans-serif;
  font-size: clamp(0.78rem, 0.95vw, 0.96rem);
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #8A9991;
}

.about-hero-eyebrow-divider {
  display: inline-block;
  width: clamp(40px, 4.5vw, 65px);
  height: 1.5px;
  background: rgba(255, 255, 255, 0.25);
  border-radius: 2px;
}

/* Master headline typography: "We make eating well easier." - Big, Crisp, Editorial */
.about-hero-main-title {
  margin: 0;
  padding: 0;
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: clamp(3.8rem, 6.8vw, 7.4rem);
  font-weight: 900;
  line-height: 0.94;
  letter-spacing: -0.04em;
  display: flex;
  flex-direction: column;
  user-select: text;
}

.about-title-white {
  display: block;
  white-space: nowrap;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  text-shadow: none !important;
}

.about-title-highlight {
  display: block;
  white-space: nowrap;
  color: var(--hot-primary-500, #558632) !important;
  -webkit-text-fill-color: var(--hot-primary-500, #558632) !important;
  text-shadow: none !important;
}

/* Middle Column: Descriptive Story */
.about-hero-col-mid {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  max-width: 480px;
  padding-top: clamp(0.2rem, 0.6vh, 0.8rem);
}

.about-hero-story-p {
  font-family: 'Switzer', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-size: clamp(1.02rem, 1.25vw, 1.28rem);
  font-weight: 400;
  line-height: 1.65;
  color: #D1D5DB;
  margin: 0;
  text-shadow: none !important;
}

/* Responsive viewports */
@media (max-width: 1280px) {
  .about-hero-main-title {
    font-size: clamp(3.2rem, 5.8vw, 5.8rem);
  }

  .about-hero-editorial-content {
    grid-template-columns: 1.15fr 1fr;
    gap: 2.5rem;
  }

  .about-hero-bg-img {
    object-position: 85% center;
  }
}

@media (max-width: 880px) {
  .about-hero-editorial-section {
    height: 100svh;
    min-height: 100svh;
    padding-top: calc(var(--nav-height, 72px) + 16px);
    align-items: flex-start;
  }

  .about-hero-editorial-container {
    align-items: flex-start;
    padding: 0 1.5rem;
  }

  .about-hero-editorial-content {
    grid-template-columns: 1fr;
    gap: clamp(0.75rem, 2vh, 1rem);
    max-width: 540px;
    transform: none;
  }

  .about-hero-eyebrow-row {
    margin-bottom: 0.5rem;
  }

  .about-hero-col-mid {
    padding-top: 0;
  }

  .about-hero-story-p {
    font-size: clamp(0.92rem, 3.7vw, 1.05rem);
    line-height: 1.55;
    max-width: 310px;
  }

  .about-hero-bg-img {
    object-position: 70% bottom;
  }

  .about-hero-main-title {
    font-size: clamp(2.9rem, 10.8vw, 4.2rem);
    line-height: 0.95;
    letter-spacing: -0.04em;
  }
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ==========================================================================
   PROBLEM / REAL-LIFE FRICTION SECTION: "HEALTHY GOALS. REAL-LIFE FRICTION."
   1:1 Reference Replication, Strict 100vh Full Viewport Canvas
   ========================================================================== */

.problem-friction-section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  background-color: #121212;
  overflow: hidden;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  padding-top: calc(80px + 6px);
  padding-bottom: 8px;
}

.problem-friction-container {
  position: relative;
  width: 100%;
  height: 100%;
  max-width: 1920px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.problem-friction-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: auto;
}

/* Interactive Experience Stage Overlay */
.pf-interactive-stage {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 5;
}

/* Subhead Trigger Link */
.pf-link-subhead-trigger {
  position: absolute;
  left: 31.0%;
  top: 12.0%;
  width: 28.0%;
  height: 4.5%;
  pointer-events: auto;
  cursor: pointer;
  border-radius: 6px;
  transition: background 0.25s ease, box-shadow 0.25s ease;
}

.pf-link-subhead-trigger:hover {
  background: rgba(85, 134, 50, 0.08);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

/* 7-Day Interactive Columns */
.pf-day-zone {
  position: absolute;
  top: 20.0%;
  height: 53.0%;
  pointer-events: auto;
  cursor: pointer;
  border-radius: 8px;
  transition: background 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s ease, border-color 0.3s ease;
  border: 1px solid transparent;
}

.pf-day-zone:hover {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(85, 134, 50, 0.25);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.55);
}

.pf-day-mon {
  left: 3.1%;
  width: 9.6%;
}

.pf-day-tue {
  left: 13.0%;
  width: 9.6%;
}

.pf-day-wed {
  left: 23.0%;
  width: 9.6%;
}

.pf-day-thu {
  left: 32.9%;
  width: 9.6%;
}

.pf-day-fri {
  left: 42.9%;
  width: 9.6%;
}

.pf-day-sat {
  left: 52.8%;
  width: 9.6%;
}

.pf-day-sun {
  left: 62.7%;
  width: 10.4%;
}

/* Day Tooltips */
.pf-zone-tooltip {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  width: max-content;
  max-width: 175px;
  background: rgba(12, 14, 18, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(85, 134, 50, 0.35);
  border-radius: 8px;
  padding: 8px 11px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.85);
  z-index: 20;
  text-align: left;
}

.pf-zone-tooltip strong {
  display: block;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  color: #558632;
  letter-spacing: 0.04em;
  margin-bottom: 2px;
}

.pf-zone-tooltip span {
  display: block;
  font-size: 0.68rem;
  line-height: 1.35;
  color: #E7ECE9;
}

.pf-day-zone:hover .pf-zone-tooltip {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Friction Timeline Interactive Nodes */
.pf-node-hit {
  position: absolute;
  top: 74.0%;
  height: 16.0%;
  background: transparent;
  border: none;
  cursor: pointer;
  pointer-events: auto;
  border-radius: 6px;
  transition: background 0.25s ease;
}

.pf-node-hit:hover {
  background: rgba(239, 68, 68, 0.06);
}

.pf-node-planning {
  left: 8.0%;
  width: 12.5%;
}

.pf-node-shopping {
  left: 23.0%;
  width: 13.5%;
}

.pf-node-cooking {
  left: 40.0%;
  width: 12.5%;
}

.pf-node-portioning {
  left: 57.0%;
  width: 13.5%;
}

.pf-node-consistent {
  left: 73.5%;
  width: 14.5%;
}

.pf-node-pop {
  position: absolute;
  top: -46px;
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  width: max-content;
  max-width: 230px;
  background: rgba(10, 10, 10, 0.95);
  border: 1px solid rgba(85, 134, 50, 0.4);
  border-radius: 6px;
  padding: 6px 11px;
  font-size: 0.68rem;
  line-height: 1.35;
  color: #E7ECE9;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.8);
  z-index: 25;
}

.pf-node-pop strong {
  color: #558632;
}

.pf-node-hit:hover .pf-node-pop {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* 3 Right Meal Containers */
.pf-meal-hit {
  position: absolute;
  left: 76.0%;
  width: 17.5%;
  height: 14.5%;
  pointer-events: auto;
  cursor: pointer;
  border-radius: 12px;
  text-decoration: none;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease;
  border: 1px solid transparent;
}

.pf-meal-1 {
  top: 21.5%;
}

.pf-meal-2 {
  top: 37.0%;
}

.pf-meal-3 {
  top: 52.3%;
}

.pf-meal-hit:hover {
  transform: scale(1.02);
  border-color: rgba(85, 134, 50, 0.4);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}

.pf-meal-tag {
  position: absolute;
  top: 8px;
  right: 8px;
  background: rgba(85, 134, 50, 0.9);
  color: #121212;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  padding: 2px 7px;
  border-radius: 4px;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none;
}

.pf-meal-hit:hover .pf-meal-tag {
  opacity: 1;
  transform: translateY(0);
}

/* Main CTA Button Hitspot */
.pf-cta-hit {
  position: absolute;
  left: 79.5%;
  top: 94.6%;
  width: 14.2%;
  height: 4.8%;
  border-radius: 999px;
  pointer-events: auto;
  cursor: pointer;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease;
}

.pf-cta-hit:hover {
  transform: scale(1.04);
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
}

/* Scroll Next Hint */
.pf-scroll-next-hint {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.7);
  pointer-events: auto;
  cursor: pointer;
  border-radius: 50%;
  transition: color 0.2s ease, transform 0.2s ease;
  animation: pfBounce 2.5s infinite;
}

.pf-scroll-next-hint:hover {
  color: #558632;
  transform: translateX(-50%) translateY(2px);
}

@keyframes pfBounce {

  0%,
  100% {
    transform: translateX(-50%) translateY(0);
  }

  50% {
    transform: translateX(-50%) translateY(4px);
  }
}

@media (max-width: 860px) {
  .problem-friction-section {
    height: 100vh;
    min-height: 100vh;
  }

  .problem-friction-img {
    object-fit: cover;
    object-position: 30% center;
  }
}

/* ==========================================================================
   SECTION 03: "FRESH. READY. YOUR WAY." (1:1 Exact Design Replication)
   Strict 100vh 5-Column Panoramic Showcase
   ========================================================================== */

.fresh-ready-section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  background-color: #121212;
  overflow: hidden;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.fresh-ready-container {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* 5 Vertical Images Stuck Side by Side */
.fresh-ready-strip {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  z-index: 1;
}

.fresh-ready-col {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: relative;
  margin: 0;
  padding: 0;
}

.fresh-ready-col-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  user-select: none;
  -webkit-user-drag: none;
}

/* Pure Centered Text Overlay */
.fresh-ready-center-overlay {
  position: relative;
  z-index: 10;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 24px;
}

.fresh-ready-centered-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(2.8rem, 6.2vw, 6.2rem);
  font-weight: 800;
  color: #FFFFFF;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.05;
  text-shadow: 0 4px 32px rgba(0, 0, 0, 0.95), 0 2px 12px rgba(0, 0, 0, 0.9);
  margin: 0;
  padding: 0;
}

.fresh-ready-line {
  display: inline;
}

.fresh-ready-line + .fresh-ready-line::before {
  content: " ";
}

@media (max-width: 860px) {
  .fresh-ready-section {
    height: 100vh;
    height: 100dvh;
    min-height: 100vh;
    min-height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
  }

  .fresh-ready-strip {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(5, 1fr);
  }

  .fresh-ready-centered-title {
    font-size: clamp(2.2rem, 9.5vw, 3.2rem);
    font-weight: 900;
    line-height: 1.08;
    letter-spacing: 0.02em;
    text-shadow: 0 4px 24px rgba(0, 0, 0, 0.95), 0 2px 10px rgba(0, 0, 0, 0.95);
  }

  .fresh-ready-line {
    display: block;
  }

  .fresh-ready-line + .fresh-ready-line::before {
    content: "";
  }
}


/* ==========================================================================
   SECTION 1: REFERRAL — "SHARE HOT. GET REWARDED." (1:1 Exact Mockup - 100vh Locked)
   ========================================================================== */
.referral-section {
  position: relative;
  width: 100%;
  height: calc(100vh - var(--nav-height, 80px));
  min-height: calc(100vh - var(--nav-height, 80px));
  max-height: calc(100vh - var(--nav-height, 80px));
  background-color: #121212;
  background: #121212;
  color: #FFFFFF;
  overflow: hidden;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: clamp(14px, 2.2vh, 24px) clamp(20px, 3.5vw, 56px);
  scroll-snap-align: start;
  scroll-snap-stop: always;
  font-family: var(--font-family-brand), sans-serif;
  z-index: 10;
}

.home-page .referral-section {
  padding-top: clamp(14px, 2.2vh, 24px);
  padding-bottom: clamp(12px, 1.8vh, 20px);
  box-sizing: border-box;
}

.referral-ambient-glow {
  position: absolute;
  top: 15%;
  right: 15%;
  width: 600px;
  height: 480px;
  background: none;
  pointer-events: none;
  z-index: 1;
}

/* Outer Master Card Frame */
.referral-card-frame {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1540px;
  height: 100%;
  max-height: 100%;
  background: linear-gradient(135deg, rgba(14, 20, 16, 0.88) 0%, rgba(8, 12, 10, 0.95) 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 28px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.65), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  padding: clamp(18px, 2.5vh, 32px) clamp(22px, 2.8vw, 42px);
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(300px, 1.05fr) minmax(380px, 1.4fr) minmax(320px, 1.15fr);
  gap: clamp(20px, 2.6vw, 40px);
  align-items: center;
}

/* --- Left Column: Referral Hero & Link Box --- */
.referral-left-col {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

.referral-tag {
  font-size: clamp(11px, 1.2vh, 12px);
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: clamp(8px, 1.2vh, 14px);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.referral-headline {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(2rem, 3.8vh, 3.1rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: #FFFFFF;
  margin: 0 0 clamp(8px, 1.4vh, 16px) 0;
}

.referral-desc {
  font-size: clamp(0.85rem, 1.3vh, 0.95rem);
  color: #E7ECE9;
  line-height: 1.5;
  margin: 0 0 clamp(16px, 2.2vh, 26px) 0;
  max-width: 360px;
}

/* Referral Link Input Box */
.referral-link-box {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(22, 22, 22, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  padding: 6px 6px 6px 14px;
  max-width: 380px;
  box-sizing: border-box;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.referral-link-box:focus-within {
  border-color: #558632;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

.referral-link-icon {
  width: 18px;
  height: 18px;
  color: #558632;
  flex-shrink: 0;
}

.referral-code-txt {
  flex: 1;
  background: transparent;
  border: none;
  color: #FFFFFF;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  outline: none;
  user-select: all;
  min-width: 0;
}

.referral-copy-btn {
  background: #558632;
  color: #1F3113;
  border: none;
  border-radius: 10px;
  padding: 9px 16px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  transition: transform 0.18s cubic-bezier(0.16, 1, 0.3, 1), background 0.2s ease, box-shadow 0.2s ease;
}

.referral-copy-btn:hover {
  transform: translateY(-1px);
  background: #558632;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}

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

.referral-copy-icon {
  width: 14px;
  height: 14px;
}

/* Interactive Pill Card: "link copied" matching Mockup */
.referral-copied-toast {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: rgba(14, 22, 17, 0.96);
  border: 1px solid rgba(85, 134, 50, 0.35);
  border-radius: 14px;
  padding: 8px 16px;
  margin-top: clamp(10px, 1.4vh, 16px);
  max-width: fit-content;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.65);
  transition: opacity 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.referral-copied-toast.copied-pulse {
  border-color: #558632;
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
  transform: scale(1.02);
}

.referral-copied-toast.toast-hidden {
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
}

.rct-check-icon {
  width: 22px;
  height: 22px;
  color: #558632;
  flex-shrink: 0;
}

.rct-text-wrap {
  display: flex;
  flex-direction: column;
}

.rct-bold {
  font-size: 12px;
  font-weight: 700;
  color: #FFFFFF;
}

.rct-sub {
  font-size: 11px;
  color: #E7ECE9;
}

/* Social Share Row */
.referral-share-row {
  margin-top: clamp(16px, 2.2vh, 26px);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.referral-share-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #A7B0AB;
  text-transform: uppercase;
}

.referral-share-icons {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ref-share-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #B4C2BB;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s ease, background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.ref-share-btn:hover {
  transform: translateY(-2px);
  border-color: #558632;
  color: #FFFFFF;
  background: rgba(85, 134, 50, 0.12);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
}

.ref-share-btn svg {
  width: 17px;
  height: 17px;
}


/* --- Center Column: How It Works & Glowing Timeline --- */
.referral-mid-col {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  padding: 0 clamp(6px, 1vw, 16px);
}

.referral-mid-tag {
  font-size: clamp(11px, 1.2vh, 12px);
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.referral-mid-title {
  font-size: clamp(1.05rem, 1.8vh, 1.35rem);
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: -0.02em;
  margin: 0 0 clamp(24px, 4vh, 40px) 0;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.referral-mid-title .arrow {
  color: #FFFFFF;
  font-weight: 600;
  opacity: 0.75;
}

/* Glowing Step Line Container */
.referral-timeline-wrap {
  position: relative;
  width: 100%;
}

.referral-glowing-track {
  position: absolute;
  top: 35px;
  left: 36px;
  right: 36px;
  height: 2px;
  background: #558632;
  box-shadow: none;
  z-index: 1;
}

.referral-steps-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.ref-step-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.ref-node-circle-wrap {
  position: relative;
  width: 70px;
  height: 70px;
  margin-bottom: clamp(10px, 1.5vh, 16px);
}

.ref-node-circle {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: rgba(14, 22, 17, 0.92);
  border: 1.5px solid rgba(85, 134, 50, 0.5);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease;
}

.ref-step-node:hover .ref-node-circle {
  transform: scale(1.06);
  border-color: #558632;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.45);
}

.ref-node-circle svg {
  width: 26px;
  height: 26px;
  color: #FFFFFF;
}

.ref-node-badge {
  position: absolute;
  bottom: 0;
  right: 2px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #558632;
  color: #1F3113;
  font-size: 11px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.ref-step-title {
  font-size: clamp(13px, 1.5vh, 15px);
  font-weight: 800;
  color: #FFFFFF;
  margin: 0 0 4px 0;
  letter-spacing: -0.01em;
}

.ref-step-desc {
  font-size: clamp(11px, 1.2vh, 12px);
  color: #E7ECE9;
  line-height: 1.4;
  margin: 0;
  max-width: 140px;
}


/* --- Right Column: Friends Visual & Community Impact Card --- */
.referral-right-col {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.referral-visual-frame {
  position: relative;
  width: 100%;
  height: 100%;
  max-height: clamp(380px, 48vh, 460px);
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
}

.referral-friends-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}

/* Floating "Community Impact" Card */
.community-impact-card {
  position: absolute;
  bottom: 14px;
  left: 14px;
  right: 14px;
  background: rgba(11, 17, 14, 0.88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  padding: 14px 16px;
  box-sizing: border-box;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
}

.ci-tag {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.ci-title {
  font-size: clamp(14px, 1.6vh, 16px);
  font-weight: 800;
  line-height: 1.15;
  color: #FFFFFF;
  margin: 0 0 6px 0;
  letter-spacing: -0.02em;
}

.ci-desc {
  font-size: 11px;
  color: #E7ECE9;
  line-height: 1.4;
  margin: 0 0 10px 0;
  max-width: 220px;
}

.ci-avatars-row {
  display: flex;
  align-items: center;
}

.ci-avatar-item {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 2px solid #2A2A2A;
  margin-left: -8px;
  object-fit: cover;
  background: #1E1E1E;
}

.ci-avatar-item:first-child {
  margin-left: 0;
}

.ci-avatar-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  padding: 0 10px;
  border-radius: 999px;
  background: #181818;
  border: 1.5px solid #558632;
  color: #558632;
  font-size: 11px;
  font-weight: 800;
  margin-left: -6px;
}


/* ==========================================================================
   SECTION 2: PROGRESS JOURNEY & REWARDS — "YOUR HOT PROGRESS" (1:1 Exact Mockup - 100vh Locked)
   ========================================================================== */
.progress-journey-section {
  position: relative;
  width: 100%;
  height: calc(100vh - var(--nav-height, 80px));
  min-height: calc(100vh - var(--nav-height, 80px));
  max-height: calc(100vh - var(--nav-height, 80px));
  background-color: #121212;
  background: #121212;
  color: #FFFFFF;
  overflow: hidden;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: clamp(14px, 2.2vh, 24px) clamp(20px, 3.5vw, 56px);
  scroll-snap-align: start;
  scroll-snap-stop: always;
  font-family: var(--font-family-brand), sans-serif;
  z-index: 10;
}

.home-page .progress-journey-section {
  padding-top: clamp(14px, 2.2vh, 24px);
  padding-bottom: clamp(12px, 1.8vh, 20px);
  box-sizing: border-box;
}

.pj-ambient-glow {
  position: absolute;
  top: 20%;
  left: 10%;
  width: 600px;
  height: 480px;
  background: none;
  pointer-events: none;
  z-index: 1;
}

/* Master Card Container */
.pj-card-frame {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1540px;
  height: 100%;
  max-height: 100%;
  background: linear-gradient(135deg, rgba(14, 20, 16, 0.88) 0%, rgba(8, 12, 10, 0.95) 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 28px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.65), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  padding: clamp(18px, 2.5vh, 30px) clamp(22px, 2.8vw, 42px);
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(280px, 340px) 1fr;
  gap: clamp(24px, 3.2vw, 48px);
  align-items: stretch;
}

/* --- Left Column: Loyalty Ethos & Stats Card --- */
.pj-left-col {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}

.pj-tag {
  font-size: clamp(11px, 1.2vh, 12px);
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: clamp(6px, 1vh, 12px);
  display: inline-block;
}

.pj-headline {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(2rem, 3.8vh, 3.1rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: #FFFFFF;
  margin: 0 0 clamp(8px, 1.4vh, 14px) 0;
}

.pj-desc {
  font-size: clamp(0.85rem, 1.3vh, 0.94rem);
  color: #E7ECE9;
  line-height: 1.5;
  margin: 0 0 clamp(16px, 2vh, 24px) 0;
}

/* Stats Card */
.pj-stats-card {
  background: rgba(22, 22, 22, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 18px;
  padding: clamp(14px, 1.8vh, 20px) clamp(16px, 1.8vw, 22px);
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.5vh, 16px);
  margin-top: auto;
}

.pj-stat-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.pj-stat-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.pj-stat-icon {
  width: 18px;
  height: 18px;
  color: #558632;
  flex-shrink: 0;
}

.pj-stat-icon.muted {
  color: #E7ECE9;
}

.pj-stat-label {
  font-size: clamp(10px, 1.2vh, 11px);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #E7ECE9;
  text-transform: uppercase;
}

.pj-stat-val {
  font-size: clamp(18px, 2.2vh, 22px);
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: -0.01em;
}

.pj-stat-val.date-val {
  font-size: clamp(13px, 1.5vh, 14.5px);
  font-weight: 700;
  color: #FFFFFF;
}


/* --- Right Column: Progress Stepper & Rewards Grid --- */
.pj-right-col {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
}

/* Top Stepper: "YOUR PROGRESS JOURNEY" */
.pj-stepper-wrap {
  margin-bottom: clamp(14px, 2vh, 22px);
}

.pj-section-tag {
  font-size: clamp(10.5px, 1.2vh, 11.5px);
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: clamp(10px, 1.6vh, 18px);
  display: block;
}

.pj-stepper-track-wrap {
  position: relative;
  width: 100%;
}

.pjs-track-line-active {
  position: absolute;
  top: 38px;
  left: 12%;
  width: 55%;
  height: 3px;
  background: #558632;
  box-shadow: none;
  z-index: 1;
}

.pjs-track-line-dashed {
  position: absolute;
  top: 39px;
  left: 67%;
  width: 22%;
  height: 0px;
  border-top: 2px dashed rgba(255, 255, 255, 0.22);
  z-index: 1;
}

.pjs-milestones-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.pjs-milestone-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.pjs-label-top {
  font-size: clamp(11px, 1.3vh, 12px);
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #FFFFFF;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.pjs-label-top.next-label {
  color: #E7ECE9;
}

.pjs-node-circle {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
  transition: transform 0.25s ease;
}

/* Checkmark node */
.pjs-node-circle.done {
  background: #558632;
  color: #1F3113;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.pjs-node-circle.done svg {
  width: 18px;
  height: 18px;
}

/* Radiant Emerald Bloom Node (Stage 3) */
.pjs-node-circle.rewarded {
  background: #558632;
  color: #1F3113;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.45);
  position: relative;
}

.pjs-node-circle.rewarded::before {
  content: '';
  position: absolute;
  top: -8px;
  left: -8px;
  right: -8px;
  bottom: -8px;
  border-radius: 50%;
  background: none;
  pointer-events: none;
  animation: pulseRewarded 2.5s infinite ease-in-out;
}

@keyframes pulseRewarded {

  0%,
  100% {
    transform: scale(1);
    opacity: 0.7;
  }

  50% {
    transform: scale(1.15);
    opacity: 1;
  }
}

.pjs-node-circle.rewarded svg {
  width: 18px;
  height: 18px;
}

/* Locked Node */
.pjs-node-circle.locked {
  background: #1E1E1E;
  border: 1.5px solid rgba(255, 255, 255, 0.15);
  color: #A7B0AB;
}

.pjs-node-circle.locked svg {
  width: 16px;
  height: 16px;
}

.pjs-label-bot {
  font-size: clamp(10.5px, 1.2vh, 11.5px);
  color: #E7ECE9;
  line-height: 1.35;
  max-width: 120px;
}


/* Bottom Cards: "YOUR REWARDS TIMELINE" */
.pj-rewards-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.pj-rewards-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(10px, 1.4vw, 16px);
  align-items: stretch;
}

/* Base Reward Card */
.pj-reward-card {
  background: rgba(12, 17, 14, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: clamp(12px, 1.6vh, 16px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s ease, box-shadow 0.25s ease;
  position: relative;
  overflow: hidden;
}

.pj-reward-card:hover {
  transform: translateY(-3px);
  border-color: rgba(255, 255, 255, 0.7);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.5);
}

/* Card 1 Highlight (Available Reward) */
.pj-reward-card.available {
  background: linear-gradient(145deg, rgba(14, 24, 18, 0.95) 0%, rgba(9, 15, 12, 0.95) 100%);
  border-color: rgba(85, 134, 50, 0.45);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}

.pjr-badge {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 6px;
  display: block;
}

.pjr-badge.green {
  color: #558632;
}

.pjr-badge.gold {
  color: #EAB308;
}

.pjr-badge.muted {
  color: #E7ECE9;
}

.pjr-title {
  font-size: clamp(13px, 1.5vh, 15px);
  font-weight: 800;
  color: #FFFFFF;
  margin: 0 0 4px 0;
  letter-spacing: -0.01em;
}

.pjr-desc {
  font-size: clamp(10.5px, 1.2vh, 11px);
  color: #E7ECE9;
  line-height: 1.35;
  margin: 0 0 8px 0;
  min-height: 28px;
}

/* Image Showcase inside card */
.pjr-img-wrap {
  width: 100%;
  height: clamp(95px, 12vh, 130px);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 6px 0;
  overflow: hidden;
  border-radius: 12px;
}

.pjr-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.65));
  transition: transform 0.25s ease;
}

.pj-reward-card:hover .pjr-img {
  transform: scale(1.06);
}

/* Button & Progress Bars */
.pjr-btn-claim {
  background: #558632;
  color: #1F3113;
  border: none;
  border-radius: 8px;
  padding: 8px 12px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 6px;
  width: 100%;
  transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.pjr-btn-claim:hover {
  background: #558632;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

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

/* In Progress Bar */
.pjr-progress-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
}

.pjr-progress-track {
  flex: 1;
  height: 5px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  overflow: hidden;
}

.pjr-progress-fill {
  height: 100%;
  width: 80%;
  background: #558632;
  border-radius: 999px;
  box-shadow: none;
}

.pjr-progress-val {
  font-size: 11px;
  font-weight: 700;
  color: #558632;
  white-space: nowrap;
}

/* Centered Bottom Disclaimer */
.pj-disclaimer {
  text-align: center;
  font-size: clamp(10.5px, 1.2vh, 11.5px);
  color: #A7B0AB;
  margin-top: clamp(8px, 1.2vh, 14px);
}


/* --- Responsive Constraints for 100vh Integrity --- */
@media (max-height: 800px) {

  .referral-headline,
  .pj-headline {
    font-size: clamp(1.8rem, 3.2vh, 2.4rem);
  }

  .ref-node-circle-wrap {
    width: 56px;
    height: 56px;
    margin-bottom: 8px;
  }

  .ref-node-circle {
    width: 56px;
    height: 56px;
  }

  .referral-glowing-track {
    top: 28px;
  }

  .pjr-img-wrap {
    height: clamp(65px, 8vh, 90px);
  }
}

@media (max-width: 1080px) {
  .referral-card-frame {
    grid-template-columns: 1fr;
    height: auto;
    overflow-y: auto;
  }

  .pj-card-frame {
    grid-template-columns: 1fr;
    height: auto;
    overflow-y: auto;
  }

  .referral-section,
  .progress-journey-section {
    height: auto;
    min-height: 100vh;
    max-height: none;
    overflow: visible;
  }

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

/* ==========================================================================
   SECTION: READY WHEN YOU ARE (1:1 Exact Mockup Replica - Strict 100vh)
   Aesthetics: Deep Dark Luxury (#121212), Emerald Green Accents (#558632)
   ========================================================================== */

.ready-section {
  position: relative;
  width: 100%;
  height: calc(100vh - var(--nav-height, 80px));
  min-height: calc(100vh - var(--nav-height, 80px));
  max-height: calc(100vh - var(--nav-height, 80px));
  overflow: hidden;
  background: #121212;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
  color: #FFFFFF;
  padding: clamp(16px, 2.4vh, 28px) clamp(24px, 3.5vw, 56px);
  z-index: 2;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.hero-page .ready-section {
  padding-top: clamp(16px, 2.4vh, 28px);
}

/* Ambient dark glow backdrop */
.ready-ambient-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
background: none;
  z-index: 1;
}

/* Top Navigation Bar inside section */
.ready-top-bar {
  position: relative;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: 1560px;
  margin: 0 auto;
}

.ready-brand {
  display: inline-flex;
  flex-direction: column;
  text-decoration: none;
}

.ready-brand-hot {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(24px, 2.2vw, 30px);
  letter-spacing: 0.04em;
  color: #FFFFFF;
  line-height: 0.95;
  display: inline-flex;
  align-items: flex-start;
}

.ready-brand-hot sup {
  font-size: 10px;
  top: -0.2em;
  margin-left: 2px;
  color: #A7B0AB;
  font-family: var(--font-family-brand), sans-serif;
  font-weight: 700;
}

.ready-brand-sub {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(7.5px, 0.7vw, 9px);
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #7B878D;
  margin-top: 2px;
  text-transform: uppercase;
}

.ready-nav-contact {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(10.5px, 0.85vw, 12px);
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #E7ECE9;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.2s ease, transform 0.2s ease;
}

.ready-nav-contact:hover {
  color: #558632;
  transform: translateY(-1px);
}

/* Circular Rotating Stamp Seal */
.ready-stamp-badge {
  position: relative;
  width: clamp(48px, 4.2vw, 60px);
  height: clamp(48px, 4.2vw, 60px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.ready-stamp-rotator {
  position: absolute;
  inset: 0;
  animation: readyStampSpin 18s linear infinite;
}

@keyframes readyStampSpin {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.ready-stamp-svg {
  width: 100%;
  height: 100%;
}

.ready-stamp-text {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  fill: #78848A;
  text-transform: uppercase;
}

.ready-stamp-center {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 3px;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.ready-stamp-bar {
  width: 14px;
  height: 2px;
  background: #558632;
  border-radius: 2px;
  box-shadow: none;
}

/* Left Margin Vertical Ribbon */
.ready-left-ribbon {
  position: absolute;
  left: clamp(18px, 2.5vw, 42px);
  top: clamp(110px, 16vh, 160px);
  bottom: clamp(40px, 6vh, 60px);
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 10;
  pointer-events: none;
}

.ready-ribbon-line {
  width: 1px;
  height: clamp(50px, 10vh, 110px);
  background: rgba(255, 255, 255, 0.14);
  margin-bottom: 20px;
}

.ready-ribbon-text {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-family: var(--font-family-brand), sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.24em;
  color: #69747A;
  white-space: nowrap;
  margin-bottom: auto;
}

.ready-ribbon-counter {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: #556066;
  letter-spacing: 0.08em;
}

/* Main 2-Column Stage */
.ready-main-stage {
  position: relative;
  z-index: 10;
  display: grid;
  grid-template-columns: minmax(420px, 1.05fr) minmax(460px, 1.25fr);
  align-items: center;
  width: 100%;
  max-width: 1560px;
  margin: 0 auto;
  flex: 1;
  padding: 0 0 0 clamp(48px, 5.5vw, 84px);
  gap: clamp(16px, 2.5vw, 40px);
}

/* Left Column: Headline & Actions */
.ready-left-col {
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 580px;
}

.ready-display-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(54px, 5.8vw, 102px);
  font-weight: 900;
  line-height: 0.88;
  letter-spacing: -0.015em;
  color: #F8FAFC;
  margin-bottom: clamp(14px, 2.2vh, 22px);
  text-transform: uppercase;
}

.ready-title-line {
  display: block;
}

.ready-title-dot {
  display: inline-block;
  width: clamp(14px, 1.4vw, 22px);
  height: clamp(14px, 1.4vw, 22px);
  border-radius: 50%;
  background: #558632;
  margin-left: 8px;
  vertical-align: baseline;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.ready-subtext {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(14px, 1.12vw, 17px);
  line-height: 1.48;
  color: #9CA8AE;
  margin-bottom: clamp(20px, 3vh, 34px);
}

.ready-actions-row {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: clamp(24px, 3.8vh, 42px);
  flex-wrap: wrap;
}

.ready-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: linear-gradient(135deg, #3B5D23 0%, #3B5D23 100%);
  border: 1px solid rgba(85, 134, 50, 0.42);
  color: #FFFFFF;
  padding: clamp(12px, 1.6vh, 16px) clamp(22px, 2vw, 32px);
  border-radius: 4px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(11.5px, 0.88vw, 13px);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
  border: 1px solid rgba(255, 255, 255, 0.14);
  transition: color 0.22s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
}

.ready-btn-primary:hover {
  background: linear-gradient(135deg, #558632 0%, #3B5D23 100%);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
  border-color: #669E3D;
}

.ready-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(85, 134, 50, 0.28);
  color: #558632;
  padding: clamp(12px, 1.6vh, 16px) clamp(22px, 2vw, 32px);
  border-radius: 4px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(11.5px, 0.88vw, 13px);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.22s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.22s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
}

.ready-btn-secondary:hover {
  background: rgba(85, 134, 50, 0.08);
  border-color: #669E3D;
  color: #669E3D;
  transform: translateY(-2px);
}

.ready-btn-arrow {
  width: 15px;
  height: 15px;
  transition: transform 0.2s ease;
}

.ready-btn-primary:hover .ready-btn-arrow,
.ready-btn-secondary:hover .ready-btn-arrow {
  transform: translateX(4px);
}

/* Assistance Row */
.ready-help-row {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.ready-help-icon {
  width: clamp(34px, 3vw, 40px);
  height: clamp(34px, 3vw, 40px);
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #E7ECE9;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.02);
}

.ready-help-icon svg {
  width: 18px;
  height: 18px;
}

.ready-help-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ready-help-q {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(12px, 0.9vw, 13.5px);
  font-weight: 600;
  color: #E7ECE9;
}

.ready-help-a {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(11px, 0.8vw, 12.5px);
  color: #8A959B;
}

.ready-chat-link {
  margin-left: clamp(14px, 1.8vw, 24px);
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(11.5px, 0.85vw, 12.5px);
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #558632;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: color 0.2s ease, transform 0.2s ease;
  cursor: pointer;
}

.ready-chat-link svg {
  width: 14px;
  height: 14px;
  transition: transform 0.2s ease;
}

.ready-chat-link:hover {
  color: #669E3D;
}

.ready-chat-link:hover svg {
  transform: translateX(4px);
}

/* Right Stage Visual */
.ready-right-col {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.ready-visual-img {
  width: 100%;
  max-width: 860px;
  height: auto;
  max-height: clamp(300px, 58vh, 560px);
  object-fit: contain;
  filter: drop-shadow(0 20px 50px rgba(0, 0, 0, 0.85));
  mask-image: radial-gradient(ellipse 96% 92% at 52% 50%, black 75%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 96% 92% at 52% 50%, black 75%, transparent 100%);
  pointer-events: none;
  user-select: none;
}

/* Bottom Center Navigation */
.ready-bottom-nav {
  position: relative;
  z-index: 10;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding-bottom: 2px;
}

.ready-scroll-indicator {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.2s ease;
}

.ready-scroll-circle {
  width: clamp(34px, 2.8vw, 38px);
  height: clamp(34px, 2.8vw, 38px);
  border-radius: 50%;
  border: 1px solid rgba(85, 134, 50, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(8px);
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.ready-scroll-arrow {
  width: 15px;
  height: 15px;
  transition: transform 0.25s ease;
}

.ready-scroll-text {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(9.5px, 0.75vw, 10.5px);
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #798388;
  text-transform: uppercase;
  transition: color 0.2s ease;
}

.ready-scroll-indicator:hover .ready-scroll-circle {
  border-color: #669E3D;
  background: rgba(85, 134, 50, 0.12);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
}

.ready-scroll-indicator:hover .ready-scroll-arrow {
  transform: translateY(3px);
  stroke: #669E3D;
}

.ready-scroll-indicator:hover .ready-scroll-text {
  color: #669E3D;
}

/* Responsive Overrides */
@media (max-width: 1080px) {
  .ready-section {
    height: calc(100vh - var(--nav-height, 80px));
    padding: 16px 24px;
  }

  .ready-left-ribbon {
    display: none;
  }

  .ready-main-stage {
    padding-left: 0;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }

  .ready-display-title {
    font-size: clamp(42px, 5vw, 68px);
  }
}

@media (max-width: 768px) {
  .ready-section {
    height: auto;
    min-height: 100vh;
    max-height: none;
    overflow-y: auto;
    padding: 24px 20px 40px;
  }

  .ready-main-stage {
    grid-template-columns: 1fr;
    padding-left: 0;
    gap: 28px;
    margin: 24px 0;
  }

  .ready-visual-img {
    max-height: 380px;
  }
}

/* ==========================================================================
   SECTION: CUSTOMIZE YOUR MEAL — SAME SYSTEM. YOUR CHOICES. (1:1 Exact 100vh Locked)
   ========================================================================== */
.customize-meal-section {
  position: relative;
  width: 100vw;
  height: calc(100vh - var(--nav-height, 80px));
  min-height: calc(100vh - var(--nav-height, 80px));
  max-height: calc(100vh - var(--nav-height, 80px));
  overflow: hidden;
  background: #121212;
  color: #FFFFFF;
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, sans-serif;
  box-sizing: border-box;
  z-index: 10;
  display: flex;
  flex-direction: column;
}

.cm-scroll-anchor {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

/* Ambient Stage Glows & Cinematic Dark Slate Backdrop */
.cm-ambient-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
background: none;
  z-index: 1;
}

.cm-slate-backdrop {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: hidden;
}

.cm-backdrop-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
  opacity: 0.85;
}

/* 100vh Master Container Stage */
.cm-stage-container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1680px;
  height: 100%;
  margin: 0 auto;
  padding: clamp(14px, 2.2vh, 24px) clamp(24px, 4vw, 56px) clamp(8px, 1.4vh, 16px);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* TOP HEADER BAR */
.cm-header-bar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
  flex-shrink: 0;
}

.cm-header-left {
  display: flex;
  flex-direction: column;
}

.cm-eyebrow {
  display: block;
  font-size: clamp(10px, 1.1vh, 12px);
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #839788;
  text-transform: uppercase;
  margin-bottom: clamp(2px, 0.5vh, 6px);
}

.cm-title {
  font-size: clamp(28px, 3.8vh, 42px);
  font-weight: 800;
  line-height: 1.04;
  letter-spacing: -0.02em;
  margin: 0 0 clamp(2px, 0.5vh, 6px);
}

.cm-title-white {
  display: block;
  color: #FFFFFF;
}

.cm-title-green {
  display: block;
  color: #558632;
}

.cm-tagline {
  font-size: clamp(12px, 1.4vh, 14.5px);
  line-height: 1.45;
  color: #E7ECE9;
  max-width: 520px;
  margin: 0;
}

/* Header Right: Tag & 3 Badges */
.cm-header-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: clamp(8px, 1.3vh, 14px);
}

.cm-sub-tag {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cm-sub-dash {
  width: 26px;
  height: 1px;
  background: #383838;
}

.cm-sub-text {
  font-size: clamp(10px, 1.1vh, 12px);
  letter-spacing: 0.2em;
  font-weight: 600;
  color: #E7ECE9;
  text-transform: uppercase;
}

.cm-badges-row {
  display: flex;
  align-items: center;
  gap: clamp(16px, 2.5vw, 36px);
}

.cm-badge-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
}

.cm-badge-icon {
  width: clamp(32px, 4vh, 40px);
  height: clamp(32px, 4vh, 40px);
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.16);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #E7ECE9;
  background: rgba(255, 255, 255, 0.03);
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.cm-badge-item:hover .cm-badge-icon {
  border-color: rgba(85, 134, 50, 0.4);
  color: #558632;
}

.cm-badge-icon svg {
  width: 18px;
  height: 18px;
}

.cm-badge-labels {
  display: flex;
  flex-direction: column;
  font-size: clamp(9px, 1vh, 11px);
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #E7ECE9;
  line-height: 1.25;
}

/* MAIN INTERACTIVE STAGE GRID */
.cm-interactive-grid {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: start;
  justify-content: center;
  gap: clamp(16px, 2vw, 40px);
  width: 100%;
  flex: 1;
  min-height: 0;
  margin: clamp(4px, 1vh, 10px) 0;
}

/* SVG Connectors & Halo Stage */
.cm-stage-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
}

/* Flanks: Left (Cards 01 & 02), Right (Cards 03 & 04 + CTA) */
.cm-flank {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.8vh, 18px);
  max-width: 440px;
  width: 100%;
  align-self: start;
}

.cm-flank-left {
  justify-self: end;
}

.cm-flank-right {
  justify-self: start;
}

/* Option Cards (Glassmorphism dark container) */
.cm-option-card {
  background: rgba(22, 22, 22, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-radius: clamp(14px, 1.8vh, 20px);
  padding: clamp(12px, 1.8vh, 18px) clamp(14px, 1.8vw, 22px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
  transition: border-color 0.25s ease, transform 0.25s ease;
}

.cm-option-card:hover {
  border-color: rgba(85, 134, 50, 0.22);
}

.cm-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: clamp(8px, 1.2vh, 14px);
}

.cm-card-title {
  font-size: clamp(11px, 1.3vh, 13px);
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #E7ECE9;
  text-transform: uppercase;
}

.cm-card-title .cm-hl {
  color: #FFFFFF;
  font-weight: 800;
}

.cm-card-num {
  font-size: clamp(11px, 1.3vh, 13px);
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #52796F;
  font-family: monospace, sans-serif;
}

.cm-items-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(6px, 1vw, 12px);
}

.cm-item-btn {
  background: none;
  border: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  flex: 1;
  max-width: 76px;
  transition: transform 0.2s ease;
}

.cm-item-btn:hover {
  transform: translateY(-2px);
}

.cm-thumb-ring {
  position: relative;
  width: clamp(44px, 5.5vh, 58px);
  height: clamp(44px, 5.5vh, 58px);
  border-radius: 50%;
  overflow: hidden;
  background: #181818;
  border: 2px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  align-items: center;
  justify-content: center;
}

.cm-thumb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.25s ease;
}

.cm-item-btn:hover .cm-thumb-img {
  transform: scale(1.08);
}

.cm-item-name {
  font-size: clamp(9px, 1.1vh, 11px);
  font-weight: 500;
  color: #8B949E;
  text-align: center;
  line-height: 1.2;
  transition: color 0.2s ease;
  white-space: nowrap;
}

/* Active Item Selection */
.cm-item-btn.active .cm-thumb-ring {
  border-color: #558632;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
}

.cm-item-btn.active .cm-item-name {
  color: #FFFFFF;
  font-weight: 700;
}

/* CENTER STAGE */
.cm-center-stage {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: clamp(280px, 32vw, 420px);
  align-self: center;
  flex-shrink: 0;
}

.cm-box-container {
  position: relative;
  z-index: 3;
  width: clamp(250px, 28vw, 380px);
  height: clamp(250px, 28vw, 380px);
  max-height: 44vh;
  display: flex;
  align-items: center;
  justify-content: center;
  filter: drop-shadow(0 20px 45px rgba(0, 0, 0, 0.85));
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.cm-box-container:hover {
  transform: scale(1.02);
}

.cm-box-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.cm-box-pill {
  position: relative;
  z-index: 4;
  margin-top: clamp(6px, 1vh, 12px);
  background: rgba(12, 16, 14, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-radius: 9999px;
  padding: 6px 22px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.6);
}

.cm-pill-text {
  font-size: clamp(9px, 1.1vh, 11px);
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #A1B0A6;
  text-transform: uppercase;
}

.cm-script-wrap {
  position: absolute;
  bottom: clamp(-8px, -0.8vh, 6px);
  left: clamp(-110px, -9vw, -60px);
  z-index: 6;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  transform: rotate(-9deg);
  pointer-events: none;
}

.cm-script-line {
  font-family: 'Caveat', cursive;
  font-size: clamp(20px, 2.8vh, 32px);
  font-weight: 700;
  color: #669E3D;
  line-height: 0.95;
  letter-spacing: 0.02em;
}

/* ACTION BUTTONS ROW */
.cm-action-row {
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.8vw, 24px);
  margin-top: clamp(6px, 1vh, 14px);
}

.cm-btn-explore {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #558632;
  color: #FFFFFF;
  font-size: clamp(11px, 1.3vh, 13px);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: clamp(9px, 1.3vh, 13px) clamp(18px, 1.8vw, 26px);
  border-radius: 9999px;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32), 0 1px 2px rgba(0, 0, 0, 0.2);
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.cm-btn-explore:hover {
  background: #669E3D;
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.25);
  transform: translateY(-2px);
}

.cm-btn-arrow {
  width: 16px;
  height: 16px;
  transition: transform 0.2s ease;
}

.cm-btn-explore:hover .cm-btn-arrow {
  transform: translateX(3px);
}

.cm-link-nutrition {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #A7B0AB;
  font-size: clamp(10.5px, 1.2vh, 12px);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color 0.2s ease;
}

.cm-link-nutrition:hover {
  color: #FFFFFF;
}

.cm-equalizer-icon {
  width: 16px;
  height: 16px;
  color: #A7B0AB;
  transition: color 0.2s ease;
}

.cm-link-nutrition:hover .cm-equalizer-icon {
  color: #558632;
}


/* BOTTOM SLATE LEDGE FOOTER */
.cm-bottom-ledge {
  width: 100%;
  flex-shrink: 0;
  padding-top: clamp(2px, 0.6vh, 8px);
  display: flex;
  align-items: center;
}

.cm-brand-philosophy {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.5vw, 18px);
  font-size: clamp(9.5px, 1.1vh, 11px);
  font-weight: 600;
  letter-spacing: 0.22em;
  color: #A7B0AB;
  text-transform: uppercase;
}

.cm-brand-philosophy .cm-dash {
  color: #383838;
}

/* Responsive Scaling for Laptops & Mobile */
@media (max-width: 1180px) {
  .cm-interactive-grid {
    gap: 16px;
  }

  .cm-flank {
    max-width: 360px;
  }

  .cm-center-stage {
    width: 300px;
    height: 300px;
  }
}

@media (max-width: 900px) {
  .customize-meal-section {
    height: auto;
    min-height: 100vh;
    max-height: none;
    overflow-y: auto;
  }

  .cm-interactive-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .cm-flank-left,
  .cm-flank-right {
    justify-self: center;
    max-width: 480px;
  }

  .cm-center-stage {
    order: -1;
  }
}

/* ==========================================================================
   NUTRITION PAGE: 2-LAYER MULTI-STAGE SYSTEM
   Layer 1: Fuel & Macros Breakdown (#nutrition-layer-1)
   Layer 2: Actual Product Nutrition Labels (#nutrition-facts)
   ========================================================================== */

.nutrition-multistage-wrapper {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  background-color: #121212;
  background-image: none;
  overflow: hidden;
  box-sizing: border-box;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

body.nutrition-page .nutrition-multistage-wrapper {
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
}

.nutrition-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1), transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.45s;
  transform: translateY(22px) scale(0.99);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
}

.nutrition-layer.is-active-layer {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  z-index: 5;
}

.nutrition-layer.nutrition-layer-breakdown {
  padding: calc(80px + 14px) 4.5vw 22px;
}

.nutrition-layer.nutrition-layer-labels {
  padding: calc(80px + 8px) clamp(20px, 4vw, 56px) 16px;
  background-color: #121212;
  background-image: none;
}

.nutrition-layer.nutrition-layer-labels .nl-container {
  max-height: calc(100vh - 80px - 70px);
  height: 100%;
  padding: 0;
}

/* Button: SEE REAL NUTRITION LABELS */
.btn-see-real-labels {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: rgba(85, 134, 50, 0.09);
  border: 1.5px solid rgba(85, 134, 50, 0.6);
  border-radius: 999px;
  padding: 11px 20px 11px 14px;
  color: #FFFFFF;
  font-family: var(--font-body, sans-serif);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  cursor: pointer;
  transition: color 0.28s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.28s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1), transform 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.32);
  border: 1px solid rgba(255, 255, 255, 0.14);
  margin-top: 10px;
  width: fit-content;
  text-decoration: none;
}

.btn-see-real-labels:hover {
  background: #558632;
  border-color: #558632;
  color: #121212;
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.5);
  transform: translateY(-2px);
}

.btn-label-icon-wrap {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.2);
  color: #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.btn-see-real-labels:hover .btn-label-icon-wrap {
  background: rgba(0, 0, 0, 0.2);
  color: #121212;
}

.btn-label-svg {
  width: 14px;
  height: 14px;
}

.btn-label-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
  font-size: 11px;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.btn-see-real-labels:hover .btn-label-arrow {
  background: #121212;
  color: #558632;
}

/* Layer Switcher Pills in Sub-Bar */
.nutrition-layer-pills {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(14, 20, 16, 0.85);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  padding: 4px 6px;
}

.layer-pill-btn {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.6);
  font-family: var(--font-body, sans-serif);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 1.2px;
  padding: 6px 14px;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.layer-pill-btn:hover {
  color: #FFFFFF;
}

.layer-pill-btn.is-active {
  background: rgba(85, 134, 50, 0.16);
  color: #558632;
  border: 1px solid rgba(85, 134, 50, 0.45);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}

.layer-pill-btn .pill-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.6;
}

.layer-pill-btn.is-active .pill-dot {
  opacity: 1;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

/* Back Button in Layer 2 */
.btn-back-to-overview {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #E7ECE9;
  font-family: var(--font-body, sans-serif);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  padding: 7px 16px;
  border-radius: 999px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.btn-back-to-overview:hover {
  background: rgba(85, 134, 50, 0.15);
  border-color: #558632;
  color: #558632;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

.btn-back-arrow {
  width: 14px;
  height: 14px;
}

/* ==========================================================================
   HEALTH ON TOP — SITE-WIDE UNIVERSAL FOOTER (1:1 Design Spec)
   Reference: ChatGPT Image Sep 4, 2026 at 08_09_31 PM.png
   ========================================================================== */

.site-global-footer {
  position: relative;
  width: 100%;
  background-color: #121212;
  color: var(--hot-text-100, #FFFFFF);
  font-family: var(--font-family-brand), sans-serif;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  overflow: hidden;
  z-index: 10;
  box-sizing: border-box;
}

.site-footer-container {
  max-width: 1440px;
  margin: 0 auto;
  padding: 80px 48px 32px;
  box-sizing: border-box;
}

/* MAIN GRID */
.site-footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 0.85fr 0.85fr 0.85fr 1.55fr 1px 1.4fr;
  gap: 32px;
  align-items: start;
  padding-bottom: 64px;
}

/* BRAND COLUMN */
.footer-col-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.footer-brand-lockup {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: #FFFFFF;
  margin-bottom: 14px;
}

.footer-brand-logo {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  object-fit: contain;
  transition: transform 0.25s ease;
  flex-shrink: 0;
}

.footer-brand-lockup:hover .footer-brand-logo {
  transform: scale(1.06);
}

.footer-brand-heading {
  display: flex;
  flex-direction: column;
  font-family: var(--font-family-brand), sans-serif;
  font-weight: 800;
  font-size: 1.65rem;
  line-height: 1.05;
  letter-spacing: 0.08em;
  color: #FFFFFF;
}

.footer-tm {
  font-size: 0.62rem;
  vertical-align: super;
  margin-left: 2px;
  font-weight: 600;
  opacity: 0.8;
}

.footer-brand-tagline-wrap {
  margin-bottom: 20px;
}

.footer-brand-tagline {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.72);
  text-transform: uppercase;
  margin-bottom: 8px;
}

.footer-emerald-bar {
  display: none !important;
}

.footer-brand-desc {
  font-size: 0.94rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.62);
  margin: 0;
  max-width: 320px;
  font-weight: 400;
}

/* LINK COLUMNS (EXPLORE, ABOUT, SUPPORT) */
.footer-col-title {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.92);
  margin: 0 0 22px 0;
}

.footer-link-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.footer-link-list li a {
  color: rgba(255, 255, 255, 0.65);
  text-decoration: none;
  font-size: 0.92rem;
  font-weight: 400;
  transition: color 0.2s ease, transform 0.2s ease;
  display: inline-block;
}

.footer-link-list li a:hover {
  color: #FFFFFF;
  transform: translateX(3px);
}

/* STAY IN THE LOOP (NEWSLETTER) */
.footer-newsletter-headline {
  font-size: 1.85rem;
  font-weight: 800;
  line-height: 1.15;
  margin-bottom: 14px;
}

.footer-news-white {
  display: block;
  color: #FFFFFF;
}

.footer-news-green {
  display: block;
  color: var(--hot-emerald-500, #558632);
}

.footer-newsletter-sub {
  font-size: 0.9rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.65);
  margin: 0 0 20px 0;
}

.footer-input-group {
  display: flex;
  align-items: center;
  position: relative;
  max-width: 340px;
}

.footer-email-input {
  flex: 1;
  background-color: rgba(18, 24, 21, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  padding: 13px 56px 13px 16px;
  color: #FFFFFF;
  font-size: 0.9rem;
  font-family: inherit;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  box-sizing: border-box;
}

.footer-email-input:focus {
  border-color: var(--hot-emerald-500, #558632);
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.footer-email-input::placeholder {
  color: rgba(255, 255, 255, 0.7);
}

.footer-newsletter-btn {
  position: absolute;
  right: 4px;
  top: 4px;
  bottom: 4px;
  width: 44px;
  background-color: var(--hot-emerald-500, #558632);
  border: none;
  border-radius: 6px;
  color: #FFFFFF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.15s ease;
}

.footer-newsletter-btn:hover {
  background-color: var(--hot-emerald-hover, #669E3D);
  transform: scale(1.03);
}

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

.footer-newsletter-btn svg {
  width: 18px;
  height: 18px;
  stroke: #FFFFFF;
  stroke-width: 2.5;
}

.footer-spam-text {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.7);
  margin: 10px 0 0 0;
}

/* VERTICAL DIVIDER */
.footer-v-divider {
  width: 1px;
  height: 150px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.02) 100%);
  align-self: flex-start;
  margin-top: 6px;
}

/* VISUAL / FOLLOW ALONG COLUMN */
.footer-col-visual {
  position: relative;
  display: flex;
  flex-direction: column;
}

.footer-follow-header {
  margin-bottom: 16px;
}

.footer-social-cluster {
  display: flex;
  align-items: center;
  gap: 12px;
}

.footer-social-btn {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
  background: rgba(255, 255, 255, 0.07);
  border-radius: 50%;
  text-decoration: none;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.footer-social-btn svg {
  width: 18px;
  height: 18px;
}

.footer-social-btn:hover {
  color: #FFFFFF;
  background: var(--hot-emerald-500, #558632);
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

.footer-dish-showcase {
  position: relative;
  width: 100%;
  margin-top: 14px;
  overflow: hidden;
  border-radius: 12px;
}

.footer-dish-image {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  border-radius: 12px;
  transition: transform 0.4s ease;
}

.footer-dish-showcase:hover .footer-dish-image {
  transform: scale(1.02);
}

/* BOTTOM BAR */
.site-footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 26px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.55);
}

.footer-bottom-left {
  display: flex;
  align-items: center;
}

.footer-bottom-nav {
  display: flex;
  align-items: center;
  gap: 24px;
}

.footer-bottom-nav a.footer-staff-link {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 6px;
  padding: 3px 10px;
}

.footer-bottom-nav a,
.footer-cookie-btn {
  color: rgba(255, 255, 255, 0.55);
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  font-size: 0.82rem;
  font-family: inherit;
  cursor: pointer;
  transition: color 0.2s ease;
}

.footer-bottom-nav a:hover,
.footer-cookie-btn:hover {
  color: #FFFFFF;
}

.footer-bottom-motto {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
}

.footer-motto-line {
  display: none !important;
}

/* RESPONSIVE FOOTER STYLES */
@media (max-width: 1200px) {
  .site-footer-grid {
    grid-template-columns: 1.4fr 1fr 1fr 1fr 1.4fr;
    gap: 28px;
  }

  .footer-v-divider {
    display: none;
  }

  .footer-col-visual {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 30px;
    align-items: center;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 30px;
  }
}

@media (max-width: 860px) {
  .site-footer-container {
    padding: 50px 20px 24px;
    text-align: center;
  }

  .site-footer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 20px;
    row-gap: 32px;
    align-items: start;
    text-align: center;
    padding-bottom: 36px;
  }

  .footer-v-divider {
    display: none !important;
  }

  /* 1. BRAND COLUMN (TOP FULL WIDTH) */
  .site-footer-grid > *:nth-child(1),
  .footer-col-brand {
    grid-column: 1 / -1;
    order: 1 !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
  }

  .footer-brand-lockup {
    justify-content: center;
    align-items: center;
    text-align: center;
  }

  .footer-brand-heading {
    align-items: center;
    text-align: center;
  }

  .footer-brand-tagline-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 12px;
  }

  .footer-emerald-bar {
    margin: 0 auto;
  }

  .footer-brand-desc {
    text-align: center;
    margin: 0 auto;
    font-size: 0.88rem;
    line-height: 1.55;
    max-width: 320px;
  }

  /* 2X2 HEADINGS GRID */
  /* [Row 1, Col 1] 2. EXPLORE COLUMN */
  .site-footer-grid > *:nth-child(2) {
    grid-column: 1 / 2;
    order: 2 !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
  }

  /* [Row 1, Col 2] 3. ABOUT COLUMN */
  .site-footer-grid > *:nth-child(3) {
    grid-column: 2 / 3;
    order: 3 !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
  }

  /* [Row 2, Col 1] 4. SUPPORT COLUMN */
  .site-footer-grid > *:nth-child(4) {
    grid-column: 1 / 2;
    order: 4 !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
  }

  /* [Row 2, Col 2] 5. FOLLOW ALONG & 3 SOCIAL BUTTONS (DIRECTLY UNDER ABOUT) */
  .site-footer-grid > *:nth-child(7),
  .footer-col-visual {
    grid-column: 2 / 3;
    order: 5 !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-top: none;
    padding-top: 0;
    width: 100%;
    margin: 0 auto;
  }

  .footer-follow-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 0;
    width: 100%;
  }

  .footer-social-cluster {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin: 0 auto;
    flex-wrap: wrap;
  }

  .footer-social-btn {
    width: 40px;
    height: 40px;
  }

  .footer-dish-showcase {
    display: none !important;
  }

  /* Universal Link Column Centering */
  .footer-col-links {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .footer-col-title {
    text-align: center;
    margin: 0 0 14px 0;
    font-size: 0.78rem;
    letter-spacing: 0.16em;
  }

  .footer-link-list {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
  }

  .footer-link-list li {
    text-align: center;
  }

  .footer-link-list li a {
    text-align: center;
    display: inline-block;
    font-size: 0.88rem;
  }

  .footer-link-list li a:hover {
    transform: none;
  }

  /* 6. NEWSLETTER (STAY IN THE LOOP - BOTTOM FULL WIDTH) */
  .site-footer-grid > *:nth-child(5),
  .footer-col-newsletter {
    grid-column: 1 / -1;
    order: 6 !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
  }

  .footer-newsletter-headline {
    text-align: center;
    font-size: 1.55rem;
  }

  .footer-newsletter-sub {
    text-align: center;
    margin: 0 auto 16px auto;
    max-width: 300px;
    font-size: 0.88rem;
  }

  .footer-newsletter-form {
    width: 100%;
    display: flex;
    justify-content: center;
  }

  .footer-input-group {
    width: 100%;
    max-width: 320px;
    margin: 0 auto;
  }

  .footer-spam-text {
    text-align: center;
  }

  /* BOTTOM BAR (CENTERED, NO MOTTO) */
  .site-footer-bottom {
    display: flex;
    flex-direction: column;
    gap: 14px;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding-top: 22px;
    width: 100%;
  }

  .footer-bottom-left {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 100%;
  }

  .footer-copyright {
    text-align: center;
  }

  .footer-bottom-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 14px;
    text-align: center;
    width: 100%;
  }

  /* REMOVE "FITNESS WITHOUT THE FRICTION" IN MOBILE FOOTER */
  .footer-bottom-motto {
    display: none !important;
  }
}

.chs-form-success {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px;
  border-radius: 8px;
  background: rgba(85, 134, 50, 0.15);
  border: 1px solid rgba(85, 134, 50, 0.4);
  color: #72D6A5;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
}

.chs-form-success svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
}

.chs-form-microcopy {
  text-align: center;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 12px;
  color: #6A7570;
  margin: 3px 0 0 0;
}

/* Bottom Bar */
.chs-bottom-bar {
  display: flex;
  justify-content: flex-end;
  width: 100%;
  position: relative;
  z-index: 10;
  flex-shrink: 0;
}

.chs-bottom-right {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  text-align: right;
}

.chs-signoff-text {
  display: flex;
  flex-direction: column;
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(9.5px, 0.72vw, 11px);
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #7A847F;
  line-height: 1.45;
}

.chs-bottom-right .chs-emerald-dash {
  margin-bottom: 3px;
}

/* Shorter desktop screens adjustment (< 780px height) */
@media (min-width: 993px) and (max-height: 780px) {
  .contact-healthy-section {
    padding: 16px 36px;
  }

  .chs-headline {
    font-size: clamp(2.2rem, 3.8vw, 3.4rem);
  }

  .chs-subtext {
    font-size: 12.5px;
    line-height: 1.4;
  }

  .chs-form-title {
    font-size: 1.8rem;
  }

  .chs-textarea {
    height: 48px;
  }

  .chs-submit-btn {
    height: 40px;
  }
}

/* Tablet & Mobile Responsiveness */
@media (max-width: 992px) {
  .contact-healthy-section {
    height: auto;
    min-height: 100vh;
    max-height: none;
    overflow: visible;
    padding: 40px 24px 60px 24px;
    background-position: center top;
  }

  .chs-top-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .chs-main-grid {
    grid-template-columns: 1fr;
    gap: 40px;
    margin: 30px 0;
  }

  .chs-right-col {
    justify-content: flex-start;
  }

  .chs-form-container {
    max-width: 100%;
  }

  .chs-badges-row {
    flex-wrap: wrap;
  }

  .chs-bottom-bar {
    justify-content: flex-start;
    margin-top: 20px;
  }

  .chs-bottom-right {
    text-align: left;
    align-items: flex-start;
  }
}

/* ==========================================================================
   STREAMLINED HOMEPAGE STYLING (CENTERED, CLEAN, MODERN)
   ========================================================================== */
.hot-page-wrapper {
  background-color: #121212;
  color: #FFFFFF;
  min-height: 100vh;
  overflow-x: hidden;
}

/* Centered Hero Section */
.hot-hero-centered {
  position: relative;
  padding: 130px 24px 80px;
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.hot-hero-badge-row {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 24px;
  flex-wrap: wrap;
  justify-content: center;
}

.hot-pill-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.hot-pill-badge.green {
  background: rgba(85, 134, 50, 0.14);
  border: 1px solid rgba(85, 134, 50, 0.4);
  color: #558632;
}

.hot-pill-badge.local {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #FFFFFF;
}

.hot-pill-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.hot-hero-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(2.8rem, 6.5vw, 5.2rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -1.5px;
  color: #FFFFFF;
  margin: 0 0 18px;
  text-transform: uppercase;
}

.hot-hero-title .brand-green {
  color: #558632;
}

.hot-hero-sub {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(1.1rem, 2.2vw, 1.45rem);
  color: #CBD5E1;
  max-width: 680px;
  margin: 0 auto 36px;
  line-height: 1.5;
  font-weight: 400;
}

.hot-hero-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 50px;
  flex-wrap: wrap;
}

.hot-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #558632;
  color: #FFFFFF !important;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.8px;
  padding: 15px 34px;
  border-radius: 999px;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
}

.hot-btn-primary:hover {
  background: #669E3D !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -4px rgba(0, 0, 0, 0.6);
}

.hot-btn-primary svg {
  transition: transform 0.25s ease;
}

.hot-btn-primary:hover svg {
  transform: translateX(4px);
}

.hot-btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.04);
  color: #E2E8F0 !important;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.8px;
  padding: 15px 30px;
  border-radius: 999px;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.14);
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.hot-btn-secondary:hover {
  background: rgba(85, 134, 50, 0.12);
  border-color: #558632;
  color: #FFFFFF !important;
  transform: translateY(-2px);
}

.hot-hero-visual-card {
  position: relative;
  width: 100%;
  max-width: 960px;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(85, 134, 50, 0.25);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.85);
  background: #181818;
}

.hot-hero-visual-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  transform: scale(1);
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-hero-visual-card:hover .hot-hero-visual-img {
  transform: scale(1.02);
}

.hot-hero-visual-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 30px;
  background: linear-gradient(180deg, rgba(18, 18, 18, 0) 0%, rgba(18, 18, 18, 0.95) 100%);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
}

.hot-hero-visual-tag {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  gap: 8px;
}

.hot-hero-visual-meta {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13px;
  color: #558632;
  font-weight: 700;
  letter-spacing: 1px;
}

/* SECTION COMMONS */
.hot-section-block {
  padding: 90px 24px;
  max-width: 1200px;
  margin: 0 auto;
}

.hot-section-header {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 56px;
}

.hot-section-eyebrow {
  display: inline-block;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 2px;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.hot-section-heading {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(2rem, 4.2vw, 3.2rem);
  font-weight: 800;
  line-height: 1.15;
  color: #FFFFFF;
  margin: 0 0 14px;
}

.hot-section-desc {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 16px;
  color: #94A3B8;
  line-height: 1.6;
  margin: 0;
}

/* 1) HOW IT WORKS (4 STEPS) */
.hot-how-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.hot-step-card {
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 32px 24px;
  position: relative;
  transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
}

.hot-step-card:hover {
  border-color: rgba(85, 134, 50, 0.4);
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.6);
}

.hot-step-num {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1.5px;
  color: #558632;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.hot-step-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 17px;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0 0 10px;
  line-height: 1.3;
}

.hot-step-items {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 14px;
  color: #CBD5E1;
  line-height: 1.5;
  margin: 0;
}

/* 2) SMALL HIGHLIGHTS SECTION */
.hot-highlights-strip {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin-top: 40px;
}

.hot-highlight-card {
  background: rgba(85, 134, 50, 0.06);
  border: 1px solid rgba(85, 134, 50, 0.25);
  border-radius: 16px;
  padding: 22px 16px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.hot-highlight-card:hover {
  background: rgba(85, 134, 50, 0.14);
  border-color: #558632;
  transform: translateY(-3px);
}

.hot-hl-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #558632;
}

.hot-hl-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 14px;
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: 0.5px;
}

.hot-hl-sub {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 11.5px;
  color: #94A3B8;
}

/* 3) WHAT MAKES US DIFFERENT */
.hot-diff-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.hot-diff-card {
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 28px 22px;
  transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
  position: relative;
  overflow: hidden;
}

.hot-diff-card:hover {
  border-color: rgba(85, 134, 50, 0.45);
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
}

.hot-diff-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: rgba(85, 134, 50, 0.12);
  border: 1px solid rgba(85, 134, 50, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #558632;
  margin-bottom: 18px;
}

.hot-diff-card h4 {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0 0 10px;
}

.hot-diff-card p {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13.5px;
  color: #94A3B8;
  line-height: 1.55;
  margin: 0;
}

/* 4) CUSTOMER REVIEWS */
.hot-reviews-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.hot-review-card {
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 26px 20px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.hot-review-card:hover {
  border-color: rgba(85, 134, 50, 0.35);
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.5);
}

.hot-stars-row {
  display: flex;
  gap: 4px;
  color: #F59E0B;
  margin-bottom: 14px;
}

.hot-review-text {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 14px;
  color: #E2E8F0;
  line-height: 1.55;
  margin: 0 0 18px;
  font-style: italic;
}

.hot-reviewer-info {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.hot-reviewer-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #242424;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #558632;
  font-weight: 800;
  font-size: 14px;
  border: 1px solid rgba(85, 134, 50, 0.3);
}

.hot-reviewer-meta {
  display: flex;
  flex-direction: column;
}

.hot-reviewer-name {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  color: #FFFFFF;
}

.hot-reviewer-role {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 11.5px;
  color: #94A3B8;
}

/* 5) FINAL CTA BANNER */
.hot-cta-banner-wrap {
  padding: 60px 24px 100px;
  max-width: 1200px;
  margin: 0 auto;
}

.hot-cta-banner {
  background: linear-gradient(135deg, #181818 0%, #1e261b 100%);
  border: 1px solid rgba(85, 134, 50, 0.4);
  border-radius: 28px;
  padding: clamp(40px, 6vw, 70px) 30px;
  text-align: center;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.hot-cta-heading {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 800;
  color: #FFFFFF;
  margin: 0 0 16px;
  line-height: 1.15;
  text-transform: uppercase;
}

.hot-cta-sub {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  color: #CBD5E1;
  max-width: 620px;
  margin: 0 auto 36px;
  line-height: 1.5;
}

/* UNIVERSAL CLEAN FOOTER */
.hot-global-footer {
  background: #181818;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 70px 24px 36px;
}

.hot-footer-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.hot-footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1.2fr 1.2fr;
  gap: clamp(24px, 4vw, 50px);
  margin-bottom: 50px;
}

.hot-footer-brand-col {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.hot-footer-desc {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13.5px;
  color: #94A3B8;
  line-height: 1.6;
  max-width: 340px;
}

.hot-footer-col-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1.5px;
  color: #558632;
  text-transform: uppercase;
  margin: 0 0 18px;
}

.hot-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 11px;
}

.hot-footer-links a {
  color: #CBD5E1;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13.5px;
  text-decoration: none;
  transition: color 0.2s ease;
}

.hot-footer-links a:hover {
  color: #558632;
}

.hot-footer-contact-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.hot-footer-contact-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: #CBD5E1;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13px;
  line-height: 1.4;
  text-decoration: none;
}

.hot-footer-contact-item:hover {
  color: #558632;
}

.hot-footer-social-cluster {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}

.hot-footer-social-btn {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #E2E8F0;
  text-decoration: none;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.hot-footer-social-btn:hover {
  background: rgba(85, 134, 50, 0.2);
  border-color: #558632;
  color: #558632;
  transform: translateY(-2px);
}

.hot-footer-bottom {
  padding-top: 30px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 12.5px;
  color: #64748B;
}

@media (max-width: 1024px) {

  .hot-how-grid,
  .hot-diff-grid,
  .hot-reviews-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .hot-highlights-strip {
    grid-template-columns: repeat(3, 1fr);
  }

  .hot-footer-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {

  .hot-how-grid,
  .hot-diff-grid,
  .hot-reviews-grid,
  .hot-highlights-strip {
    grid-template-columns: 1fr;
  }

  .hot-footer-grid {
    grid-template-columns: 1fr;
  }

  .hot-hero-actions {
    flex-direction: column;
    width: 100%;
  }

  .hot-btn-primary,
  .hot-btn-secondary {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   BEHIND THE MEALS: MASONRY 3D GALLERY & LIGHTBOX
   ========================================================================== */
.hot-gallery-page {
  padding-top: 100px;
}

.hot-gallery-header {
  text-align: center;
  max-width: 760px;
  margin: 30px auto 50px;
  padding: 0 24px;
}

.hot-gallery-grid-container {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 24px 80px;
}

.hot-masonry-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  grid-auto-rows: 270px;
  grid-auto-flow: dense;
  gap: 22px;
}

.hot-masonry-item {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.5);
  cursor: pointer;
  perspective: 1000px;
  transform-style: preserve-3d;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.35s ease,
    border-color 0.35s ease;
}

/* Span Variations for Visual Hierarchy */
.hot-masonry-item.span-tall {
  grid-row: span 2;
}

.hot-masonry-item.span-wide {
  grid-column: span 2;
}

.hot-masonry-item:hover {
  transform: perspective(1000px) translateY(-8px) scale(1.02);
  border-color: rgba(85, 134, 50, 0.6);
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.8);
  z-index: 5;
}

.hot-masonry-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-masonry-item:hover .hot-masonry-img {
  transform: scale(1.06);
}

.hot-masonry-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 40%, rgba(14, 14, 14, 0.95) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 22px;
  box-sizing: border-box;
  opacity: 0.85;
  transition: opacity 0.3s ease;
}

.hot-masonry-item:hover .hot-masonry-overlay {
  opacity: 1;
}

.hot-masonry-badge {
  align-self: flex-start;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: #558632;
  background: rgba(85, 134, 50, 0.16);
  border: 1px solid rgba(85, 134, 50, 0.3);
  padding: 3px 9px;
  border-radius: 999px;
  margin-bottom: 6px;
}

.hot-masonry-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0;
  line-height: 1.3;
}

/* Lightbox Modal */
.hot-lightbox-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  z-index: 100000;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 24px;
  box-sizing: border-box;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.hot-lightbox-modal.active {
  opacity: 1;
  visibility: visible;
}

.hot-lightbox-top-bar {
  position: absolute;
  top: 24px;
  left: 24px;
  right: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 10;
}



.hot-lightbox-counter {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 1.5px;
  color: #558632;
  background: rgba(18, 18, 18, 0.7);
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid rgba(85, 134, 50, 0.3);
}

.hot-lightbox-close-btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #FFFFFF;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  font-size: 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.hot-lightbox-close-btn:hover {
  background: rgba(85, 134, 50, 0.3);
  border-color: #558632;
  color: #558632;
  transform: scale(1.05);
}

.hot-lightbox-img-wrap {
  max-width: 90vw;
  max-height: 80vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
}

.hot-lightbox-img {
  max-width: 100%;
  max-height: 75vh;
  border-radius: 14px;
  object-fit: contain;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.1);
  animation: zoomFadeIn 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes zoomFadeIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.hot-lightbox-caption {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: #CBD5E1;
  margin-top: 14px;
  text-align: center;
}

.hot-lightbox-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(20, 20, 20, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #FFFFFF;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  z-index: 10;
}

.hot-lightbox-nav-btn:hover {
  background: #558632;
  border-color: #558632;
  color: #FFFFFF;
  transform: translateY(-50%) scale(1.08);
}

.hot-lightbox-prev {
  left: 24px;
}

.hot-lightbox-next {
  right: 24px;
}

@media (max-width: 768px) {
  .hot-masonry-item.span-wide {
    grid-column: span 1;
  }

  .hot-lightbox-nav-btn {
    width: 40px;
    height: 40px;
  }

  .hot-lightbox-prev {
    left: 10px;
  }

  .hot-lightbox-next {
    right: 10px;
  }
}

/* ==========================================================================
   NUTRITION FACTS EXPERIENCE (PROTEIN HEADINGS & CURRENT FLAVOURS)
   ========================================================================== */
.hot-nutrition-page {
  padding-top: 110px;
  padding-bottom: 80px;
}

.hot-nutrition-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 36px;
  padding: 0 24px;
}

.hot-protein-switcher-tabs {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 30px;
  flex-wrap: wrap;
}

.hot-protein-tab-btn {
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #CBD5E1;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 14px;
  font-weight: 700;
  padding: 10px 22px;
  border-radius: 999px;
  cursor: pointer;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.hot-protein-tab-btn:hover {
  border-color: rgba(85, 134, 50, 0.4);
  color: #FFFFFF;
}

.hot-protein-tab-btn.active {
  background: #558632;
  border-color: #558632;
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.hot-main-protein-heading {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 800;
  color: #FFFFFF;
  margin: 0 0 16px;
  text-transform: uppercase;
}

.hot-flavours-selector-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin-bottom: 48px;
}

.hot-flavours-label {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: 1.5px;
  color: #558632;
  text-transform: uppercase;
}

.hot-flavours-pills-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.hot-flavour-pill-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #E2E8F0;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  padding: 8px 18px;
  border-radius: 999px;
  cursor: pointer;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.hot-flavour-pill-btn img {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  object-fit: cover;
}

.hot-flavour-pill-btn:hover {
  border-color: rgba(85, 134, 50, 0.5);
  background: rgba(85, 134, 50, 0.12);
  color: #FFFFFF;
}

.hot-flavour-pill-btn.active {
  background: rgba(85, 134, 50, 0.2);
  border-color: #558632;
  color: #FFFFFF;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
}

/* Main Nutrition Display Grid */
.hot-nutrition-stage-grid {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1fr 1.1fr 1fr;
  gap: 32px;
  align-items: start;
}

/* Left: Macro Highlights & Dish Info */
.hot-nutrition-meta-col {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.hot-macro-card-item {
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: border-color 0.2s ease;
}

.hot-macro-card-item:hover {
  border-color: rgba(85, 134, 50, 0.35);
}

.hot-macro-card-item.highlight {
  border-color: rgba(85, 134, 50, 0.5);
  background: rgba(85, 134, 50, 0.08);
}

.hot-macro-title-lbl {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1px;
  color: #94A3B8;
  text-transform: uppercase;
}

.hot-macro-val-lbl {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 26px;
  font-weight: 800;
  color: #FFFFFF;
}

.hot-macro-val-lbl span {
  font-size: 15px;
  color: #558632;
  font-weight: 700;
}

/* Center: Visual Protein Showcase */
.hot-nutrition-dish-col {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hot-dish-preview-card {
  width: 100%;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid rgba(85, 134, 50, 0.3);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.7);
  background: #181818;
  position: relative;
}

.hot-dish-preview-img {
  width: 100%;
  height: auto;
  min-height: 360px;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.hot-dish-preview-card:hover .hot-dish-preview-img {
  transform: scale(1.03);
}

.hot-dish-preview-badge {
  position: absolute;
  bottom: 16px;
  left: 16px;
  right: 16px;
  background: rgba(18, 18, 18, 0.88);
  backdrop-filter: blur(8px);
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.hot-dish-badge-name {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #FFFFFF;
}

.hot-dish-badge-prep {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 11.5px;
  font-weight: 700;
  color: #558632;
  text-transform: uppercase;
}

/* Right: Canadian Bilingual Nutrition Facts Label */
.hot-nutrition-label-col {
  display: flex;
  justify-content: center;
}

.hot-canadian-label {
  background: #FFFFFF;
  color: #000000;
  border-radius: 12px;
  padding: 18px 16px;
  width: 100%;
  max-width: 330px;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.6);
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  box-sizing: border-box;
}

.hot-nl-title-group {
  border-bottom: 8px solid #000000;
  padding-bottom: 4px;
}

.hot-nl-main-title {
  font-size: 24px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.5px;
}

.hot-nl-fr-title {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.1;
}

.hot-nl-serving-group {
  padding: 6px 0;
  border-bottom: 1px solid #000000;
  font-size: 12px;
  line-height: 1.3;
}

.hot-nl-cal-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 6px 0;
  border-bottom: 5px solid #000000;
}

.hot-nl-cal-text {
  font-size: 22px;
  font-weight: 900;
}

.hot-nl-dv-header {
  text-align: right;
  font-size: 10.5px;
  font-weight: 700;
  padding: 4px 0;
  border-bottom: 1px solid #000000;
}

.hot-nl-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 4px 0;
  border-bottom: 1px solid #C0C0C0;
  font-size: 12px;
}

.hot-nl-row.sub {
  padding-left: 14px;
}

.hot-nl-bold {
  font-weight: 700;
}

.hot-nl-dv {
  font-weight: 700;
}

/* Secondary Carbs & Veggies Reference Section */
.hot-carbs-veggies-section {
  max-width: 1200px;
  margin: 70px auto 0;
  padding: 0 24px;
}

.hot-cv-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}

.hot-cv-card {
  background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 26px;
}

.hot-cv-card-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 18px;
  font-weight: 800;
  color: #558632;
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.hot-cv-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.hot-cv-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 10px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 13.5px;
}

.hot-cv-name {
  color: #FFFFFF;
  font-weight: 600;
}

.hot-cv-macros {
  color: #94A3B8;
  font-size: 12.5px;
}

@media (max-width: 1024px) {
  .hot-nutrition-stage-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .hot-cv-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   HOT BRAND PILLARS SECTION (100VH + Centered Header)
   4-Column Showcase: 01 High Protein, 02 No Oil, 03 Freshly Prepared, 04 Customizable
   ========================================================================== */

.hot-pillars-section {
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  max-height: 100vh;
  background: #121212;
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  box-sizing: border-box;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  padding-top: 0;
}

/* Header (Takes 25vh: Centered heading & subheading) */
.hot-pillars-header {
  width: 100%;
  max-width: 1440px;
  height: 25vh;
  min-height: 25vh;
  max-height: 25vh;
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 10;
  box-sizing: border-box;
  flex-shrink: 0;
}

.hot-pillars-kicker {
  display: inline-block;
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: clamp(12px, 0.9vw, 14px);
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  /* 4.31:1 at this size/weight — under 4.5:1. Overriding locally to
     #669E3D rather than changing the shared --color-primary-green token. */
  color: #669E3D;
  margin-bottom: clamp(6px, 1vh, 10px);
}

.hot-pillars-heading {
  font-family: var(--font-headline, var(--font-family-brand), 'Switzer', sans-serif);
  font-size: clamp(38px, 4.6vw, 68px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: #FFFFFF;
  text-transform: uppercase;
  margin: 0;
}

/* 4 Cards Container (Takes 75vh) */
.hot-pillars-container {
  width: 100%;
  max-width: 1920px;
  height: 75vh;
  min-height: 75vh;
  max-height: 75vh;
  margin: 0 auto;
  flex-shrink: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  background: #121212;
  box-sizing: border-box;
}

.hot-pillar-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  max-height: 75vh;
  min-height: 0;
  background: #121212;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  overflow: hidden;
  transition: background-color 0.4s ease, border-color 0.4s ease;
}

.hot-pillar-card:last-child {
  border-right: none;
}

/* Subtle top hover line */
.hot-pillar-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--color-primary-green, #558632), transparent);
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: 5;
}

.hot-pillar-card:hover::before {
  opacity: 1;
}

.hot-pillar-card:hover {
  background: #1E1E1E;
}

/* Top Content Area */
.hot-pillar-content {
  padding: clamp(14px, 2vh, 26px) clamp(18px, 2vw, 36px) clamp(8px, 1.2vh, 14px);
  position: relative;
  z-index: 2;
  flex-shrink: 0;
}

/* 01 — Step Counter Row */
.hot-pillar-step {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: clamp(8px, 1.4vh, 16px);
}

.hot-pillar-num {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: clamp(15px, 1.1vw, 18px);
  font-weight: 500;
  color: #7d8781;
  letter-spacing: 0.04em;
  transition: color 0.3s ease;
}

.hot-pillar-card:hover .hot-pillar-num {
  color: #ffffff;
}

.hot-pillar-dash {
  width: 26px;
  height: 2px;
  background-color: var(--color-primary-green, #558632);
  border-radius: 2px;
  display: inline-block;
  transition: width 0.3s ease, background-color 0.3s ease;
}

.hot-pillar-card:hover .hot-pillar-dash {
  width: 36px;
  background-color: #558632;
}

/* Headline */
.hot-pillar-title {
  font-family: var(--font-headline, var(--font-family-brand), 'Switzer', sans-serif);
  font-size: clamp(20px, 1.85vw, 32px);
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: -0.02em;
  color: #ffffff;
  text-transform: uppercase;
  margin: 0 0 clamp(6px, 1vh, 12px) 0;
  min-height: 2.15em;
}

.hot-pillar-title span {
  display: block;
}

/* Subtitle / Description */
.hot-pillar-desc {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: clamp(13px, 0.95vw, 15px);
  font-weight: 400;
  line-height: 1.35;
  color: #98a39d;
  margin: 0;
  letter-spacing: -0.005em;
}

.hot-pillar-desc span {
  display: block;
}

/* Visual Image Area */
.hot-pillar-visual {
  position: relative;
  width: 100%;
  flex: 1;
  min-height: 0;
  margin-top: auto;
  overflow: hidden;
  background: #121212;
}

/* Gentle top blend so visual transitions seamlessly into card top */
.hot-pillar-visual::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: clamp(40px, 6vh, 70px);
  background: linear-gradient(to bottom, #121212 0%, rgba(10, 13, 10, 0) 100%);
  pointer-events: none;
  z-index: 1;
  transition: opacity 0.4s ease;
}

.hot-pillar-card:hover .hot-pillar-visual::after {
  background: linear-gradient(to bottom, #1E1E1E 0%, rgba(13, 18, 13, 0) 100%);
}

.hot-pillar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
  display: block;
  transform: scale(1);
  transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-pillar-card:hover .hot-pillar-img {
  transform: scale(1.045);
}

/* Mobile Pagination Dots (Hidden on Desktop) */
.hot-pillars-dots {
  display: none;
}

/* Responsive Breakpoints */
@media (max-width: 1200px) {
  .hot-pillar-content {
    padding: clamp(12px, 1.8vh, 22px) clamp(14px, 1.8vw, 24px) 10px;
  }
}

/* Mobile & Tablet Carousel View (<900px) */
@media (max-width: 900px) {
  .hot-pillars-section {
    height: auto;
    min-height: 0;
    max-height: none;
    padding: 44px 0 36px 0;
    background: #121212;
    overflow: hidden;
    scroll-snap-align: none;
    scroll-snap-stop: normal;
  }

  .hot-pillars-header {
    height: auto;
    min-height: 0;
    max-height: none;
    margin: 0 auto 26px auto;
    padding: 0 20px;
    text-align: center;
  }

  .hot-pillars-kicker {
    font-size: 12px;
    letter-spacing: 0.22em;
    font-weight: 700;
    color: var(--color-primary-green, #70B038);
    margin-bottom: 8px;
  }

  .hot-pillars-heading {
    font-size: clamp(28px, 7.6vw, 36px);
    font-weight: 800;
    line-height: 1.06;
    letter-spacing: -0.025em;
    color: #FFFFFF;
    max-width: 320px;
    margin: 0 auto;
  }

  .hot-pillars-container {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    grid-template-columns: none;
    height: auto;
    min-height: 0;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding: 4px 20px 8px 20px;
    gap: 14px;
    box-sizing: border-box;
    width: 100%;
  }

  .hot-pillars-container::-webkit-scrollbar {
    display: none;
  }

  .hot-pillar-card {
    flex: 0 0 78vw;
    width: 78vw;
    min-width: 275px;
    max-width: 340px;
    height: 520px;
    min-height: 490px;
    max-height: 540px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 24px;
    background: #141414;
    overflow: hidden;
    scroll-snap-align: start;
    scroll-snap-stop: normal;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-sizing: border-box;
    transition: border-color 0.3s ease;
  }

  .hot-pillar-card:last-child {
    border-right: 1px solid rgba(255, 255, 255, 0.12);
    margin-right: 10px;
  }

  .hot-pillar-card::before {
    display: none;
  }

  .hot-pillar-content {
    padding: 24px 22px 14px 22px;
    position: relative;
    z-index: 2;
    background: transparent;
  }

  .hot-pillar-step {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
  }

  .hot-pillar-num {
    font-size: 16px;
    font-weight: 500;
    color: #8a968f;
    letter-spacing: 0.02em;
  }

  .hot-pillar-dash {
    width: 28px;
    height: 2.5px;
    background-color: var(--color-primary-green, #70B038);
    border-radius: 2px;
  }

  .hot-pillar-title {
    font-size: clamp(24px, 6.4vw, 28px);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: #FFFFFF;
    margin: 0 0 8px 0;
    min-height: auto;
  }

  .hot-pillar-title span {
    display: block;
  }

  .hot-pillar-desc {
    font-size: 14.5px;
    font-weight: 400;
    line-height: 1.35;
    color: #949e98;
    margin: 0;
  }

  .hot-pillar-desc span {
    display: block;
  }

  .hot-pillar-visual {
    position: relative;
    width: 100%;
    flex: 1;
    min-height: 260px;
    overflow: hidden;
    background: #141414;
    margin-top: auto;
  }

  .hot-pillar-visual::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 75px;
    background: linear-gradient(to bottom, #141414 0%, rgba(20, 20, 20, 0) 100%);
    pointer-events: none;
    z-index: 2;
  }

  .hot-pillar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center bottom;
    display: block;
  }

  /* Dots Navigation */
  .hot-pillars-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 22px;
    padding: 0 20px;
  }

  .hot-pillar-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.25);
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background-color 0.25s ease, transform 0.25s ease;
    outline: none;
  }

  .hot-pillar-dot.is-active {
    background: var(--color-primary-green, #70B038);
    transform: scale(1.15);
  }
}

/* ==========================================================================
   HEALTH ON TOP — 1:1 REALISTIC ENDLESS REVIEW WALL (100VH)
   ========================================================================== */

.hot-review-wall-section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 560px;
  max-height: 1080px;
  overflow: hidden;
  background-color: #121212 !important;
  background-image: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  user-select: none;
  isolation: isolate;
}

/* Ambient Overhead Spotlight Beams */
.hot-review-wall-section::before {
  content: "";
  position: absolute;
  inset: 0;
background: none;
  pointer-events: none;
  z-index: 2;
}

/* Wall Chalk Doodles */
.wall-chalk-doodle {
  position: absolute;
  font-family: 'Caveat', cursive;
  color: rgba(230, 235, 230, 0.38);
  line-height: 1.1;
  pointer-events: none;
  z-index: 3;
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.35);
}

.chalk-top-left {
  top: clamp(16px, 2.5vh, 28px);
  left: clamp(20px, 3vw, 50px);
  font-size: clamp(15px, 1.2vw, 20px);
  transform: rotate(-7deg);
}

.chalk-top-right {
  top: clamp(16px, 2.5vh, 28px);
  right: clamp(20px, 3vw, 50px);
  font-size: clamp(15px, 1.2vw, 20px);
  text-align: right;
  transform: rotate(5deg);
}

.chalk-bottom-right {
  bottom: clamp(14px, 2.2vh, 26px);
  right: clamp(30px, 4vw, 70px);
  font-size: clamp(20px, 1.6vw, 28px);
  transform: rotate(4deg);
}

@media (max-width: 900px) {
  .chalk-top-left,
  .chalk-top-right {
    display: none !important;
  }
}

/* ==========================================================================
   REVIEW WALL HEADER (Bold, Spacious, Customized)
   ========================================================================== */
.review-wall-header {
  position: relative;
  z-index: 10;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: clamp(22px, 3.5vh, 38px) clamp(16px, 3vw, 40px) clamp(18px, 2.8vh, 32px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  flex-shrink: 0;
}

.review-wall-header-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin: 0 auto;
  max-width: 920px;
}

.review-wall-title {
  font-family: var(--font-headline, 'Switzer', -apple-system, BlinkMacSystemFont, sans-serif);
  font-size: clamp(2.8rem, 5.2vw, 4.6rem);
  font-weight: 900;
  line-height: 1.0;
  letter-spacing: -0.025em;
  color: #ffffff;
  margin: 0;
  text-transform: uppercase;
  text-align: center;
}

.review-wall-title .review-title-accent {
  color: #558632;
  text-shadow: none;
}

.review-wall-subtitle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 10px 0 0 0;
  font-family: var(--font-body, 'Inter', -apple-system, BlinkMacSystemFont, sans-serif);
  font-size: clamp(0.92rem, 1.2vw, 1.1rem);
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
  letter-spacing: 0.01em;
  text-align: center;
}

.review-wall-subtitle .stars {
  color: #f59e0b;
  font-size: 15px;
  letter-spacing: 2px;
}

/* ==========================================================================
   REVIEW WALL STAGE & ENDLESS TRACK (Takes the rest of the lower 100vh)
   ========================================================================== */
.review-wall-stage {
  position: relative;
  width: 100%;
  flex: 1 1 0%;
  min-height: 0;
  height: 100%;
  display: flex;
  align-items: center;
  overflow: hidden;
  z-index: 5;
  cursor: grab;
  touch-action: pan-y;
  padding: clamp(12px, 2vh, 26px) 0;
  box-sizing: border-box;
}

.review-wall-stage:active {
  cursor: grabbing;
}

.review-wall-track {
  display: flex;
  align-items: stretch;
  width: max-content;
  height: 100%;
  will-change: transform;
}

.review-wall-cycle {
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
  height: 100%;
  gap: clamp(4px, 1vh, 12px);
  padding: 0 20px;
  box-sizing: border-box;
}

.review-wall-row {
  display: flex;
  align-items: center;
  flex: 1 1 0%;
  min-height: 0;
  gap: clamp(0px, 0.4vw, 8px);
}

/* Organic Row Offsets */
.review-wall-row.row-1 {
  transform: translateX(0);
}

.review-wall-row.row-2 {
  transform: translateX(-35px);
}

.review-wall-row.row-3 {
  transform: translateX(20px);
}

/* ==========================================================================
   LARGE ORGANIC STICKY NOTE CARDS (Chaotic Overlaps, Real Review Wall Vibe)
   ========================================================================== */
.review-note-card {
  position: relative;
  width: clamp(180px, 15vw, 230px);
  height: clamp(105px, 14.5vh, 142px);
  min-height: 0;
  padding: clamp(10px, 1.4vh, 16px) clamp(12px, 1.2vw, 18px) 8px;
  border-radius: 2px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transform: translate3d(var(--note-x, 0px), var(--note-y, 0px), 0) rotate(var(--note-rotation, 0deg));
  transform-origin: center center;
  transition: transform 0.28s var(--ease-bounce),
    box-shadow 0.28s ease,
    filter 0.28s ease;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.52),
    0 2px 6px rgba(0, 0, 0, 0.35);
  cursor: pointer;
  flex-shrink: 0;
  outline: none;
  box-sizing: border-box;
  z-index: var(--note-z, 2);
  margin-right: -8px;
}

/* Varied Card Shapes for Natural Chaos */
.review-note-card.card-wide {
  width: clamp(205px, 17vw, 258px);
}

.review-note-card.card-square {
  width: clamp(160px, 13.5vw, 200px);
  height: clamp(118px, 15.5vh, 152px);
}

.review-note-card.card-compact {
  width: clamp(165px, 13.8vw, 205px);
  height: clamp(98px, 13vh, 130px);
}

/* HOVER MICRO-INTERACTION (Pops out above all overlapping cards) */
.review-note-card:hover,
.review-note-card:focus-visible {
  transform: translate3d(var(--note-x, 0px), calc(var(--note-y, 0px) - 12px), 0) scale(1.14) rotate(0deg) !important;
  z-index: 9999 !important;
  box-shadow: 0 28px 56px rgba(0, 0, 0, 0.88),
    0 10px 24px rgba(0, 0, 0, 0.6);
  filter: brightness(1.04);
}

.review-note-card:focus-visible {
  outline: 2px solid #558632;
  outline-offset: 4px;
}

.note-hover-hint {
  position: absolute;
  bottom: -22px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(18, 22, 18, 0.92);
  color: #fff;
  font-size: 9.5px;
  letter-spacing: 0.08em;
  padding: 3px 8px;
  border-radius: 4px;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 105;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.review-note-card:hover .note-hover-hint {
  opacity: 1;
  transform: translateX(-50%) translateY(2px);
}

/* ==========================================================================
   EMPTY LEAF ADD-REVIEW CARD (Organic Paper with Bold + Icon)
   ========================================================================== */
.review-note-card.leaf-add-card {
  cursor: pointer;
}

.review-note-card.leaf-add-card:hover {
  box-shadow: 0 20px 42px rgba(0, 0, 0, 0.4);
}

.leaf-add-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  width: 100%;
  text-align: center;
}

.leaf-add-plus-icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #558632;
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
  transition: transform 0.25s var(--ease-bounce), background 0.2s ease, box-shadow 0.2s ease;
}

.review-note-card.leaf-add-card:hover .leaf-add-plus-icon {
  transform: rotate(90deg) scale(1.2);
  background: #558632;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4);
}

/* ==========================================================================
   AUTHENTIC PAPER TEXTURES & COLOR TONES (No Borders or Double Rectangles)
   ========================================================================== */
.paper-ivory {
  background: #fbf7ee;
  color: #1e2220;
}

.paper-green {
  background: #cadbbd;
  color: #162414;
}

.paper-kraft {
  background: #d8c3a3;
  color: #261f15;
}

.paper-peach {
  background: #f6ded0;
  color: #2d1c16;
}

.paper-butter {
  background: #fef0c7;
  color: #2b2310;
}

.paper-chalkboard {
  background: #1E1E1E;
  color: #e9eee9;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.65);
}

/* Polaroid Photo Card */
.paper-polaroid {
  background: #ffffff;
  color: #181818;
  width: clamp(135px, 11vw, 170px);
  height: clamp(140px, 18vh, 185px);
  padding: 8px 8px 12px 8px;
  border-radius: 1px;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.62);
}

.polaroid-photo-frame {
  width: 100%;
  height: clamp(70px, 9.5vh, 98px);
  overflow: hidden;
  background-color: #181818;
  border-radius: 1px;
  box-shadow: inset 0 0 4px rgba(0, 0, 0, 0.3);
}

.polaroid-photo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.polaroid-caption {
  text-align: center;
  margin-top: 5px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.15;
  color: #111;
}

/* ==========================================================================
   REALISTIC 3D PUSH PINS (No Fake Tape Rectangles)
   ========================================================================== */
.note-push-pin {
  position: absolute;
  top: -6px;
  width: 13px;
  height: 13px;
  z-index: 10;
  pointer-events: none;
}

.pin-top-center {
  left: 50%;
  transform: translateX(-50%);
}

.pin-top-left {
  left: 18px;
}

.pin-top-right {
  right: 18px;
}

.pin-head {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.7), 0 0 1px rgba(0, 0, 0, 0.9);
  position: relative;
}

.pin-head::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 3px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.75);
}

.pin-brass .pin-head {
  background: radial-gradient(circle at 35% 35%, #fff3b0 0%, #d4af37 60%, #8a6a12 100%);
}

.pin-black .pin-head {
  background: radial-gradient(circle at 35% 35%, #555555 0%, #1a1a1a 70%, #000000 100%);
}

.pin-green .pin-head {
  background: radial-gradient(circle at 35% 35%, #669E3D 0%, #466F29 70%, #3B5D23 100%);
}

.pin-red .pin-head {
  background: radial-gradient(circle at 35% 35%, #ff7b7b 0%, #d62828 70%, #780000 100%);
}

.pin-silver .pin-head {
  background: radial-gradient(circle at 35% 35%, #ffffff 0%, #c0c0c0 60%, #707070 100%);
}

/* ==========================================================================
   13 AUTHENTIC HANDWRITING TYPOGRAPHY STYLES (Enlarged & Prominent)
   ========================================================================== */
.font-caveat {
  font-family: 'Caveat', cursive;
  font-size: clamp(16.5px, 1.3vw, 21px);
  line-height: 1.15;
}

.font-patrick {
  font-family: 'Patrick Hand', cursive;
  font-size: clamp(14.5px, 1.1vw, 18px);
  line-height: 1.18;
}

.font-kalam {
  font-family: 'Kalam', cursive;
  font-size: clamp(13.5px, 1.05vw, 17px);
  line-height: 1.2;
}

.font-indie {
  font-family: 'Indie Flower', cursive;
  font-size: clamp(14.5px, 1.12vw, 18px);
  line-height: 1.2;
}

.font-shadows {
  font-family: 'Shadows Into Light', cursive;
  font-size: clamp(16px, 1.25vw, 20.5px);
  line-height: 1.15;
}

.font-architects {
  font-family: 'Architects Daughter', cursive;
  font-size: clamp(13.5px, 1.05vw, 17px);
  line-height: 1.2;
}

.font-gochi {
  font-family: 'Gochi Hand', cursive;
  font-size: clamp(15px, 1.15vw, 18.5px);
  line-height: 1.18;
}

.font-reenie {
  font-family: 'Reenie Beanie', cursive;
  font-size: clamp(16px, 1.25vw, 20px);
  line-height: 1.1;
}

.font-justanother {
  font-family: 'Just Another Hand', cursive;
  font-size: clamp(16.5px, 1.3vw, 21px);
  line-height: 1.05;
}

.font-satisfy {
  font-family: 'Satisfy', cursive;
  font-size: clamp(15px, 1.15vw, 18.5px);
  line-height: 1.18;
}

.font-nanum {
  font-family: 'Nanum Pen Script', cursive;
  font-size: clamp(18px, 1.45vw, 23px);
  line-height: 1.1;
}

.font-covered {
  font-family: 'Covered By Your Grace', cursive;
  font-size: clamp(18px, 1.4vw, 22.5px);
  line-height: 1.1;
}

.font-apple {
  font-family: 'Homemade Apple', cursive;
  font-size: clamp(12px, 0.9vw, 15px);
  line-height: 1.3;
}

.font-chalk {
  font-family: 'Caveat', cursive;
  font-size: clamp(11.5px, 0.9vw, 14.5px);
  line-height: 1.08;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.04em;
  text-shadow: 0 0 1px rgba(255, 255, 255, 0.85);
}

/* Handwritten Ink Colors */
.ink-blue {
  color: #18283e;
}

.ink-charcoal {
  color: #1e2220;
}

.ink-forest {
  color: #193119;
}

.ink-sepia {
  color: #382414;
}

.ink-pencil {
  color: #2c332e;
}

.ink-chalk {
  color: #f0f4f0;
}

.note-inner {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%;
  overflow: hidden;
}

.note-quote {
  margin: 0 0 4px 0;
}

.note-author {
  margin-top: auto;
  font-weight: 700;
  opacity: 0.95;
  align-self: flex-end;
}

/* Left & Right Interactive Navigation Controls */
.review-wall-nav-control {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(18, 22, 18, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 20;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
}

.review-wall-nav-control:hover {
  background: #558632;
  border-color: #558632;
  color: #fff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
  transform: translateY(-50%) scale(1.08);
}

.nav-control-prev {
  left: 18px;
}

.nav-control-next {
  right: 18px;
}

/* ==========================================================================
   REVIEW WALL AFTER-SCROLL ACTION BAR (Visible when scrolling past the wall)
   ========================================================================== */
.review-wall-after-scroll {
  position: relative;
  width: 100%;
  background: #1E1E1E;
  background-image: none;
  border-top: 1px solid rgba(85, 134, 50, 0.25);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  padding: clamp(24px, 3.5vh, 40px) clamp(20px, 4vw, 48px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  box-sizing: border-box;
}

.review-wall-after-scroll-inner {
  max-width: 1200px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}

.review-wall-after-scroll-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.review-wall-after-scroll-heading {
  font-family: var(--font-headline, 'Switzer', sans-serif);
  font-size: clamp(1.2rem, 1.8vw, 1.55rem);
  font-weight: 800;
  color: #ffffff;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.review-wall-after-scroll-heading .stars {
  color: #f59e0b;
  font-size: 16px;
  letter-spacing: 2px;
}

.review-wall-after-scroll-sub {
  font-size: clamp(13px, 0.95vw, 14.5px);
  color: rgba(255, 255, 255, 0.68);
  margin: 0;
}

.review-wall-after-scroll-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.review-wall-btn-write {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 13px 32px;
  border-radius: 9999px;
  background: #558632;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  font-family: var(--font-headline, 'Switzer', sans-serif);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  text-decoration: none;
}

.review-wall-btn-write:hover {
  background: #669E3D;
  transform: translateY(-2px);
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.4);
  border-color: rgba(255, 255, 255, 0.7);
}

.review-wall-btn-write:active {
  transform: translateY(0);
  background: #466F29;
}

.review-wall-btn-write svg {
  transition: transform 0.2s ease;
}

.review-wall-btn-write:hover svg {
  transform: rotate(-10deg) scale(1.1);
}

@media (max-width: 768px) {
  .review-wall-after-scroll-inner {
    flex-direction: column-reverse;
    align-items: center;
    text-align: center;
    gap: 16px;
  }

  .review-wall-after-scroll-heading {
    justify-content: center;
    flex-wrap: wrap;
    font-size: 1.3rem;
  }

  .review-wall-after-scroll-heading .stars {
    display: none !important;
  }

  .review-wall-after-scroll-sub {
    text-align: center;
    max-width: 460px;
  }

  .review-wall-after-scroll-actions {
    width: 100%;
    justify-content: center;
    margin-bottom: 2px;
  }
}

/* ==========================================================================
   CINEMA POP-OUT MODAL (PROPER POP-OUT SINGLE NOTE)
   ========================================================================== */
.review-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(5, 8, 5, 0.86);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.review-modal-backdrop.active {
  opacity: 1;
  pointer-events: auto;
}

.review-modal-shell {
  position: relative;
  width: 100%;
  max-width: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.review-modal-close {
  position: absolute;
  top: -46px;
  right: -8px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(30, 36, 30, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  font-size: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 100;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.review-modal-close:hover {
  background: #e11d48;
  border-color: #e11d48;
  transform: scale(1.08);
}

.review-modal-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(30, 36, 30, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 50;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.modal-nav-prev {
  left: -58px;
}

.modal-nav-next {
  right: -58px;
}

.review-modal-nav:hover {
  background: #558632;
  border-color: #558632;
  transform: translateY(-50%) scale(1.08);
}

.review-modal-card-stage {
  width: 100%;
  display: flex;
  justify-content: center;
}

.modal-popped-card {
  position: relative;
  width: 100%;
  max-width: 520px;
  padding: 38px 36px 28px;
  border-radius: 4px;
  box-shadow: 0 35px 80px rgba(0, 0, 0, 0.88),
    0 12px 24px rgba(0, 0, 0, 0.55);
  animation: modalCardPop 0.38s var(--ease-bounce) forwards;
}

@keyframes modalCardPop {
  0% {
    opacity: 0;
    transform: scale(0.85) translateY(18px);
  }

  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.modal-tape {
  width: 70px;
  height: 22px;
  top: -11px;
}

.modal-pin {
  width: 18px;
  height: 18px;
  top: -9px;
}

.modal-pin .pin-head {
  width: 18px;
  height: 18px;
}

.modal-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 22px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  padding-bottom: 14px;
}

.modal-popped-card.paper-chalkboard .modal-card-header {
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}

.modal-author-badge {
  display: flex;
  align-items: center;
  gap: 12px;
}

.modal-avatar-initial {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #558632;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 16px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

.modal-author-meta {
  display: flex;
  flex-direction: column;
}

.modal-author-name {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.modal-verified-tag {
  font-size: 11.5px;
  opacity: 0.75;
}

.modal-star-rating {
  color: #f59e0b;
  font-size: 18px;
  letter-spacing: 2px;
}

.modal-card-body {
  margin-bottom: 24px;
}

.modal-handwritten-quote {
  margin: 0 0 16px 0;
  font-size: clamp(23px, 2.4vw, 29px);
  line-height: 1.25;
  font-weight: 600;
}

.modal-handwritten-signature {
  font-size: clamp(21px, 2.1vw, 26px);
  font-weight: 700;
  text-align: right;
  opacity: 0.9;
}

.modal-polaroid-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.modal-polaroid-image {
  width: 100%;
  max-height: 280px;
  object-fit: cover;
  border-radius: 3px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.modal-polaroid-label {
  font-size: 24px;
  font-weight: 700;
  text-align: center;
}

.modal-card-footer {
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  padding-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.modal-popped-card.paper-chalkboard .modal-card-footer {
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.modal-dish-tag {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  opacity: 0.85;
}

.modal-card-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.modal-like-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.1);
  padding: 6px 12px;
  border-radius: 9999px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  color: inherit;
}

.modal-popped-card.paper-chalkboard .modal-like-btn {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.7);
}

.modal-like-btn:hover,
.modal-like-btn.liked {
  background: rgba(225, 29, 72, 0.15);
  border-color: #e11d48;
  color: #e11d48;
}

.modal-like-btn.liked .like-heart {
  transform: scale(1.2);
}

.modal-goal-pill {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 4px 10px;
  border-radius: 9999px;
  background: rgba(85, 134, 50, 0.2);
  color: #558632;
}

.modal-popped-card.paper-chalkboard .modal-goal-pill {
  color: #558632;
  background: rgba(85, 134, 50, 0.2);
}

/* ==========================================================================
   WRITE A REVIEW MODAL
   ========================================================================== */
.write-review-backdrop {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.write-review-card {
  position: relative;
  background: #1E1E1E;
  border: 1px solid rgba(85, 134, 50, 0.35);
  border-radius: 24px;
  width: 100%;
  max-width: 540px;
  padding: clamp(24px, 4vw, 36px);
  color: #ffffff;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.8);
  animation: writeModalPop 0.3s var(--ease-premium);
  box-sizing: border-box;
}

@keyframes writeModalPop {
  from {
    opacity: 0;
    transform: scale(0.92) translateY(16px);
  }

  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.write-review-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #ffffff;
  font-size: 22px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.write-review-close:hover {
  background: rgba(255, 255, 255, 0.18);
  transform: rotate(90deg);
}

.write-review-header {
  margin-bottom: 22px;
}

.write-review-kicker {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.2em;
  color: #558632;
  text-transform: uppercase;
  display: block;
  margin-bottom: 6px;
}

.write-review-title {
  font-family: var(--font-headline, 'Switzer', sans-serif);
  font-size: clamp(1.6rem, 2.5vw, 2rem);
  font-weight: 900;
  letter-spacing: -0.02em;
  margin: 0 0 6px 0;
  color: #ffffff;
}

.write-review-sub {
  font-size: 13.5px;
  color: rgba(255, 255, 255, 0.65);
  margin: 0;
}

.write-review-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.form-group-rating {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.star-rating-picker {
  display: flex;
  gap: 6px;
}

.star-pick {
  background: none;
  border: none;
  font-size: 28px;
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: transform 0.15s ease, color 0.15s ease;
  padding: 0;
  line-height: 1;
}

.star-pick.active,
.star-pick:hover {
  color: #ffb703;
}

.star-pick:hover {
  transform: scale(1.15);
}

.form-field-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
}

.form-group-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

@media (max-width: 540px) {
  .form-group-fields {
    grid-template-columns: 1fr;
  }
}

.form-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.form-input,
.form-textarea {
  width: 100%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 12px;
  padding: 10px 14px;
  color: #ffffff;
  font-family: inherit;
  font-size: 13.5px;
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.form-input:focus,
.form-textarea:focus {
  border-color: #558632;
  background: rgba(255, 255, 255, 0.09);
  box-shadow: none;
}

.form-textarea {
  resize: vertical;
  min-height: 80px;
}

.write-review-submit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #558632;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  font-family: var(--font-headline, 'Switzer', sans-serif);
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 13px 24px;
  border-radius: 12px;
  cursor: pointer;
  margin-top: 6px;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

.write-review-submit-btn:hover {
  background: #669e3d;
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.4);
}

/* ==========================================================================
   RESPONSIVE ADJUSTMENTS
   ========================================================================== */
@media (max-width: 900px) {
  .modal-nav-prev {
    left: 8px;
  }

  .modal-nav-next {
    right: 8px;
  }

  .review-wall-header {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .review-wall-btn-view {
    display: none;
  }
}

@media (max-height: 760px) {
  .review-wall-cycle {
    gap: 8px;
  }

  .review-note-card {
    min-height: 96px;
    padding: 10px 12px;
  }
}

/* ==========================================================================
   HOW IT WORKS: 1:1 STEP BY STEP PROCESS SECTION
   ========================================================================== */
.hot-hiw-section {
  position: relative;
  background-color: #121212;
  color: #ffffff;
  padding: clamp(80px, 10vh, 120px) 0;
  width: 100%;
  overflow: hidden;
  box-sizing: border-box;
}

.hot-hiw-container {
  max-width: 1220px;
  margin: 0 auto;
  padding: 0 clamp(24px, 5vw, 64px);
  width: 100%;
  box-sizing: border-box;
}

/* --- Top Header Split --- */
.hot-hiw-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 32px;
  margin-bottom: clamp(40px, 5vh, 56px);
}

.hot-hiw-header-left {
  flex: 1;
  max-width: 760px;
}

.hot-hiw-badge {
  display: block;
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--hot-text-300, #A7B0AB);
  margin-bottom: 12px;
}

.hot-hiw-title {
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: clamp(2.4rem, 4.6vw, 3.9rem);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.08;
  color: #ffffff;
  margin: 0;
}

.hot-hiw-subtitle {
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: clamp(1rem, 1.3vw, 1.22rem);
  font-weight: 400;
  color: #7b8480;
  margin: 12px 0 0 0;
  line-height: 1.5;
}

.hot-hiw-header-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  padding-top: 10px;
  flex-shrink: 0;
}

.hot-hiw-tagline {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  line-height: 1.42;
  color: #555d59;
  text-transform: uppercase;
}

.hot-hiw-tagline-bar {
  width: 32px;
  height: 1px;
  background: #333936;
  margin-top: 12px;
  border-radius: 1px;
}

/* --- Steps List --- */
.hot-hiw-steps-list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  width: 100%;
}

.hot-hiw-step-row {
  display: grid;
  grid-template-columns: minmax(320px, 42%) 1fr auto;
  align-items: center;
  padding: clamp(24px, 3.2vh, 36px) 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  cursor: pointer;
  position: relative;
  transition: background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  user-select: none;
  outline: none;
  background: transparent;
}

.hot-hiw-step-row:focus-visible {
  outline: 2px solid #558632;
  outline-offset: -2px;
}

/* Left: 01 | PROTEIN */
.hot-hiw-step-left {
  display: flex;
  align-items: center;
  gap: 0;
}

.hot-hiw-num {
  font-family: var(--font-family-brand), monospace, sans-serif;
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--hot-text-300, #A7B0AB);
  min-width: 52px;
  font-variant-numeric: tabular-nums;
  transition: color 0.35s cubic-bezier(0.16, 1, 0.3, 1),
    text-shadow 0.35s ease;
}

.hot-hiw-sep {
  display: block;
  width: 1.5px;
  height: 28px;
  background: rgba(255, 255, 255, 0.12);
  margin: 0 clamp(18px, 2.4vw, 36px) 0 clamp(14px, 1.8vw, 24px);
  position: relative;
  overflow: hidden;
  transition: background-color 0.35s cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 0.35s ease;
}

.hot-hiw-name {
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: clamp(1.9rem, 3.4vw, 2.9rem);
  font-weight: 800;
  letter-spacing: 0.01em;
  color: #ffffff;
  margin: 0;
  line-height: 1;
  text-transform: uppercase;
  transition: color 0.35s ease;
}

/* Mid: Description */
.hot-hiw-step-mid {
  padding-left: clamp(16px, 2.5vw, 40px);
}

.hot-hiw-desc {
  font-family: var(--font-family-brand), -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: clamp(1rem, 1.3vw, 1.25rem);
  font-weight: 400;
  color: var(--hot-text-300, #A7B0AB);
  transition: color 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Right: Arrow */
.hot-hiw-step-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-left: 20px;
}

.hot-hiw-arrow-svg {
  width: clamp(32px, 2.6vw, 38px);
  height: 16px;
  color: #313734;
  transition: color 0.35s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.35s ease;
}

/* Subtle process indicator line (disabled per preference) */
.hot-hiw-row-progress {
  display: none !important;
}

/* --- Active State --- */
.hot-hiw-step-row.is-active {
  background: rgba(255, 255, 255, 0.02);
}

.hot-hiw-step-row.is-active .hot-hiw-num {
  color: #558632;
}

.hot-hiw-step-row.is-active .hot-hiw-sep {
  background-color: #558632;
}

.hot-hiw-step-row.is-active .hot-hiw-name {
  color: #ffffff;
}

.hot-hiw-step-row.is-active .hot-hiw-desc {
  color: #ffffff;
}

.hot-hiw-step-row.is-active .hot-hiw-arrow-svg {
  color: #558632;
  transform: translateX(6px);
}

/* Inactive Hover State */
.hot-hiw-step-row:not(.is-active):hover {
  background: rgba(255, 255, 255, 0.015);
}

.hot-hiw-step-row:not(.is-active):hover .hot-hiw-num {
  color: #838c87;
}

.hot-hiw-step-row:not(.is-active):hover .hot-hiw-desc {
  color: #9da6a1;
}

.hot-hiw-step-row:not(.is-active):hover .hot-hiw-arrow-svg {
  color: #636b67;
  transform: translateX(4px);
}

/* --- Responsive Adjustments --- */
@media (max-width: 900px) {
  .hot-hiw-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }

  .hot-hiw-header-right {
    align-items: flex-start;
    text-align: left;
    padding-top: 0;
  }

  .hot-hiw-tagline {
    align-items: flex-start;
  }

  .hot-hiw-tagline-bar {
    margin-left: 0;
  }

  .hot-hiw-step-row {
    grid-template-columns: minmax(260px, 45%) 1fr auto;
    padding: 24px 0;
  }

  .hot-hiw-name {
    font-size: 1.85rem;
  }
}

@media (max-width: 640px) {
  .hot-hiw-step-row {
    grid-template-columns: 1fr auto;
    row-gap: 8px;
    padding: 20px 0;
  }

  .hot-hiw-step-left {
    grid-column: 1 / 2;
  }

  .hot-hiw-step-right {
    grid-column: 2 / 3;
    grid-row: 1 / 2;
  }

  .hot-hiw-step-mid {
    grid-column: 1 / 3;
    padding-left: calc(42px + 14px);
  }

  .hot-hiw-name {
    font-size: 1.55rem;
  }

  .hot-hiw-num {
    min-width: 38px;
    font-size: 1.3rem;
  }

  .hot-hiw-sep {
    height: 22px;
    margin: 0 14px 0 10px;
  }
}

/* ==========================================================================
   HOT END CTA SECTION ("READY TO PUT YOUR HEALTH ON TOP?")
   1:1 Exact Match to Reference Mockup
   ========================================================================== */
.hot-end-cta-section {
  position: relative;
  width: 100%;
  max-width: 100%;
  background-color: #121212;
  color: #ffffff;
  padding-top: clamp(32px, 3.8vw, 54px);
  padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
  margin: 0;
  overflow: hidden;
  box-sizing: border-box;
}

.hot-end-cta-container {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

.hot-end-cta-content {
  width: 100%;
  max-width: 1200px;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  z-index: 3;
}

.hot-end-cta-title {
  font-family: 'Outfit', 'Aeonik', 'Switzer', -apple-system, sans-serif;
  font-size: clamp(36px, 5.2vw, 72px);
  font-weight: 900;
  line-height: 0.98;
  letter-spacing: -0.032em;
  text-transform: uppercase;
  color: #ffffff;
  margin: 0 0 14px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  text-shadow: 0 4px 32px rgba(0, 0, 0, 0.8);
}

.hot-end-cta-line {
  display: block;
}

.hot-end-cta-subtitle {
  font-family: var(--font-family-brand), -apple-system, sans-serif;
  font-size: clamp(15px, 1.5vw, 19px);
  font-weight: 400;
  color: #cfd4d0;
  margin: 0 0 24px 0;
  line-height: 1.4;
  letter-spacing: -0.012em;
  max-width: 680px;
}

.hot-end-cta-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: clamp(20px, 2.4vw, 32px);
}

.hot-end-cta-pill-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background-color: #558632;
  color: #ffffff;
  font-family: 'Outfit', 'Inter', -apple-system, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 14px 36px;
  border-radius: 9999px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.4);
  transition: color 0.28s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.28s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1), transform 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.hot-end-cta-pill-btn:hover {
  background-color: #558632;
  transform: translateY(-2px);
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.4);
  color: #ffffff;
}

.hot-end-cta-pill-btn:active {
  transform: translateY(0);
}

.hot-end-cta-arrow {
  width: 17px;
  height: 17px;
  stroke: #ffffff;
  stroke-width: 2.6;
  transition: transform 0.25s ease;
}

.hot-end-cta-pill-btn:hover .hot-end-cta-arrow {
  transform: translateX(4px);
}

.hot-end-cta-visual-frame {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 100% !important;
  height: clamp(180px, 20vw, 320px) !important;
  position: relative !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 0 !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.hot-end-cta-visual-frame picture {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  display: block !important;
}

.hot-end-cta-img {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  filter: brightness(1.02) contrast(1.02) !important;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.hot-end-cta-visual-frame:hover .hot-end-cta-img {
  transform: scale(1.03);
}

.hot-end-cta-gradient-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to bottom,
      rgba(6, 10, 8, 0.3) 0%,
      rgba(6, 10, 8, 0) 15%,
      rgba(6, 10, 8, 0) 85%,
      rgba(6, 10, 8, 0.35) 100%);
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .hot-end-cta-section {
    padding-top: 28px;
  }

  .hot-end-cta-content {
    padding: 0 16px;
  }

  .hot-end-cta-title {
    font-size: clamp(24px, 6.2vw, 34px);
    letter-spacing: -0.02em;
    margin-bottom: 10px;
    gap: 2px;
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
  }

  .hot-end-cta-line {
    display: inline;
    white-space: normal;
  }

  .hot-end-cta-subtitle {
    font-size: 14px;
    margin-bottom: 18px;
    padding: 0 8px;
    max-width: 100%;
  }

  .hot-end-cta-actions {
    margin-bottom: 16px;
  }

  .hot-end-cta-pill-btn {
    padding: 12px 26px;
    font-size: 11.5px;
    gap: 8px;
  }

  .hot-end-cta-visual-frame {
    width: 100%;
    max-width: 100%;
    height: 130px;
    border-radius: 0;
  }
}

/* About Us End CTA: Health On Top (Fuel Your Best Body) */
.about-page .week-ready-section,
.about-end-cta-hero {
  margin-top: 0 !important;
  height: 100vh;
  min-height: calc(100vh - var(--nav-height, 80px));
  max-height: none;
}

.about-end-cta-hero .week-ready-actions {
  margin-top: clamp(28px, 4.5vh, 52px);
}

.about-page .ready-section {
  height: auto;
  min-height: calc(100vh - var(--nav-height, 80px));
  max-height: none;
  padding-top: clamp(40px, 6vh, 80px);
  padding-bottom: clamp(40px, 6vh, 80px);
}

/* ==========================================================================
   HEALTH ON TOP ("HOT") — FAQ SECTION (100% Locked Design System)
   Palette: Dark Canvas (#121212), Elevated Surface (#1E1E1E), Emerald (#558632)
   Typography: Switzer / Aeonik Brand Typeface
   ========================================================================== */

.hot-faq-section {
  position: relative;
  width: 100%;
  background-color: #121212;
  background: #121212;
  color: #FFFFFF;
  padding: clamp(64px, 8.5vh, 108px) clamp(20px, 4vw, 48px);
  box-sizing: border-box;
  overflow: hidden;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  z-index: 5;
}

.hot-faq-ambient-glow {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: clamp(400px, 70vw, 900px);
  height: 380px;
  background: none;
  pointer-events: none;
  z-index: 1;
}

.hot-faq-container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1140px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* Header */
.hot-faq-header {
  text-align: center;
  max-width: 780px;
  margin: 0 auto clamp(36px, 4.5vh, 52px);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hot-faq-kicker-wrap {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.hot-faq-sparkle {
  color: var(--hot-emerald-500, #558632);
  font-size: 14px;
  line-height: 1;
}

.hot-faq-kicker {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: clamp(11.5px, 0.9vw, 13px);
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--hot-emerald-500, #558632);
}

.hot-faq-title {
  font-family: var(--font-headline, var(--font-family-brand), 'Switzer', sans-serif);
  font-size: clamp(30px, 3.8vw, 50px);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.12;
  color: #FFFFFF;
  margin: 0 0 16px;
  text-transform: uppercase;
}

.hot-faq-subtitle {
  font-size: clamp(15px, 1.15vw, 17px);
  line-height: 1.6;
  color: #A7B0AB;
  margin: 0 0 clamp(24px, 3vh, 32px);
  max-width: 660px;
}

/* Category Filter Pills */
.hot-faq-categories {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  width: 100%;
}

.faq-cat-pill {
  appearance: none;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 9999px;
  padding: 8px 18px;
  color: #A7B0AB;
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
}

.faq-cat-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.08);
  color: #A7B0AB;
  font-size: 11px;
  font-weight: 700;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.faq-cat-pill:hover {
  background: rgba(85, 134, 50, 0.12);
  border-color: rgba(85, 134, 50, 0.4);
  color: #FFFFFF;
}

.faq-cat-pill.active {
  background: var(--hot-emerald-500, #558632);
  border-color: var(--hot-emerald-500, #558632);
  color: #FFFFFF;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.4);
}

.faq-cat-pill.active .faq-cat-count {
  background: rgba(0, 0, 0, 0.25);
  color: #FFFFFF;
}

/* Accordion List */
.hot-faq-accordion-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
}

.hot-faq-item {
  background: linear-gradient(135deg, rgba(19, 25, 21, 0.82) 0%, rgba(13, 17, 14, 0.94) 100%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  overflow: hidden;
  transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
  box-sizing: border-box;
}

.hot-faq-item:hover {
  border-color: rgba(85, 134, 50, 0.35);
  transform: translateY(-1.5px);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
}

.hot-faq-item.active {
  border-color: rgba(85, 134, 50, 0.7);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.7);
  background: linear-gradient(135deg, rgba(23, 31, 26, 0.92) 0%, rgba(14, 19, 16, 0.98) 100%);
}

.hot-faq-item.is-filtered-out {
  display: none !important;
}

/* Trigger Button */
.hot-faq-trigger {
  appearance: none;
  background: transparent;
  border: none;
  width: 100%;
  padding: clamp(18px, 2.4vh, 24px) clamp(20px, 2.8vw, 32px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  cursor: pointer;
  text-align: left;
  box-sizing: border-box;
}

.hot-faq-q-left {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.8vw, 22px);
  flex: 1;
}

.hot-faq-num,
.hot-faq-bullet {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--hot-emerald-500, #558632);
  letter-spacing: 0.05em;
  flex-shrink: 0;
  line-height: 1;
}

.hot-faq-question-text {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: clamp(16px, 1.25vw, 19px);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #FFFFFF;
  line-height: 1.35;
  transition: color 0.2s ease;
}

.hot-faq-item:hover .hot-faq-question-text,
.hot-faq-item.active .hot-faq-question-text {
  color: #FFFFFF;
}

/* Plus/Minus Animated Toggle Icon */
.hot-faq-toggle-icon {
  position: relative;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.faq-icon-line {
  position: absolute;
  background-color: #FFFFFF;
  border-radius: 2px;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s ease;
}

.faq-icon-h {
  width: 14px;
  height: 2px;
}

.faq-icon-v {
  width: 2px;
  height: 14px;
}

.hot-faq-item.active .hot-faq-toggle-icon {
  background: var(--hot-emerald-500, #558632);
  border-color: var(--hot-emerald-500, #558632);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.hot-faq-item.active .faq-icon-v {
  transform: rotate(90deg);
  opacity: 0;
}

.hot-faq-item.active .faq-icon-h {
  transform: rotate(180deg);
}

/* Smooth Accordion Body (CSS Grid Technique) */
.hot-faq-answer-wrapper {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease;
  opacity: 0;
  visibility: hidden;
}

.hot-faq-item.active .hot-faq-answer-wrapper {
  grid-template-rows: 1fr;
  opacity: 1;
  visibility: visible;
}

.hot-faq-answer-inner {
  overflow: hidden;
  padding: 0 clamp(20px, 2.8vw, 32px) clamp(20px, 2.5vh, 26px) clamp(44px, 4.2vw, 68px);
  color: #E7ECE9;
  font-size: clamp(14.5px, 1.05vw, 16px);
  line-height: 1.68;
  box-sizing: border-box;
}

.hot-faq-answer-inner p {
  margin: 0 0 12px;
  color: #E7ECE9;
}

.hot-faq-answer-inner p:last-child {
  margin-bottom: 0;
}

.hot-faq-bullet-list {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.hot-faq-bullet-list li {
  position: relative;
  padding-left: 20px;
  color: #C6CFC9;
  font-size: clamp(14px, 1vw, 15.5px);
  line-height: 1.6;
}

.hot-faq-bullet-list li::before {
  content: "•";
  position: absolute;
  left: 4px;
  top: 0;
  color: var(--hot-emerald-500, #558632);
  font-size: 18px;
  line-height: 1.4;
}

.hot-faq-bullet-list li strong {
  color: #FFFFFF;
}

/* Bottom Help Card */
.hot-faq-footer-card {
  margin-top: clamp(40px, 5vh, 60px);
  background: linear-gradient(135deg, rgba(21, 28, 23, 0.85) 0%, rgba(12, 16, 13, 0.95) 100%);
  border: 1px solid rgba(85, 134, 50, 0.32);
  border-radius: 20px;
  padding: clamp(24px, 3.2vh, 36px) clamp(24px, 3.5vw, 44px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.05);
  box-sizing: border-box;
}

.hot-faq-footer-info {
  flex: 1;
}

.hot-faq-footer-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--hot-emerald-500, #558632);
  margin-bottom: 8px;
}

.hot-faq-footer-title {
  font-family: var(--font-headline, var(--font-family-brand), 'Switzer', sans-serif);
  font-size: clamp(20px, 1.8vw, 26px);
  font-weight: 700;
  letter-spacing: -0.015em;
  color: #FFFFFF;
  margin: 0 0 6px;
  text-transform: uppercase;
}

.hot-faq-footer-desc {
  font-size: clamp(14px, 1vw, 15.5px);
  color: #A7B0AB;
  line-height: 1.55;
  margin: 0;
}

.hot-faq-footer-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}

.faq-footer-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  background: var(--hot-emerald-500, #558632);
  color: #FFFFFF;
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 13px 24px;
  border-radius: 9999px;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.4);
}

.faq-footer-btn-primary:hover {
  background: var(--hot-emerald-hover, #669E3D);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
  color: #FFFFFF;
}

.faq-footer-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.04);
  color: #FFFFFF;
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 13px 24px;
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.faq-footer-btn-secondary:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.7);
  transform: translateY(-2px);
  color: #FFFFFF;
}

/* Responsive Styles */
@media (max-width: 900px) {
  .hot-faq-footer-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }

  .hot-faq-footer-actions {
    width: 100%;
    flex-direction: column;
    gap: 10px;
  }

  .faq-footer-btn-primary,
  .faq-footer-btn-secondary {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 768px) {
  .hot-faq-section {
    padding: 56px 16px;
  }

  .hot-faq-header {
    margin-bottom: 28px;
  }

  .hot-faq-title {
    font-size: clamp(26px, 7vw, 34px);
  }

  .hot-faq-subtitle {
    font-size: 14.5px;
    margin-bottom: 20px;
  }

  .hot-faq-categories {
    justify-content: flex-start;
    overflow-x: auto;
    padding-bottom: 8px;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .hot-faq-categories::-webkit-scrollbar {
    display: none;
  }

  .faq-cat-pill {
    flex-shrink: 0;
    padding: 7px 14px;
    font-size: 12.5px;
  }

  .hot-faq-trigger {
    padding: 16px 18px;
    gap: 12px;
  }

  .hot-faq-q-left {
    gap: 12px;
  }

  .hot-faq-num,
  .hot-faq-bullet {
    font-size: 15px;
  }

  .hot-faq-question-text {
    font-size: 15px;
  }

  .hot-faq-toggle-icon {
    width: 28px;
    height: 28px;
  }

  .faq-icon-h {
    width: 11px;
  }

  .faq-icon-v {
    height: 11px;
  }

  .hot-faq-answer-inner {
    padding: 0 18px 18px 18px;
    font-size: 14px;
  }

  .hot-faq-bullet-list li {
    font-size: 13.5px;
  }
}

/* ==========================================================================
   MENU SHOWCASE SECTION (100VH) - HIGH PERFORMANCE CULINARY DISPLAY
   ========================================================================== */
.hot-menu-showcase-section {
  position: relative;
  width: 100%;
  min-height: 100vh;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background-color: #121212;
  background: #121212;
  overflow: hidden;
  box-sizing: border-box;
  z-index: 10;
}

.hot-menu-showcase-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}

.hot-menu-showcase-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

.hot-menu-showcase-container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1720px;
  height: 100%;
  margin: 0 auto;
  padding: 0 clamp(2rem, 5vw, 6rem);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
}

.hot-menu-showcase-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  max-width: 580px;
}

.hot-menu-showcase-heading {
  font-family: var(--font-headline, var(--font-family-brand), 'Switzer', sans-serif);
  font-size: clamp(38px, 4.6vw, 72px);
  font-weight: 900;
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: #FFFFFF;
  text-transform: uppercase;
  margin: 0 0 clamp(18px, 2.5vh, 28px) 0;
  display: flex;
  flex-direction: column;
  gap: 0.08em;
}

.hot-menu-showcase-heading .menu-heading-line {
  display: block;
}

.hot-menu-showcase-heading .highlight-green {
  color: var(--color-primary-green, #558632);
  background: linear-gradient(135deg, #669E3D 0%, #558632 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hot-menu-showcase-desc {
  font-family: var(--font-body, var(--font-family-brand), 'Switzer', sans-serif);
  font-size: clamp(16px, 1.2vw, 20px);
  font-weight: 400;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
  max-width: 540px;
  margin: 0;
  letter-spacing: -0.01em;
}

.hot-menu-showcase-mobile-media {
  display: none;
}

@media (max-width: 1024px) {
  .hot-menu-showcase-section {
    height: auto;
    min-height: auto;
    padding: clamp(60px, 10vh, 100px) 0 60px 0;
    justify-content: center;
    background-color: #121212;
    background: #121212;
  }

  .hot-menu-showcase-backdrop {
    display: none;
  }

  .hot-menu-showcase-container {
    flex-direction: column;
    text-align: center;
    align-items: center;
    justify-content: center;
    padding: 0 1.5rem;
  }

  .hot-menu-showcase-content {
    align-items: center;
    max-width: 100%;
  }

  .hot-menu-showcase-desc {
    max-width: 600px;
  }

  .hot-menu-showcase-mobile-media {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-top: 2.5rem;
  }

  .hot-menu-mobile-frame {
    max-height: 70vh;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 15px 40px -10px rgba(0, 0, 0, 0.9),
      0 0 0 1px rgba(255, 255, 255, 0.1);
  }

  .hot-menu-mobile-img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 70vh;
    object-fit: contain;
    border-radius: 8px;
  }
}

/* ==========================================================================
   ORDER PREFERENCE POPUP MODAL (PICKUP vs DELIVERY)
   Aesthetics: Deep Obsidian (#141414), Emerald Accent (#558632),
   Glassmorphic Backdrop Blur, Ultra-Clean Responsive Inputs
   ========================================================================== */

.hot-order-modal-backdrop {
  position: fixed;
  inset: 0;
  background-color: rgba(5, 5, 5, 0.82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 3vh, 32px) clamp(16px, 3vw, 24px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.3s ease;
  box-sizing: border-box;
}

.hot-order-modal-backdrop.is-open {
  opacity: 1;
  visibility: visible;
}

.hot-order-modal {
  position: relative;
  width: 100%;
  max-width: 520px;
  max-height: 90vh;
  overflow-y: auto;
  background: #161616;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 20px;
  padding: clamp(24px, 3.5vh, 32px) clamp(20px, 3vw, 32px);
  box-shadow: 0 24px 64px -12px rgba(0, 0, 0, 0.95), 0 0 0 1px rgba(255, 255, 255, 0.08);
  transform: translateY(20px) scale(0.97);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  color: #FFFFFF;
  box-sizing: border-box;
}

.hot-order-modal-backdrop.is-open .hot-order-modal {
  transform: translateY(0) scale(1);
}

.hot-order-modal::-webkit-scrollbar {
  width: 6px;
}

.hot-order-modal::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
  border-radius: 3px;
}

/* Modal Close Button */
.hot-order-modal-close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #A1A1AA;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  padding: 0;
  z-index: 10;
}

.hot-order-modal-close:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #FFFFFF;
  transform: rotate(90deg);
}

/* Modal Header */
.hot-order-modal-header {
  text-align: center;
  margin-bottom: 22px;
  padding: 2px 48px 0 48px;
}

.hot-order-modal-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  background: rgba(85, 134, 50, 0.15);
  border: 1px solid rgba(85, 134, 50, 0.35);
  border-radius: 100px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #63993B;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.hot-order-modal-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(1.4rem, 2.2vw, 1.75rem);
  font-weight: 800;
  line-height: 1.2;
  color: #FFFFFF;
  margin: 0 0 6px 0;
  letter-spacing: -0.02em;
}

.hot-order-modal-subtitle {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #A1A1AA;
  margin: 0;
}

/* Mode Switcher Tabs */
.hot-order-mode-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  background: #0E0E0E;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 5px;
  margin-bottom: 22px;
}

.hot-order-tab-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 16px;
  background: transparent;
  border: none;
  border-radius: 8px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: #9CA3AF;
  cursor: pointer;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-order-tab-btn:hover {
  color: #FFFFFF;
  background: rgba(255, 255, 255, 0.04);
}

.hot-order-tab-btn.active {
  background: #558632;
  color: #FFFFFF;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}

.hot-order-tab-btn svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

/* Tab Panels */
.hot-order-tab-content {
  display: none;
  animation: hotOrderFadeIn 0.3s ease;
}

.hot-order-tab-content.active {
  display: block;
}

@keyframes hotOrderFadeIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Pickup Store Info Card */
.hot-order-store-card {
  background: #1C1C1C;
  border: 1px solid rgba(85, 134, 50, 0.25);
  border-radius: 14px;
  padding: 20px;
  margin-bottom: 20px;
  position: relative;
  overflow: hidden;
}

.hot-order-store-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: #558632;
}

.hot-order-store-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.hot-order-store-name {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 1.15rem;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0;
  letter-spacing: -0.01em;
}

.hot-order-store-badge {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 3px 8px;
  background: rgba(85, 134, 50, 0.2);
  color: #63993B;
  border-radius: 6px;
  text-transform: uppercase;
}

.hot-order-store-address {
  display: flex;
  flex-direction: column;
  gap: 3px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.95rem;
  color: #E4E4E7;
  line-height: 1.4;
  margin-bottom: 0;
}

.hot-order-store-address strong {
  color: #FFFFFF;
  font-weight: 700;
}

.hot-order-store-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.8rem;
  color: #A1A1AA;
}

.hot-order-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.hot-order-meta-item svg {
  color: #558632;
}

/* Delivery Tab Styles */
.hot-order-delivery-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(85, 134, 50, 0.12);
  border: 1px solid rgba(85, 134, 50, 0.3);
  border-radius: 10px;
  padding: 10px 14px;
  margin-bottom: 18px;
  font-size: 0.85rem;
  color: #D1D5DB;
}

.hot-order-delivery-banner strong {
  color: #63993B;
}

/* Geolocation Trigger Button */
.hot-order-geo-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 11px 16px;
  background: #202020;
  border: 1px dashed rgba(255, 255, 255, 0.2);
  border-radius: 10px;
  color: #FFFFFF;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  margin-bottom: 12px;
}

.hot-order-geo-btn:hover {
  background: #282828;
  border-color: #558632;
  color: #63993B;
}

.hot-order-geo-btn.loading {
  opacity: 0.7;
  cursor: wait;
}

.hot-order-geo-status {
  font-size: 0.8rem;
  margin-bottom: 14px;
  display: none;
  padding: 6px 10px;
  border-radius: 6px;
}

.hot-order-geo-status.success {
  display: block;
  background: rgba(85, 134, 50, 0.15);
  color: #86EFAC;
  border: 1px solid rgba(85, 134, 50, 0.3);
}

.hot-order-geo-status.error {
  display: block;
  background: rgba(239, 68, 68, 0.15);
  color: #FCA5A5;
  border: 1px solid rgba(239, 68, 68, 0.3);
}

/* Delivery Address Form Inputs */
.hot-order-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 20px;
}

.hot-order-form-group {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.hot-order-label {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #A1A1AA;
  text-transform: uppercase;
}

.hot-order-input {
  width: 100%;
  padding: 12px 14px;
  background: #0E0E0E;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.92rem;
  color: #FFFFFF;
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.hot-order-input:focus {
  border-color: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.hot-order-input::placeholder {
  color: #666666;
}

.hot-order-input[readonly] {
  background: #181818;
  color: #9CA3AF;
  cursor: not-allowed;
}

.hot-order-input-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

/* Primary Action Buttons */
.hot-order-btn-primary {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 15px 24px;
  background: #558632;
  border: none;
  border-radius: 12px;
  font-family: var(--font-family-brand), sans-serif;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: #FFFFFF;
  cursor: pointer;
  text-transform: uppercase;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

.hot-order-btn-primary:hover {
  background: #609638;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.hot-order-btn-primary:active {
  transform: translateY(0);
}

/* Notification / Alert inside modal */
.hot-order-alert {
  font-size: 0.8rem;
  line-height: 1.4;
  color: #F87171;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.25);
  border-radius: 8px;
  padding: 8px 12px;
  margin-top: 10px;
  display: none;
}

.hot-order-alert.show {
  display: block;
}

/* Interactive Fulfillment Badge Pill in Header/Navbar (when selected) */
.hot-fulfillment-current-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: rgba(85, 134, 50, 0.15);
  border: 1px solid rgba(85, 134, 50, 0.3);
  border-radius: 100px;
  font-size: 0.78rem;
  font-weight: 700;
  color: #E7ECE9;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.hot-fulfillment-current-pill:hover {
  background: rgba(85, 134, 50, 0.25);
  border-color: #558632;
}

@media (max-width: 480px) {
  .hot-order-modal {
    padding: 22px 14px;
    border-radius: 16px;
  }

  .hot-order-modal-close {
    top: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
  }

  .hot-order-modal-header {
    padding: 0 38px;
    margin-bottom: 18px;
  }

  .hot-order-modal-title {
    font-size: 1.25rem;
    line-height: 1.25;
  }

  .hot-order-input-row {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   HOT MEAL PLAN SELECTION MODAL ("HOW MANY MEALS?")
   ========================================================================== */
.hot-meal-plan-backdrop {
  position: fixed;
  inset: 0;
  background-color: rgba(5, 5, 5, 0.88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  z-index: 1000000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 3vh, 32px) clamp(16px, 3vw, 24px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.3s ease;
  box-sizing: border-box;
}

.hot-meal-plan-backdrop.is-open {
  opacity: 1;
  visibility: visible;
}

.hot-meal-plan-modal {
  position: relative;
  width: 100%;
  max-width: 980px;
  max-height: 92vh;
  overflow-y: auto;
  background: #121212;
  border: 1px solid #2A2A2A;
  border-radius: 20px;
  padding: 28px 36px 26px;
  box-shadow: 0 30px 80px -10px rgba(0, 0, 0, 0.95), 0 0 0 1px rgba(255, 255, 255, 0.04);
  transform: translateY(20px) scale(0.98);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  color: #FFFFFF;
  box-sizing: border-box;
}

.hot-meal-plan-backdrop.is-open .hot-meal-plan-modal {
  transform: translateY(0) scale(1);
}

.hot-meal-plan-modal::-webkit-scrollbar {
  width: 6px;
}

.hot-meal-plan-modal::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.15);
  border-radius: 3px;
}

/* Topbar: Back on Left */
.hot-meal-modal-topbar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 6px;
  width: 100%;
}

.hot-meal-modal-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  background: #1E1E1E;
  border: 1px solid #2A2A2A;
  border-radius: 9999px;
  color: #A7B0AB;
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  padding: 0 16px;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  box-sizing: border-box;
  z-index: 5;
}

.hot-meal-modal-back-btn:hover {
  color: #FFFFFF;
  border-color: #383838;
  background: #252525;
  transform: translateX(-2px);
}

.hot-meal-modal-brand {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
  user-select: none;
}

.hot-meal-modal-brand-title {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 1.05rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: #FFFFFF;
}

.hot-meal-modal-brand-title sup,
.hot-meal-modal-brand-sub sup {
  font-size: 0.52em;
  top: -0.45em;
  font-weight: 700;
  color: #A7B0AB;
}

.hot-meal-modal-brand-sub {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 1.05rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  color: #FFFFFF;
}

.hot-meal-modal-close {
  display: none;
}

/* Center Header */
.hot-meal-modal-header {
  text-align: center;
  margin-top: 0;
  margin-bottom: 22px;
  padding: 0 20px;
}

.hot-meal-modal-eyebrow {
  display: none;
}

.hot-meal-modal-title {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: clamp(1.85rem, 3vw, 2.6rem);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: #FFFFFF;
  text-transform: uppercase;
  margin: 0;
}

/* 3 Cards Grid */
.hot-meal-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-bottom: 26px;
}

.hot-meal-card {
  position: relative;
  background: #181818;
  border: 1px solid #2A2A2A;
  border-radius: 18px;
  padding: 24px 16px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  cursor: pointer;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  outline: none;
  user-select: none;
  overflow: hidden;
}

.hot-meal-card:hover {
  transform: translateY(-4px);
  border-color: #383838;
  background: #1E1E1E;
}

.hot-meal-card.active {
  border: 2px solid #558632;
  background: #181818;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.hot-meal-card-img-wrap {
  width: 100%;
  height: 190px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  overflow: hidden;
}

.hot-meal-card-img {
  max-height: 100%;
  max-width: 90%;
  object-fit: contain;
  filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.7));
  transition: transform 0.3s ease;
}

.hot-meal-card:hover .hot-meal-card-img {
  transform: scale(1.04);
}

.hot-meal-card-content {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.hot-meal-card-kicker {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #717D77;
  margin-bottom: 4px;
}

.hot-meal-card-kicker.highlight,
.hot-meal-card.active .hot-meal-card-kicker {
  color: #558632;
}

.hot-meal-card-number {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 3.6rem;
  font-weight: 900;
  line-height: 1;
  color: #FFFFFF;
  margin: 2px 0 14px 0;
  letter-spacing: -0.02em;
}

.hot-meal-card-number.highlight,
.hot-meal-card.active .hot-meal-card-number {
  color: #558632;
}

.hot-meal-card-unit {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.26em;
  color: #FFFFFF;
  margin-bottom: 14px;
}

.hot-meal-card-divider {
  width: 75%;
  height: 1px;
  background: #2A2A2A;
  margin-bottom: 12px;
}

.hot-meal-card.active .hot-meal-card-divider {
  background: rgba(85, 134, 50, 0.35);
}

.hot-meal-card-price {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 1.35rem;
  font-weight: 800;
  color: #FFFFFF;
  margin-bottom: 2px;
}

.hot-meal-card-per-meal {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 0.82rem;
  color: #A7B0AB;
}

/* Footer: Continue (Right) */
.hot-meal-modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-top: 4px;
}

.hot-meal-modal-continue-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #558632;
  color: #FFFFFF;
  border: none;
  border-radius: 100px;
  padding: 13px 36px;
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 0.98rem;
  font-weight: 700;
  cursor: pointer;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

.hot-meal-modal-continue-btn:hover {
  background: #669E3D;
  transform: translateY(-2px);
  box-shadow: 0 6px 25px rgba(0, 0, 0, 0.4);
}

.hot-meal-modal-continue-btn:active {
  background: #466F29;
  transform: translateY(0);
}

@media (max-width: 860px) {
  .hot-meal-plan-backdrop {
    padding: 12px;
    align-items: center;
  }

  .hot-meal-plan-modal {
    width: 100%;
    max-width: 440px;
    max-height: 94vh;
    max-height: 94dvh;
    height: auto;
    padding: 18px 16px calc(16px + env(safe-area-inset-bottom, 0px));
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-sizing: border-box;
  }

  .hot-meal-modal-topbar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    margin-bottom: 24px;
    padding: 0;
    flex-shrink: 0;
  }

  .hot-meal-modal-back-btn {
    height: 36px;
    padding: 0 14px;
    font-size: 0.82rem;
    gap: 6px;
  }

  .hot-meal-modal-header {
    flex-shrink: 0;
    margin-top: 0;
    margin-bottom: 20px;
    padding: 0;
    text-align: center;
    width: 100%;
  }

  .hot-meal-modal-title {
    font-size: 1.42rem;
    font-weight: 900;
    line-height: 1.15;
    letter-spacing: -0.02em;
    text-align: center;
    color: #FFFFFF;
    margin: 0;
  }

  .hot-meal-cards-grid {
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 100%;
    flex: 0 0 auto;
    padding: 0;
    margin: 0;
  }

  .hot-meal-card {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 12px 16px !important;
    border-radius: 14px !important;
    gap: 12px !important;
    width: 100% !important;
    min-height: auto !important;
    box-sizing: border-box !important;
  }

  .hot-meal-card-img-wrap {
    display: none !important;
  }

  .hot-meal-card-content {
    display: grid !important;
    grid-template-columns: auto 1fr auto !important;
    grid-template-rows: auto auto !important;
    align-items: center !important;
    width: 100% !important;
    gap: 2px 14px !important;
    text-align: left !important;
  }

  .hot-meal-card-number {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    font-size: 2.2rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    margin: 0 !important;
    min-width: 36px !important;
    text-align: center !important;
    letter-spacing: -0.02em !important;
  }

  /* Remove kicker badges (A Great Start / Our Go-To / For Bigger Goals) on mobile */
  .hot-meal-card-kicker {
    display: none !important;
  }

  .hot-meal-card-unit {
    display: block !important;
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #FFFFFF !important;
    letter-spacing: 0.04em !important;
    margin: 0 !important;
    text-align: left !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
  }

  .hot-meal-card-divider {
    display: none !important;
  }

  .hot-meal-card-price {
    grid-column: 3 !important;
    grid-row: 1 !important;
    font-size: 1.08rem !important;
    font-weight: 800 !important;
    color: #FFFFFF !important;
    margin: 0 !important;
    text-align: right !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
  }

  .hot-meal-card-per-meal {
    grid-column: 3 !important;
    grid-row: 2 !important;
    font-size: 0.74rem !important;
    color: #A7B0AB !important;
    margin: 0 !important;
    text-align: right !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
  }

  .hot-meal-modal-footer {
    flex-shrink: 0;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    justify-content: center;
    width: 100%;
  }

  .hot-meal-modal-continue-btn {
    width: 100%;
    height: 48px;
    font-size: 0.95rem;
    padding: 0 24px;
    border-radius: 9999px;
  }
}


/* ==========================================================================
   SECTION: "SEE HOT IN MOTION" (Instagram Showcase — 100vh 1:1 Design System)
   ========================================================================== */
.hot-motion-section {
  position: relative;
  width: 100%;
  min-height: 100vh;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #121212;
  background: #121212;
  overflow: hidden;
  padding: 0 4vw;
  box-sizing: border-box;
  color: #FFFFFF;
}

/* Background Cursive Watermark on Right Stage */
.hot-motion-watermark {
  position: absolute;
  right: clamp(3%, 8vw, 12%);
  top: 52%;
  transform: translateY(-50%) rotate(-7deg);
  z-index: 2;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  user-select: none;
  opacity: 0.85;
}

.hot-motion-watermark .watermark-line {
  font-family: 'Satisfy', 'Caveat', 'Covered By Your Grace', cursive, sans-serif;
  font-size: clamp(4.2rem, 7vw, 7.5rem);
  font-weight: 400;
  line-height: 0.88;
  color: rgba(85, 134, 50, 0.08);
  letter-spacing: 0.02em;
}

/* Main Two-Column Container */
.hot-motion-container {
  position: relative;
  z-index: 4;
  width: 100%;
  max-width: 1340px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  align-items: center;
  gap: clamp(32px, 5vw, 80px);
}

/* Left Column: Stage Typography & CTA */
.hot-motion-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 580px;
}

.hot-motion-kicker {
  display: inline-block;
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(0.72rem, 0.9vw, 0.82rem);
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: clamp(16px, 2.5vh, 26px);
}

.hot-motion-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(3.6rem, 6.2vw, 5.8rem);
  font-weight: 900;
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: #FFFFFF;
  margin: 0 0 clamp(16px, 2.2vh, 24px) 0;
  display: flex;
  flex-direction: column;
}

.hot-motion-title span:first-child {
  color: #FFFFFF;
}

.hot-motion-accent {
  color: #558632;
}

.hot-motion-desc {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(0.95rem, 1.15vw, 1.125rem);
  line-height: 1.65;
  color: #E7ECE9;
  margin: 0 0 clamp(24px, 3.5vh, 38px) 0;
  max-width: 480px;
}

/* Instagram Pill CTA Button */
.hot-motion-actions {
  display: flex;
  align-items: center;
}

.hot-motion-pill-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: clamp(12px, 1.5vh, 16px) clamp(22px, 2vw, 30px);
  background: #558632;
  border: 1.5px solid #558632;
  border-radius: 9999px;
  color: #FFFFFF;
  text-decoration: none;
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(0.88rem, 1vw, 0.98rem);
  font-weight: 700;
  letter-spacing: 0.02em;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.4);
}

.motion-btn-icon-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
  transition: transform 0.25s ease;
}

.motion-ig-svg {
  width: 20px;
  height: 20px;
  stroke: #FFFFFF;
}

.motion-btn-label {
  color: #FFFFFF;
}

.motion-arrow-svg {
  width: 14px;
  height: 14px;
  stroke: #FFFFFF;
  transition: transform 0.25s ease;
}

.hot-motion-pill-btn:hover {
  background: #669E3D;
  border-color: #669E3D;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.hot-motion-pill-btn:hover .motion-arrow-svg {
  transform: translateX(4px);
}

/* Right Column: Interactive 3D Smartphone Display */
.hot-motion-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.hot-phone-mockup {
  position: relative;
  width: 100%;
  max-width: clamp(224px, 19.2vw, 288px);
  perspective: 1200px;
  transform-style: preserve-3d;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-phone-mockup:hover {
  transform: perspective(1200px) rotateY(-4deg) rotateX(2deg) translateY(-8px);
}

/* Titanium Outer Chassis */
.phone-chassis {
  position: relative;
  width: 100%;
  aspect-ratio: 9 / 18.8;
  background: #080A09;
  border: clamp(6.5px, 0.65vw, 9px) solid #1C201E;
  outline: 1.5px solid rgba(255, 255, 255, 0.15);
  border-radius: clamp(30px, 2.8vw, 38px);
  box-shadow:
    0 35px 80px -15px rgba(0, 0, 0, 0.95),
    inset 0 0 0 1px rgba(255, 255, 255, 0.12);
  overflow: hidden;
  z-index: 2;
}

/* Dynamic Island */
.phone-dynamic-island {
  position: absolute;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  width: clamp(60px, 5.2vw, 74px);
  height: clamp(16px, 1.4vw, 20px);
  background: #000000;
  border-radius: 20px;
  z-index: 15;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 8px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.7);
}

.island-camera {
  width: 6.5px;
  height: 6.5px;
  background: #0D1B2A;
  border-radius: 50%;
  border: 1px solid #1B263B;
}

.island-sensor {
  width: 4px;
  height: 4px;
  background: #050505;
  border-radius: 50%;
  margin-left: 5px;
}

/* Phone Screen Window */
.phone-screen {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: #000000;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.phone-screen-media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.phone-reel-media-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  filter: brightness(0.96) contrast(1.04);
}

.phone-media-gradient-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg,
      rgba(0, 0, 0, 0.45) 0%,
      rgba(0, 0, 0, 0) 22%,
      rgba(0, 0, 0, 0) 50%,
      rgba(0, 0, 0, 0.88) 100%);
  pointer-events: none;
}

/* Top Bar: Reels Header */
.phone-reel-top-bar {
  position: relative;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(30px, 3.2vh, 38px) 14px 8px 16px;
}

.reel-top-title {
  font-family: var(--font-family-brand), sans-serif;
  font-size: clamp(0.9rem, 1vw, 1.05rem);
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: -0.01em;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
}

.reel-top-camera-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: #FFFFFF;
  cursor: pointer;
  padding: 4px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
  transition: transform 0.2s ease;
}

.reel-top-camera-btn svg {
  width: 18px;
  height: 18px;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.8));
}

.reel-top-camera-btn:hover {
  transform: scale(1.1);
}

/* Right-Side Floating Actions */
.phone-reel-actions {
  position: absolute;
  right: 12px;
  bottom: clamp(52px, 6.5vh, 68px);
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.reel-action-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  background: transparent;
  border: none;
  color: #FFFFFF;
  text-decoration: none;
  cursor: pointer;
  padding: 0;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.reel-action-btn:hover {
  transform: scale(1.15);
}

.reel-action-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.85));
}

.reel-action-icon svg {
  width: 20px;
  height: 20px;
}

.reel-action-count {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  color: #FFFFFF;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.9);
  letter-spacing: 0.02em;
}

/* Interactive Like State */
.reel-like-btn.is-liked .reel-heart-svg {
  fill: #EF4444;
  stroke: #EF4444;
  animation: heartPulse 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes heartPulse {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.35);
  }

  100% {
    transform: scale(1);
  }
}

/* Bottom Reel Details */
.phone-reel-bottom-details {
  position: absolute;
  left: 14px;
  bottom: clamp(26px, 3.5vh, 36px);
  right: 52px;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.reel-author-lockup {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.reel-author-lockup:hover {
  opacity: 0.88;
}

.reel-avatar-wrap {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #111412;
  border: 1.5px solid #558632;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.reel-avatar-img {
  width: 80%;
  height: 80%;
  object-fit: contain;
}

.reel-author-handle {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.78rem;
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: -0.01em;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.9);
}

.reel-caption-text {
  font-family: var(--font-family-brand), sans-serif;
  font-size: 0.74rem;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.92);
  margin: 0;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.9);
}

/* Home Indicator Bar */
.phone-home-indicator {
  position: absolute;
  bottom: 6px;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3.5px;
  background: rgba(255, 255, 255, 0.7);
  border-radius: 3px;
  z-index: 15;
}

/* Glass Glare Sheen */
.phone-glass-glare {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg,
      rgba(255, 255, 255, 0.12) 0%,
      rgba(255, 255, 255, 0.04) 28%,
      rgba(255, 255, 255, 0) 50%);
  pointer-events: none;
  z-index: 12;
}

/* Floor Glow */
.phone-floor-glow {
  position: absolute;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  width: 75%;
  height: 25px;
  display: none !important;
  filter: blur(8px);
  z-index: 1;
  pointer-events: none;
}

/* ==========================================================================
   RESPONSIVENESS: TABLET & MOBILE
   ========================================================================== */
@media (max-width: 1024px) {
  .hot-motion-section {
    padding: 60px 4vw;
  }

  .hot-motion-container {
    gap: 32px;
  }

  .hot-motion-title {
    font-size: clamp(3rem, 5.5vw, 4.2rem);
  }

  .hot-phone-mockup {
    max-width: 240px;
  }

  .hot-motion-watermark {
    right: 4%;
  }

  .hot-motion-watermark .watermark-line {
    font-size: clamp(3.5rem, 6vw, 5.5rem);
  }
}

@media (max-width: 768px) {
  .hot-motion-section {
    height: auto;
    min-height: 100vh;
    padding: 90px 24px 70px 24px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .hot-motion-container {
    display: flex;
    flex-direction: column;
    text-align: center;
    align-items: center;
    gap: 24px;
    padding-top: 10px;
    margin: 0 auto;
    width: 100%;
  }

  .hot-motion-content {
    display: contents;
  }

  .hot-motion-title {
    order: 1;
    align-items: center;
    text-align: center;
    justify-content: center;
    margin: 0 0 12px 0;
  }

  .hot-motion-desc {
    order: 2;
    margin: 0 0 24px 0;
    text-align: center;
    max-width: 440px;
  }

  .hot-motion-visual {
    order: 3;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: 0 auto;
  }

  .hot-phone-mockup {
    max-width: 232px;
    margin: 0 auto;
  }

  .hot-motion-actions {
    order: 4;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin: 12px auto 0 auto;
  }

  .hot-motion-watermark {
    display: none;
  }
}

/* ==========================================================================
   HEALTH ON TOP — LUXURY MEMBER DASHBOARD & LOGIN PORTAL
   ========================================================================== */
.dash-page {
  background-color: #121212;
  color: #FFFFFF;
  font-family: var(--font-family-brand), 'Switzer', -apple-system, BlinkMacSystemFont, sans-serif;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}

/* Logged-out state — shown on login.html instead of the dashboard until a real session is confirmed */
.dash-logged-out {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: calc(100vh - 80px);
  padding: 40px 24px;
}
.dash-logged-out[hidden] {
  display: none;
}
.dash-logged-out-card {
  max-width: 420px;
  width: 100%;
  text-align: center;
  background: #1E1E1E;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 48px 36px;
}
.dash-logged-out-card h1 {
  font-family: var(--font-family-brand), 'Switzer', sans-serif;
  font-size: 1.75rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 10px 0 12px;
}
.dash-logged-out-card p {
  color: #A7B0AB;
  font-size: 0.95rem;
  line-height: 1.6;
  margin: 0 0 24px;
}
.dash-logged-out-card .auth-submit-btn {
  width: 100%;
}
.dash-logged-out-card .auth-switch {
  margin: 18px 0 0;
}

/* Dashboard Top Navigation Bar */
.dash-navbar {
  position: relative;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 24px 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  z-index: 50;
}

.dash-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
}

.dash-brand-logo {
  height: 36px;
  width: auto;
  object-fit: contain;
}

.dash-brand-title {
  display: flex;
  flex-direction: column;
}

.dash-brand-name {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #FFFFFF;
  line-height: 1;
}

.dash-brand-sub {
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #A7B0AB;
  line-height: 1;
  margin-top: 3px;
  text-transform: uppercase;
}

.dash-nav-links {
  display: flex;
  align-items: center;
  gap: 32px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.dash-nav-link {
  color: #a1a1aa;
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 500;
  transition: color 0.2s ease, border-color 0.2s ease;
  position: relative;
  padding: 6px 0;
}

.dash-nav-link:hover {
  color: #FFFFFF;
}

.dash-nav-link.active {
  color: #FFFFFF;
  font-weight: 600;
}

.dash-nav-link.active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: #558632;
  border-radius: 2px;
}

.dash-nav-right {
  display: flex;
  align-items: center;
  gap: 18px;
}

.dash-cart-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #FFFFFF;
  text-decoration: none;
  position: relative;
  transition: background 0.2s ease, transform 0.2s ease;
}

.dash-cart-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  transform: translateY(-1px);
}

.dash-cart-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  background: #558632;
  color: #FFFFFF;
  font-size: 0.68rem;
  font-weight: 800;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.dash-user-cluster {
  position: relative;
}

.dash-user-pill {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 5px 14px 5px 6px;
  border-radius: 40px;
  color: #FFFFFF;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease;
  user-select: none;
}

.dash-user-pill:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.7);
}

.dash-user-pill.active {
  background: rgba(85, 134, 50, 0.15);
  border-color: rgba(85, 134, 50, 0.4);
}

.dash-user-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  background: #2a2e2b;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: #558632;
}

.dash-user-chevron {
  width: 14px;
  height: 14px;
  stroke-width: 2.2;
  color: #A7B0AB;
  transition: transform 0.2s ease;
}

.dash-user-pill.open .dash-user-chevron {
  transform: rotate(180deg);
}

.dash-user-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  background: #161917;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  padding: 8px;
  min-width: 180px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6);
  display: none;
  z-index: 100;
}

.dash-user-dropdown.show {
  display: block;
  animation: dashFadeIn 0.2s ease;
}

.dash-dropdown-mobile-nav {
  display: none;
}

.dash-dropdown-section-title {
  display: block;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #7d8f85;
  padding: 6px 12px 4px;
}

.dash-dropdown-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
  margin: 6px 0;
}

.dash-dropdown-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  color: #E7ECE9;
  font-size: 0.84rem;
  font-weight: 500;
  text-decoration: none;
  background: transparent;
  border: none;
  cursor: pointer;
  box-sizing: border-box;
  text-align: left;
  transition: background 0.15s ease, color 0.15s ease;
}

.dash-dropdown-item:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #FFFFFF;
}

.dash-dropdown-item.text-danger:hover {
  background: rgba(239, 68, 68, 0.15);
  color: #f87171;
}

/* Dashboard Main Container */
.dash-main {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 48px 80px;
  box-sizing: border-box;
}

/* Dashboard Hero Section */
.dash-hero-section {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 40px;
  align-items: center;
  padding: 24px 0 60px;
  position: relative;
}

.dash-hero-left {
  display: flex;
  flex-direction: column;
}

.dash-eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #8e9590;
  margin-bottom: 12px;
}

.dash-hero-title {
  font-size: clamp(2.4rem, 4.2vw, 3.6rem);
  font-weight: 800;
  line-height: 1.12;
  color: #FFFFFF;
  margin: 0 0 14px;
  letter-spacing: -0.03em;
}

.dash-highlight-green {
  color: #558632;
}

.dash-hero-subtitle {
  font-size: 1.05rem;
  color: #A7B0AB;
  margin: 0 0 36px;
  font-weight: 400;
  line-height: 1.5;
  max-width: 540px;
}

/* 3 Quick Stat Metric Cards */
.dash-metrics-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.dash-metric-card {
  background: #141715;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 18px;
  padding: 20px 18px;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
  cursor: pointer;
}

.dash-metric-card:hover {
  transform: translateY(-4px);
  background: #181c1a;
  border-color: rgba(85, 134, 50, 0.35);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.4);
}

.dash-metric-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.dash-metric-icon-wrap {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.12);
  border: 1px solid rgba(85, 134, 50, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #558632;
}

.dash-metric-arrow {
  color: #4b5563;
  transition: color 0.2s ease, transform 0.2s ease;
}

.dash-metric-card:hover .dash-metric-arrow {
  color: #558632;
  transform: translateX(3px);
}

.dash-metric-label {
  font-size: 0.78rem;
  color: #A7B0AB;
  font-weight: 500;
  margin-bottom: 4px;
}

.dash-metric-value {
  font-size: 1.65rem;
  font-weight: 800;
  color: #FFFFFF;
  line-height: 1.15;
  margin-bottom: 10px;
}

.dash-metric-value.val-green {
  color: #558632;
}

.dash-metric-desc {
  font-size: 0.74rem;
  color: #A7B0AB;
  line-height: 1.4;
  margin-top: auto;
}

/* Dashboard Hero Right Visual */
.dash-hero-right {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dash-visual-container {
  position: relative;
  width: 100%;
  max-width: 560px;
  border-radius: 28px;
  overflow: visible;
}

.dash-hero-dish-img {
  width: 100%;
  height: auto;
  border-radius: 24px;
  display: block;
  filter: drop-shadow(0 25px 45px rgba(0, 0, 0, 0.7));
  transition: transform 0.4s ease;
}

.dash-visual-container:hover .dash-hero-dish-img {
  transform: scale(1.02);
}

/* Floating Badges on Hero Visual */
.dash-badge-cursive {
  position: absolute;
  top: -16px;
  left: -20px;
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-size: 1.25rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.1;
  text-shadow: 0 4px 12px rgba(0, 0, 0, 0.9);
  pointer-events: none;
}

.dash-badge-cursive span {
  display: block;
}

.dash-badge-cursive .green-underline {
  display: inline-block;
  width: 24px;
  height: 2px;
  background: #558632;
  border-radius: 2px;
  margin-top: 4px;
}

.dash-badge-specs {
  position: absolute;
  top: 15%;
  right: -10px;
  background: rgba(15, 18, 16, 0.85);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 10px 14px;
  border-radius: 12px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #A7B0AB;
  text-transform: uppercase;
  line-height: 1.6;
  text-align: right;
  pointer-events: none;
}

.dash-badge-bottom {
  position: absolute;
  bottom: 8%;
  right: -10px;
  background: rgba(15, 18, 16, 0.85);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 8px 12px;
  border-radius: 10px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: #A7B0AB;
  text-transform: uppercase;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  pointer-events: none;
}

.dash-badge-bottom .dash-accent-line {
  width: 28px;
  height: 2px;
  background: #558632;
  margin-top: 4px;
}

/* ==========================================================================
   "YOUR WEEK" ORDERS SECTION
   ========================================================================== */
.dash-week-section {
  padding: 40px 0 50px;
  position: relative;
}

.dash-section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 28px;
}

.dash-section-title {
  font-size: 1.95rem;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0 0 6px;
  letter-spacing: -0.02em;
}

.dash-section-subtitle {
  font-size: 0.92rem;
  color: #A7B0AB;
  margin: 0;
}

.dash-link-all {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #A7B0AB;
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 600;
  transition: color 0.2s ease, transform 0.2s ease;
}

.dash-link-all:hover {
  color: #FFFFFF;
  transform: translateX(2px);
}

.dash-orders-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr) auto;
  gap: 20px;
  align-items: center;
}

.dash-order-card {
  background: #141715;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 20px;
  padding: 16px;
  display: grid;
  grid-template-columns: 104px 1fr;
  gap: 16px;
  align-items: center;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s ease, background 0.25s ease;
}

.dash-order-card:hover {
  transform: translateY(-3px);
  background: #171b19;
  border-color: rgba(255, 255, 255, 0.7);
}

.dash-order-thumb {
  width: 104px;
  height: 104px;
  border-radius: 14px;
  object-fit: cover;
  background: #0d0f0e;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.dash-order-details {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.dash-status-badge {
  align-self: flex-start;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 20px;
  margin-bottom: 8px;
  line-height: 1;
}

.dash-status-delivered {
  background: rgba(85, 134, 50, 0.18);
  color: #558632;
  border: 1px solid rgba(85, 134, 50, 0.3);
}

.dash-status-processing {
  background: rgba(255, 255, 255, 0.1);
  color: #E7ECE9;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.dash-status-scheduled {
  background: rgba(255, 255, 255, 0.08);
  color: #A7B0AB;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.dash-order-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dash-order-meta {
  font-size: 0.78rem;
  color: #A7B0AB;
  margin: 0 0 12px;
  font-weight: 500;
}

.dash-order-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.dash-btn-reorder {
  background: #558632;
  border: 1px solid #558632;
  color: #FFFFFF;
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 8px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  outline: none;
  box-shadow: none;
  transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.dash-btn-reorder:hover {
  background: #669E3D;
  border-color: #669E3D;
  transform: translateY(-1px);
}

.dash-btn-reorder:active {
  background: #466F29;
  border-color: #466F29;
  transform: translateY(0);
}

.dash-link-details {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #A7B0AB;
  font-size: 0.76rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease;
}

.dash-link-details:hover {
  color: #FFFFFF;
}

.dash-carousel-next-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #141715;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #A7B0AB;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.dash-carousel-next-btn:hover {
  background: #1f2320;
  color: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.7);
  transform: translateX(2px);
}

/* ==========================================================================
   BOTTOM REFERRAL PROMO BANNER
   ========================================================================== */
.dash-promo-banner {
  background: #131614;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  display: grid;
  grid-template-columns: 280px 1fr 280px;
  align-items: center;
  overflow: hidden;
  position: relative;
  margin-top: 20px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
}

.dash-banner-left {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}

.dash-banner-left-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dash-banner-tag-left {
  position: absolute;
  bottom: 20px;
  right: 20px;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  text-align: right;
  line-height: 1.4;
  pointer-events: none;
}

.dash-banner-center {
  padding: 44px 32px;
  text-align: left;
}

.dash-banner-title {
  font-size: clamp(1.8rem, 2.5vw, 2.3rem);
  font-weight: 800;
  line-height: 1.15;
  color: #FFFFFF;
  margin: 0 0 10px;
  letter-spacing: -0.02em;
}

.dash-banner-sub {
  font-size: 0.95rem;
  color: #A7B0AB;
  margin: 0 0 24px;
}

.dash-btn-refer {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #558632;
  color: #FFFFFF;
  font-size: 0.88rem;
  font-weight: 700;
  padding: 12px 26px;
  border-radius: 30px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
}

.dash-btn-refer:hover {
  background: #669E3D;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.dash-banner-right {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
}

.dash-banner-right-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.dash-banner-tag-right {
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
  text-align: right;
  line-height: 1.8;
  pointer-events: none;
}

/* ==========================================================================
   INTERACTIVE QUICK LOGIN MODAL & REFERRAL MODAL
   ========================================================================== */
.dash-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(12px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
  padding: 20px;
  box-sizing: border-box;
  overflow-y: auto;
}

.dash-modal-backdrop.open {
  opacity: 1;
  visibility: visible;
}

/* Site-wide auth popup needs to sit above every page's own overlays, not just
   login.html's dashboard content. */
#hot-auth-modal-backdrop {
  z-index: 100050;
}

.dash-modal-box {
  background: #161917;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 24px;
  width: 100%;
  max-width: 440px;
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  padding: 36px 32px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.8);
  position: relative;
  transform: translateY(20px) scale(0.97);
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
  margin: auto;
}

.dash-modal-backdrop.open .dash-modal-box {
  transform: translateY(0) scale(1);
}

.dash-modal-close {
  position: absolute;
  top: 20px;
  right: 20px;
  background: rgba(255, 255, 255, 0.08);
  border: none;
  color: #A7B0AB;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.dash-modal-close:hover {
  background: rgba(255, 255, 255, 0.16);
  color: #FFFFFF;
}

.dash-quick-profiles {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 20px 0;
}

.dash-quick-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-radius: 14px;
  background: #1e2220;
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #FFFFFF;
  cursor: pointer;
  text-align: left;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.dash-quick-btn:hover {
  background: #252a27;
  border-color: #558632;
  transform: translateY(-1px);
}

.dash-referral-code-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #101211;
  border: 1px dashed rgba(85, 134, 50, 0.4);
  padding: 14px 18px;
  border-radius: 14px;
  margin: 20px 0;
}

.dash-referral-code-text {
  font-family: monospace;
  font-size: 1.25rem;
  font-weight: 700;
  color: #558632;
  letter-spacing: 0.1em;
}

.dash-copy-btn {
  background: rgba(85, 134, 50, 0.15);
  border: 1px solid rgba(85, 134, 50, 0.3);
  color: #558632;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 6px 14px;
  border-radius: 20px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.dash-copy-btn:hover {
  background: #558632;
  color: #FFFFFF;
}

@keyframes dashFadeIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Responsive Dashboard Queries */
@media (max-width: 1100px) {
  .dash-hero-section {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .dash-hero-left {
    order: 1;
  }

  .dash-hero-right {
    order: 2;
  }

  .dash-visual-container {
    max-width: 480px;
    margin: 0 auto;
  }

  .dash-orders-row {
    grid-template-columns: 1fr;
  }

  .dash-promo-banner {
    grid-template-columns: 1fr;
  }

  .dash-banner-left,
  .dash-banner-right {
    height: 180px;
  }

  .dash-banner-tag-left,
  .dash-banner-tag-right {
    display: none;
  }
}

@media (max-width: 768px) {
  .dash-navbar {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding: 0 clamp(1rem, 4vw, 1.75rem);
    height: var(--nav-height, 74px);
    max-width: 100%;
  }

  .dash-navbar .hot-hamburger-btn {
    display: flex !important;
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
  }

  .dash-brand {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .dash-brand-logo {
    height: clamp(38px, 8vw, 48px);
    width: auto;
  }

  .dash-brand-title {
    display: none !important;
  }

  .dash-nav-links {
    display: none !important;
  }

  .dash-nav-right {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    display: flex;
    align-items: center;
    gap: clamp(0.5rem, 2.5vw, 0.85rem);
  }

  .dash-nav-search {
    display: none !important;
  }

  .dash-cart-btn {
    display: flex;
  }

  .dash-user-cluster {
    position: relative;
  }

  .dash-user-pill #dash-user-name {
    display: none !important;
  }

  .dash-user-pill {
    padding: 4px 8px 4px 4px;
    gap: 5px;
  }

  .dash-dropdown-mobile-nav {
    display: block !important;
  }

  .dash-user-dropdown {
    min-width: 210px;
    right: 0;
  }

  .dash-main {
    padding: 0 20px 60px;
  }

  .dash-metrics-grid {
    grid-template-columns: 1fr;
  }

  .dash-order-card {
    grid-template-columns: 80px 1fr;
  }

  .dash-order-thumb {
    width: 80px;
    height: 80px;
  }
}

/* ==========================================================================
   DASHBOARD LOYALTY TAB & SECTION (1:1 MOCKUP FIDELITY)
   ========================================================================== */

.dash-tab-pane {
  display: none;
  animation: dashFadeIn 0.3s ease forwards;
}

.dash-tab-pane.active {
  display: block;
}

.dash-loyalty-container {
  max-width: 1340px;
  margin: 0 auto;
  padding: 10px 0 60px;
}

/* Top Hero Grid (2 Columns: Intro + Points Card) */
.loyalty-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 1.35fr;
  gap: 28px;
  align-items: stretch;
  margin-bottom: 24px;
}

/* Left Hero Text */
.loyalty-intro-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 16px 8px;
}

.loyalty-intro-eyebrow {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  color: #7d8f85;
  text-transform: uppercase;
  margin-bottom: 14px;
}

.loyalty-hero-headline {
  font-size: 2.85rem;
  font-weight: 800;
  line-height: 1.1;
  color: #FFFFFF;
  letter-spacing: -0.025em;
  margin: 0 0 16px;
}

.loyalty-headline-green {
  color: #558632;
  display: block;
}

.loyalty-intro-desc {
  font-size: 0.95rem;
  line-height: 1.55;
  color: #8a9c92;
  margin: 0;
  max-width: 340px;
}

/* Center Column: Points Card */
.loyalty-pts-card {
  background: #0d120f;
  border: 1px solid rgba(85, 134, 50, 0.2);
  border-radius: 20px;
  padding: 24px 28px;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.05);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
}

.loyalty-pts-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.loyalty-pts-eyebrow {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #7d8f85;
  text-transform: uppercase;
}

.loyalty-pts-top-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.loyalty-rate-pill {
  font-size: 0.74rem;
  font-weight: 600;
  color: #7FB863;
  background: rgba(85, 134, 50, 0.12);
  border: 1px solid rgba(85, 134, 50, 0.28);
  border-radius: 999px;
  padding: 4px 10px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: help;
}

.loyalty-pts-main {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 2px 0 2px;
}

.loyalty-pts-big {
  font-size: 3.4rem;
  font-weight: 900;
  color: #FFFFFF;
  line-height: 1;
  letter-spacing: -0.03em;
}

.loyalty-pts-unit {
  font-size: 1.15rem;
  font-weight: 500;
  color: #8a9c92;
}

.loyalty-points-msg {
  font-size: 0.84rem;
  color: #7d8f85;
  margin: 0 0 16px;
  line-height: 1.4;
}

.loyalty-progress-wrap {
  margin-bottom: 20px;
}

.loyalty-progress-track {
  width: 100%;
  height: 6px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 8px;
}

.loyalty-progress-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #3B5D23, #558632);
  border-radius: 999px;
  transition: width 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.loyalty-progress-labels {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.74rem;
  color: #7d8f85;
  font-weight: 500;
}

.loyalty-btn-start {
  width: 100%;
  height: 46px;
  background: #558632;
  border: none;
  border-radius: 999px;
  color: #FFFFFF;
  font-size: 0.95rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
  transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.loyalty-btn-start:hover {
  background: #629c3a;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5);
}

/* Right Visual Food Wrap */
.loyalty-visual-card {
  background: #090c0a;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 310px;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.4);
}

.loyalty-visual-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.5s ease;
}

.loyalty-visual-card:hover .loyalty-visual-img {
  transform: scale(1.03);
}

.loyalty-visual-badge-top {
  position: absolute;
  top: 20px;
  left: 22px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 2;
}

.loyalty-visual-script {
  font-family: 'Caveat', cursive;
  font-size: 1.45rem;
  font-weight: 600;
  line-height: 1.05;
  color: #FFFFFF;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.95);
  display: flex;
  flex-direction: column;
}

.loyalty-visual-dash {
  width: 28px;
  height: 3px;
  background: #558632;
  border-radius: 2px;
}

.loyalty-visual-badge-bottom {
  position: absolute;
  bottom: 20px;
  right: 22px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 5px;
  z-index: 2;
}

.loyalty-visual-badge-bottom span {
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #FFFFFF;
  text-transform: uppercase;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.95);
  line-height: 1.25;
}

/* Middle Section: HOW TO EARN POINTS */
.loyalty-how-to-earn-card {
  background: #0d120f;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 20px;
  padding: 26px 30px;
  margin-bottom: 24px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
}

.how-to-earn-eyebrow {
  display: block;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  color: #7d8f85;
  text-transform: uppercase;
  margin-bottom: 20px;
}

.how-to-earn-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.how-to-earn-item {
  background: #111714;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 16px;
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.how-to-earn-item:hover {
  transform: translateY(-2px);
  border-color: rgba(85, 134, 50, 0.35);
  background: #141c18;
}

.how-to-earn-icon-wrap {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.16);
  border: 1px solid rgba(85, 134, 50, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #7FB863;
  flex-shrink: 0;
}

.how-to-earn-dollar-glyph {
  font-size: 1.35rem;
  font-weight: 800;
  color: #7FB863;
  line-height: 1;
}

.how-to-earn-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.how-to-earn-title {
  font-size: 1.05rem;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0;
}

.how-to-earn-desc {
  font-size: 0.84rem;
  color: #8a9c92;
  margin: 0;
  line-height: 1.45;
}

/* Bottom Grid (2 Columns) */
.loyalty-bottom-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 24px;
}

/* Bottom Left: Recent Activity */
.loyalty-activity-card {
  background: #0d120f;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 20px;
  padding: 26px 28px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
  min-height: 220px;
  display: flex;
  flex-direction: column;
}

.loyalty-activity-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.loyalty-activity-title {
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  color: #7d8f85;
  text-transform: uppercase;
  margin: 0;
}

.loyalty-view-all {
  font-size: 0.82rem;
  font-weight: 600;
  color: #8a9c92;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color 0.2s ease, transform 0.2s ease;
}

.loyalty-view-all:hover {
  color: #558632;
  transform: translateX(2px);
}

.loyalty-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px 16px;
  margin: auto 0;
}

.loyalty-empty-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #7d8f85;
  margin-bottom: 12px;
}

.loyalty-empty-title {
  font-size: 0.98rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 4px;
}

.loyalty-empty-desc {
  font-size: 0.82rem;
  color: #7d8f85;
  margin: 0;
  max-width: 280px;
  line-height: 1.45;
}

.loyalty-activity-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.loyalty-act-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px;
  border-radius: 12px;
  transition: background 0.2s ease;
}

.loyalty-act-item:hover {
  background: rgba(255, 255, 255, 0.03);
}

.loyalty-act-left {
  display: flex;
  align-items: center;
  gap: 14px;
}

.loyalty-act-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8a9c92;
}

.loyalty-act-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.loyalty-act-name {
  font-size: 0.9rem;
  font-weight: 600;
  color: #FFFFFF;
}

.loyalty-act-date {
  font-size: 0.76rem;
  color: #7d8f85;
}

.loyalty-act-pts {
  font-size: 0.9rem;
  font-weight: 700;
  color: #FFFFFF;
}

.loyalty-act-pts.pts-gain {
  color: #FFFFFF;
}

.loyalty-act-pts.pts-spend {
  color: #E7ECE9;
}

/* Bottom Right: Botanical Leaves Promo Card */
.loyalty-botanical-card {
  background: #0d120f linear-gradient(90deg, rgba(13, 18, 15, 0.95) 0%, rgba(13, 18, 15, 0.75) 45%, rgba(13, 18, 15, 0.2) 100%), url('assets/webp/dashboard/loyalty_banner_leaves.webp') no-repeat center right / cover;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 20px;
  padding: 32px 36px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
  position: relative;
  overflow: hidden;
  min-height: 220px;
  display: flex;
  align-items: center;
}

.loyalty-botanical-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.loyalty-botanical-slogan {
  display: flex;
  flex-direction: column;
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #FFFFFF;
  line-height: 1.4;
}

.loyalty-botanical-dash {
  width: 32px;
  height: 3px;
  background: #558632;
  border-radius: 2px;
}

@media (max-width: 1024px) {
  .loyalty-hero-grid {
    grid-template-columns: 1fr;
    display: flex;
    flex-direction: column;
  }
  .loyalty-intro-card {
    order: 1;
  }
  .loyalty-pts-card {
    order: 2;
  }
  .loyalty-visual-card {
    order: 3;
    min-height: 260px;
  }
  .how-to-earn-grid {
    grid-template-columns: 1fr;
  }
  .loyalty-bottom-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .loyalty-hero-headline {
    font-size: 2.2rem;
  }
  .loyalty-pts-big {
    font-size: 2.8rem;
  }
  .loyalty-pts-card {
    padding: 20px 22px;
  }
  .loyalty-how-to-earn-card {
    padding: 20px 22px;
  }
  .loyalty-activity-card {
    padding: 20px 22px;
  }
  .loyalty-botanical-card {
    padding: 26px 28px;
  }
}

/* ==========================================================================
   DASHBOARD REFERRAL TAB & SECTION (1:1 MOCKUP FIDELITY)
   ========================================================================== */

.dash-referral-container {
  max-width: 1340px;
  margin: 0 auto;
  padding: 10px 0 60px;
}

.referral-hero-card {
  display: grid;
  grid-template-columns: 1.25fr 1.05fr;
  gap: 36px;
  background: #0c0f0d;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 24px;
  padding: 38px 42px;
  box-shadow: 0 16px 44px rgba(0, 0, 0, 0.45);
  align-items: stretch;
  position: relative;
  overflow: hidden;
}

.referral-hero-left {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.referral-eyebrow {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #558632;
  text-transform: uppercase;
  margin-bottom: 12px;
  display: inline-block;
}

.referral-hero-title {
  font-size: 3.4rem;
  font-weight: 800;
  line-height: 1.06;
  color: #FFFFFF;
  letter-spacing: -0.03em;
  margin: 0 0 14px;
}

.referral-title-green {
  color: #558632;
  display: block;
}

.referral-hero-subtitle {
  font-size: 0.95rem;
  line-height: 1.55;
  color: #A7B0AB;
  margin: 0 0 28px;
  max-width: 480px;
}

/* Code & QR Group */
.referral-code-qr-group {
  display: grid;
  grid-template-columns: 1.35fr auto 1fr;
  gap: 16px;
  align-items: stretch;
  margin-bottom: 24px;
}

.referral-code-card {
  background: #111413;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

.referral-box-label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #A7B0AB;
  text-transform: uppercase;
  margin-bottom: 10px;
  display: block;
}

.referral-code-row {
  background: #090b0a;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  padding: 8px 10px 8px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.referral-code-display {
  font-size: 1.85rem;
  font-weight: 800;
  color: #FFFFFF;
  letter-spacing: 0.04em;
  font-family: 'Switzer', sans-serif;
  user-select: all;
}

.referral-copy-btn {
  background: #558632;
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  padding: 10px 16px;
  font-size: 0.85rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  flex-shrink: 0;
}

.referral-copy-btn:hover {
  background: #669E3D;
  transform: translateY(-1px);
}

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

.referral-box-help {
  font-size: 0.78rem;
  color: #A7B0AB;
  line-height: 1.4;
  margin: 0;
}

/* OR Divider */
.referral-or-divider {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 0 4px;
}

.referral-or-divider::before,
.referral-or-divider::after {
  content: '';
  flex: 1;
  width: 1px;
  background: rgba(255, 255, 255, 0.08);
}

.referral-or-divider span {
  font-size: 0.76rem;
  font-weight: 700;
  color: #A7B0AB;
  padding: 8px 0;
  letter-spacing: 0.08em;
}

/* QR Code Card */
.referral-qr-card {
  background: #111413;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
}

.referral-qr-box {
  background: #FFFFFF;
  border-radius: 10px;
  padding: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
  transition: transform 0.2s ease;
}

.referral-qr-box:hover {
  transform: scale(1.04);
}

.referral-qr-img {
  width: 96px;
  height: 96px;
  display: block;
  border-radius: 4px;
}

.referral-qr-caption {
  font-size: 0.74rem;
  color: #A7B0AB;
  line-height: 1.35;
  margin: 0;
  max-width: 160px;
}

/* Benefits Section */
.referral-benefits-group {
  margin-bottom: 24px;
}

.referral-benefits-eyebrow {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: #A7B0AB;
  text-transform: uppercase;
  margin-bottom: 10px;
  display: block;
}

.referral-benefits-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.referral-benefit-card {
  background: #111413;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 16px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.2);
  transition: border-color 0.2s ease, transform 0.2s ease, background 0.2s ease;
}

.referral-benefit-card:hover {
  border-color: rgba(85, 134, 50, 0.3);
  transform: translateY(-2px);
  background: #141817;
}

.referral-benefit-icon-wrap {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #558632;
  flex-shrink: 0;
}

.referral-benefit-title {
  font-size: 0.88rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 3px;
}

.referral-benefit-desc {
  font-size: 0.76rem;
  color: #A7B0AB;
  line-height: 1.35;
  margin: 0;
}

/* Bottom Action Row */
.referral-action-row {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-top: 10px;
}

.referral-share-main-btn {
  background: #558632;
  color: #FFFFFF;
  border: none;
  border-radius: 10px;
  padding: 14px 34px;
  font-size: 0.95rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.referral-share-main-btn:hover {
  background: #669E3D;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4);
}

.referral-share-main-btn:active {
  transform: scale(0.98);
}

.referral-footer-note {
  font-size: 0.86rem;
  color: #A7B0AB;
  letter-spacing: 0.01em;
}

/* Right Visual Stage */
.referral-hero-right {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.referral-visual-container {
  background: #0d100e;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16 / 9;
  width: 100%;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.4);
}

.referral-visual-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.6s ease;
}

.referral-visual-container:hover .referral-visual-img {
  transform: scale(1.03);
}

.referral-badge-script {
  position: absolute;
  top: 28px;
  right: 28px;
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-size: 1.6rem;
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.15;
  text-align: right;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.9);
  pointer-events: none;
  z-index: 2;
}

.referral-badge-script span {
  display: block;
}

.referral-badge-napkin {
  position: absolute;
  bottom: 24px;
  right: 24px;
  background: rgba(14, 17, 16, 0.88);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  color: #A7B0AB;
  line-height: 1.35;
  z-index: 2;
  text-align: right;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
  pointer-events: none;
}

.referral-badge-napkin span {
  display: block;
}

.referral-accent-line {
  display: block;
  width: 26px;
  height: 3px;
  background: #558632;
  margin-top: 6px;
  margin-left: auto;
  border-radius: 2px;
}

/* Responsive Queries for Referral Section */
@media (max-width: 1200px) {
  .referral-hero-card {
    grid-template-columns: 1fr;
    padding: 32px 28px;
  }

  .referral-visual-container {
    min-height: 360px;
  }
}

@media (max-width: 850px) {
  .referral-hero-left {
    display: flex;
    flex-direction: column;
  }

  .referral-eyebrow { order: 1; }
  .referral-hero-title { order: 2; }
  .referral-hero-subtitle { order: 3; }

  .referral-code-qr-group {
    grid-template-columns: 1fr;
    gap: 16px;
    order: 4;
    margin-bottom: 20px;
  }

  .referral-or-divider {
    flex-direction: row;
    padding: 4px 0;
  }

  .referral-or-divider::before,
  .referral-or-divider::after {
    width: auto;
    height: 1px;
  }

  .referral-or-divider span {
    padding: 0 10px;
  }

  /* Shift Share button directly below QR code */
  .referral-action-row {
    order: 5;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    margin: 0 0 28px 0;
    width: 100%;
  }

  .referral-share-main-btn {
    width: 100%;
    justify-content: center;
  }

  .referral-footer-note {
    text-align: center;
  }

  .referral-benefits-group {
    order: 6;
  }

  .referral-benefits-grid {
    grid-template-columns: 1fr;
  }

  .your-referrals-wrap {
    order: 7;
  }
}

@media (max-width: 600px) {
  .referral-hero-title {
    font-size: 2.2rem;
  }

  .referral-code-display {
    font-size: 1.45rem;
  }

  .referral-hero-card {
    padding: 24px 18px;
  }
}

/* ==========================================================================
   DASHBOARD ORDERS TAB (1:1 FIDELITY TO REFERENCE DESIGN)
   ========================================================================== */

.dash-orders-tab-container {
  max-width: 1340px;
  margin: 0 auto;
  padding: 10px 0 60px;
}

/* 1. Header */
.dash-orders-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 42px;
}

.dash-orders-header-left {
  max-width: 680px;
}

.dash-orders-eyebrow {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: #8a968f;
  text-transform: uppercase;
  margin-bottom: 12px;
  display: block;
}

.dash-orders-title {
  font-size: clamp(2.4rem, 3.8vw, 3.4rem);
  font-weight: 800;
  line-height: 1.08;
  color: #FFFFFF;
  letter-spacing: -0.03em;
  margin: 0 0 14px;
}

.dash-orders-subtitle {
  font-size: 0.95rem;
  line-height: 1.55;
  color: #A7B0AB;
  margin: 0;
  max-width: 520px;
}

.dash-orders-header-right {
  text-align: right;
  padding-top: 12px;
}

.dash-orders-slogan {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  color: #6b7770;
  text-transform: uppercase;
  line-height: 1.4;
  display: block;
}

/* 2. Common Section Header Block */
.orders-section-block {
  margin-bottom: 48px;
}

.orders-section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 20px;
  gap: 16px;
}

.orders-section-title {
  font-size: 1.35rem;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0 0 4px;
  letter-spacing: -0.02em;
}

.orders-section-subtitle {
  font-size: 0.88rem;
  color: #8a968f;
  margin: 0;
}

.orders-section-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  font-weight: 700;
  color: #558632;
  text-decoration: none;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.orders-section-link:hover {
  color: #669E3D;
  transform: translateX(2px);
}

/* 3. Your Top 3 Favourites (3 Grid Cards) */
.fav-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.fav-hero-card {
  background: #151816;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 20px 22px 22px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 12px;
  min-height: 240px;
  position: relative;
  transition: color 0.24s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.24s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.24s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.24s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.24s cubic-bezier(0.16, 1, 0.3, 1), transform 0.24s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}

.fav-hero-card:hover {
  background: #181d1a;
  border-color: rgba(85, 134, 50, 0.4);
  transform: translateY(-3px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
}

.fav-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2px;
}

.fav-card-badges {
  display: flex;
  align-items: center;
  gap: 8px;
}

.fav-badge-num {
  min-width: 26px;
  height: 22px;
  padding: 0 6px;
  background: #558632;
  color: #FFFFFF;
  font-size: 0.75rem;
  font-weight: 800;
  border-radius: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  letter-spacing: -0.02em;
}

.fav-badge-tag {
  background: #1e2621;
  border: 1px solid rgba(85, 134, 50, 0.35);
  color: #8cb66f;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 6px;
  letter-spacing: 0.02em;
}

.fav-heart-btn {
  background: transparent;
  border: none;
  color: #558632;
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease, color 0.2s ease;
}

.fav-heart-btn:hover {
  transform: scale(1.15);
}

.fav-heart-btn.active {
  color: #558632;
}

.fav-card-body {
  display: grid;
  grid-template-columns: 1fr 125px;
  gap: 14px;
  align-items: flex-start;
  flex: 1;
}

.fav-card-info {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.fav-dish-title {
  font-size: 1.15rem;
  font-weight: 800;
  color: #FFFFFF;
  margin: 0 0 4px;
  line-height: 1.2;
}

.fav-dish-desc {
  font-size: 0.78rem;
  line-height: 1.4;
  color: #8e9a93;
  margin: 0 0 10px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.fav-macros-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}

.fav-macro-item {
  display: flex;
  flex-direction: column;
}

.fav-macro-val {
  font-size: 0.95rem;
  font-weight: 800;
  color: #FFFFFF;
  line-height: 1.1;
}

.fav-macro-lbl {
  font-size: 0.65rem;
  font-weight: 600;
  color: #7b8881;
  text-transform: uppercase;
  margin-top: 2px;
}

.fav-order-btn {
  background: #558632;
  border: 1px solid #558632;
  color: #FFFFFF;
  font-family: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 8px 18px;
  border-radius: 8px;
  text-decoration: none;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  cursor: pointer;
  outline: none;
  box-shadow: none;
  transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.fav-order-btn:hover {
  background: #669E3D;
  border-color: #669E3D;
  transform: translateY(-1px);
}

.fav-order-btn:active {
  background: #466F29;
  border-color: #466F29;
  transform: translateY(0);
}

.fav-dish-media {
  width: 125px;
  height: 125px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
  flex-shrink: 0;
}

.fav-dish-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.fav-hero-card:hover .fav-dish-img {
  transform: scale(1.08);
}

/* 4. Previous Orders (Horizontal Carousel) */
.carousel-nav-btns {
  display: flex;
  align-items: center;
  gap: 8px;
}

.carousel-nav-btn {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: #181818;
  border: 1px solid #2A2A2A;
  color: #E7ECE9;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.carousel-nav-btn:hover {
  background: #242424;
  border-color: #558632;
  color: #FFFFFF;
}

.prev-orders-carousel {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: 6px;
}

.prev-orders-carousel::-webkit-scrollbar {
  display: none;
}

.prev-orders-carousel .prev-order-card {
  flex: 0 0 340px;
  scroll-snap-align: start;
}

.prev-order-card {
  background: #141715;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 14px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  transition: color 0.22s ease, background-color 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, opacity 0.22s ease, transform 0.22s ease;
}

.prev-order-card:hover {
  background: #181d1a;
  border-color: rgba(85, 134, 50, 0.35);
  transform: translateY(-2px);
}

.prev-order-left {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.prev-order-thumb {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.prev-order-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.prev-order-name {
  font-size: 0.92rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.prev-order-meta {
  font-size: 0.75rem;
  color: #7b8881;
}

.prev-order-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.prev-order-btn {
  background: #558632;
  border: 1px solid #558632;
  color: #FFFFFF;
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 7px 16px;
  border-radius: 8px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  outline: none;
  box-shadow: none;
  transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.prev-order-btn:hover {
  background: #669E3D;
  border-color: #669E3D;
  transform: translateY(-1px);
}

.prev-order-btn:active {
  background: #466F29;
  border-color: #466F29;
  transform: translateY(0);
}

.prev-order-chevron {
  color: #7b8881;
}

/* Reorder Toast Notification */
.dash-reorder-toast {
  position: fixed;
  bottom: 32px;
  right: 32px;
  background: #181818;
  border: 1px solid #558632;
  color: #FFFFFF;
  padding: 14px 20px;
  border-radius: 12px;
  font-size: 0.9rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.6);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(30px);
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.3s;
  z-index: 99999;
}

.dash-reorder-toast svg {
  color: #558632;
  flex-shrink: 0;
}

.dash-reorder-toast.show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

/* 5. Complete Order History Table */
.history-filter-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #141715;
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 6px 14px;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  color: #E7ECE9;
  cursor: pointer;
  user-select: none;
}

.orders-table-wrapper {
  background: #141715;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}

.orders-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}

.orders-table thead {
  background: #0f1210;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.orders-table th {
  padding: 14px 20px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: #727e77;
  text-transform: uppercase;
}

.orders-table td {
  padding: 16px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 0.88rem;
  color: #E7ECE9;
  vertical-align: middle;
}

.order-table-row {
  transition: background 0.18s ease;
}

.order-table-row:hover {
  background: rgba(255, 255, 255, 0.025);
}

.order-num-cell {
  font-weight: 700;
  color: #FFFFFF;
  font-size: 0.86rem;
}

.order-date-cell {
  color: #8e9a93;
  font-size: 0.84rem;
}

.order-items-cell {
  font-weight: 500;
  color: #FFFFFF;
}

.order-total-cell {
  font-weight: 800;
  color: #FFFFFF;
  font-size: 0.92rem;
}

.order-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 700;
}

.order-status-pill.delivered {
  background: rgba(85, 134, 50, 0.15);
  color: #72b245;
  border: 1px solid rgba(85, 134, 50, 0.3);
}

.table-reorder-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.84rem;
  font-weight: 700;
  color: #558632;
  text-decoration: none;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.table-reorder-link:hover {
  color: #669E3D;
  transform: translateX(2px);
}

.btn-orders-view-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #181818;
  border: 1px solid #2A2A2A;
  color: #E7ECE9;
  font-size: 0.85rem;
  font-weight: 700;
  padding: 10px 22px;
  border-radius: 8px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.btn-orders-view-more:hover {
  background: #242424;
  border-color: #558632;
  color: #FFFFFF;
  transform: translateY(-1px);
}

/* Responsive queries */
@media (max-width: 1100px) {
  .fav-cards-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
}

@media (max-width: 768px) {
  .fav-cards-grid {
    display: flex;
    gap: 14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 8px;
    margin: 0 -16px;
    padding-left: 16px;
    padding-right: 16px;
  }
  .fav-cards-grid::-webkit-scrollbar {
    display: none;
  }
  .fav-hero-card {
    flex: 0 0 84vw;
    max-width: 320px;
    min-width: 270px;
    scroll-snap-align: start;
    min-height: auto;
  }
  .dash-orders-header {
    flex-direction: column;
    gap: 16px;
  }
  .dash-orders-header-right {
    text-align: left;
    padding-top: 0;
  }
  .orders-table-wrapper {
    overflow-x: auto;
  }
  .orders-table {
    min-width: 600px;
  }
}

/* ==========================================================================
   DASHBOARD PROFILE / ACCOUNT TAB (1:1 MOCKUP FIDELITY)
   ========================================================================== */

.dash-profile-tab-container {
  max-width: 1380px;
  margin: 0 auto;
  padding: 10px 0 80px;
}

.profile-layout-grid {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 52px;
  align-items: start;
}

/* Left Hero Brand Card */
.profile-hero-card {
  background: #0d100e;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 24px;
  padding: 36px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 100px;
  overflow: hidden;
}

.profile-hero-top {
  margin-bottom: 0;
}

.profile-eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: #88928c;
  text-transform: uppercase;
  margin-bottom: 16px;
  display: block;
}

.profile-hero-title {
  font-size: 3.4rem;
  font-weight: 800;
  line-height: 1.04;
  color: #FFFFFF;
  letter-spacing: -0.035em;
  margin: 0 0 16px;
}

.profile-hero-subtitle {
  font-size: 0.95rem;
  line-height: 1.55;
  color: #9ba39e;
  margin: 0;
  max-width: 310px;
}

/* Visual Artwork Box */
.profile-visual-artwork-wrap {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: #080a09;
  border: 1px solid rgba(255, 255, 255, 0.05);
  margin-top: auto;
}

.profile-visual-artwork-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.profile-hero-card:hover .profile-visual-artwork-img {
  transform: scale(1.03);
}

.profile-visual-footer-text {
  padding: 16px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: linear-gradient(180deg, transparent 0%, rgba(8, 10, 9, 0.9) 100%);
}

.profile-footer-dash {
  color: #88928c;
  font-size: 1.1rem;
  line-height: 1;
}

.profile-footer-tag {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #88928c;
  text-transform: uppercase;
}

/* Right Content Column */
.profile-content-column {
  display: flex;
  flex-direction: column;
  gap: 36px;
  padding-top: 10px;
}

.profile-section {
  display: flex;
  flex-direction: column;
}

.profile-section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 24px;
  gap: 20px;
}

.profile-section-title {
  font-size: 1.55rem;
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: -0.02em;
  margin: 0 0 6px;
}

.profile-section-desc {
  font-size: 0.92rem;
  color: #9ba39e;
  margin: 0;
  line-height: 1.45;
}

.profile-customer-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  gap: 3px;
}

.profile-since-text {
  font-size: 0.85rem;
  font-weight: 500;
  color: #88928c;
}

.profile-hashtag-text {
  font-size: 0.85rem;
  font-weight: 600;
  color: #88928c;
}

/* Form Fields */
.profile-form-grid-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 20px;
}

.profile-field-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.profile-label {
  font-size: 0.88rem;
  font-weight: 500;
  color: #E7ECE9;
}

.profile-input {
  width: 100%;
  height: 48px;
  background: #121614;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  padding: 0 16px;
  color: #FFFFFF;
  font-size: 0.95rem;
  font-family: inherit;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  outline: none;
}

.profile-input:focus {
  border-color: #558632;
  background: #141916;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.profile-phone-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}

.profile-phone-input-cluster {
  display: flex;
  align-items: center;
  gap: 10px;
}

.profile-country-picker-wrap {
  position: relative;
}

.profile-country-btn {
  height: 48px;
  background: #121614;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  padding: 0 14px;
  color: #FFFFFF;
  font-size: 0.95rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  white-space: nowrap;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.profile-country-btn:hover {
  border-color: rgba(255, 255, 255, 0.7);
  background: #161b18;
}

.profile-country-dropdown {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  background: #141815;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  padding: 6px;
  list-style: none;
  margin: 0;
  width: 200px;
  z-index: 50;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.6);
}

.profile-country-dropdown li {
  padding: 10px 12px;
  font-size: 0.88rem;
  color: #E7ECE9;
  border-radius: 8px;
  cursor: pointer;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
}

.profile-country-dropdown li:hover,
.profile-country-dropdown li.selected {
  background: rgba(85, 134, 50, 0.14);
  color: #558632;
}

.profile-phone-number-field {
  flex: 1;
}

.profile-save-action-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
}

.profile-btn-save {
  height: 44px;
  background: #558632;
  color: #FFFFFF;
  border: none;
  border-radius: 10px;
  padding: 0 22px;
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}

.profile-btn-save:hover {
  background: #669E3D;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

.profile-save-feedback {
  font-size: 0.85rem;
  font-weight: 600;
  color: #558632;
  animation: fadeIn 0.3s ease;
}

/* Divider */
.profile-divider {
  border: none;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  margin: 6px 0;
}

/* Outline Buttons */
.profile-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #101412;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  padding: 10px 18px;
  color: #FFFFFF;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}

.profile-btn-outline:hover {
  border-color: rgba(255, 255, 255, 0.7);
  background: #161b18;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
}

/* Address Card */
.profile-addresses-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.profile-address-card {
  background: #0f1311;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 20px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.profile-address-card:hover {
  border-color: rgba(255, 255, 255, 0.7);
  background: #121714;
}

.profile-address-left {
  display: flex;
  align-items: center;
  gap: 20px;
}

.profile-address-icon-badge {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #161b18;
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #9ba39e;
  flex-shrink: 0;
}

.profile-address-details {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.profile-address-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.profile-address-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0;
}

.profile-default-badge {
  background: rgba(85, 134, 50, 0.15);
  color: var(--hot-emerald-500, #558632);
  font-size: 0.72rem;
  font-weight: 700;
  padding: 2px 9px;
  border-radius: 100px;
  letter-spacing: 0.02em;
  border: 1px solid rgba(85, 134, 50, 0.3);
}

.profile-address-text {
  font-size: 0.9rem;
  line-height: 1.45;
  color: #9ba39e;
  margin: 0;
}

.profile-address-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-shrink: 0;
}

.profile-addr-link-btn {
  background: none;
  border: none;
  color: #E7ECE9;
  font-size: 0.88rem;
  font-weight: 500;
  cursor: pointer;
  padding: 0;
  transition: color 0.15s ease;
}

.profile-addr-link-btn:hover {
  color: var(--hot-emerald-500, #558632);
  text-decoration: underline;
}

.btn-remove-address:hover {
  color: #ef4444;
}

.profile-action-sep {
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.8rem;
}

/* Communication Preferences Grid */
.profile-prefs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.profile-pref-card {
  background: #0f1311;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 20px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  user-select: none;
}

.profile-pref-card:hover {
  border-color: rgba(255, 255, 255, 0.7);
  background: #131715;
}

.profile-pref-checkbox {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.profile-pref-custom-box {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: #181d1a;
  border: 1.5px solid rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: transparent;
  flex-shrink: 0;
  margin-top: 1px;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}

.profile-pref-checkbox:checked+.profile-pref-custom-box {
  background: var(--hot-emerald-500, #558632);
  border-color: var(--hot-emerald-500, #558632);
  color: #FFFFFF;
}

.profile-pref-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.profile-pref-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #FFFFFF;
}

.profile-pref-desc {
  font-size: 0.82rem;
  color: #9ba39e;
  line-height: 1.4;
}

/* Password & Security Row */
.profile-security-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}

/* Responsive Breakpoints */
@media (max-width: 1100px) {
  .profile-layout-grid {
    grid-template-columns: 320px 1fr;
    gap: 32px;
  }

  .profile-prefs-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  .profile-layout-grid {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .profile-hero-card {
    position: static;
  }

  .profile-form-grid-2col {
    grid-template-columns: 1fr;
  }

  .profile-phone-row {
    flex-direction: column;
    align-items: stretch;
  }

  .profile-address-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .profile-address-actions {
    width: 100%;
    justify-content: flex-end;
  }
}

/* ==========================================================================
   NEW USER TAB / ONBOARDING VIEW STYLES
   ========================================================================== */
.new-user-tab-container {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 12px 24px 60px;
  display: flex;
  flex-direction: column;
  gap: 48px;
}

/* Hero Section */
.new-user-hero-section {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  align-items: center;
  gap: 48px;
background: #181818;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 24px;
  padding: 48px 56px;
  position: relative;
  overflow: hidden;
}

.new-user-hero-content {
  display: flex;
  flex-direction: column;
  gap: 18px;
  z-index: 2;
}

.new-user-eyebrow {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #718279;
}

.new-user-title {
  font-size: clamp(2.4rem, 4.2vw, 3.8rem);
  font-weight: 900;
  line-height: 1.05;
  letter-spacing: -0.03em;
  color: #ffffff;
  text-transform: uppercase;
  margin: 0;
}

.new-user-highlight {
  color: var(--hot-emerald-500, #558632);
  display: inline-block;
}

.new-user-desc {
  font-size: 1.05rem;
  line-height: 1.6;
  color: #a3b2a9;
  max-width: 520px;
  margin: 4px 0 10px;
}

/* Feature Pills Row */
.new-user-pills-row {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  margin-top: 6px;
}

.new-user-pill-item {
  display: flex;
  align-items: center;
  gap: 12px;
}

.new-user-pill-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(85, 134, 50, 0.12);
  border: 1px solid rgba(85, 134, 50, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--hot-emerald-500, #558632);
  flex-shrink: 0;
}

.new-user-pill-item span {
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.3;
  color: #d1dcce;
}

/* Hero Media / Right Column */
.new-user-hero-media {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1;
}

.new-user-hero-visual-wrap {
  width: 100%;
  max-width: 540px;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: #111614;
}

.new-user-hero-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.new-user-hero-visual-wrap:hover .new-user-hero-img {
  transform: scale(1.03);
}

/* Get Started Section */
.new-user-get-started {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.new-user-section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding-bottom: 4px;
}

.new-user-section-eyebrow {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #718279;
  display: block;
  margin-bottom: 6px;
}

.new-user-section-heading {
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #ffffff;
  margin: 0;
}

.new-user-header-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.new-user-tagline {
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #65776d;
}

.new-user-tagline-bar {
  width: 42px;
  height: 3px;
  background: var(--hot-emerald-500, #558632);
  border-radius: 2px;
}

/* 3 Cards Grid */
.new-user-cards-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.new-user-card {
  background: #111714;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 18px;
  overflow: hidden;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

.new-user-card:hover {
  transform: translateY(-5px);
  border-color: rgba(85, 134, 50, 0.4);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.5);
}

.new-user-card-media {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #161f1a;
  position: relative;
}

.new-user-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.new-user-card:hover .new-user-card-img {
  transform: scale(1.05);
}

.new-user-card-content {
  padding: 22px 24px 26px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}

.new-user-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.new-user-card-title-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
}

.new-user-card-icon {
  color: #a3b2a9;
  display: flex;
  align-items: center;
  justify-content: center;
}

.new-user-card:hover .new-user-card-icon {
  color: var(--hot-emerald-500, #558632);
}

.new-user-card-title {
  font-size: 1.18rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
  letter-spacing: -0.01em;
}

.new-user-card-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #18221c;
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #d1dcce;
  transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
  flex-shrink: 0;
}

.new-user-card:hover .new-user-card-btn {
  background: var(--hot-emerald-500, #558632);
  color: #FFFFFF;
  border-color: var(--hot-emerald-500, #558632);
}

.new-user-card-desc {
  font-size: 0.92rem;
  line-height: 1.5;
  color: #8a9c92;
  margin: 0;
}

/* Bottom Grid (2 Wide Cards) */
.new-user-bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.new-user-wide-card {
  background: #111714;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 18px;
  padding: 30px 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  position: relative;
  overflow: hidden;
}

/* Loyalty Points Widget */
.new-user-points-card .new-user-wide-left {
  display: flex;
  align-items: center;
  gap: 24px;
}

.new-user-star-circle {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #16211a;
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  flex-shrink: 0;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
}

.new-user-points-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.new-user-points-label {
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #718279;
}

.new-user-points-val {
  font-size: 2.4rem;
  font-weight: 900;
  line-height: 1;
  color: #ffffff;
  letter-spacing: -0.02em;
}

.new-user-points-sub {
  font-size: 0.85rem;
  color: #8a9c92;
  margin: 4px 0 0;
  max-width: 250px;
}

.new-user-wide-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.new-user-stacked-slogan {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1.35;
  text-transform: uppercase;
  color: #65776d;
}

.new-user-slogan-bar {
  width: 32px;
  height: 3px;
  background: var(--hot-emerald-500, #558632);
  border-radius: 2px;
}

/* Wellness Quote Widget */
.new-user-quote-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
}

.new-user-sprout-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--hot-emerald-500, #558632);
}

.new-user-quote-center {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.new-user-quote-heading {
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #ffffff;
  margin: 0;
  line-height: 1.35;
}

.new-user-quote-right p {
  font-size: 0.88rem;
  line-height: 1.45;
  color: #8a9c92;
  margin: 0;
  text-align: right;
  font-weight: 500;
}

/* Search bar in Navbar */
.dash-nav-search {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #111714;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  padding: 8px 16px;
  width: 250px;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
}

.dash-nav-search:focus-within {
  border-color: rgba(85, 134, 50, 0.5);
  outline: 1.5px solid #558632; outline-offset: 1px;
  width: 280px;
}

.dash-nav-search input {
  background: transparent;
  border: none;
  outline: none;
  font-size: 0.84rem;
  color: #ffffff;
  width: 100%;
}

.dash-nav-search input::placeholder {
  color: #65776d;
}

/* Responsive Media Queries */
@media (max-width: 1200px) {
  .new-user-hero-section {
    grid-template-columns: 1fr;
    padding: 36px 32px;
    gap: 36px;
  }

  .new-user-hero-visual-wrap {
    max-width: 100%;
  }
}

@media (max-width: 992px) {
  .new-user-cards-grid {
    grid-template-columns: 1fr;
  }

  .new-user-bottom-grid {
    grid-template-columns: 1fr;
  }

  .dash-nav-search {
    display: none;
  }
}

@media (max-width: 600px) {
  .new-user-tab-container {
    padding: 12px 16px 40px;
    gap: 36px;
  }

  .new-user-hero-section {
    padding: 28px 20px;
  }

  .new-user-pills-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .new-user-section-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .new-user-header-right {
    align-items: flex-start;
  }

  .new-user-wide-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    padding: 24px 20px;
  }

  .new-user-wide-right {
    align-items: flex-start;
  }

  .new-user-stacked-slogan {
    align-items: flex-start;
  }

  .new-user-quote-card {
    display: none !important;
  }
}

@media (max-width: 768px) {
  .new-user-quote-card {
    display: none !important;
  }
}

/* ==========================================================================
   MOBILE HERO HOME (STRICTLY MOBILE ONLY: <= 768px)
   ========================================================================== */
.hot-mobile-hero-section {
  display: none !important;
}

/* ==========================================================================
   PRIMARY HERO 1: 3D SCROLL SEQUENCE INTERACTIVE EXPERIENCE
   Aesthetics: Deep Obsidian (#121212), Emerald (#558632), Switzer / Aeonik Pure Editorial
   ========================================================================== */

.hot-seq-hero-section {
  position: relative;
  width: 100%;
  height: 600vh; /* Drives the total scroll length directly */
  background-color: #000000;
  box-sizing: border-box;
}

/* Fixed/Sticky Viewport Window */
.hot-seq-sticky-viewport {
  position: sticky;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  min-height: 100vh;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #000000;
  z-index: 20;
  box-sizing: border-box;
}

/* Canvas Container */
.hot-seq-canvas-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  pointer-events: none;
  background-color: #000000;
}

#hot-seq-canvas {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hot-seq-top-header {
  position: absolute;
  top: calc(var(--nav-height, 80px) + clamp(8px, 1.4vh, 18px));
  left: 0;
  width: 100%;
  text-align: center;
  pointer-events: none;
  z-index: 15;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1), transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-seq-top-header.is-hidden {
  opacity: 0;
  transform: translateY(-16px);
  pointer-events: none;
}

.hot-seq-brand-title {
  font-family: var(--font-display, 'Switzer', sans-serif);
  font-size: clamp(1.35rem, 1.8vw, 1.95rem);
  font-weight: 800;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: #FFFFFF;
  line-height: 1;
  margin: 0;
  text-indent: 0.32em;
  text-shadow: 0 4px 24px rgba(0, 0, 0, 0.95);
}

.hot-seq-brand-accent {
  color: var(--hot-emerald-500, #558632);
}

.hot-seq-brand-tagline {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: clamp(0.68rem, 0.88vw, 0.92rem);
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--hot-emerald-500, #558632);
  margin-top: 6px;
  text-indent: 0.28em;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.95);
}

/* Stage 1: Hero Main Flank (Shifted higher for optimal balance above box) */
.seq-flank-hero-main {
  width: clamp(340px, 34vw, 500px) !important;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  transform: translateY(-185px);
}

.seq-hero-display-title {
  font-family: var(--font-display, 'Switzer', sans-serif);
  font-size: clamp(2.4rem, 4.2vw, 4.4rem);
  line-height: 0.98;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  margin: 0;
  color: #FFFFFF;
  text-shadow: 0 4px 30px rgba(0, 0, 0, 0.95);
}

.seq-title-bold {
  font-weight: 900;
  color: #FFFFFF;
  display: block;
}

.seq-title-light {
  font-weight: 300;
  color: #FFFFFF;
  display: block;
  letter-spacing: -0.015em;
}

.seq-title-green {
  color: var(--hot-emerald-500, #558632);
  font-weight: 800;
}

.seq-hero-lead-text {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: clamp(1rem, 1.15vw, 1.2rem);
  font-weight: 400;
  line-height: 1.45;
  color: var(--hot-text-200, #E7ECE9);
  margin-top: 14px;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.9);
}

.seq-lead-highlight {
  color: #FFFFFF;
  font-weight: 600;
}

/* Bottom Center Scroll Cue */
.seq-scroll-cue {
  position: absolute;
  bottom: 38px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  pointer-events: none;
  z-index: 10;
  opacity: 1;
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.seq-scroll-cue.is-hidden {
  opacity: 0;
  transform: translateX(-50%) translateY(12px);
}

.seq-scroll-cue-line {
  width: 1px;
  height: 24px;
  background: linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, 0.5) 100%);
  margin-bottom: 2px;
}

.seq-scroll-cue-text {
  font-family: var(--font-display, 'Switzer', sans-serif);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.32em;
  text-indent: 0.32em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1;
}

.seq-scroll-cue-arrow {
  color: rgba(255, 255, 255, 0.65);
  margin-top: 1px;
  animation: seqBounce 2s infinite ease-in-out;
}

@keyframes seqBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(4px); }
}

/* HUD Editorial Layer (Flanking purely left & right) */
.hot-seq-editorial-hud {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 6;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-sizing: border-box;
}

/* Stage Layers (Overlaid absolute containers) */
.hot-seq-stage-layer {
  position: absolute;
  top: calc(var(--nav-height, 80px) + 100px);
  left: clamp(24px, 4.5vw, 64px);
  right: clamp(24px, 4.5vw, 64px);
  bottom: clamp(24px, 4vh, 48px);
  display: flex;
  justify-content: space-between;
  align-items: center;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(16px);
  /* Fast, no-delay exit — must clear before the next stage's delayed entrance
     below starts, or the two stages' copy blocks visibly overlap mid-scroll. */
  transition: opacity 0.22s ease,
              transform 0.22s ease,
              visibility 0s 0.22s;
}

.hot-seq-stage-layer.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.14s,
              transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.14s,
              visibility 0s;
}

/* Flanking Columns */
.seq-flank {
  width: clamp(280px, 24vw, 360px);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
}

.seq-flank-left {
  align-items: flex-start;
}

.seq-flank-right {
  align-items: flex-end;
}

/* Pure Typography Content (No boxes, no card borders, no backgrounds) */
.seq-pure-text {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
  background: none;
  border: none;
  box-shadow: none;
  padding: 0;
}

.seq-flank-right .seq-pure-text {
  align-items: flex-end;
  text-align: right;
}

.seq-section-title {
  font-family: var(--font-display, 'Switzer', sans-serif);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--hot-emerald-500, #558632);
  display: block;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.9);
}

.seq-text-title {
  font-family: var(--font-display, 'Switzer', sans-serif);
  font-size: clamp(1.4rem, 1.8vw, 1.85rem);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--hot-text-100, #FFFFFF);
  margin: 0;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.95);
}

.seq-text-desc {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: clamp(0.85rem, 0.95vw, 0.95rem);
  line-height: 1.6;
  color: var(--hot-text-200, #E7ECE9);
  margin: 0;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.9);
}

.seq-text-meta {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--hot-text-300, #A7B0AB);
  margin: 0;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.9);
}

/* Stats Stack (Stage 1 Right) */
.seq-stats-stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

.seq-stat-row {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.seq-stat-num {
  font-family: var(--font-display, 'Switzer', sans-serif);
  font-size: 1.6rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--hot-text-100, #FFFFFF);
  line-height: 1;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.95);
}

.seq-stat-name {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--hot-text-300, #A7B0AB);
  margin-top: 3px;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.9);
}

/* Tagged Callout Items (Stage 2 - 1:1 BUILD YOUR MEAL Experience) */
#seq-stage-2 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.seq-build-headline-wrap {
  position: absolute;
  top: clamp(28px, 4vh, 48px);
  left: clamp(24px, 4.5vw, 64px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  opacity: 0;
  transform: translateY(-20px);
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 10;
}

.hot-seq-stage-layer.is-active .seq-build-headline-wrap {
  opacity: 1;
  transform: translateY(0);
}

.seq-build-display-title {
  font-family: var(--font-display, 'Switzer', sans-serif);
  font-size: clamp(2.2rem, 3.8vw, 4.2rem);
  line-height: 0.98;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  margin: 0;
  color: #FFFFFF;
  text-shadow: 0 4px 30px rgba(0, 0, 0, 0.95);
}

.seq-build-bold {
  font-weight: 900;
  color: #FFFFFF;
  display: block;
}

.seq-build-light {
  font-weight: 300;
  color: #FFFFFF;
  display: block;
  letter-spacing: -0.015em;
}

.seq-dot-green {
  color: var(--hot-emerald-500, #558632);
  font-weight: 900;
}

.seq-build-green-divider {
  width: 42px;
  height: 2.5px;
  background-color: var(--hot-emerald-500, #558632);
  margin-top: 18px;
  border-radius: 2px;
}

/* Callout Row Architecture */
.seq-callout-row {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 16px;
  opacity: 0;
  z-index: 10;
  pointer-events: none;
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-seq-stage-layer.is-active .seq-callout-row {
  opacity: 1;
  transform: translateX(0) !important;
}

/* Callout 01: Protein (Chicken Breast) */
.seq-callout-protein {
  left: clamp(24px, 4.5vw, 64px);
  top: 24%;
  transform: translateX(-28px);
}

/* Callout 02: Seasoning (Flakes) */
.seq-callout-seasoning {
  left: clamp(24px, 4.5vw, 64px);
  top: 35%;
  transform: translateX(-28px);
}

/* Callout 03: Carbs (Rice Bed) */
.seq-callout-carbs {
  right: clamp(24px, 4.5vw, 64px);
  top: 42%;
  transform: translateX(28px);
}

/* Callout 04: Veggies (Crisp Veggies) */
.seq-callout-veggies {
  right: clamp(24px, 4.5vw, 64px);
  top: 54%;
  transform: translateX(28px);
}

.hot-seq-stage-layer.is-active .seq-callout-protein { transition-delay: 0.06s; }
.hot-seq-stage-layer.is-active .seq-callout-seasoning { transition-delay: 0.12s; }
.hot-seq-stage-layer.is-active .seq-callout-carbs { transition-delay: 0.18s; }
.hot-seq-stage-layer.is-active .seq-callout-veggies { transition-delay: 0.24s; }

/* Callout Text Content */
.seq-callout-text-block {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.seq-callout-head {
  display: flex;
  align-items: center;
  gap: 8px;
  line-height: 1;
}

.seq-num-green {
  font-family: var(--font-display, 'Switzer', sans-serif);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--hot-emerald-500, #558632);
}

.seq-label-white {
  font-family: var(--font-display, 'Switzer', sans-serif);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #FFFFFF;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.9);
}

.seq-callout-subitems {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: clamp(0.78rem, 0.88vw, 0.92rem);
  font-weight: 400;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.45;
  margin: 2px 0 0 0;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.9);
}

/* Callout Leader Lines & Glowing Anchor Dots */
.seq-callout-pointer-wrap {
  display: flex;
  align-items: center;
  width: clamp(60px, 8vw, 140px);
  flex-shrink: 0;
}

.seq-callout-leader-line {
  height: 1.5px;
  width: 100%;
  background: linear-gradient(90deg, rgba(85, 134, 50, 0.25) 0%, var(--hot-emerald-500, #558632) 100%);
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 0.65s cubic-bezier(0.16, 1, 0.3, 1) 0.12s;
}

.seq-callout-right .seq-callout-leader-line {
  background: linear-gradient(90deg, var(--hot-emerald-500, #558632) 0%, rgba(85, 134, 50, 0.25) 100%);
  transform-origin: right center;
}

.seq-callout-anchor-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--hot-emerald-500, #558632);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
  flex-shrink: 0;
  opacity: 0;
  transform: scale(0);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1) 0.25s, opacity 0.4s ease 0.25s;
}

.hot-seq-stage-layer.is-active .seq-callout-leader-line {
  transform: scaleX(1);
}

.hot-seq-stage-layer.is-active .seq-callout-anchor-dot {
  opacity: 1;
  transform: scale(1);
}

/* ==========================================================================
   STAGE 3: 1:1 REPLICA CLOSING FRAME (YOUR NUTRITION. FULLY HANDLED. + STATS)
   ========================================================================== */
#seq-stage-3 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

/* Center Headline & Order Now CTA Cluster */
.seq-stage3-center-stack {
  position: absolute;
  top: clamp(75px, 9vh, 105px);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  max-width: 900px;
  z-index: 10;
  opacity: 0;
  transform: translateX(-50%) translateY(20px);
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-seq-stage-layer.is-active .seq-stage3-center-stack {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.seq-stage3-main-title {
  font-family: var(--font-display, 'Switzer', sans-serif);
  font-size: clamp(2.2rem, 3.8vw, 4.2rem);
  font-weight: 900;
  line-height: 0.98;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  color: #FFFFFF;
  margin: 0 0 18px 0;
  text-shadow: 0 4px 30px rgba(0, 0, 0, 0.95);
}

.seq-stage3-cta-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.btn-stage3-order {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--hot-emerald-500, #558632);
  color: #FFFFFF;
  padding: 13px 40px;
  border-radius: 6px;
  font-family: var(--font-display, 'Switzer', sans-serif);
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.6);
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.18);
  pointer-events: auto;
}

.btn-stage3-order:hover {
  background: #669E3D;
  border-color: rgba(255, 255, 255, 0.7);
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.75);
}

.btn-stage3-order:active {
  transform: translateY(0);
  background: #466F29;
}

.btn-stage3-order .btn-arrow-svg {
  width: 15px;
  height: 15px;
  stroke: currentColor;
  stroke-width: 2.4;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.btn-stage3-order:hover .btn-arrow-svg {
  transform: translateX(4px);
}

.seq-stage3-sub-meta {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: clamp(0.66rem, 0.74vw, 0.8rem);
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
  margin: 0;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.95);
}

/* Side Flank Columns (Stats with Vertical Dividers) */
.seq-stage3-side-col {
  position: absolute;
  top: clamp(90px, 10.5vh, 120px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 26px;
  z-index: 10;
  width: 140px;
  opacity: 0;
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.seq-stage3-col-left {
  left: clamp(24px, 5.5vw, 90px);
  transform: translateX(-20px);
}

.seq-stage3-col-left::after {
  content: '';
  position: absolute;
  right: -28px;
  top: -10%;
  height: 120%;
  width: 1px;
  background: linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, 0.16) 20%, rgba(255, 255, 255, 0.16) 80%, transparent 100%);
}

.seq-stage3-col-right {
  right: clamp(24px, 5.5vw, 90px);
  transform: translateX(20px);
}

.seq-stage3-col-right::before {
  content: '';
  position: absolute;
  left: -28px;
  top: -10%;
  height: 120%;
  width: 1px;
  background: linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, 0.16) 20%, rgba(255, 255, 255, 0.16) 80%, transparent 100%);
}

.hot-seq-stage-layer.is-active .seq-stage3-col-left,
.hot-seq-stage-layer.is-active .seq-stage3-col-right {
  opacity: 1;
  transform: translateX(0);
}

.seq-stage3-stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 4px;
}

.seq-stage3-icon {
  stroke: var(--hot-emerald-500, #558632);
}

.seq-stage3-stat-value {
  font-family: var(--font-display, 'Switzer', sans-serif);
  font-size: 1.55rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  line-height: 1;
  margin-top: 4px;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.95);
}

.seq-stage3-stat-label {
  font-family: var(--font-body, 'Switzer', sans-serif);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  margin-top: 2px;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.9);
}

.seq-stage3-stat-dash {
  width: 20px;
  height: 1px;
  background: rgba(255, 255, 255, 0.2);
}

/* Responsive Styles */
@media (max-width: 1024px) {
  .hot-seq-brand-title {
    font-size: 1.25rem;
    letter-spacing: 0.30em;
  }

  .hot-seq-brand-tagline {
    font-size: 0.65rem;
    letter-spacing: 0.26em;
  }

  .seq-hero-display-title,
  .seq-build-display-title,
  .seq-stage3-main-title {
    font-size: clamp(2rem, 3.8vw, 3.2rem);
  }

  .hot-seq-stage-layer {
    top: calc(var(--nav-height, 80px) + 90px);
  }

  .seq-flank {
    width: 45%;
  }

  .seq-flank-hero-main {
    width: 50% !important;
  }

  .seq-callout-pointer-wrap {
    width: clamp(30px, 5vw, 60px);
  }

  .seq-stage3-side-col {
    width: 110px;
  }

  .seq-stage3-stat-value {
    font-size: 1.3rem;
  }
}

@media (max-width: 768px) {
  /* Strictly Mobile Hero: Replace 600vh desktop sequence with dedicated 1:1 mobile poster hero */
  .hot-seq-hero-section {
    display: none !important;
  }

  .hot-mobile-hero-section {
    display: flex !important;
    position: relative;
    width: 100%;
    max-width: 100vw;
    height: 100svh;
    height: 100dvh;
    min-height: 100svh;
    min-height: 100dvh;
    max-height: 100dvh;
    background-color: #000000;
    overflow: hidden;
    box-sizing: border-box;
    z-index: 10;
  }

  .hot-mobile-hero-bg-wrap {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
    overflow: hidden;
  }

  .hot-mobile-hero-bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 36%;
    display: block;
    transform: scale(1.02);
    animation: hotMobileHeroZoom 14s ease-in-out infinite alternate;
    will-change: transform;
  }

  @keyframes hotMobileHeroZoom {
    0% {
      transform: scale(1.0);
    }
    100% {
      transform: scale(1.06);
    }
  }

  .hot-mobile-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(
      180deg,
      rgba(0, 0, 0, 0.65) 0%,
      rgba(0, 0, 0, 0.10) 22%,
      rgba(0, 0, 0, 0.02) 45%,
      rgba(0, 0, 0, 0.25) 75%,
      rgba(0, 0, 0, 0.60) 100%
    );
    pointer-events: none;
  }

  .hot-mobile-hero-content {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 100vw;
    height: 100%;
    min-height: 100svh;
    min-height: 100dvh;
    max-height: 100dvh;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    padding: calc(var(--nav-height, 74px) + 6px) 16px clamp(48px, 8.5vh, 76px);
    box-sizing: border-box;
    overflow: hidden;
  }

  /* Center Massive Headline */
  .hot-mobile-hero-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    margin: auto 0;
    width: 100%;
    max-width: 100%;
    pointer-events: none;
    transform: translateY(-8px);
  }

  .hot-mobile-hero-title {
    font-family: var(--font-display, 'Switzer', sans-serif);
    font-size: clamp(4.5rem, 22.5vw, 7.8rem);
    font-weight: 900;
    line-height: 0.80;
    letter-spacing: -0.05em;
    text-transform: uppercase;
    color: #FFFFFF;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-shadow: 0 4px 40px rgba(0, 0, 0, 0.98), 0 2px 14px rgba(0, 0, 0, 0.9);
    width: 100%;
    max-width: 100%;
  }

  .hot-m-title-line {
    display: block;
    width: 100%;
    text-align: center;
  }

  .hot-m-title-health {
    font-size: 1em;
    letter-spacing: -0.055em;
    animation: hotMobileTitleReveal 0.85s cubic-bezier(0.16, 1, 0.3, 1) 0.12s both;
    will-change: transform, opacity;
  }

  .hot-m-title-ontop {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.03em;
    letter-spacing: -0.055em;
    animation: hotMobileTitleReveal 0.85s cubic-bezier(0.16, 1, 0.3, 1) 0.24s both;
    will-change: transform, opacity;
  }

  @keyframes hotMobileTitleReveal {
    0% {
      opacity: 0;
      transform: translateY(28px) scale(0.95);
      filter: blur(6px);
    }
    100% {
      opacity: 1;
      transform: translateY(0) scale(1);
      filter: blur(0);
    }
  }

  .hot-m-on {
    font-size: 0.38em;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.01em;
    transform: translateY(-0.16em);
    opacity: 0.96;
  }

  .hot-m-top {
    font-size: 1.02em;
    font-weight: 900;
    letter-spacing: -0.055em;
  }

  /* Bottom Actions Stack (Shifted upwards) */
  .hot-mobile-hero-bottom {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: clamp(12px, 2vh, 18px);
    margin-bottom: clamp(16px, 3vh, 28px);
  }

  .hot-mobile-hero-sub {
    font-family: var(--font-body, 'Switzer', sans-serif);
    font-size: clamp(0.92rem, 4vw, 1.12rem);
    font-weight: 450;
    letter-spacing: 0.07em;
    color: rgba(255, 255, 255, 0.96);
    margin: 0;
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.95);
    animation: hotMobileFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.38s both;
    will-change: transform, opacity;
  }

  @keyframes hotMobileFadeUp {
    0% {
      opacity: 0;
      transform: translateY(16px);
    }
    100% {
      opacity: 0.95;
      transform: translateY(0);
    }
  }

  .hot-mobile-hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 280px;
    min-height: 50px;
    padding: 14px 28px;
    background-color: #558632;
    color: #FFFFFF;
    font-family: var(--font-family-brand, 'Switzer', sans-serif);
    font-size: clamp(1rem, 4vw, 1.1rem);
    font-weight: 700;
    letter-spacing: 0.01em;
    border-radius: 6px;
    text-decoration: none;
    text-align: center;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.45);
    transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s ease, box-shadow 0.2s ease;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    animation: hotMobileBtnPop 0.85s cubic-bezier(0.34, 1.56, 0.64, 1) 0.5s both;
    will-change: transform, opacity;
  }

  @keyframes hotMobileBtnPop {
    0% {
      opacity: 0;
      transform: translateY(22px) scale(0.92);
    }
    100% {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }

  .hot-mobile-hero-btn:hover {
    background-color: #466F29;
    transform: translateY(-1px);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
    color: #FFFFFF;
  }

  .hot-mobile-hero-btn:active {
    background-color: #3B5D23;
    transform: scale(0.97);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    color: #FFFFFF;
  }

  @media (prefers-reduced-motion: reduce) {
    .hot-mobile-hero-bg-img,
    .hot-m-title-health,
    .hot-m-title-ontop,
    .hot-mobile-hero-sub,
    .hot-mobile-hero-btn {
      animation: none !important;
      transform: none !important;
      opacity: 1 !important;
      filter: none !important;
    }
  }
}

/* ==========================================================================
   1:1 MEAL SELECTION SECTION ("BUILD THE PACK YOUR WAY")
   ========================================================================== */

.hot-1to1-pack-section {
  position: relative;
  width: 100%;
  min-height: 100vh;
  background: #000000;
  background-color: #000000;
  background-image: none;
  color: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: clamp(90px, 10.5vh, 105px) 60px 32px;
  box-sizing: border-box;
  overflow: hidden;
  font-family: 'Switzer', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  z-index: 10;
}

/* Subtle ambient glow - removed for pure matte black background */
.hot-1to1-pack-section::before {
  display: none !important;
}

body.order-page {
  background: #000000;
  background-color: #000000;
}

body.order-page .hero-ambient-glow {
  display: none !important;
}

.hot-1to1-inner {
  position: relative;
  z-index: 1;
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  height: auto;
  justify-content: flex-start;
  gap: 14px;
  flex: 1;
}

.hot-1to1-nav-row {
  margin-bottom: 0;
  width: 100%;
}

/* TOP MICRO BAR */
.hot-1to1-top-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin-bottom: 28px;
}

.hot-1to1-brand-lockup {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
}

.hot-1to1-brand-logo-text {
  font-size: 1.15rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  color: #ffffff;
  line-height: 1;
  text-transform: uppercase;
}

.hot-1to1-brand-divider {
  width: 1px;
  height: 16px;
  background: rgba(255, 255, 255, 0.25);
}

.hot-1to1-brand-tagline {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
}

.hot-1to1-top-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.hot-1to1-top-rule {
  width: 32px;
  height: 1.5px;
  background: rgba(255, 255, 255, 0.35);
  margin-bottom: 2px;
}

.hot-1to1-top-motto {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  text-align: right;
  line-height: 1.35;
}

/* HEADLINE & MEALS COUNTER ROW */
.hot-1to1-headline-row {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin-bottom: 4px;
  width: 100%;
  gap: 8px;
}

.hot-1to1-headline-col {
  max-width: 980px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}

.hot-1to1-kicker {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  margin-bottom: 4px;
  text-align: center;
}

.hot-1to1-title {
  font-size: clamp(2.8rem, 4.5vw, 4.4rem);
  font-weight: 800;
  color: #ffffff;
  letter-spacing: -0.03em;
  line-height: 1.04;
  margin: 0;
  text-align: center;
}

.hot-1to1-subtitle {
  font-size: clamp(1.1rem, 1.35vw, 1.35rem);
  color: rgba(255, 255, 255, 0.78);
  font-weight: 400;
  margin: 0;
  line-height: 1.5;
  text-align: center;
  max-width: 840px;
}

/* ==========================================================================
   CONSTANT MOVING MARQUEE ROW (Select Meal Style)
   ========================================================================== */
.hot-1to1-marquee-viewport {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  overflow: hidden;
  padding: 16px 0 32px;
  mask-image: linear-gradient(to right, transparent 0%, black 4%, black 96%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 4%, black 96%, transparent 100%);
}

.hot-1to1-marquee-track {
  display: flex;
  width: max-content;
  gap: 32px;
  animation: hotOrderMarquee 26s linear infinite;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.hot-1to1-marquee-viewport:hover .hot-1to1-marquee-track,
.hot-1to1-marquee-track:hover {
  animation-play-state: paused !important;
}

.hot-1to1-marquee-group {
  display: flex;
  align-items: stretch;
  gap: 32px;
  flex-shrink: 0;
}

@keyframes hotOrderMarquee {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(calc(-50% - 16px), 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hot-1to1-marquee-track {
    animation: none;
  }
  .hot-1to1-marquee-viewport {
    overflow-x: auto;
    mask-image: none;
    -webkit-mask-image: none;
  }
}

.hot-1to1-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  background: transparent;
  border: none;
  padding: 0;
  text-align: center;
  position: relative;
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  outline: none;
  flex: 0 0 clamp(340px, 27vw, 440px);
  width: clamp(340px, 27vw, 440px);
}

.hot-1to1-card:hover {
  transform: translateY(-8px);
}

/* Image Wrap */
.hot-1to1-img-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 20px;
  overflow: hidden;
  background: #0d0f10;
  border: 1.5px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.65);
  margin-bottom: 18px;
  transition: border-color 0.25s ease;
}

.hot-1to1-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.hot-1to1-card:hover .hot-1to1-img-wrap {
  border-color: #558632;
}

.hot-1to1-card:hover .hot-1to1-img-wrap img {
  transform: scale(1.04);
}

.hot-1to1-card.is-selected .hot-1to1-img-wrap {
  border-color: #558632;
}

.hot-1to1-card.is-selected:hover .hot-1to1-img-wrap {
  border-color: #6ebd34;
}

/* BREAKFAST BOWL CARD (Card 01) */
.hot-1to1-bowl-wrap {
  background: #0d0f10;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.hot-1to1-tag-new {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 6;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(14, 17, 15, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: #ffffff;
  font-family: var(--font-heading, 'Switzer', -apple-system, sans-serif);
  font-size: 10.5px;
  font-weight: 850;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 5px 12px 5px 10px;
  border-radius: 999px;
  border: 1.5px solid #558632;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.18);
  line-height: 1;
  pointer-events: none;
  transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-1to1-card:hover .hot-1to1-tag-new {
  border-color: #669E3D;
  background: rgba(20, 26, 18, 0.96);
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.95), inset 0 1px 0 rgba(255, 255, 255, 0.28);
}

.hot-tag-pulse-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #669E3D;
  display: inline-block;
  flex-shrink: 0;
  animation: hotBadgeDotPulse 1.8s ease-in-out infinite;
}

@keyframes hotBadgeDotPulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.4);
    opacity: 0.55;
  }
}

.hot-tag-text {
  position: relative;
  top: 0.5px;
}

.hot-1to1-bowl-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  filter: none;
  transition: transform 0.4s ease !important;
}

.hot-1to1-card:hover .hot-1to1-bowl-img {
  transform: scale(1.04) !important;
}

/* CUSTOM CARD (5th card special box) */
.hot-1to1-custom-box {
  width: 100%;
  height: 100%;
  background: #0e1012;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 32px 20px;
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  transition: border-color 0.25s ease;
}

.hot-1to1-card:hover .hot-1to1-custom-box {
  border-color: #558632;
}

.hot-1to1-custom-arc {
  position: absolute;
  right: -25px;
  bottom: -25px;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.12);
  pointer-events: none;
}

.hot-1to1-custom-title {
  font-size: clamp(1.85rem, 2.2vw, 2.4rem);
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #ffffff;
  text-transform: uppercase;
  margin-bottom: 8px;
  text-align: center;
}

.hot-1to1-custom-desc {
  font-size: clamp(0.9rem, 1.05vw, 1.15rem);
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.7);
  text-align: center;
}

.hot-1to1-card-title {
  font-size: clamp(1.02rem, 1.15vw, 1.25rem);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #ffffff;
  line-height: 1.35;
  margin-bottom: 0;
  min-height: auto;
  text-align: center;
  width: 100%;
}

.hot-1to1-card-price {
  font-size: clamp(0.98rem, 1.08vw, 1.18rem);
  font-weight: 700;
  color: #558632;
  letter-spacing: 0.03em;
  margin-top: 8px;
  line-height: 1.2;
  text-align: center;
  width: 100%;
}

.hot-1to1-card.is-selected .hot-1to1-card-price {
  color: #6da743;
}

.hot-1to1-card-select {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.76rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.65);
  transition: color 0.2s ease;
}

.hot-1to1-radio-circle {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
  position: relative;
  flex-shrink: 0;
}

.hot-1to1-card:hover .hot-1to1-radio-circle {
  border-color: rgba(255, 255, 255, 0.85);
}

.hot-1to1-card.is-selected .hot-1to1-radio-circle {
  border-color: #558632;
  background: #558632;
  box-shadow: none;
}

.hot-1to1-card.is-selected .hot-1to1-radio-circle::after {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ffffff;
}

.hot-1to1-card.is-selected .hot-1to1-card-select {
  color: #ffffff;
  font-weight: 700;
}

/* ==========================================================================
   REDESIGNED SELECTION SUMMARY BOX (BELOW CARDS)
   ========================================================================== */
.hot-1to1-selection-summary-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 14px;
}

.hot-1to1-counter-pill {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  background: #0e1114;
  border: 1.5px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  padding: 12px 16px 12px 26px;
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.12);
  transition: color 0.3s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  max-width: 100%;
  box-sizing: border-box;
}

.hot-1to1-counter-pill:hover {
  border-color: rgba(255, 255, 255, 0.85);
  background: #15191e;
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 24px 56px rgba(0, 0, 0, 0.95), inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

.hot-1to1-counter-badge {
  display: flex;
  align-items: center;
  gap: 9px;
  background: rgba(85, 134, 50, 0.18);
  border: 1px solid rgba(85, 134, 50, 0.45);
  padding: 7px 15px;
  border-radius: 999px;
  flex-shrink: 0;
}

.hot-1to1-pulse-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #8ed658;
  display: inline-block;
  animation: hotPulseGlow 2s infinite ease-in-out;
  box-shadow: none;
}

@keyframes hotPulseGlow {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.45; transform: scale(0.85); }
}

.hot-1to1-badge-label {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: #8ed658;
  text-transform: uppercase;
  line-height: 1;
}

.hot-1to1-counter-divider {
  width: 1px;
  height: 32px;
  background: rgba(255, 255, 255, 0.15);
  flex-shrink: 0;
}

.hot-1to1-counter-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}

.hot-1to1-count-headline {
  display: flex;
  align-items: baseline;
  gap: 8px;
  line-height: 1;
}

.hot-1to1-count-num {
  font-size: 1.7rem;
  font-weight: 900;
  color: #ffffff;
  line-height: 1;
  letter-spacing: -0.02em;
}

.hot-1to1-count-unit {
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #ffffff;
  text-transform: uppercase;
}

.hot-1to1-count-dot {
  font-size: 1.25rem;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1;
  margin: 0 2px;
}

.hot-1to1-count-price {
  font-size: 1.25rem;
  font-weight: 800;
  color: #8ed658;
  line-height: 1;
  letter-spacing: 0.02em;
}

.hot-1to1-btn-edit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  cursor: pointer;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: 50%;
  transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease, transform 0.25s ease;
  flex-shrink: 0;
  margin-left: 8px;
}

.hot-1to1-btn-edit:hover {
  background: #ffffff;
  border-color: #ffffff;
  color: #000000;
  transform: scale(1.08);
  box-shadow: 0 4px 16px rgba(255, 255, 255, 0.2);
}

.hot-1to1-btn-edit svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  transition: transform 0.25s ease;
}

.hot-1to1-btn-edit:hover svg {
  transform: rotate(-15deg);
}

/* BOTTOM BAR */
.hot-1to1-bottom-bar {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.hot-1to1-bottom-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

.hot-1to1-bottom-corner {
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  line-height: 1.4;
}

.hot-1to1-bottom-corner.text-right {
  text-align: right;
}

.hot-1to1-bottom-nav {
  display: flex;
  align-items: center;
  gap: 32px;
}

.hot-1to1-btn-back {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: color 0.2s ease, transform 0.2s ease;
  padding: 8px 12px;
}

.hot-1to1-btn-back:hover {
  color: #ffffff;
  transform: translateX(-3px);
}

.hot-1to1-btn-continue {
  background: transparent;
  border: none;
  color: #ffffff;
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 12px;
  transition: transform 0.2s ease, opacity 0.2s ease;
  padding: 6px 16px 6px 6px;
  border-radius: 999px;
}

.hot-1to1-continue-icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, #10b981 0%, #059669 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(16, 185, 129, 0.45);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.hot-1to1-btn-continue:hover .hot-1to1-continue-icon {
  transform: scale(1.08);
  box-shadow: 0 6px 22px rgba(16, 185, 129, 0.7);
}

.hot-1to1-btn-continue:hover {
  transform: translateX(3px);
}

/* RESPONSIVE MEDIA QUERIES */
@media (max-width: 1200px) {
  .hot-1to1-pack-section {
    padding: clamp(90px, 10vh, 110px) 32px 32px;
    min-height: auto;
  }
}

@media (max-width: 900px) {
  .hot-1to1-pack-section {
    padding: clamp(85px, 9vh, 100px) 24px 28px;
  }
  .hot-1to1-headline-row {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .hot-1to1-bottom-row {
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
  }
  .hot-1to1-bottom-corner {
    display: none;
  }
}

@media (max-width: 768px) {
  .hot-1to1-pack-section {
    padding: clamp(75px, 8vh, 88px) 16px 28px;
    min-height: auto;
  }
  .hot-1to1-headline-col {
    margin-bottom: 20px;
  }
  .hot-1to1-title {
    font-size: clamp(1.6rem, 5vw, 2.1rem);
  }
  .hot-1to1-subtitle {
    font-size: clamp(0.85rem, 2.5vw, 0.95rem);
    line-height: 1.45;
  }
  /* Disable marquee on mobile: switch to static grid */
  .hot-1to1-marquee-viewport {
    width: 100%;
    max-width: 100%;
    position: static;
    left: auto;
    right: auto;
    margin-left: 0;
    margin-right: 0;
    overflow: visible;
    padding: 8px 0 20px;
    mask-image: none;
    -webkit-mask-image: none;
  }
  .hot-1to1-marquee-track {
    display: block;
    width: 100%;
    animation: none !important;
    transform: none !important;
  }
  /* Hide duplicate marquee group on mobile */
  .hot-1to1-marquee-group:nth-child(2),
  .hot-1to1-marquee-group[aria-hidden="true"] {
    display: none !important;
  }
  /* 2x2 Grid with 5th Custom Box on 3rd line centered */
  .hot-1to1-marquee-group:first-child {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px 12px;
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
  }
  .hot-1to1-card {
    flex: unset;
    width: 100%;
    max-width: 100%;
  }
  .hot-1to1-card:nth-child(5),
  .hot-1to1-card[data-pack-meal-type="custom"] {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc(50% - 6px);
  }
  .hot-1to1-img-wrap {
    border-radius: 14px;
    margin-bottom: 10px;
  }
  .hot-1to1-card-title {
    font-size: clamp(0.78rem, 2.6vw, 0.88rem);
    letter-spacing: 0.04em;
    line-height: 1.25;
  }
  .hot-1to1-card-price {
    font-size: clamp(0.78rem, 2.6vw, 0.88rem);
    margin-top: 4px;
  }
  .hot-1to1-custom-box {
    padding: 16px 10px;
    border-radius: 14px;
  }
  .hot-1to1-custom-title {
    font-size: clamp(1.05rem, 3.6vw, 1.25rem);
    margin-bottom: 4px;
  }
  .hot-1to1-custom-desc {
    font-size: clamp(0.68rem, 2.2vw, 0.78rem);
    line-height: 1.25;
  }
  .hot-1to1-counter-pill {
    flex-wrap: wrap;
    justify-content: center;
    border-radius: 24px;
    padding: 12px 18px;
    gap: 12px;
    text-align: center;
  }
  .hot-1to1-counter-divider {
    display: none;
  }
  .hot-1to1-counter-info {
    align-items: center;
    text-align: center;
  }
  .hot-1to1-btn-edit {
    margin-left: 0;
  }
}

/* ==========================================================================
   KEYBOARD FOCUS VISIBILITY (WCAG 2.4.7) — audit fix
   These text-style inputs had outline:none with no box-shadow/border
   substitute (unlike sibling inputs such as .pm-input's other states,
   .customizer-select, .wh-edit-select, etc., which already ring on focus
   and are left untouched here). Buttons/cards below only ring on
   :focus-visible so mouse clicks stay clean.
   ========================================================================== */
.auth-input:focus,
.pm-input:focus,
.admin-topbar-search input:focus,
.dash-nav-search input:focus,
.fl-delivery-input-wrap input:focus,
.nl-dropdown-trigger:focus {
  border-color: #558632;
  outline: 1.5px solid #558632; outline-offset: 1px;
}

.board-meta-fulfillment-btn:focus-visible,
.nl-nav-btn:focus-visible,
.nl-seasoning-item:focus-visible,
.hot-meal-card:focus-visible,
.hot-1to1-card:focus-visible,
.referral-code-txt:focus-visible {
  outline: 2px solid #558632;
  outline-offset: 2px;
}

/* ==========================================================================
   MEANINGFUL MOTION — tap/press feedback for primary CTAs
   These buttons had a hover lift (translateY + shadow bloom) but no :active
   state, so touch taps — the majority of ordering traffic — got zero visual
   confirmation the press registered until the async request resolved. A
   fast scale-down on press, released back on lift-off, gives that
   cause-and-effect feedback without competing with the existing hover motion.
   Respects prefers-reduced-motion via the existing global rule.
   ========================================================================== */
.auth-submit-btn:active:not(:disabled),
.drawer-submit-btn:active,
.hero-card-cta-btn:active,
.pm-submit-btn:active,
.btn-customizer-place-order:active,
.wh-btn-checkout:active,
.dock-cta-btn:active,
.btn-board-add-to-cart:active {
  transform: scale(0.97);
  transition: transform 0.1s var(--ease-premium, cubic-bezier(0.16, 1, 0.3, 1));
}

/* ==========================================================================
   NEWLY LAUNCHED SPOTLIGHT SECTION (100VH) - 1:1 REPLICATION
   ========================================================================== */
.hot-launch-section {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 650px;
  max-height: 1080px;
  background: #080A09;
  background: #0E0E0E;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-sizing: border-box;
  color: #FFFFFF;
  z-index: 10;
}

/* Main 100vh Stage Area */
.hot-launch-stage {
  position: relative;
  width: 100%;
  height: 100%;
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 clamp(20px, 3.5vw, 60px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  overflow: hidden;
}

/* Center Stage: Huge 3D Typography + Layered Dish (Shifted slightly up for bottom bar space) */
.hot-launch-center {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  transform: translateY(-34px);
}

.hot-launch-headline {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 1;
  pointer-events: none;
  width: 100%;
}

.hot-launch-word {
  font-family: 'Anton', 'Impact', sans-serif;
  font-weight: 900;
  font-size: clamp(8.5rem, 27vw, 29rem);
  line-height: 0.78;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: #F4EFE7;
  text-align: center;
  white-space: nowrap;
  transform: translateY(-2%);
  text-shadow: 0 10px 40px rgba(0, 0, 0, 0.6);
  width: 100%;
  display: flex;
  justify-content: center;
}

.hot-launch-word-top {
  margin-bottom: -0.04em;
}

.hot-launch-word-bot {
  /* Clean bottom text alignment */
}

/* Dish Wrapper (Interactive DJ Turntable) */
.hot-launch-dish-wrap {
  position: relative;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(340px, 37vw, 560px);
  aspect-ratio: 1 / 1;
  transform: translateY(2%);
  cursor: grab;
  user-select: none;
  touch-action: none;
  -webkit-user-select: none;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-launch-dish-wrap:hover {
  transform: translateY(2%) scale(1.03);
}

.hot-launch-dish-wrap.is-dragging {
  cursor: grabbing;
  transform: translateY(2%) scale(1.05);
}

.hot-launch-dish-glow {
  position: absolute;
  width: 90%;
  height: 90%;
  border-radius: 50%;
  background: none;
  filter: blur(24px);
  z-index: -1;
  transform: translateY(18px);
}

.hot-launch-dish-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 18px 32px rgba(0, 0, 0, 0.65)) drop-shadow(0 6px 12px rgba(0, 0, 0, 0.45));
  transform-origin: center center;
  will-change: transform;
  pointer-events: auto;
  user-select: none;
  -webkit-user-drag: none;
  touch-action: none;
  transition: filter 0.35s ease;
}

.hot-launch-dish-wrap:hover .hot-launch-dish-img {
  filter: drop-shadow(0 24px 42px rgba(0, 0, 0, 0.8)) drop-shadow(0 8px 16px rgba(0, 0, 0, 0.55));
}

.hot-launch-dish-wrap.is-dragging .hot-launch-dish-img {
  filter: drop-shadow(0 28px 48px rgba(85, 134, 50, 0.3)) drop-shadow(0 18px 32px rgba(0, 0, 0, 0.75));
}

/* Floating Particles Layer */
.hot-launch-particles {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
}

.hot-launch-garnish {
  position: absolute;
  object-fit: contain;
  pointer-events: none;
  filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.7));
  will-change: transform;
}

/* Garnish Placements and Float Animations */
.hl-g-parsley-1 {
  top: 16%;
  left: 20%;
  width: clamp(45px, 5.5vw, 85px);
  animation: hotLaunchFloat1 7s ease-in-out infinite alternate;
}

.hl-g-parsley-2 {
  top: 14%;
  right: 19%;
  width: clamp(50px, 6vw, 92px);
  transform: rotate(25deg);
  animation: hotLaunchFloat2 8.5s ease-in-out infinite alternate;
}

.hl-g-parsley-3 {
  bottom: 22%;
  left: 24%;
  width: clamp(40px, 4.8vw, 75px);
  transform: rotate(-35deg);
  animation: hotLaunchFloat3 6.5s ease-in-out infinite alternate;
}

.hl-g-parsley-4 {
  top: 42%;
  right: 17%;
  width: clamp(35px, 4.2vw, 68px);
  filter: blur(1.5px) drop-shadow(0 6px 12px rgba(0, 0, 0, 0.6));
  animation: hotLaunchFloat1 9s ease-in-out infinite alternate-reverse;
}

.hl-g-bacon-1 {
  bottom: 28%;
  left: 28%;
  width: clamp(28px, 3vw, 48px);
  animation: hotLaunchFloat2 6s ease-in-out infinite alternate;
}

.hl-g-bacon-2 {
  top: 28%;
  right: 23%;
  width: clamp(26px, 2.8vw, 44px);
  animation: hotLaunchFloat3 7.5s ease-in-out infinite alternate-reverse;
}

.hl-g-bacon-3 {
  top: 20%;
  left: 32%;
  width: clamp(22px, 2.5vw, 38px);
  animation: hotLaunchFloat1 8s ease-in-out infinite alternate;
}

/* Ambient Pepper & Seasoning Specks */
.hot-launch-speck {
  position: absolute;
  border-radius: 50%;
  background: #111412;
  box-shadow: 0 0 2px rgba(255, 255, 255, 0.2);
  pointer-events: none;
}

.hl-s-1 { width: 4px; height: 4px; top: 22%; left: 34%; }
.hl-s-2 { width: 3px; height: 3px; top: 18%; right: 28%; }
.hl-s-3 { width: 5px; height: 5px; bottom: 25%; left: 30%; }
.hl-s-4 { width: 3px; height: 3px; bottom: 32%; right: 26%; }
.hl-s-5 { width: 4px; height: 4px; top: 38%; left: 24%; }
.hl-s-6 { width: 3px; height: 3px; top: 48%; right: 21%; }
.hl-s-7 { width: 4px; height: 4px; bottom: 20%; right: 32%; }

@keyframes hotLaunchFloat1 {
  0% {
    transform: translate(0, 0) rotate(0deg);
  }
  100% {
    transform: translate(-10px, -14px) rotate(6deg);
  }
}

@keyframes hotLaunchFloat2 {
  0% {
    transform: translate(0, 0) rotate(20deg);
  }
  100% {
    transform: translate(12px, -16px) rotate(28deg);
  }
}

@keyframes hotLaunchFloat3 {
  0% {
    transform: translate(0, 0) rotate(-30deg);
  }
  100% {
    transform: translate(-8px, 12px) rotate(-22deg);
  }
}

/* ==========================================================================
   BOTTOM HORIZONTAL PILL BAR (Dish Title + HOT Green Try Now CTA)
   ========================================================================== */
.hot-launch-pill-bar {
  position: absolute;
  bottom: clamp(28px, 5vh, 52px);
  left: 50%;
  transform: translateX(-50%);
  width: clamp(340px, 68vw, 840px);
  height: clamp(54px, 6.8vh, 66px);
  background: rgba(12, 16, 13, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 8px 6px clamp(24px, 3.5vw, 48px);
  box-sizing: border-box;
  z-index: 15;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(255, 255, 255, 0.06) inset;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-launch-pill-bar:hover {
  border-color: rgba(255, 255, 255, 0.38);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.85);
}

.hot-launch-pill-title {
  flex: 1;
  font-family: var(--font-family-brand), 'Outfit', 'Montserrat', -apple-system, sans-serif;
  font-size: clamp(1rem, 1.35vw, 1.35rem);
  font-weight: 800;
  letter-spacing: 0.24em;
  color: #FFFFFF;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  user-select: none;
}

.hot-launch-pill-divider {
  width: 1px;
  height: 32px;
  background: rgba(255, 255, 255, 0.18);
  margin: 0 clamp(14px, 2vw, 24px);
  flex-shrink: 0;
}

.hot-launch-pill-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 100%;
  padding: 0 clamp(22px, 2.5vw, 36px);
  background: var(--hot-primary-500, #558632);
  background: linear-gradient(135deg, #669E3D 0%, #558632 100%);
  color: #FFFFFF;
  font-family: var(--font-family-brand), 'Outfit', 'Montserrat', -apple-system, sans-serif;
  font-size: clamp(0.8rem, 0.95vw, 0.92rem);
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 9999px;
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
  transition: color 0.25s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-launch-pill-btn:hover {
  background: var(--hot-emerald-hover, #669E3D);
  background: linear-gradient(135deg, #78B848 0%, #669E3D 100%);
  color: #FFFFFF;
  transform: scale(1.02);
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.4);
}

.hot-launch-pill-btn svg {
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.hot-launch-pill-btn:hover svg {
  transform: translateX(4px);
}

/* ==========================================================================
   RESPONSIVE LAYOUT ADJUSTMENTS FOR NEWLY LAUNCHED SECTION
   ========================================================================== */
@media (max-width: 1200px) {
  .hot-launch-word {
    font-size: clamp(7rem, 25vw, 22rem);
  }
  
  .hot-launch-center {
    transform: translateY(-28px);
  }

  .hot-launch-pill-bar {
    width: clamp(340px, 82vw, 760px);
  }
}

@media (max-width: 992px) {
  .hot-launch-section {
    height: 100vh;
    min-height: 620px;
    max-height: 1080px;
  }

  .hot-launch-stage {
    padding: 0 20px;
  }

  .hot-launch-center {
    transform: translateY(-22px);
  }

  .hot-launch-word {
    font-size: clamp(5.5rem, 22vw, 13rem);
  }

  .hot-launch-dish-wrap {
    width: clamp(280px, 55vw, 420px);
  }

  .hot-launch-pill-bar {
    width: calc(100% - 40px);
    max-width: 600px;
    bottom: 24px;
    padding: 5px 6px 5px 24px;
  }
}

@media (max-width: 768px) {
  .hot-launch-section {
    height: 100vh;
    height: 100dvh;
    min-height: 600px;
    max-height: none;
    padding: 0;
    overflow: hidden;
    background: #090A0A;
  }

  .hot-launch-stage {
    padding: 0 12px;
    width: 100%;
    height: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
  }

  .hot-launch-center {
    width: 100%;
    height: 100%;
    position: relative;
    transform: none;
    display: block;
  }

  .hot-launch-headline {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    z-index: 1;
    pointer-events: none;
  }

  .hot-launch-word {
    position: absolute;
    left: 0;
    right: 0;
    width: 100%;
    font-family: 'Bebas Neue', 'Anton', 'Impact', sans-serif;
    font-weight: 400;
    color: #FAF8F2;
    line-height: 0.8;
    text-transform: uppercase;
    text-align: center;
    white-space: nowrap;
    display: flex;
    justify-content: center;
    align-items: center;
    text-shadow:
      0.6px 0.6px 0px #E5E1D8,
      1.2px 1.2px 0px #D8D3C8,
      1.8px 1.8px 0px #CBC6B9,
      2.4px 2.4px 0px #BCB6A8,
      3px 3px 0px #ACA596,
      3.6px 3.6px 0px #9A9282,
      4.2px 4.2px 0px #857D6D,
      4.8px 4.8px 0px #6E6657,
      5.4px 5.4px 0px #544D3F,
      6px 6px 0px #383226,
      7px 7px 14px rgba(0, 0, 0, 0.8),
      0 18px 36px rgba(0, 0, 0, 0.95);
  }

  .hot-launch-word-top {
    top: 20%;
    font-size: clamp(9.6rem, 42vw, 13.5rem);
    letter-spacing: 0.02em;
    transform: scaleY(1.8);
    transform-origin: top center;
    margin: 0;
  }

  .hot-launch-word-bot {
    bottom: 21%;
    top: auto;
    font-size: clamp(7.4rem, 32.5vw, 10.8rem);
    letter-spacing: -0.06em;
    transform: scaleY(2.25);
    transform-origin: bottom center;
    margin: 0;
  }

  .hot-launch-dish-wrap {
    position: absolute;
    top: 44%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: clamp(320px, 86vw, 410px);
    aspect-ratio: 1 / 1;
    z-index: 4;
  }

  .hot-launch-dish-wrap:hover {
    transform: translate(-50%, -50%) scale(1.02);
  }

  .hot-launch-dish-wrap.is-dragging {
    transform: translate(-50%, -50%) scale(1.04);
  }

  .hot-launch-dish-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 18px 32px rgba(0, 0, 0, 0.65)) drop-shadow(0 6px 12px rgba(0, 0, 0, 0.45));
  }

  .hot-launch-particles {
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
  }

  /* Garnishes matching mobile reference 1:1 */
  .hl-g-parsley-1 {
    top: 19%;
    left: 18%;
    width: 44px;
    transform: rotate(-8deg);
  }

  .hl-g-bacon-3 {
    top: 23%;
    left: 31%;
    width: 20px;
  }

  .hl-g-parsley-2 {
    top: 17%;
    right: 17%;
    width: 48px;
    transform: rotate(25deg);
  }

  .hl-g-bacon-2 {
    top: 27%;
    right: 21%;
    width: 22px;
  }

  .hl-g-parsley-4 {
    top: 34%;
    right: 14%;
    width: 32px;
    transform: rotate(15deg);
  }

  .hl-g-bacon-1 {
    bottom: 31%;
    left: 29%;
    width: 24px;
  }

  .hl-g-parsley-3 {
    bottom: 26%;
    left: 21%;
    width: 38px;
    transform: rotate(-35deg);
  }

  /* Hide stray specks on mobile for a clean photographic finish */
  .hot-launch-speck {
    display: none;
  }

  /* Bottom Pill Bar matching reference */
  .hot-launch-pill-bar {
    position: absolute;
    bottom: calc(52px + env(safe-area-inset-bottom, 0px));
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 32px);
    max-width: 390px;
    height: 52px;
    padding: 5px 6px 5px 20px;
    background: rgba(14, 18, 15, 0.88);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 9999px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.75);
    z-index: 15;
  }

  .hot-launch-pill-title {
    font-size: 0.84rem;
    letter-spacing: 0.16em;
    font-weight: 800;
  }

  .hot-launch-pill-divider {
    display: none !important;
  }

  .hot-launch-pill-btn {
    height: 40px;
    padding: 0 18px;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    font-weight: 800;
    background: linear-gradient(135deg, #6BB338 0%, #549426 100%);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
  }
}

/* Modal & Drawer Backdrops */
.admin-drawer-backdrop,
.admin-confirm-backdrop,
.admin-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.admin-drawer-backdrop[aria-hidden="true"],
.admin-confirm-backdrop[aria-hidden="true"],
.admin-modal-backdrop[aria-hidden="true"] {
  display: none !important;
}

/* Toast notifications (admin.html's showToast()) — this container previously
   had no CSS at all, so it sat in normal document flow at the bottom of
   <body> and every toast rendered ~1500px below the viewport, invisible.
   Fixed to the bottom-right, above the drawer/confirm overlays (z-index
   10000) since a toast can fire from inside either (e.g. a refund result). */
.admin-toast-container {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 10050;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
  max-width: 360px;
}

.admin-toast {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 10px;
  background: #1a1a1a;
  border: 1px solid var(--hot-border-600, #383838);
  color: #FFFFFF;
  font-size: 0.85rem;
  font-weight: 600;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
  pointer-events: auto;
}

.admin-toast.success {
  border-color: rgba(85, 134, 50, 0.5);
}

.admin-toast.success span:first-child {
  color: #9BDB6E;
}

.admin-toast.error {
  border-color: rgba(239, 91, 91, 0.5);
}

.admin-toast.error span:first-child {
  color: #EF5B5B;
}

.admin-drawer-backdrop.open,
.admin-confirm-backdrop.open,
.admin-modal-backdrop.open {
  display: flex !important;
  opacity: 1;
  pointer-events: auto;
}

.admin-confirm-box {
  background: #181818;
  border: 1px solid #2A2A2A;
  border-radius: 12px;
  padding: 24px;
  max-width: 420px;
  width: 90%;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.6);
}

/* ==========================================================================
   HOT QUICK CHAT WIDGET & HOT SUPPORT (Premium Dark Glassmorphism)
   ========================================================================== */
.hot-chat-launcher {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(24, 24, 24, 0.88);
  backdrop-filter: blur(16px) saturate(180%);
  -webkit-backdrop-filter: blur(16px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 9999px;
  padding: 8px 18px 8px 10px;
  color: #FFFFFF;
  cursor: pointer;
  transition: opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1), transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, visibility 0.28s;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.55), 0 2px 8px rgba(0, 0, 0, 0.3);
  font-family: inherit;
  will-change: opacity, transform;
}

.hot-chat-launcher.is-footer-hidden {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(20px) scale(0.92) !important;
}

.hot-chat-launcher:hover {
  background: rgba(32, 32, 32, 0.95);
  border-color: rgba(255, 255, 255, 0.16);
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.65), 0 4px 12px rgba(0, 0, 0, 0.4);
}

.hot-chat-launcher-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #558632;
  color: #FFFFFF;
  flex-shrink: 0;
  transition: background 0.2s ease;
}

.hot-chat-launcher:hover .hot-chat-launcher-icon {
  background: #669E3D;
}

.hot-chat-launcher-label {
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #FFFFFF;
}

.hot-chat-launcher-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  background: #558632;
  color: #FFFFFF;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 9999px;
  border: 2px solid #121212;
}

.hot-chat-modal {
  position: fixed;
  bottom: 84px;
  right: 24px;
  width: 395px;
  max-width: calc(100vw - 32px);
  height: 570px;
  max-height: calc(100vh - 110px);
  background: rgba(18, 18, 18, 0.88);
  backdrop-filter: blur(28px) saturate(190%);
  -webkit-backdrop-filter: blur(28px) saturate(190%);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 22px;
  display: flex;
  flex-direction: column;
  z-index: 9999;
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.75), 0 6px 20px rgba(0, 0, 0, 0.4);
  font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  animation: hotChatFadeIn 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes hotChatFadeIn {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.hot-chat-modal[hidden] {
  display: none !important;
}

.hot-chat-btn-close-circle {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 20;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #A7B0AB;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
  padding: 0;
}

.hot-chat-btn-close-circle:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.16);
  color: #FFFFFF;
  transform: scale(1.05);
}

.hot-chat-hero-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 24px 20px 14px;
  background: transparent;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  flex-shrink: 0;
  position: relative;
}

.hot-chat-hero-logo-wrap {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.14);
  display: flex;
  align-items: center;
  justify-content: center;
  background: #141414;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5), inset 0 1px 1px rgba(255, 255, 255, 0.1);
  padding: 4px;
  margin-bottom: 10px;
}

.hot-chat-hero-logo {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: contain;
  display: block;
}

.hot-chat-hero-title {
  font-size: 18px;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 4px 0;
  letter-spacing: -0.01em;
}

.hot-chat-hero-sub {
  font-size: 13px;
  color: #A7B0AB;
  font-weight: 400;
  margin: 0;
}

.hot-chat-body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: 100%;
  overflow-y: auto !important;
  overflow-x: hidden;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: transparent;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}

.hot-chat-body::-webkit-scrollbar {
  width: 5px;
}

.hot-chat-body::-webkit-scrollbar-track {
  background: transparent;
}

.hot-chat-body::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
  border-radius: 9999px;
}

.hot-chat-body::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.18);
}

.hot-chat-messages {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: min-content;
}

.hot-chat-bubble-wrap {
  display: flex;
  flex-direction: column;
}

.hot-chat-bubble-wrap.is-user {
  align-self: flex-end;
  align-items: flex-end;
  max-width: 82%;
}

.hot-chat-bubble-wrap.is-user .hot-chat-bubble {
  background: #558632;
  color: #FFFFFF;
  border-radius: 18px 18px 4px 18px;
  padding: 12px 18px;
  font-size: 14.5px;
  line-height: 1.45;
  word-break: break-word;
  border: 1px solid #558632;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}

.hot-chat-status-receipt {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 600;
  color: #669E3D;
  margin-top: 5px;
  padding-right: 4px;
}

.hot-chat-bubble-wrap.is-staff {
  align-self: flex-start;
  align-items: flex-start;
  max-width: 85%;
}

.hot-chat-staff-row {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  width: 100%;
}

.hot-chat-mini-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: #141414;
  object-fit: contain;
  padding: 2px;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.hot-chat-bubble-wrap.is-staff .hot-chat-bubble {
  background: rgba(24, 24, 24, 0.9);
  color: #E7ECE9;
  border-radius: 18px 18px 18px 4px;
  padding: 14px 18px;
  font-size: 14.5px;
  line-height: 1.45;
  word-break: break-word;
  flex: 1;
  border: 1px solid rgba(255, 255, 255, 0.07);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
}

.hot-chat-text {
  margin: 0;
}

.hot-chat-chips {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 4px;
  padding-left: 44px;
}

.hot-chat-chip {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #E7ECE9;
  font-size: 13px;
  font-weight: 500;
  padding: 9px 14px;
  border-radius: 14px;
  cursor: pointer;
  text-align: left;
  transition: color 0.2s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  font-family: inherit;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.hot-chat-chip:hover {
  background: rgba(85, 134, 50, 0.16);
  border-color: #558632;
  color: #FFFFFF;
  transform: translateX(2px);
}

.hot-chat-composer {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  background: rgba(18, 18, 18, 0.95);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.hot-chat-input {
  flex: 1;
  background: #121212;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 22px;
  padding: 10px 16px;
  color: #FFFFFF;
  font-size: 13.5px;
  outline: none;
  resize: none;
  font-family: inherit;
  box-shadow: none;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.hot-chat-input:focus {
  border-color: #558632;
  background: #161616;
  box-shadow: none;
}

.hot-chat-input::placeholder {
  color: #78827C;
}

.hot-chat-send-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #558632;
  color: #FFFFFF;
  border: none;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.15s ease;
  flex-shrink: 0;
}

.hot-chat-send-btn:hover {
  background: #669E3D;
  transform: scale(1.05);
}

.hot-chat-send-btn:active {
  background: #466F29;
  transform: scale(0.95);
}

@media (max-width: 480px) {
  .hot-chat-modal {
    bottom: 0;
    right: 0;
    width: 100vw;
    max-width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    border: none;
  }
  .hot-chat-launcher {
    bottom: 16px;
    right: 16px;
  }
}

/* ==========================================================================
   ADMIN HOT SUPPORT & CHAT DESK (#page-chat)
   ========================================================================== */
.admin-chat-grid {
  display: grid;
  grid-template-columns: 320px 1fr 280px;
  gap: 16px;
  height: calc(100vh - 120px);
  min-height: 580px;
}

.admin-chat-inbox-col,
.admin-chat-thread-col,
.admin-chat-inspector-col {
  background: #181818;
  border: 1px solid #2A2A2A;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.admin-chat-inbox-head {
  padding: 14px;
  border-bottom: 1px solid #2A2A2A;
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #151515;
}

.admin-chat-inbox-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.admin-chat-inbox-search-wrap svg {
  position: absolute;
  left: 10px;
  color: #78827C;
  pointer-events: none;
}

.admin-chat-inbox-search {
  width: 100%;
  background: #121212;
  border: 1px solid #2A2A2A;
  border-radius: 8px;
  padding: 8px 12px 8px 32px;
  color: #FFFFFF;
  font-size: 13px;
  outline: none;
  font-family: inherit;
}

.admin-chat-inbox-search:focus {
  border-color: #558632;
}

.admin-chat-filter-tabs {
  display: flex;
  gap: 6px;
}

.admin-chat-tab-btn {
  background: #121212;
  border: 1px solid #2A2A2A;
  color: #A7B0AB;
  font-size: 12px;
  font-weight: 500;
  padding: 5px 10px;
  border-radius: 6px;
  cursor: pointer;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
  font-family: inherit;
}

.admin-chat-tab-btn:hover {
  color: #FFFFFF;
  border-color: #3A3A3A;
}

.admin-chat-tab-btn.active {
  background: #558632;
  color: #FFFFFF;
  border-color: #558632;
  font-weight: 600;
}

.admin-chat-conv-list {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.admin-chat-conv-item {
  padding: 12px 14px;
  border-bottom: 1px solid #222222;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 4px;
  transition: background 0.15s ease;
  background: transparent;
}

.admin-chat-conv-item:hover {
  background: #1F1F1F;
}

.admin-chat-conv-item.active {
  background: #232822;
  border-left: 3px solid #558632;
}

.admin-chat-conv-row-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.admin-chat-conv-name {
  font-size: 13px;
  font-weight: 600;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  gap: 6px;
}

.admin-chat-conv-time {
  font-size: 11px;
  color: #78827C;
}

.admin-chat-conv-preview {
  font-size: 12px;
  color: #A7B0AB;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-chat-conv-unread {
  background: #558632;
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 9999px;
  display: inline-block;
}

/* Thread Center Column */
.admin-chat-thread-head {
  padding: 14px 18px;
  background: #151515;
  border-bottom: 1px solid #2A2A2A;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.admin-chat-thread-customer-info {
  display: flex;
  align-items: center;
  gap: 10px;
}

.admin-chat-thread-title {
  font-size: 14px;
  font-weight: 700;
  color: #FFFFFF;
}

.admin-chat-thread-sub {
  font-size: 12px;
  color: #A7B0AB;
}

.admin-chat-thread-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.admin-chat-status-toggle {
  background: #1E1E1E;
  border: 1px solid #2A2A2A;
  color: #E7ECE9;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, transform 0.15s ease;
}

.admin-chat-status-toggle:hover {
  background: #282828;
  border-color: #3A3A3A;
}

.admin-chat-status-toggle.is-resolved {
  color: #8EB272;
  border-color: #384F2B;
}

.admin-chat-thread-stream {
  flex: 1;
  overflow-y: auto;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: #121212;
}

.admin-chat-thread-composer-box {
  padding: 14px;
  background: #151515;
  border-top: 1px solid #2A2A2A;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.admin-chat-canned-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.admin-chat-canned-label {
  font-size: 12px;
  color: #A7B0AB;
  font-weight: 500;
}

.admin-chat-canned-select {
  flex: 1;
  background: #121212;
  border: 1px solid #2A2A2A;
  border-radius: 6px;
  padding: 6px 10px;
  color: #E7ECE9;
  font-size: 12px;
  outline: none;
  font-family: inherit;
}

.admin-chat-canned-select:focus {
  border-color: #558632;
}

.admin-chat-textarea-wrap {
  display: flex;
  gap: 8px;
  align-items: flex-end;
}

.admin-chat-textarea {
  flex: 1;
  background: #121212;
  border: 1px solid #2A2A2A;
  border-radius: 8px;
  padding: 10px 12px;
  color: #FFFFFF;
  font-size: 13px;
  line-height: 1.45;
  min-height: 60px;
  max-height: 140px;
  outline: none;
  resize: none;
  font-family: inherit;
  box-shadow: none;
}

.admin-chat-textarea:focus {
  border-color: #558632;
  box-shadow: none;
}

.admin-chat-send-btn {
  background: #558632;
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  padding: 10px 18px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: background 0.15s ease;
  font-family: inherit;
  height: 42px;
}

.admin-chat-send-btn:hover {
  background: #669E3D;
}

.admin-chat-send-btn:active {
  background: #466F29;
}

/* Customer 360 Right Inspector */
.admin-chat-inspector-col {
  padding: 16px;
  overflow-y: auto;
  gap: 16px;
}

.admin-chat-inspector-title {
  font-size: 13px;
  font-weight: 700;
  color: #FFFFFF;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0;
  border-bottom: 1px solid #2A2A2A;
  padding-bottom: 8px;
}

.admin-chat-meta-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.admin-chat-meta-label {
  font-size: 11px;
  color: #78827C;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.admin-chat-meta-val {
  font-size: 13px;
  color: #FFFFFF;
  word-break: break-word;
}

.admin-chat-orders-mini-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.admin-chat-order-mini-card {
  background: #121212;
  border: 1px solid #2A2A2A;
  border-radius: 6px;
  padding: 8px 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
}

.admin-chat-order-mini-id {
  font-weight: 600;
  color: #E7ECE9;
}

.admin-chat-order-mini-total {
  color: #8EB272;
  font-weight: 700;
}

.admin-chat-order-mini-status {
  font-size: 10px;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: 4px;
  background: #242424;
  color: #A7B0AB;
}

/* Admin Chat Message Bubbles Alignment */
.admin-msg-wrap {
  display: flex;
  flex-direction: column;
  max-width: 78%;
}

.admin-msg-wrap.is-staff {
  align-self: flex-end;
  align-items: flex-end;
}

.admin-msg-wrap.is-staff .admin-msg-bubble {
  background: #182214;
  border: 1px solid #3B5D23;
  color: #FFFFFF;
  border-radius: 14px 14px 2px 14px;
  padding: 10px 14px;
}

.admin-msg-wrap.is-user {
  align-self: flex-start;
  align-items: flex-start;
}

.admin-msg-wrap.is-user .admin-msg-bubble {
  background: #1E1E1E;
  border: 1px solid #2A2A2A;
  color: #E7ECE9;
  border-radius: 14px 14px 14px 2px;
  padding: 10px 14px;
}

.admin-msg-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: #A7B0AB;
  margin-bottom: 4px;
}

.admin-msg-badge-staff {
  background: #558632;
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 4px;
  text-transform: uppercase;
}

.admin-msg-badge-user {
  background: #2A2A2A;
  color: #E7ECE9;
  font-size: 10px;
  font-weight: 600;
  padding: 1px 6px;
  border-radius: 4px;
}

.admin-msg-text {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.45;
  word-break: break-word;
}

.admin-msg-time {
  font-size: 11px;
  color: #78827C;
  margin-top: 4px;
}

/* ==========================================================================
   ADMIN ANALYTICS & CHARTS
   ========================================================================== */
.admin-analytics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
  gap: 20px;
  margin-top: 20px;
}

.admin-chart-card {
  background: #181818;
  border: 1px solid #2A2A2A;
  border-radius: 12px;
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 20px;
  position: relative;
}

.admin-chart-card h2 {
  font-size: 15px;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0;
  letter-spacing: 0.02em;
}

.admin-chart-wrap {
  position: relative;
  width: 100%;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.admin-chart-svg {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}

.chart-gridline {
  stroke: #262626;
  stroke-width: 1;
  stroke-dasharray: 4 4;
}

.chart-bar {
  transition: opacity 0.15s ease, filter 0.15s ease;
  cursor: pointer;
}

.chart-bar:hover {
  opacity: 0.85;
  filter: brightness(1.2);
}

.chart-axis-label {
  font-size: 11px;
  fill: #A7B0AB;
  font-family: inherit;
}

.chart-value-label {
  font-size: 11px;
  fill: #FFFFFF;
  font-weight: 600;
  font-family: inherit;
}

.admin-chart-tooltip {
  position: absolute;
  pointer-events: none;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.15s ease, transform 0.15s ease;
  background: #1E1E1E;
  border: 1px solid #383838;
  color: #FFFFFF;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  z-index: 20;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.6);
}

.admin-chart-tooltip.visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1100px) {
  .admin-chat-grid {
    grid-template-columns: 280px 1fr;
  }
  .admin-chat-inspector-col {
    display: none;
  }
}

@media (max-width: 768px) {
  .admin-chat-grid {
    grid-template-columns: 1fr;
    height: auto;
  }
  .admin-chat-inbox-col {
    height: 300px;
  }
  .admin-chat-thread-col {
    height: 450px;
  }
}
/* Lazy-loaded builder tiles: neutral placeholder while the photo loads
   instead of an empty black box. */
.board-card-photo {
  background: #1a1a1a;
}

/* Touch targets: enlarge the tappable area to 44px without moving anything.
   The invisible ::before extends each small link's hit box; layout is unchanged. */
.nav-item,
.site-global-footer a,
.footer-bottom-nav a {
  position: relative;
}
.nav-item::before,
.site-global-footer a::before,
.footer-bottom-nav a::before {
  content: '';
  position: absolute;
  inset: -10px -6px;
}
.board-stepper-btn {
  min-width: 40px;
  min-height: 40px;
}

/* ==========================================================================
   DESIGN REVIEW POLISH (2026-09-25)
   Small, additive fixes from the design review. Kept in one block so they
   are easy to find and revert. No locked-doc values changed (green stays
   #558632; navbar behavior untouched).
   ========================================================================== */

/* Shared size tokens — new components should use these instead of ad-hoc values.
   Text: 6-step scale. Buttons: 3 heights. Radius: locked doc = 8px UI, pill for CTAs. */
:root {
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --btn-h-sm: 36px;
  --btn-h-md: 44px;
  --btn-h-lg: 52px;
  --radius-ui: 8px;
  --radius-pill: 9999px;
}

/* Quick Chat button covered the footer motto on desktop (the hide-on-footer
   watcher is mobile-only) — reserve room for it on the right of the bottom bar. */
@media (min-width: 769px) {
  .site-footer-bottom {
    padding-right: 200px;
  }
}

/* "Staff" link: keep it reachable but stop presenting it as a customer-facing chip. */
.footer-bottom-nav a.footer-staff-link {
  background: none;
  border: none;
  border-radius: 0;
  padding: 0;
  opacity: 0.45;
}

.footer-bottom-nav a.footer-staff-link:hover,
.footer-bottom-nav a.footer-staff-link:focus-visible {
  opacity: 0.9;
}

/* Touch targets: enlarge the hit area without changing layout or the locked navbar's size. */
.reel-top-camera-btn::before,
.reel-action-btn::before {
  content: '';
  position: absolute;
  inset: -8px -6px;
}

.reel-top-camera-btn,
.reel-action-btn {
  position: relative;
}

/* Legibility floor: nothing below 11px (hover hints and reel counts were 9.5–10.4px). */
.note-hover-hint {
  font-size: 11px;
}

.reel-action-count,
.seq-scroll-cue-text {
  font-size: 0.6875rem;
}

.seq-stage3-sub-meta {
  font-size: clamp(0.6875rem, 0.74vw, 0.8rem);
}

/* White on #558632 is ~4.3:1. The locked doc pins the fill and label colour, so
   keep both and add weight, which is what the doc's "check the actual font
   size and weight" note asks for. */
.btn-stage3-order,
.hero-btn-primary,
.ps-btn-primary {
  font-weight: 700;
}

/* Pack cards on /online-order: give lazy-loading images a placeholder instead of an empty hole. */
.hot-1to1-img-wrap::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, #101213 30%, #1b1e1f 50%, #101213 70%);
  background-size: 200% 100%;
  animation: hot-skeleton-shimmer 1.4s linear infinite;
}

.hot-1to1-img-wrap img {
  position: relative;
  z-index: 1;
}

@keyframes hot-skeleton-shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .hot-1to1-img-wrap::before {
    animation: none;
  }
}


/* Sold-out menu items (staff-controlled via the admin Menu Availability tab) —
   dimmed and labelled on the step builder; selection is blocked in app.js. */
.b-card-sold-out,
[data-board-protein].b-card-sold-out,
[data-board-seasoning].b-card-sold-out,
[data-board-carb].b-card-sold-out {
  position: relative;
  opacity: 0.45;
  filter: grayscale(1);
  cursor: not-allowed;
}
.b-card-sold-out::after {
  content: 'Sold out';
  position: absolute;
  top: 8px;
  left: 8px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--color-bg, #121212);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  pointer-events: none;
}


/* ==========================================================================
   WEB INTERFACE GUIDELINES PASS (2026-09-26)
   Skip link, global focus ring, dark color-scheme, numeric alignment,
   heading wrapping, native-control theming, themed confirm dialog.
   ========================================================================== */
:root {
  color-scheme: dark;
}

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 100000;
  padding: 10px 16px;
  background: #558632;
  color: #FFFFFF;
  font-weight: 600;
  border-radius: 8px;
  text-decoration: none;
  transform: translateY(-200%);
}

.skip-link:focus,
.skip-link:focus-visible {
  transform: translateY(0);
  outline: 2px solid #FFFFFF;
  outline-offset: 2px;
}

/* Baseline keyboard focus ring. Zero specificity (:where) so any component's own
   :focus-visible style still wins. Mouse clicks don't trigger it. */
:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 2px solid #558632;
  outline-offset: 2px;
}

:where(input, select, textarea):focus-visible {
  outline-offset: 0;
}

/* Native <select> in Windows dark mode */
select {
  background-color: #181818;
  color: #FFFFFF;
}

select option {
  background-color: #181818;
  color: #FFFFFF;
}

/* Numbers that line up in tables, totals and price rows */
table,
[class*="price"],
[class*="total"],
[class*="points"],
[class*="qty"],
[class*="count"] {
  font-variant-numeric: tabular-nums;
}

h1, h2, h3 {
  text-wrap: balance;
}

p, li {
  text-wrap: pretty;
}

/* Tap behaviour on interactive controls */
a, button, [role="button"], input, select, textarea, label, summary {
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(85, 134, 50, 0.25);
}

/* Modals and drawers never chain scroll into the page behind */
dialog, [role="dialog"], [aria-modal="true"] {
  overscroll-behavior: contain;
}

/* Themed confirm dialog (hotConfirm in app.js) */
.hot-confirm-dialog {
  margin: auto; /* the global reset zeroes the UA's centering margin */
  inset: 0;
  background: #181818;
  color: #FFFFFF;
  border: 1px solid #2A2A2A;
  border-radius: 16px;
  padding: 24px;
  max-width: min(92vw, 400px);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.8);
}

.hot-confirm-dialog::backdrop {
  background: rgba(0, 0, 0, 0.7);
}

.hot-confirm-message {
  margin: 0 0 20px;
  font-size: 1rem;
  line-height: 1.5;
}

.hot-confirm-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.hot-confirm-actions button {
  min-height: 44px;
  padding: 0 20px;
  border-radius: 9999px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid #558632;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.hot-confirm-cancel {
  background: transparent;
  color: #FFFFFF;
}

.hot-confirm-cancel:hover {
  background: rgba(255, 255, 255, 0.08);
}

.hot-confirm-ok {
  background: #558632;
  color: #FFFFFF;
}

.hot-confirm-ok:hover {
  background: #4A7429;
}

/* Page FAQ block (AEO): plain details/summary list, reused on order + nutrition pages */
.hot-page-faq{max-width:52rem;margin:0 auto;padding:var(--space-2xl,4rem) 1rem}
.hot-page-faq h2{color:var(--text-primary);font-family:var(--font-family-brand);font-size:clamp(1.5rem,3vw,2.25rem);margin:0 0 1.25rem}
.hot-page-faq details{border-top:1px solid var(--border-subtle);padding:1rem 0}
.hot-page-faq details:last-child{border-bottom:1px solid var(--border-subtle)}
.hot-page-faq summary{cursor:pointer;color:var(--text-primary);font-weight:600;min-height:44px;display:flex;align-items:center}
.hot-page-faq details p{color:var(--text-secondary);margin:.5rem 0 0;line-height:1.6}

/* Cart: nothing to check out with an empty cart */
.wh-btn-checkout:disabled,
.wh-sticky-btn-checkout:disabled { opacity: 0.4; cursor: not-allowed; pointer-events: none; }
.wh-reward-box[hidden] { display: none; }

/* Build-pack size pill: never clip "5 MEALS" / "10 MEALS" */
.board-meta-meals-dropdown-wrap { flex: 0 0 auto; }
.board-meta-meals-select { min-width: 152px; }
@media (max-width: 768px) { .board-meta-meals-select { min-width: 116px; } }

/* KDS: one long unbroken string (address, instructions, schedule) must not stretch a column */
.kds-board { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kds-col-cards, .kds-card, .kds-customer-line, .kds-items-box, .kds-special-instructions,
.admin-drawer-row span, .admin-drawer-row strong { min-width: 0; overflow-wrap: anywhere; }
