    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      --black: #0a0a0a; --white: #f5f2ec; --pure: #ffffff;
      --cream: #f0ebe0; --cream2: #ede8dd;
      --orange: #e8521a; --orange-light: #f07042; --orange-glow: rgba(232,82,26,0.15);
      --green: #2d4a2d; --text: #1a1a1a; --muted: #6b7280; --border: rgba(0,0,0,0.10);
    }
    html { scroll-behavior: smooth; overflow-x: hidden; }
    body { background: var(--white); color: var(--text); font-family: 'DM Sans', sans-serif; font-size: 16px; line-height: 1.6; overflow-x: hidden; max-width: 100%; }

    /* ════════════════════════════════════════
       NAV
    ════════════════════════════════════════ */
    nav { position: fixed; top: 0; left: 0; right: 0; z-index: 200; display: flex; align-items: center; justify-content: space-between; padding: 20px 56px; background: rgba(245,242,236,0.96); backdrop-filter: blur(14px); border-bottom: 1px solid var(--border); transition: all 0.3s ease; }
    .nav-logo { font-family: 'DM Serif Display', serif; font-size: 22px; letter-spacing: 0px; color: var(--black); text-decoration: none; font-style: normal; }
    .nav-logo span { color: var(--orange); }
    .nav-links { display: flex; align-items: center; gap: 36px; list-style: none; }
    .nav-links a { text-decoration: none; font-size: 13px; font-weight: 500; letter-spacing: 1.5px; text-transform: uppercase; color: var(--text); transition: color 0.2s; }
    .nav-links a:hover { color: var(--orange); }
    .btn-nav { background: var(--black) !important; color: var(--white) !important; padding: 10px 26px !important; border-radius: 100px !important; font-weight: 600 !important; letter-spacing: 0.5px !important; transition: background 0.2s !important; }
    .btn-nav:hover { background: var(--orange) !important; }

    /* ════════════════════════════════════════
       HERO — split, full-height
    ════════════════════════════════════════ */
    .hero { min-height: 100vh; display: grid; grid-template-columns: 1fr 1fr; padding-top: 0; }
    .hero-left { display: flex; flex-direction: column; justify-content: center; padding: 100px 72px; background: var(--black); position: relative; overflow: hidden; }
    .hero-left::before { content: 'ZAC SARFATI'; position: absolute; bottom: -10px; left: -4px; right: 0; font-family: 'Bebas Neue', sans-serif; font-size: clamp(72px, 8.5vw, 118px); color: rgba(255,255,255,0.04); letter-spacing: -2px; pointer-events: none; line-height: 1; white-space: nowrap; }
    .hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--orange); margin-bottom: 24px; display: flex; align-items: center; gap: 12px; }
    .hero-eyebrow::before { content: ''; display: block; width: 32px; height: 1px; background: var(--orange); }
    .hero-title { font-family: 'Bebas Neue', sans-serif; font-size: clamp(68px, 6.5vw, 100px); line-height: 0.92; letter-spacing: 1px; color: var(--white); }
    .hero-title em { 
      font-style: italic; 
      font-family: 'Playfair Display', serif; 
      font-size: clamp(58px, 5.8vw, 90px); 
      color: var(--orange); 
      font-weight: 400;
      display: inline-block;
      transform: skewX(-4deg);
      letter-spacing: -1px;
    }
    .hero-sub { margin-top: 28px; font-size: 17px; color: rgba(245,242,236,0.6); max-width: 400px; line-height: 1.75; font-weight: 300; }
    .hero-cta-group { margin-top: 48px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
    .btn-primary { display: inline-flex; align-items: center; gap: 10px; background: var(--orange); color: #fff; text-decoration: none; padding: 17px 38px; font-weight: 600; font-size: 14px; border-radius: 100px; transition: all 0.25s; border: none; cursor: pointer; font-family: 'DM Sans', sans-serif; letter-spacing: 0.3px; }
    .btn-primary:hover { background: var(--orange-light); transform: translateY(-2px); box-shadow: 0 14px 36px rgba(232,82,26,0.38); }
    .signin-pill { position: fixed; top: 20px; right: 24px; z-index: 999; display: inline-block; padding: 10px 22px; background: var(--orange); color: #fff !important; font-family: 'DM Sans', sans-serif; font-size: 13px; font-weight: 700; border-radius: 100px; text-decoration: none !important; border: none; letter-spacing: 0.3px; box-shadow: 0 4px 16px rgba(232,82,26,0.35); transition: background 0.2s, box-shadow 0.2s; }
    .signin-pill:hover { background: var(--orange-light); box-shadow: 0 6px 22px rgba(232,82,26,0.5); }
    .btn-outline { display: inline-flex; align-items: center; color: rgba(245,242,236,0.65); font-size: 14px; font-weight: 500; transition: all 0.2s; background: none; border: 1.5px solid rgba(255,255,255,0.2); border-radius: 100px; padding: 16px 28px; cursor: pointer; font-family: 'DM Sans', sans-serif; }
    .btn-outline:hover { color: var(--white); border-color: rgba(255,255,255,0.5); }
    .hero-stats { display: flex; gap: 52px; margin-top: 72px; padding-top: 40px; border-top: 1px solid rgba(255,255,255,0.1); }
    .stat-num { font-family: 'Bebas Neue', sans-serif; font-size: 52px; color: var(--white); line-height: 1; letter-spacing: 1px; }
    .stat-num span { color: var(--orange); }
    .stat-label { font-size: 11px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; color: rgba(245,242,236,0.35); margin-top: 4px; }
    .hero-right { position: relative; background: var(--black); overflow: hidden; }
    .hero-right img { width: 100%; height: auto; display: block; object-fit: unset; }
    .hero-right::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to right, rgba(10,10,10,0.25) 0%, transparent 45%); }

    /* ════════════════════════════════════════
       TICKER
    ════════════════════════════════════════ */
    .ticker { background: var(--orange); padding: 14px 0; overflow: hidden; white-space: nowrap; }
    .ticker-inner { display: inline-flex; animation: ticker 28s linear infinite; }
    .ticker-item { font-family: 'Bebas Neue', sans-serif; font-size: 14px; letter-spacing: 3px; color: #fff; padding: 0 44px; }
    .ticker-dot { color: rgba(255,255,255,0.35); }
    @keyframes ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }

    /* ════════════════════════════════════════
       SHARED SECTION UTILS
    ════════════════════════════════════════ */
    .section-tag { font-size: 11px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--orange); margin-bottom: 14px; display: flex; align-items: center; gap: 10px; }
    .section-tag::before { content: ''; display: block; width: 24px; height: 1px; background: var(--orange); }
    .section-title { font-family: 'Bebas Neue', sans-serif; font-size: clamp(44px, 4.5vw, 68px); line-height: 0.95; letter-spacing: 1px; color: var(--black); }
    .section-title em { font-style: italic; font-family: 'Playfair Display', serif; font-weight: 400; color: var(--orange); }
    .section-desc { font-size: 16px; color: var(--muted); line-height: 1.75; font-weight: 300; }
    .section-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 56px; }
    .section-header .section-desc { max-width: 400px; }

    /* trust strip removed */

    /* ════════════════════════════════════════
       RECIPES SECTION
    ════════════════════════════════════════ */
    .section-recipes { padding: 120px 56px; background: var(--cream); }
    .filter-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 44px; }
    .filter-btn { padding: 11px 26px; font-size: 13px; font-weight: 600; border: 1.5px solid rgba(0,0,0,0.13); background: transparent; color: var(--muted); cursor: pointer; border-radius: 100px; transition: all 0.2s; font-family: 'DM Sans', sans-serif; }
    .filter-btn.active, .filter-btn:hover { background: var(--black); border-color: var(--black); color: var(--white); }
    .recipe-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; }
    .recipe-card { position: relative; border-radius: 20px; overflow: hidden; cursor: pointer; background: #111; aspect-ratio: 4/5; box-shadow: 0 4px 20px rgba(0,0,0,0.10); transition: transform 0.35s ease, box-shadow 0.35s ease; }
    .recipe-card:hover { transform: translateY(-6px); box-shadow: 0 18px 44px rgba(0,0,0,0.18); }
    .recipe-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.55s ease; }
    .recipe-card:hover img { transform: scale(1.05); }
    .recipe-card-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.84) 0%, rgba(0,0,0,0.06) 55%, transparent 100%); display: flex; flex-direction: column; justify-content: flex-end; padding: 24px 20px; }
    .recipe-name { font-family: 'DM Sans', sans-serif; font-size: 15px; font-weight: 700; color: #fff; line-height: 1.25; margin-bottom: 8px; }
    .recipe-macros { display: flex; gap: 8px; flex-wrap: wrap; }
    .macro-chip { background: rgba(255,255,255,0.13); backdrop-filter: blur(6px); border: 1px solid rgba(255,255,255,0.18); color: #fff; font-size: 11px; font-weight: 600; padding: 4px 10px; border-radius: 100px; }
    .macro-chip.protein { background: rgba(232,82,26,0.35); border-color: rgba(232,82,26,0.5); }
    .recipe-view-btn {
      position: absolute; top: 50%; left: 50%;
      transform: translate(-50%,-50%) scale(0.85);
      background: #fff; color: var(--black);
      font-family: 'DM Sans', sans-serif; font-size: 13px; font-weight: 700;
      padding: 12px 26px; border-radius: 100px;
      opacity: 0; transition: all 0.3s cubic-bezier(0.34,1.56,0.64,1);
      pointer-events: none; white-space: nowrap;
      box-shadow: 0 6px 24px rgba(0,0,0,0.3);
    }
    .recipe-card:hover .recipe-view-btn { opacity: 1; transform: translate(-50%,-50%) scale(1); }
    .recipe-card:hover .recipe-view-btn { opacity: 1; transform: translate(-50%,-50%) scale(1); }
    .recipe-badge { display: none; }

    /* ════════════════════════════════════════
       QUIZ SECTION — full width, rich layout
    ════════════════════════════════════════ */
    .section-quiz { background: var(--black); position: relative; overflow: hidden; }
    .section-quiz::before { content: ''; position: absolute; top: -100px; right: -100px; width: 500px; height: 500px; border-radius: 50%; background: radial-gradient(circle, rgba(232,82,26,0.12) 0%, transparent 70%); pointer-events: none; }

    .quiz-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }

    /* Left — intro panel */
    .quiz-intro { padding: 72px 64px 72px; display: flex; flex-direction: column; justify-content: flex-start; border-right: 1px solid rgba(255,255,255,0.07); }
    .quiz-intro .section-tag { color: var(--orange); }
    .quiz-intro .section-tag::before { background: var(--orange); }
    .quiz-intro .section-title { color: var(--white); }
    .quiz-intro .section-title em { color: var(--orange); font-family: 'Playfair Display', serif; }
    .quiz-intro-body { font-size: 16px; color: rgba(245,242,236,0.6); line-height: 1.8; font-weight: 300; margin-top: 24px; max-width: 420px; }
    .quiz-promises { margin-top: 48px; display: flex; flex-direction: column; gap: 16px; }
    .quiz-promise { display: flex; align-items: center; gap: 16px; }
    .qp-icon { width: 44px; height: 44px; background: rgba(232,82,26,0.12); border: 1px solid rgba(232,82,26,0.25); border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }
    .qp-text { font-size: 14px; color: rgba(245,242,236,0.75); font-weight: 400; line-height: 1.4; }
    .qp-text strong { color: var(--white); font-weight: 600; }
    .quiz-note { margin-top: 40px; font-size: 13px; color: rgba(245,242,236,0.35); }

    /* Right — quiz card */
    .quiz-panel { display: flex; align-items: flex-start; justify-content: center; padding: 72px 48px 72px; }
    .quiz-card { background: var(--pure); border-radius: 28px; width: 100%; max-width: 480px; overflow: hidden; box-shadow: 0 32px 80px rgba(0,0,0,0.4); }

    /* Quiz progress */
    .quiz-progress { padding: 16px 32px 0; }
    .qp-track { height: 5px; background: #f0f0f0; border-radius: 99px; overflow: hidden; }
    .qp-fill { height: 100%; background: var(--orange); border-radius: 99px; transition: width 0.5s cubic-bezier(0.4,0,0.2,1); }
    .qp-step-label { font-size: 12px; color: var(--muted); font-weight: 600; margin-top: 10px; }

    /* Quiz body */
    .quiz-body { padding: 20px 32px 32px; }
    .qb-screen { display: none; }
    .qb-screen.active { display: block; animation: qSlide 0.3s ease; }
    .qb-title { font-family: 'Bebas Neue', sans-serif; font-size: 32px; letter-spacing: 0.5px; color: var(--black); line-height: 1.05; margin-bottom: 6px; }
    .qb-sub { font-size: 14px; color: var(--muted); margin-bottom: 24px; line-height: 1.5; }

    /* Option buttons */
    .q-options { display: flex; flex-direction: column; gap: 10px; }
    .q-options.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    .q-opt { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1.5px solid #e5e7eb; border-radius: 14px; cursor: pointer; transition: all 0.2s; background: var(--pure); text-align: left; width: 100%; font-family: 'DM Sans', sans-serif; position: relative; overflow: hidden; }
    .q-opt:hover { border-color: var(--orange); background: #fff8f5; transform: translateY(-1px); }
    .q-opt.selected { border-color: var(--orange); background: #fff3ed; box-shadow: 0 0 0 3px rgba(232,82,26,0.12); }
    .q-opt-icon { font-size: 24px; flex-shrink: 0; line-height: 1; }
    .q-opt-num {
      flex-shrink: 0; font-family: 'Bebas Neue', sans-serif; font-size: 15px; letter-spacing: 1px;
      color: var(--orange); background: rgba(232,82,26,0.08); border: 1px solid rgba(232,82,26,0.2);
      border-radius: 6px; width: 32px; height: 32px; display: flex; align-items: center;
      justify-content: center; line-height: 1;
    }
    .q-opt-tag {
      flex-shrink: 0; font-family: 'Bebas Neue', sans-serif; font-size: 11px; letter-spacing: 1.5px;
      color: var(--orange); background: rgba(232,82,26,0.08); border: 1px solid rgba(232,82,26,0.2);
      border-radius: 6px; padding: 4px 8px; line-height: 1; white-space: nowrap;
    }
    .q-opt-emoji { flex-shrink: 0; font-size: 26px; line-height: 1; width: 36px; text-align: center; }
    .q-opt.compact .q-opt-emoji { font-size: 28px; margin-bottom: 2px; }
    .q-opt.compact .q-opt-num { width: 28px; height: 28px; font-size: 13px; }
    .q-opt-label { font-size: 15px; font-weight: 600; color: var(--black); display: block; }
    .q-opt-desc { font-size: 12px; color: var(--muted); display: block; margin-top: 1px; }
    .q-opt.compact { flex-direction: column; align-items: flex-start; padding: 16px; gap: 6px; }
    .q-opt.compact .q-opt-icon { font-size: 22px; }
    .q-opt.compact .q-opt-label { font-size: 14px; }
    /* multi-select tick */
    .q-tick { position: absolute; top: 10px; right: 10px; width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid #d1d5db; background: var(--pure); display: flex; align-items: center; justify-content: center; font-size: 11px; color: transparent; transition: all 0.2s; flex-shrink: 0; }
    .q-opt.selected .q-tick { background: var(--orange); border-color: var(--orange); color: white; }

    /* Number inputs */
    .q-inputs { display: flex; flex-direction: column; gap: 14px; }
    .q-input-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .q-input-wrap { display: flex; flex-direction: column; gap: 6px; }
    .q-input-label { font-size: 12px; font-weight: 700; color: var(--black); letter-spacing: 0.3px; text-transform: uppercase; }
    .q-input-field { display: flex; align-items: center; border: 1.5px solid #e5e7eb; border-radius: 12px; overflow: hidden; transition: border-color 0.2s; background: var(--pure); }
    .q-input-field:focus-within { border-color: var(--orange); box-shadow: 0 0 0 3px rgba(232,82,26,0.1); }
    .q-input-field input { flex: 1; border: none; outline: none; padding: 13px 12px; font-size: 16px; font-weight: 600; font-family: 'DM Sans', sans-serif; color: var(--black); background: transparent; min-width: 0; }
    .q-input-field input::placeholder { color: #d1d5db; font-weight: 400; }
    .q-unit { padding: 0 12px; font-size: 12px; font-weight: 700; color: var(--muted); background: #f9fafb; border-left: 1.5px solid #e5e7eb; height: 100%; display: flex; align-items: center; white-space: nowrap; letter-spacing: 0.3px; }
    .unit-toggle { display: inline-flex; background: #f3f4f6; border-radius: 10px; padding: 3px; margin-bottom: 18px; }
    .unit-btn { padding: 7px 16px; font-size: 12px; font-weight: 600; border-radius: 8px; border: none; background: transparent; color: var(--muted); cursor: pointer; transition: all 0.2s; font-family: 'DM Sans', sans-serif; }
    .unit-btn.active { background: var(--pure); color: var(--black); box-shadow: 0 1px 4px rgba(0,0,0,0.1); }

    /* Continue button */
    .q-continue { display: block; width: 100%; padding: 16px; background: var(--orange); color: white; font-family: 'DM Sans', sans-serif; font-size: 15px; font-weight: 700; border: none; border-radius: 14px; cursor: pointer; transition: all 0.25s; margin-top: 24px; }
    .q-continue:hover { background: var(--orange-light); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(232,82,26,0.35); }
    .q-continue:disabled { background: #d1d5db; cursor: not-allowed; transform: none; box-shadow: none; }

    /* Building screen */
    .q-building { text-align: center; padding: 12px 0 8px; }
    .q-building-icon { font-size: 56px; margin-bottom: 16px; animation: bounce 1.1s ease infinite; display: block; }
    @keyframes bounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
    .q-building-title { font-family: 'Bebas Neue', sans-serif; font-size: 28px; color: var(--black); margin-bottom: 6px; letter-spacing: 0.5px; }
    .q-building-sub { font-size: 14px; color: var(--muted); margin-bottom: 28px; }
    .q-dots { display: flex; gap: 8px; justify-content: center; margin-bottom: 28px; }
    .q-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--orange); animation: dotP 1.2s ease infinite; }
    .q-dot:nth-child(2){animation-delay:0.2s} .q-dot:nth-child(3){animation-delay:0.4s}
    @keyframes dotP { 0%,80%,100%{opacity:0.25;transform:scale(0.8)} 40%{opacity:1;transform:scale(1.2)} }
    .q-build-steps { text-align: left; background: #f9fafb; border-radius: 14px; padding: 16px 18px; }
    .q-build-step { display: flex; align-items: center; gap: 10px; padding: 7px 0; font-size: 13px; color: var(--muted); transition: all 0.4s; }
    .q-build-step.done { color: var(--black); font-weight: 500; }
    .q-bs-icon { width: 22px; height: 22px; border-radius: 50%; background: #e5e7eb; display: flex; align-items: center; justify-content: center; font-size: 11px; flex-shrink: 0; transition: all 0.3s; }
    .q-build-step.done .q-bs-icon { background: #16a34a; color: white; }

    /* Results inside card */
    .q-results-header { background: linear-gradient(135deg, var(--black) 0%, #1a1a1a 100%); margin: -32px -32px 24px; padding: 28px 32px 24px; border-radius: 0; position: relative; overflow: hidden; }
    .q-results-header::before { content:''; position:absolute; top:-40px; right:-40px; width:160px; height:160px; border-radius:50%; background: radial-gradient(circle, rgba(232,82,26,0.2) 0%, transparent 70%); }
    .q-res-label { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--orange); margin-bottom: 6px; }
    .q-res-title { font-family: 'Bebas Neue', sans-serif; font-size: 26px; color: white; letter-spacing: 0.5px; margin-bottom: 3px; }
    .q-res-sub { font-size: 13px; color: rgba(255,255,255,0.5); }
    .q-macro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 22px; }
    .q-macro-card { background: var(--cream); border-radius: 12px; padding: 14px 12px; text-align: center; }
    .q-macro-card.cal-card { grid-column: span 2; background: #fff3ed; border: 1px solid rgba(232,82,26,0.2); }
    .q-macro-val { font-family: 'Bebas Neue', sans-serif; font-size: 34px; color: var(--black); letter-spacing: 1px; line-height: 1; }
    .q-macro-card.cal-card .q-macro-val { color: var(--orange); font-size: 44px; }
    .q-macro-unit { font-size: 14px; color: var(--muted); font-family: 'DM Sans', sans-serif; }
    .q-macro-lbl { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); margin-top: 3px; }
    .q-teasers { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 22px; }
    .q-teaser { position: relative; border-radius: 12px; overflow: hidden; aspect-ratio: 1; background: #e5e7eb; }
    .q-teaser img { width:100%; height:100%; object-fit:cover; filter:blur(7px) brightness(0.55); transform:scale(1.05); display:block; }
    .q-teaser-lock { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
    .q-lock-ring { width:34px; height:34px; background:rgba(255,255,255,0.15); backdrop-filter:blur(6px); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:15px; }
    .q-teaser-name { position:absolute; bottom:0; left:0; right:0; padding:8px 8px 6px; background:linear-gradient(transparent,rgba(0,0,0,0.7)); font-size:10px; font-weight:600; color:rgba(255,255,255,0.7); text-align:center; }
    .q-cta-price { font-family: 'Bebas Neue', sans-serif; font-size: 40px; color: var(--black); letter-spacing: -0.5px; text-align: center; line-height: 1; }
    .q-cta-price span { font-size: 18px; font-family: 'DM Sans', sans-serif; color: var(--muted); font-weight: 400; }
    .q-cta-sub { text-align: center; font-size: 13px; color: var(--muted); margin: 4px 0 16px; }
    .q-plan-toggle { display:flex; gap:10px; margin-top:18px; }
    .q-plan-opt { flex:1; padding:12px 10px; border:2px solid #e5e5e5; border-radius:12px; text-align:center; cursor:pointer; font-weight:600; font-size:14px; transition:all 0.2s; }
    .q-plan-opt span { display:block; font-size:12px; font-weight:400; color:#888; margin-top:2px; }
    .q-plan-opt em { font-style:normal; color:#e8521a; font-weight:600; }
    .q-plan-opt--active { border-color:#e8521a; background:rgba(232,82,26,0.06); }
    .q-cta-btn { display: block; width: 100%; padding: 18px; background: var(--orange); color: white; font-family: 'DM Sans', sans-serif; font-size: 16px; font-weight: 700; border: none; border-radius: 14px; cursor: pointer; transition: all 0.25s; text-align: center; text-decoration: none; }
    .q-cta-btn:hover { background: var(--orange-light); transform: translateY(-2px); box-shadow: 0 12px 32px rgba(232,82,26,0.35); }
    .q-cta-note { text-align:center; font-size:12px; color:var(--muted); margin-top:10px; line-height:1.5; }

    /* ════════════════════════════════════════
       ABOUT SECTION — expanded, white bg
    ════════════════════════════════════════ */
    .section-about { background: var(--pure); }
    .about-top { display: grid; grid-template-columns: 1fr 1fr; min-height: 85vh; }
    .about-image { position: relative; overflow: hidden; }
    .about-image img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
    .about-content { display: flex; flex-direction: column; justify-content: center; padding: 100px 72px; }
    .about-content .section-tag::before { display: none; }
    .about-content .section-title { color: var(--black); }
    .about-body { font-size: 16px; color: var(--muted); line-height: 1.85; font-weight: 400; margin-top: 28px; max-width: 480px; }
    .about-body strong { color: var(--text); font-weight: 600; }

    /* Philosophy quote */
    .about-quote { margin-top: 40px; padding: 28px 32px; background: var(--cream); border-radius: 20px; border-left: 4px solid var(--orange); max-width: 480px; }
    .about-quote blockquote { font-family: 'Playfair Display', serif; font-size: 20px; color: var(--black); line-height: 1.5; font-style: italic; }
    .about-quote cite { display: block; margin-top: 10px; font-size: 12px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--orange); font-style: normal; }

    /* Features grid */
    .features-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 44px; max-width: 480px; }
    .feature-item { background: var(--cream); border-radius: 18px; padding: 24px; transition: background 0.2s, transform 0.2s; }
    .feature-item:hover { background: var(--cream2); transform: translateY(-2px); }
    .feature-icon { font-size: 24px; margin-bottom: 12px; display: block; }
    .feature-title { font-size: 14px; font-weight: 700; color: var(--text); margin-bottom: 5px; }
    .feature-desc { font-size: 13px; color: var(--muted); line-height: 1.6; }

    /* Stats bar / equipment — removed */

    /* Equipment row */
    .about-equipment { background: var(--cream); padding: 80px 56px; }
    .equipment-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 56px; }
    .eq-card { background: var(--pure); border-radius: 24px; padding: 40px 32px; text-align: center; box-shadow: 0 4px 24px rgba(0,0,0,0.06); transition: transform 0.25s, box-shadow 0.25s; }
    /* ════════════════════════════════════════
       CTA SECTION
    ════════════════════════════════════════ */
    /* ─── New 3-tier pricing section ─────────────────────────────── */
    .section-cta {
      background: var(--black);
      padding: 100px 56px 120px;
      display: block;
      position: relative;
    }
    .cta-header-row { text-align: center; margin-bottom: 56px; }
    .cta-header-row .section-title { color: var(--white); }
    .cta-header-row .section-title em { color: var(--orange); font-family: 'Playfair Display', serif; }
    .cta-header-row .section-tag { color: var(--orange); justify-content: center; display: inline-flex; }
    .cta-header-row .section-tag::before { background: var(--orange); }
    .cta-body { font-size: 16px; color: rgba(245,242,236,0.65); line-height: 1.7; font-weight: 300; }
    .cta-body strong { color: var(--white); font-weight: 600; }

    /* Monthly / Annual toggle */
    .pricing-toggle {
      display: inline-flex;
      background: rgba(255,255,255,0.06);
      border: 1px solid rgba(255,255,255,0.12);
      border-radius: 100px;
      padding: 4px;
      margin-top: 28px;
      gap: 4px;
    }
    .pt-btn {
      background: transparent;
      border: none;
      color: rgba(255,255,255,0.65);
      font-family: 'DM Sans', sans-serif;
      font-weight: 700;
      font-size: 13px;
      letter-spacing: 0.3px;
      padding: 11px 22px;
      border-radius: 100px;
      cursor: pointer;
      transition: all 0.2s;
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }
    .pt-btn.active { background: var(--orange); color: #fff; }
    .pt-btn:hover:not(.active) { color: var(--white); }
    .pt-save {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 0.5px;
      background: rgba(255,255,255,0.18);
      padding: 3px 8px;
      border-radius: 100px;
      text-transform: uppercase;
    }
    .pt-btn.active .pt-save { background: rgba(255,255,255,0.22); }

    /* 2-card grid (was 3) */
    .pricing-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 28px;
      max-width: 880px;
      margin: 0 auto;
      align-items: stretch;
    }
    .pricing-card {
      position: relative;
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: 24px;
      padding: 36px 28px 32px;
      display: flex;
      flex-direction: column;
      transition: all 0.3s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .pricing-card:hover {
      border-color: rgba(232,82,26,0.4);
      transform: translateY(-4px);
      box-shadow: 0 24px 64px rgba(0,0,0,0.4);
    }
    .pricing-card.pc-hero {
      background: linear-gradient(180deg, rgba(232,82,26,0.12), rgba(232,82,26,0.04));
      border: 2px solid var(--orange);
      transform: scale(1.04);
      box-shadow: 0 20px 60px rgba(232,82,26,0.18);
    }
    .pricing-card.pc-hero:hover { transform: scale(1.04) translateY(-4px); }

    .pc-badge {
      position: absolute;
      top: -14px;
      left: 50%;
      transform: translateX(-50%);
      background: var(--orange);
      color: #fff;
      font-size: 11px;
      font-weight: 800;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      padding: 6px 18px;
      border-radius: 100px;
      box-shadow: 0 6px 16px rgba(232,82,26,0.4);
    }
    .pc-tier {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 30px;
      letter-spacing: 1px;
      color: var(--white);
      margin-bottom: 14px;
    }
    .pc-price { display: flex; align-items: baseline; gap: 6px; line-height: 1; }
    .pc-amount {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 56px;
      color: var(--white);
      letter-spacing: 1px;
      line-height: 1;
    }
    .pc-suffix {
      font-family: 'DM Sans', sans-serif;
      font-size: 16px;
      font-weight: 600;
      color: rgba(255,255,255,0.55);
    }
    .pc-sub {
      font-size: 12px;
      color: rgba(255,255,255,0.4);
      margin-top: 6px;
      font-weight: 500;
    }
    .pc-features {
      list-style: none;
      padding: 0;
      margin: 26px 0 28px;
      display: flex;
      flex-direction: column;
      gap: 12px;
      flex: 1;
    }
    .pc-features li {
      font-size: 14px;
      color: rgba(245,242,236,0.78);
      line-height: 1.5;
      padding-left: 26px;
      position: relative;
    }
    .pc-features li::before {
      content: '✓';
      position: absolute;
      left: 0;
      top: 1px;
      width: 18px;
      height: 18px;
      background: rgba(232,82,26,0.18);
      color: var(--orange);
      font-weight: 800;
      font-size: 10px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .pc-features li[style*="opacity"]::before { content: ''; background: transparent; }
    .pc-features li strong { color: var(--white); font-weight: 700; }
    .pc-cta {
      display: block;
      text-align: center;
      background: rgba(255,255,255,0.06);
      color: var(--white);
      text-decoration: none;
      padding: 16px;
      font-family: 'DM Sans', sans-serif;
      font-weight: 800;
      font-size: 14px;
      letter-spacing: 0.3px;
      border: 1.5px solid rgba(255,255,255,0.18);
      border-radius: 100px;
      transition: all 0.25s;
      cursor: pointer;
    }
    .pc-cta:hover {
      background: rgba(255,255,255,0.12);
      border-color: rgba(255,255,255,0.32);
      transform: translateY(-2px);
    }
    .pc-cta-primary {
      background: var(--orange);
      border-color: var(--orange);
      box-shadow: 0 8px 24px rgba(232,82,26,0.32);
    }
    .pc-cta-primary:hover {
      background: var(--orange-light);
      border-color: var(--orange-light);
      box-shadow: 0 12px 32px rgba(232,82,26,0.42);
    }

    /* Refund line */
    .cta-guarantee {
      text-align: center;
      margin: 48px auto 0;
      max-width: 640px;
      padding: 18px 24px;
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 100px;
      color: rgba(255,255,255,0.78);
      font-size: 14px;
      line-height: 1.5;
    }
    .cta-guarantee strong { color: var(--white); }

    .cta-login { text-align: center; margin-top: 16px; font-size: 13px; color: rgba(255,255,255,0.5); }
    .cta-login a { color: rgba(255,255,255,0.78); text-decoration: none; }
    .cta-login a:hover { color: var(--white); }

    /* Legacy classes kept so other pages don't break */
    .cta-btn-full { display: block; width: 100%; text-align: center; background: var(--orange); color: #fff; text-decoration: none; padding: 19px; font-weight: 700; font-size: 15px; border-radius: 100px; transition: all 0.25s; border: none; cursor: pointer; font-family: 'DM Sans', sans-serif; }
    .cta-btn-full:hover { background: var(--orange-light); transform: translateY(-2px); box-shadow: 0 16px 44px rgba(232,82,26,0.32); }
    .cta-includes { margin: 36px 0; list-style: none; display: flex; flex-direction: column; gap: 13px; }
    .cta-includes li { display: flex; align-items: center; gap: 12px; font-size: 15px; color: rgba(245,242,236,0.75); font-weight: 400; }

    /* ════════════════════════════════════════
       MODAL
    ════════════════════════════════════════ */
    .modal-overlay { position: fixed; inset: 0; z-index: 300; background: rgba(10,10,10,0.75); backdrop-filter: blur(10px); display: flex; align-items: center; justify-content: center; padding: 24px; opacity: 0; pointer-events: none; transition: opacity 0.3s; }
    .modal-overlay.open { opacity: 1; pointer-events: all; }
    .modal { background: var(--pure); border-radius: 24px; max-width: 880px; width: 100%; max-height: 90vh; overflow-y: auto; display: grid; grid-template-columns: 1fr 1fr; box-shadow: 0 32px 80px rgba(0,0,0,0.4); transform: translateY(20px); transition: transform 0.3s; }
    .modal-overlay.open .modal { transform: translateY(0); }
    .modal-img { position: relative; }
    .modal-img img { width: 100%; height: 100%; object-fit: cover; border-radius: 24px 0 0 24px; display: block; min-height: 440px; }
    .modal-body { padding: 44px 40px; overflow-y: auto; user-select: none; -webkit-user-select: none; }
    .modal-cat { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--orange); margin-bottom: 10px; }
    .modal-title { font-family: 'DM Sans', sans-serif; font-size: 26px; font-weight: 800; color: var(--black); line-height: 1.2; margin-bottom: 16px; }
    .modal-desc { font-size: 14px; color: var(--muted); line-height: 1.75; margin-bottom: 24px; }
    .modal-macro-row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 28px; }
    .modal-macro { background: var(--cream); border-radius: 14px; padding: 14px 16px; text-align: center; flex: 1; min-width: 72px; }
    .modal-macro-val { font-family: 'Bebas Neue', sans-serif; font-size: 30px; color: var(--black); letter-spacing: 1px; line-height: 1; }
    .modal-macro-val span { color: var(--orange); }
    .modal-macro-lbl { font-size: 10px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); margin-top: 4px; }
    .modal-meta { display: flex; gap: 16px; margin-bottom: 28px; flex-wrap: wrap; }
    .modal-meta-item { font-size: 13px; color: var(--muted); display: flex; align-items: center; gap: 6px; }
    .modal-meta-item strong { color: var(--text); }
    .serving-btn.active { background: var(--orange) !important; color: white !important; border-color: var(--orange) !important; }
    .modal-cta { display: block; width: 100%; text-align: center; background: var(--orange); color: #fff; text-decoration: none; padding: 16px; font-weight: 700; font-size: 14px; border-radius: 100px; border: none; cursor: pointer; font-family: 'DM Sans', sans-serif; transition: all 0.25s; }
    .modal-cta:hover { background: var(--orange-light); box-shadow: 0 8px 24px rgba(232,82,26,0.3); }
    .modal-ig { display: inline-flex; align-items: center; justify-content: center; gap: 0; margin-top: 12px; background: var(--orange); color: #fff; text-decoration: none; padding: 11px 22px; font-weight: 700; font-size: 12px; border-radius: 100px; transition: all 0.25s; border: none; cursor: pointer; font-family: 'DM Sans', sans-serif; letter-spacing: 0.3px; width: auto; box-sizing: border-box; overflow: hidden; position: relative; align-self: flex-start; }
    .modal-ig:hover { background: var(--orange-light); transform: translateY(-1px); }
    .modal-ig .ihb-text { transition: transform 0.3s ease; }
    .modal-ig .ihb-arrow { display: inline-block; width: 0; overflow: hidden; opacity: 0; transition: width 0.3s ease, opacity 0.3s ease, margin 0.3s ease; margin-left: 0; font-size: 16px; }
    .modal-ig:hover .ihb-text { transform: translateX(-4px); }
    .modal-ig:hover .ihb-arrow { width: 20px; opacity: 1; margin-left: 8px; }
    .modal-close { position: absolute; top: 14px; right: 14px; width: 42px; height: 42px; border-radius: 50%; background: rgba(0,0,0,0.7); border: 2px solid rgba(255,255,255,0.4); color: #fff; font-size: 20px; font-weight: 700; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 999; transition: background 0.2s, transform 0.15s; box-shadow: 0 4px 14px rgba(0,0,0,0.35); touch-action: manipulation; }
    .modal-close:hover { background: rgba(0,0,0,0.92); transform: scale(1.05); }
    @media (max-width: 768px) {
      .modal-close { top: max(12px, env(safe-area-inset-top, 12px)); right: 12px; width: 44px; height: 44px; }
    }

    /* ════════════════════════════════════════
       FOOTER
    ════════════════════════════════════════ */
    footer { background: #050505; padding: 52px 56px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,0.05); }
    .footer-logo { font-family: 'DM Serif Display', serif; font-size: 20px; letter-spacing: 0; color: var(--white); text-decoration: none; }
    .footer-copy { font-size: 13px; color: rgba(255,255,255,0.22); }
    .footer-ig { display: flex; align-items: center; gap: 8px; color: rgba(255,255,255,0.45); text-decoration: none; font-size: 13px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; transition: color 0.2s; }
    .footer-ig:hover { color: var(--orange); }
    .ig-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--orange); animation: igpulse 2s infinite; }
    @keyframes igpulse { 0%,100%{opacity:1} 50%{opacity:0.3} }

    /* ════════════════════════════════════════
       SOCIAL PROOF BANNER
    ════════════════════════════════════════ */
    .social-proof-banner {
      background: var(--pure);
      border-bottom: 1px solid var(--border);
      padding: 18px 56px;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0;
      flex-wrap: wrap;
    }
    .spb-item {
      display: flex;
      align-items: center;
      gap: 0;
      font-size: 11px;
      font-weight: 700;
      color: var(--text);
      letter-spacing: 2px;
      text-transform: uppercase;
      padding: 0 36px;
      border-right: 1px solid var(--border);
    }
    .spb-item:last-child { border-right: none; }
    .spb-dot {
      width: 5px; height: 5px;
      border-radius: 50%;
      background: var(--orange);
      margin-right: 10px;
      flex-shrink: 0;
    }
    .spb-divider { display: none; }

    /* ════════════════════════════════════════
       TESTIMONIALS — infinite ticker scroll
    ════════════════════════════════════════ */
    .section-testimonials {
      padding: 100px 0;
      background: var(--white);
      overflow: hidden;
    }
    .testimonials-header {
      text-align: center;
      margin-bottom: 56px;
      padding: 0 56px;
    }
    .testimonials-header .section-tag { justify-content: center; }
    .testimonials-header .section-tag::before { display: none; }
    .testimonials-header .section-tag::after { content: ''; display: block; width: 24px; height: 1px; background: var(--orange); }

    .ticker-testimonials {
      overflow: hidden;
      position: relative;
      /* fade edges */
      mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
      -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
    }
    .ticker-testimonials-track {
      display: flex;
      gap: 20px;
      width: max-content;
      animation: testimonialScroll 38s linear infinite;
    }
    .ticker-testimonials-track:hover { animation-play-state: paused; }
    @keyframes testimonialScroll {
      from { transform: translateX(0); }
      to   { transform: translateX(-50%); }
    }
    .testimonial-card {
      flex-shrink: 0;
      width: 340px;
      background: var(--pure);
      border: 1.5px solid var(--border);
      border-radius: 24px;
      padding: 28px 28px 24px;
      position: relative;
      transition: transform 0.3s, box-shadow 0.3s;
    }
    .testimonial-card:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(0,0,0,0.08); }
    .tc-stars { color: #f59e0b; font-size: 15px; letter-spacing: 2px; margin-bottom: 14px; }
    .tc-quote {
      font-size: 14px;
      color: var(--text);
      line-height: 1.7;
      font-weight: 400;
      margin-bottom: 20px;
      font-style: italic;
    }
    .tc-author { display: flex; align-items: center; gap: 12px; }
    .tc-avatar {
      width: 40px; height: 40px;
      border-radius: 50%;
      background: var(--orange);
      display: flex; align-items: center; justify-content: center;
      font-family: 'Bebas Neue', sans-serif;
      font-size: 16px;
      color: white;
      flex-shrink: 0;
    }
    .tc-name { font-size: 14px; font-weight: 700; color: var(--text); }
    .tc-meta { font-size: 12px; color: var(--muted); margin-top: 2px; }
    .tc-goal-badge {
      position: absolute;
      top: 18px; right: 18px;
      background: var(--cream);
      color: var(--orange);
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 1px;
      text-transform: uppercase;
      padding: 4px 10px;
      border-radius: 100px;
    }
    /* hide old carousel controls CSS — no longer needed */
    .carousel-controls { display: none; }
    .carousel-btn { display: none; }
    .carousel-dots { display: none; }

    /* ════════════════════════════════════════
       HOW IT WORKS
    ════════════════════════════════════════ */
    .section-how {
      padding: 100px 56px;
      background: var(--cream);
    }
    .how-header { text-align: center; margin-bottom: 72px; }
    .how-header .section-tag { justify-content: center; }
    .how-header .section-tag::before { display: none; }
    .how-header .section-tag::after { content: ''; display: block; width: 24px; height: 1px; background: var(--orange); }
    .how-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 32px;
      max-width: 900px;
      margin: 0 auto;
      position: relative;
    }
    .how-grid::before {
      content: '';
      position: absolute;
      top: 40px;
      left: calc(16.666% + 16px);
      right: calc(16.666% + 16px);
      height: 1px;
      background: repeating-linear-gradient(to right, var(--orange) 0, var(--orange) 8px, transparent 8px, transparent 16px);
      pointer-events: none;
    }
    .how-step { text-align: center; position: relative; }
    .how-num {
      width: 80px; height: 80px;
      border-radius: 50%;
      background: var(--black);
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 24px;
      position: relative;
      transition: transform 0.3s;
    }
    .how-step:hover .how-num { transform: scale(1.08); }
    .how-num-inner {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 32px;
      color: var(--orange);
      letter-spacing: 1px;
    }
    .how-step-emoji {
      position: absolute;
      bottom: -6px; right: -6px;
      font-size: 22px;
      background: var(--cream);
      border-radius: 50%;
      width: 32px; height: 32px;
      display: flex; align-items: center; justify-content: center;
    }
    .how-title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 24px;
      letter-spacing: 0.5px;
      color: var(--black);
      margin-bottom: 10px;
    }
    .how-desc { font-size: 14px; color: var(--muted); line-height: 1.65; max-width: 220px; margin: 0 auto; }

    /* ════════════════════════════════════════
       MID PAGE CTA
    ════════════════════════════════════════ */
    .section-mid-cta {
      background: var(--orange);
      padding: 72px 56px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 40px;
      flex-wrap: wrap;
    }
    .mid-cta-left {}
    .mid-cta-tag {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: rgba(255,255,255,0.7);
      margin-bottom: 10px;
    }
    .mid-cta-title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(36px, 3.5vw, 52px);
      letter-spacing: 0.5px;
      color: #fff;
      line-height: 1;
    }
    .mid-cta-sub { font-size: 15px; color: rgba(255,255,255,0.75); margin-top: 12px; font-weight: 300; }
    .btn-white {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      background: #fff;
      color: var(--orange);
      text-decoration: none;
      padding: 18px 40px;
      font-weight: 700;
      font-size: 15px;
      border-radius: 100px;
      border: none;
      cursor: pointer;
      font-family: 'DM Sans', sans-serif;
      transition: all 0.25s;
      white-space: nowrap;
    }
    .btn-white:hover { background: var(--black); color: #fff; transform: translateY(-2px); box-shadow: 0 12px 32px rgba(0,0,0,0.25); }

    /* ════════════════════════════════════════
       FAQ
    ════════════════════════════════════════ */
    .section-faq {
      padding: 100px 56px;
      background: var(--white);
    }
    .faq-layout {
      display: grid;
      grid-template-columns: 1fr 2fr;
      gap: 80px;
      max-width: 1100px;
      margin: 0 auto;
      align-items: start;
    }
    .faq-left { position: sticky; top: 120px; }
    .faq-list { display: flex; flex-direction: column; }
    .faq-item {
      border-bottom: 1px solid var(--border);
      overflow: hidden;
    }
    .faq-q {
      width: 100%;
      text-align: left;
      background: none;
      border: none;
      padding: 22px 0;
      font-size: 16px;
      font-weight: 600;
      color: var(--text);
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      font-family: 'DM Sans', sans-serif;
      transition: color 0.2s;
    }
    .faq-q:hover { color: var(--orange); }
    .faq-q.open { color: var(--orange); }
    .faq-icon {
      width: 28px; height: 28px;
      border-radius: 50%;
      border: 1.5px solid var(--border);
      display: flex; align-items: center; justify-content: center;
      font-size: 16px;
      flex-shrink: 0;
      transition: all 0.3s;
      color: var(--muted);
    }
    .faq-q.open .faq-icon {
      background: var(--orange);
      border-color: var(--orange);
      color: white;
      transform: rotate(45deg);
    }
    .faq-a {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.4s cubic-bezier(0.4,0,0.2,1), padding 0.3s;
      font-size: 15px;
      color: var(--muted);
      line-height: 1.75;
      font-weight: 400;
    }
    .faq-a.open {
      max-height: 400px;
      padding-bottom: 20px;
    }

    /* ════════════════════════════════════════
       INSTAGRAM GRID
    ════════════════════════════════════════ */
    .section-instagram {
      padding: 80px 56px;
      background: var(--cream);
      text-align: center;
    }
    .ig-header { margin-bottom: 40px; }
    .ig-handle {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      font-size: 15px;
      font-weight: 700;
      color: var(--text);
      text-decoration: none;
      background: var(--pure);
      padding: 10px 20px;
      border-radius: 100px;
      border: 1.5px solid var(--border);
      margin-top: 16px;
      transition: all 0.2s;
    }
    .ig-handle:hover { border-color: var(--orange); color: var(--orange); }
    .ig-grid {
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      gap: 8px;
      max-width: 960px;
      margin: 0 auto 40px;
    }
    .ig-item {
      aspect-ratio: 1;
      border-radius: 16px;
      overflow: hidden;
      position: relative;
      background: #111;
      cursor: pointer;
    }
    .ig-item img {
      width: 100%; height: 100%;
      object-fit: cover;
      display: block;
      transition: transform 0.5s ease;
    }
    .ig-item:hover img { transform: scale(1.08); }
    .ig-item::after {
      content: '';
      position: absolute; inset: 0;
      background: rgba(232,82,26,0);
      transition: background 0.3s;
    }
    .ig-item:hover::after { background: rgba(232,82,26,0.2); }

    /* ════════════════════════════════════════
       DIA TEXT REVEAL — quote
    ════════════════════════════════════════ */
    .about-quote-heading { margin-bottom: 28px; perspective: 1000px; }
    .dia-reveal-line {
      overflow: hidden;
      margin-bottom: 2px;
      line-height: 1.1;
    }
    .dia-word {
      display: inline-block;
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-size: clamp(26px, 3vw, 44px);
      color: var(--black);
      font-weight: 400;
      letter-spacing: -0.3px;
      /* Start state — masked below the line */
      opacity: 0;
      transform: translateY(110%);
      transition: opacity 0.6s cubic-bezier(0.16,1,0.3,1),
                  transform 0.6s cubic-bezier(0.16,1,0.3,1);
      transition-delay: var(--d, 0s);
    }
    .about-quote-heading.in-view .dia-word {
      opacity: 1;
      transform: translateY(0%);
    }
    .about-quote-cite {
      font-family: 'DM Sans', sans-serif;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      color: var(--orange);
      margin-top: 14px;
      opacity: 0;
      transition: opacity 0.5s ease;
      transition-delay: 0.6s;
    }
    .about-quote-heading.in-view .about-quote-cite { opacity: 1; }
    /* Feature items — no emoji version */
    .feature-item { background: var(--cream); border-radius: 18px; padding: 22px; transition: background 0.2s, transform 0.2s; }
    .feature-item:hover { background: var(--cream2); transform: translateY(-2px); }
    .feature-icon { display: none; } /* hide emoji icons */
    .feature-title { font-size: 14px; font-weight: 700; color: var(--text); margin-bottom: 5px; }
    .feature-title::before { content: '—'; color: var(--orange); margin-right: 8px; font-weight: 700; }
    .feature-desc { font-size: 13px; color: var(--muted); line-height: 1.6; }

    /* ════════════════════════════════════════
       INTERACTIVE HOVER BUTTON (fixed)
    ════════════════════════════════════════ */
    .ihb {
      display: inline-flex !important;
      align-items: center;
      gap: 0;
      overflow: hidden;
      position: relative;
    }
    .ihb-text {
      transition: transform 0.3s ease;
    }
    .ihb-arrow {
      display: inline-block;
      width: 0;
      overflow: hidden;
      opacity: 0;
      transition: width 0.3s ease, opacity 0.3s ease, margin 0.3s ease;
      margin-left: 0;
      font-size: 16px;
    }
    .ihb:hover .ihb-text { transform: translateX(-4px); }
    .ihb:hover .ihb-arrow { width: 20px; opacity: 1; margin-left: 8px; }

    /* Ripple */
    .btn-ripple {
      position: absolute;
      border-radius: 50%;
      background: rgba(255,255,255,0.25);
      transform: scale(0);
      animation: rippleOut 0.6s linear forwards;
      pointer-events: none;
    }
    @keyframes rippleOut {
      to { transform: scale(4); opacity: 0; }
    }


    /* ════════════════════════════════════════
       HEXAGON PATTERN (for CTA background)
    ════════════════════════════════════════ */
    .hexagon-bg {
      position: absolute;
      inset: 0;
      overflow: hidden;
      pointer-events: none;
      opacity: 0.07;
    }
    .hexagon-bg svg { width: 100%; height: 100%; }

    /* ════════════════════════════════════════
       NUMBER TICKER
    ════════════════════════════════════════ */
    .number-ticker {
      display: inline-block;
      font-variant-numeric: tabular-nums;
    }

    /* ════════════════════════════════════════
       TEXT 3D FLIP
    ════════════════════════════════════════ */
    .text-3d-flip {
      display: inline-block;
      perspective: 400px;
    }
    .text-3d-flip-inner {
      display: inline-block;
      transition: transform 0.6s cubic-bezier(0.4, 0.2, 0.2, 1);
      transform-style: preserve-3d;
      position: relative;
    }
    .text-3d-flip:hover .text-3d-flip-inner {
      transform: rotateX(360deg);
    }
    .text-3d-flip-inner::before {
      content: attr(data-text);
      position: absolute;
      inset: 0;
      backface-visibility: hidden;
      -webkit-backface-visibility: hidden;
    }

    /* ════════════════════════════════════════
       ANIMATED QUIZ INPUT UNITS
    ════════════════════════════════════════ */
    .q-unit-animated {
      padding: 0 12px;
      font-size: 11px;
      font-weight: 600;
      background: #f3f4f6;
      color: var(--muted);
      height: 100%;
      display: flex;
      align-items: center;
      white-space: nowrap;
      letter-spacing: 1px;
      min-width: 52px;
      justify-content: center;
      border-left: 1.5px solid #e5e7eb;
      text-transform: uppercase;
    }
    .q-unit-animated::after { display: none; }

    /* scroll reveal */
    .reveal { opacity: 0; transform: translateY(32px); transition: opacity 0.7s ease, transform 0.7s ease; }
    .reveal.visible { opacity: 1; transform: translateY(0); }
    .reveal-left { opacity: 0; transform: translateX(-32px); transition: opacity 0.7s ease, transform 0.7s ease; }
    .reveal-left.visible { opacity: 1; transform: translateX(0); }
    .reveal-right { opacity: 0; transform: translateX(32px); transition: opacity 0.7s ease, transform 0.7s ease; }
    .reveal-right.visible { opacity: 1; transform: translateX(0); }

    /* ════════════════════════════════════════
       RESPONSIVE — new sections
    ════════════════════════════════════════ */
    /* ════════════════════════════════════════
       RESPONSIVE — TABLET (max 1024px)
    ════════════════════════════════════════ */
    @media (max-width: 1024px) {
      /* Hero */
      .hero { grid-template-columns: 1fr; min-height: auto; }
      .hero-left { padding: 72px 40px 56px; min-height: 65vh; }
      .hero-right { height: 400px; }
      .hero-title { font-size: clamp(52px, 7vw, 80px); }

      /* About */
      .about-top { grid-template-columns: 1fr; }
      .about-content { padding: 64px 40px; }

      /* CTA */
      .section-cta { padding: 80px 32px 100px; }
      .pricing-grid { grid-template-columns: 1fr; gap: 16px; max-width: 460px; }
      .pricing-card.pc-hero { transform: scale(1); order: -1; }
      .pricing-card.pc-hero:hover { transform: translateY(-4px); }

      /* Modal */
      .modal { grid-template-columns: 1fr; max-width: 480px; }
      .modal-img img { border-radius: 24px 24px 0 0; min-height: 260px; }
      .modal-img { height: 260px; overflow: hidden; }
    }

    /* ════════════════════════════════════════
       RESPONSIVE — MOBILE (max 768px)
    ════════════════════════════════════════ */
    @media (max-width: 768px) {
      /* Viewport meta assumed — ensure no horizontal overflow */
      body { overflow-x: hidden; }

      /* Hero */
      .hero { grid-template-columns: 1fr; }
      .hero-left { padding: 56px 24px 48px; min-height: auto; }
      .hero-right { height: 280px; }
      .hero-title { font-size: clamp(40px, 10vw, 60px); line-height: 1; }
      .hero-eyebrow { font-size: 10px; }
      .hero-sub { font-size: 14px; line-height: 1.7; }
      .hero-cta-group { flex-direction: column; gap: 12px; }
      .hero-cta-group .btn-primary,
      .hero-cta-group .btn-outline { width: 100%; text-align: center; justify-content: center; }
      .hero-stats { gap: 20px; }
      .stat-num { font-size: 32px; }

      /* About photo — mobile: natural height */
      .about-image img { height: auto; object-fit: unset; }
      .about-image { height: auto; }

      /* Ticker banner */
      .ticker-item { font-size: 12px; padding: 0 28px; }

      /* Social proof */
      .social-proof-banner { padding: 14px 16px; gap: 10px; flex-wrap: wrap; justify-content: center; }
      .spb-item { font-size: 11px; }
      .spb-divider { display: none; }

      /* Recipes section */
      .section-recipes { padding: 64px 20px; }
      .section-header { flex-direction: column; align-items: flex-start; gap: 12px; }
      .section-title { font-size: clamp(36px, 9vw, 52px); }
      .filter-bar { gap: 6px; flex-wrap: wrap; }
      .filter-btn { padding: 8px 16px; font-size: 12px; }
      .recipe-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
      .recipe-card { border-radius: 16px; }
      .recipe-teaser-banner { padding: 32px 20px; }
      .recipe-teaser-banner h3 { font-size: 28px; }

      /* Testimonials */
      .section-testimonials { padding: 64px 20px; }
      .testimonial-card { width: calc(90vw); }

      /* How it works */
      .section-how { padding: 64px 20px; }
      .how-grid { grid-template-columns: 1fr; gap: 40px; }
      .how-grid::before { display: none; }
      .how-num { font-size: 72px; }

      /* Mid CTA */
      .section-mid-cta { padding: 48px 20px; flex-direction: column; text-align: center; gap: 24px; }
      .mid-cta-title { font-size: clamp(28px, 7vw, 40px); }
      .btn-white { width: 100%; text-align: center; }

      /* About */
      .about-top { grid-template-columns: 1fr; }
      .about-content { padding: 48px 20px; }
      .about-body { font-size: 15px; }
      .word-flip { font-size: clamp(22px, 6vw, 32px); }
      .features-grid { grid-template-columns: 1fr; gap: 10px; }

      /* FAQ */
      .section-faq { padding: 64px 20px; }
      .faq-layout { grid-template-columns: 1fr; gap: 32px; }
      .faq-left { position: static; }
      .faq-q { font-size: 14px; padding: 16px 0; }

      /* Instagram grid */
      .section-instagram { padding: 56px 20px; }
      .ig-grid { grid-template-columns: repeat(3, 1fr); gap: 6px; }

      /* CTA section — mobile: horizontal swipeable carousel */
      .section-cta { padding: 56px 0 80px; }
      .section-cta .cta-header-row,
      .section-cta .cta-guarantee,
      .section-cta .cta-login { padding-left: 16px; padding-right: 16px; }
      .pricing-grid {
        display: flex;
        grid-template-columns: none;
        gap: 14px;
        max-width: none;
        margin: 0;
        padding: 28px 16px 20px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
      }
      .pricing-grid::-webkit-scrollbar { display: none; }
      .pricing-card {
        flex: 0 0 84%;
        max-width: 340px;
        padding: 28px 22px 24px;
        scroll-snap-align: center;
      }
      .pc-amount { font-size: 48px; }
      .cta-header-row { margin-bottom: 36px; }
      .cta-right { padding: 28px 20px; }
      .cta-price { font-size: 64px; }
      .plan-picker { grid-template-columns: 1fr 1fr; gap: 8px; }
      .plan-price { font-size: 32px; }

      /* Quiz modal */
      .modal-overlay { padding: 12px; align-items: flex-end; }
      .modal { border-radius: 24px; max-height: 96vh; }
      #quizModal { border-radius: 20px 20px 0 0; max-height: 92vh; }
      .qb-title { font-size: 22px; }
      .q-opt { padding: 12px 14px; }

      /* Recipe modal */
      .modal { grid-template-columns: 1fr; }
      .modal-img { height: 220px; overflow: hidden; }
      .modal-img img { border-radius: 20px 20px 0 0; min-height: 220px; }
      .modal-body { padding: 28px 20px; }
      .modal-title { font-size: 20px; }

      /* Dashboard */
      .dashboard { padding: 14px 8px 100px !important; }
      .dash-header { flex-direction: column; align-items: flex-start; gap: 12px; }
      /* Coach mobile nav: 5 buttons (Plan / Grocery / Check-in / Stats /
         Account) in an equal-width 5-col grid so they fit the iPhone
         width without horizontal scroll. The body.tier-cookbook block
         later in this file overrides for cookbook customers (6 buttons
         in a 3×2 grid). */
      .dash-nav {
        display: grid !important;
        grid-template-columns: repeat(5, 1fr);
        gap: 3px;
        padding: 4px;
        overflow-x: visible !important;
        width: 100% !important;
        max-width: 100%;
      }
      .dash-nav::-webkit-scrollbar { display: none; }
      .dash-nav-btn {
        min-width: 0;
        padding: 9px 4px;
        font-size: 11px;
        letter-spacing: 0.1px;
        white-space: nowrap;
        text-align: center;
      }
      /* ─── MOBILE DASHBOARD — daily plan ────────────────────────────────
         Single-column outer layout (meals first, side panels below).
         Meal card uses CSS Grid: image left, body top-right, actions
         span the full width below — full-bleed touch targets, no
         horizontal scroll. */
      .today-plan {
        display: grid;
        grid-template-columns: 1fr;
        gap: 18px;
      }
      /* Mon-Sun day strip — all 7 days visible at once, no horizontal
         scroll. Buttons share the row equally with flex:1, span the
         full viewport width to drop the cream gutters. !important
         overrides the inline styles set in app.js. */
      .day-nav-strip {
        display: flex !important;
        flex-direction: row !important;
        overflow-x: visible !important;
        gap: 4px !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        width: 100vw !important;
        padding: 0 12px !important;
        margin-bottom: 18px !important;
        box-sizing: border-box !important;
      }
      .day-nav-strip > button,
      .day-nav-strip .day-pill {
        flex: 1 1 0 !important;
        flex-shrink: 1 !important;
        padding: 9px 4px !important;
        font-size: 11px !important;
        min-width: 0 !important;
        text-align: center !important;
      }

      /* ─── MOBILE DAILY PLAN — high-end image-forward layout ────────────
         Both meal cards and stat panels live in horizontal swipe rails.
         Cards are vertical: tall hero image on top (Instagram-style),
         meal details + actions in a clean lower section. Soft shadows,
         large radius, smooth snap with momentum scroll. !important is
         needed because the desktop dashboard rules are declared later
         in source order and would otherwise cascade-override these. */

      /* Outer plan grid — single column, meals first.
         min-width:0 on grid children is THE fix for horizontal-overflow
         rails inside a grid: without it, grid items default to
         min-width:auto, which sizes them to their intrinsic content
         width (= sum of all card widths). That makes the grid grow
         beyond the viewport and the inner rail has no overflow to
         scroll, locking the swipe to the first few cards. */
      .today-plan {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 24px !important;
      }
      .today-main { order: 1; min-width: 0 !important; }
      .meal-rail-wrap { position: relative; min-width: 0; }
      .swipe-rail-wrap { order: 2; position: relative; min-width: 0; }


      /* ── Meal swipe rail — Instagram-style with bubble cards ──────
         Rail spans the full viewport (escape parent padding). Cards
         are 100vw - 24px so they have 12px breathing room on each
         side; rounded corners + shadow read as a bubble. Snap math
         lines up because each card's "slot" (card + gap) totals 100vw. */
      .today-meals {
        display: flex !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        scroll-snap-type: x mandatory;
        scroll-padding-left: 12px;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 24px !important;
        padding: 6px 12px 16px !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        width: 100vw !important;
      }
      .today-meals::-webkit-scrollbar { display: none; }

      /* Bubble card — one per viewport (with 12px breathing on each
         side via the rail's gap/padding), rounded corners, soft shadow */
      .today-meal-card {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        gap: 0 !important;
        padding: 0 !important;
        border-radius: 22px !important;
        overflow: hidden !important;
        border: 1px solid rgba(10,10,10,0.06) !important;
        background: var(--pure) !important;
        box-shadow: 0 8px 24px rgba(10,10,10,0.08) !important;
        flex: 0 0 calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
        min-width: 0 !important;
        width: calc(100vw - 24px) !important;
        min-height: 0 !important;
        grid-template-columns: none !important;
        scroll-snap-align: start !important;
        scroll-snap-stop: always !important;
      }

      /* Hero image — fills card width, dominant */
      .tm-img {
        width: 100% !important;
        height: 260px !important;
        border-radius: 0 !important;
        flex-shrink: 0 !important;
        position: relative;
        overflow: hidden;
      }
      .tm-img img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
      }

      /* Type chip floats over the photo top-left — solid bg, no blur */
      .tm-type-tag {
        position: absolute !important;
        top: 12px !important;
        left: 12px !important;
        background: rgba(255,255,255,0.95) !important;
        color: var(--text) !important;
        font-size: 10px !important;
        font-weight: 800 !important;
        letter-spacing: 1.5px !important;
        text-transform: uppercase;
        padding: 5px 10px !important;
        border-radius: 100px !important;
      }

      /* Body section — meal name + macros */
      .tm-body {
        padding: 18px 22px 4px !important;
        flex: initial !important;
        gap: 8px !important;
        display: flex;
        flex-direction: column;
      }
      .tm-name {
        font-size: 22px !important;
        line-height: 1.15 !important;
        font-family: 'DM Serif Display', serif !important;
        font-weight: 400 !important;
        color: var(--text);
        margin: 0;
      }
      .tm-macros {
        gap: 14px !important;
        display: flex;
        flex-wrap: wrap;
      }
      .tm-macro-pill {
        font-size: 12px !important;
        color: var(--muted);
        font-weight: 500;
      }
      .tm-macro-pill strong { color: var(--text); font-weight: 700; }

      /* Actions — 2-column grid so View Recipe + Watch always sit next
         to each other on the second row (and Mark Eaten + Swap on the
         first). No more orphaned-button-on-its-own-line wrap. */
      .tm-actions {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: none !important;
        padding: 8px 22px 26px !important;
        margin-top: 0 !important;
        align-self: auto !important;
        justify-content: stretch;
        align-items: center;
      }
      .tm-btn {
        width: 100% !important;
        padding: 10px 12px !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        letter-spacing: 0.3px;
        min-height: 40px !important;
        border-radius: 100px !important;
      }

      /* ── Daily Targets / Today's Weight — same bubble treatment ─── */
      .today-side {
        position: static !important;
        order: 2;
        display: flex !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        scroll-snap-type: x mandatory;
        scroll-padding-left: 12px;
        min-width: 0 !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        gap: 24px !important;
        padding: 6px 12px 16px !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        width: 100vw !important;
        top: auto !important;
      }
      .today-side::-webkit-scrollbar { display: none; }
      .today-side .macro-panel {
        flex: 0 0 calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
        min-width: 0 !important;
        width: calc(100vw - 24px) !important;
        margin-top: 0 !important;
        padding: 28px 24px !important;
        border-radius: 22px !important;
        border: 1px solid rgba(10,10,10,0.06) !important;
        background: var(--pure) !important;
        box-shadow: 0 8px 24px rgba(10,10,10,0.08) !important;
        scroll-snap-align: start !important;
        scroll-snap-stop: always !important;
      }

      .macro-ring { width: 130px !important; height: 130px !important; margin: 4px auto 22px !important; }
      .macro-ring-num { font-size: 32px !important; }
      .macro-panel-header {
        font-size: 11px !important;
        letter-spacing: 2px !important;
      }
      .drop-card { padding: 20px; }
      .perf-card { padding: 18px; }
      .drop-title { font-size: 20px; }
      .dash-section-heading { font-size: 20px; }
      .grocery-group { padding: 16px; }
      .grocery-item { font-size: 13px; }
      .account-card { padding: 18px 16px; max-width: 100%; }
      .account-row { font-size: 13px; flex-wrap: wrap; }
      .ask-zac { padding: 32px 20px; }

      /* Swap modal */
      #swapModalOverlay > div { padding: 20px 16px 32px; border-radius: 20px 20px 0 0; }

      /* Demo banner */
      .demo-banner { bottom: 12px; left: 12px; right: auto; }

      /* Grocery fab */
      .grocery-fab { bottom: 80px; right: 16px; width: 52px; height: 52px; font-size: 18px; }

      /* Plan picker */
      .plan-picker { grid-template-columns: 1fr 1fr; }
    }

    /* ════════════════════════════════════════
       RESPONSIVE — SMALL MOBILE (max 480px)
    ════════════════════════════════════════ */
    @media (max-width: 480px) {
      .hero-left { padding: 48px 18px 40px; }
      .hero-title { font-size: clamp(36px, 11vw, 50px); }
      .recipe-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
      .ig-grid { grid-template-columns: repeat(2, 1fr); gap: 6px; }
      .plan-picker { grid-template-columns: 1fr; }
      .plan-price { font-size: 38px; }
      .cta-price { font-size: 56px; }
      .section-cta { padding: 48px 16px; }
      .cta-right { padding: 24px 16px; }
      .modal-body { padding: 20px 16px; }
      .tm-img { width: 72px; height: 72px; }
      .dashboard { padding: 12px 6px 100px !important; }

      /* Quiz modal — tighter on small phones */
      .quiz-body { padding: 16px 18px 24px; }
      .quiz-progress { padding: 14px 18px 0; }
      .qb-title { font-size: 26px; }
      .q-cta-btn { padding: 16px; font-size: 15px; }
      .q-plan-toggle { flex-direction: column; gap: 8px; }

      /* Sign-in pill — smaller on phones so it doesn't overlap content */
      .signin-pill { padding: 8px 16px; font-size: 12px; top: 14px; right: 14px; }

      /* Results dossier card — ensure scrollable */
      #qs-results { max-height: 70vh; overflow-y: auto; -webkit-overflow-scrolling: touch; padding-bottom: 8px; }
    }

    /* ════════════════════════════════════════
       TOUCH DEVICE OPTIMISATIONS
    ════════════════════════════════════════ */
    @media (pointer: coarse) {
      /* Bigger tap targets on touch */
      .q-opt { min-height: 56px; }
      .filter-btn { min-height: 44px; }
      .tm-btn { min-height: 36px; padding: 8px 12px; }
      .dash-nav-btn { min-height: 40px; }
      .grocery-item { min-height: 48px; }
      /* Remove hover effects that don't apply to touch */
      .recipe-card:hover { transform: none; box-shadow: none; }
      .feature-item:hover { transform: none; }
    }

    /* ════════════════════════════════════════
       DESKTOP ENHANCEMENTS (min 1280px)
    ════════════════════════════════════════ */
    @media (min-width: 1280px) {
      .hero-left { padding: 100px 72px; }
      .section-recipes { padding: 120px 80px; }
      .section-cta { padding: 130px 80px; gap: 100px; }
      .about-content { padding: 100px 80px; }
      .dashboard { padding: 40px 64px 120px; }
      .recipe-grid { grid-template-columns: repeat(4, 1fr); }
    }
  
    /* ════════════════════════════════════════
       PLAN PICKER (toggleable cards)
    ════════════════════════════════════════ */
    .plan-picker { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 14px 0 20px; }
    .plan-card {
      position: relative;
      padding: 18px 16px;
      border: 2px solid rgba(255,255,255,0.12);
      border-radius: 16px;
      background: rgba(255,255,255,0.03);
      cursor: pointer;
      transition: all 0.25s ease;
    }
    .plan-card:hover { border-color: rgba(255,255,255,0.28); background: rgba(255,255,255,0.06); }
    .plan-card.selected { border-color: var(--orange); background: rgba(232,82,26,0.1); }
    .plan-badge { position: absolute; top: -10px; right: 12px; background: var(--orange); color: white; font-size: 9px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; padding: 3px 9px; border-radius: 100px; }
    .plan-check { position: absolute; top: 12px; right: 12px; width: 20px; height: 20px; border-radius: 50%; background: var(--orange); color: white; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 900; opacity: 0; transform: scale(0.5); transition: all 0.25s cubic-bezier(0.34,1.56,0.64,1); }
    .plan-card.selected .plan-check { opacity: 1; transform: scale(1); }
    .plan-card.selected .plan-badge { display: none; }
    .plan-kind { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,0.55); margin-bottom: 8px; }
    .plan-card.selected .plan-kind { color: var(--orange); }
    .plan-price { font-family: 'Bebas Neue', sans-serif; font-size: 42px; color: var(--white); line-height: 1; letter-spacing: 1px; }
    .plan-price span { font-size: 14px; font-family: 'DM Sans', sans-serif; color: rgba(255,255,255,0.4); font-weight: 400; letter-spacing: 0; }
    .plan-note { font-size: 11px; color: rgba(255,255,255,0.35); margin-top: 6px; }

    /* ════════════════════════════════════════
       DEMO LOGIN BANNER
    ════════════════════════════════════════ */
    .demo-banner { position: fixed; bottom: 16px; left: 16px; z-index: 500; background: var(--black); color: var(--white); padding: 10px 14px; border-radius: 100px; font-size: 12px; font-weight: 600; display: flex; align-items: center; gap: 10px; box-shadow: 0 8px 32px rgba(0,0,0,0.3); border: 1px solid rgba(255,255,255,0.08); }
    .demo-banner-label { color: rgba(255,255,255,0.5); font-size: 10px; text-transform: uppercase; letter-spacing: 1.5px; }
    .demo-banner-btn { background: var(--orange); color: white; border: none; padding: 6px 12px; font-size: 11px; font-weight: 700; border-radius: 100px; cursor: pointer; font-family: 'DM Sans', sans-serif; transition: background 0.2s; }
    .demo-banner-btn:hover { background: var(--orange-light); }
    .demo-banner-btn.secondary { background: rgba(255,255,255,0.1); }
    .demo-banner-btn.secondary:hover { background: rgba(255,255,255,0.2); }

    /* ════════════════════════════════════════
       PUBLIC RECIPE LOCK
    ════════════════════════════════════════ */
    .recipe-card.locked .recipe-img img { filter: blur(12px) brightness(0.55); transform: scale(1.12); }
    .recipe-card.locked .recipe-body { filter: blur(4px); opacity: 0.6; pointer-events: none; }
    .recipe-lock-overlay { position: absolute; inset: 0; display: none; align-items: center; justify-content: center; flex-direction: column; gap: 10px; z-index: 4; pointer-events: none; }
    .recipe-card.locked .recipe-lock-overlay { display: flex; }
    .recipe-lock-pill { background: rgba(10,10,10,0.82); backdrop-filter: blur(14px); color: white; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; padding: 8px 16px; border-radius: 100px; border: 1px solid rgba(255,255,255,0.15); display: flex; align-items: center; gap: 8px; }
    .recipe-lock-pill svg { width: 12px; height: 12px; }
    .recipe-teaser-banner { text-align: center; background: var(--cream); border: 1.5px dashed var(--orange); border-radius: 20px; padding: 40px 32px; margin-top: 32px; }
    .recipe-teaser-banner h3 { font-family: 'Bebas Neue', sans-serif; font-size: clamp(28px, 2.5vw, 40px); color: var(--black); letter-spacing: 1px; margin-bottom: 8px; }
    .recipe-teaser-banner p { font-size: 15px; color: var(--muted); margin-bottom: 24px; max-width: 480px; margin-left: auto; margin-right: auto; }

    /* ════════════════════════════════════════
       MEMBER DASHBOARD
    ════════════════════════════════════════ */
    body.member-view .non-member-only { display: none !important; }
    body:not(.member-view) .member-only { display: none !important; }
    .member-only { max-width: 100%; overflow-x: hidden; }

    .dashboard { min-height: 100vh; background: var(--white); padding: 32px 48px 120px; padding-bottom: max(120px, calc(120px + env(safe-area-inset-bottom))); max-width: 100%; overflow-x: hidden; box-sizing: border-box; }
    .dash-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 32px; padding-bottom: 20px; border-bottom: 1px solid var(--border); gap: 20px; flex-wrap: wrap; }
    .dash-greeting { font-family: 'Bebas Neue', sans-serif; font-size: clamp(28px, 3vw, 42px); color: var(--black); letter-spacing: 0.5px; line-height: 1; }
    .dash-greeting span { color: var(--orange); }
    .dash-sub { font-size: 13px; color: var(--muted); margin-top: 6px; font-weight: 500; }
    .dash-nav { display: flex; gap: 4px; background: var(--cream); border-radius: 100px; padding: 4px; overflow-x: auto; max-width: 100%; }
    /* Desktop only: centre the Cookbook nav (Breakfast / Lunch / Dinner / Dessert / Account). */
    @media (min-width: 769px) {
      .dash-nav[data-cookbook-mounted] { justify-content: center; }
    }
    .dash-nav-btn { background: none; border: none; padding: 10px 18px; font-family: 'DM Sans', sans-serif; font-size: 13px; font-weight: 600; color: var(--muted); border-radius: 100px; cursor: pointer; transition: all 0.2s; white-space: nowrap; touch-action: manipulation; }
    .dash-nav-btn:hover { color: var(--text); }
    .dash-nav-btn.active { background: var(--orange); color: white; }

    /* ─── DESKTOP DASHBOARD — daily plan ────────────────────────────────
       Two-column outer layout: meals stack on the left; daily targets +
       today's weight panels stacked, sticky in the right column.
       Each meal card is a horizontal 3-column grid: square image, body,
       actions. Designed for breathing room, no horizontal scroll. */
    .today-plan {
      display: grid;
      grid-template-columns: 1fr 360px;
      gap: 32px;
      align-items: start;
    }
    .today-side {
      position: sticky;
      top: 32px;
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .today-side .macro-panel { flex: none; width: auto; min-width: 0; margin-top: 0; }
    .today-meals { display: flex; flex-direction: column; gap: 14px; }

    .today-meal-card {
      background: var(--pure);
      border: 1.5px solid var(--border);
      border-radius: 18px;
      padding: 18px;
      display: grid;
      grid-template-columns: 120px 1fr auto;
      gap: 18px;
      align-items: center;
      min-height: 240px; /* enough vertical canvas for centered stack to read */
      transition: all 0.3s;
      animation: mealSlideIn 0.6s cubic-bezier(0.22,1,0.36,1) both;
      animation-delay: var(--d, 0s);
    }
    .today-meal-card:hover {
      border-color: var(--orange);
      transform: translateY(-2px);
      box-shadow: 0 12px 40px rgba(0,0,0,0.08);
    }
    @keyframes mealSlideIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
    @keyframes mealCardEntrance {
      from { opacity: 0; transform: translateY(24px) scale(0.96); }
      to   { opacity: 1; transform: translateY(0) scale(1); }
    }
    @keyframes chipFadeIn {
      from { opacity: 0; transform: translateY(-6px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes bodyFadeIn {
      from { opacity: 0; transform: translateY(8px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes dayBannerSlideIn {
      from { opacity: 0; transform: translateY(-100%); }
      to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes swipeHintPulse {
      0%, 100% { transform: translateX(0); opacity: 0.7; }
      50%      { transform: translateX(4px); opacity: 1; }
    }

    /* Subtle "swipe →" text hint on each mobile swipe rail. CSS-only,
       no buttons, no JS — positioned just above each rail's bubble. */
    .meal-rail-wrap::before,
    .swipe-rail-wrap::before {
      display: none;
    }
    @media (max-width: 768px) {
      .meal-rail-wrap::before,
      .swipe-rail-wrap::before {
        content: 'swipe →';
        display: block;
        position: absolute;
        top: -16px;
        right: 14px;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 1.5px;
        text-transform: uppercase;
        color: var(--orange);
        opacity: 0.85;
        pointer-events: none;
        z-index: 5;
        animation: swipeHintPulse 1.8s ease-in-out infinite;
      }
      /* Cookbook layout has no swipeable rails — hide the hint. */
      body.tier-cookbook .meal-rail-wrap::before,
      body.tier-cookbook .swipe-rail-wrap::before { display: none; }
    }
    /* Cookbook customers also don't need the floating grocery FAB. */
    body.tier-cookbook .grocery-fab { display: none !important; }
    /* Hide Account-tab cards that only apply to the Coach program. */
    body.tier-cookbook [data-cookbook-hide] { display: none !important; }

    /* Cookbook layout fix: the Coach mobile rules force .today-meals into
       a horizontal-scroll rail that's 100vw wide with negative margins.
       For the cookbook recipe grid we want a normal block container that
       sits inside the page padding. Override here (specificity wins thanks
       to the body class). */
    body.tier-cookbook .today-meals,
    body.tier-cookbook #dayMealsContainer {
      display: block !important;
      flex-direction: initial !important;
      overflow-x: visible !important;
      overflow-y: visible !important;
      scroll-snap-type: none !important;
      width: auto !important;
      max-width: 100% !important;
      margin-left: 0 !important;
      margin-right: 0 !important;
      padding: 0 !important;
      gap: 0 !important;
    }
    body.tier-cookbook .meal-rail-wrap {
      width: auto !important;
      max-width: 100% !important;
      overflow: visible !important;
    }

    /* Cookbook active nav button: orange (matches Zac's name in the
       greeting), both mobile and desktop. */
    body.tier-cookbook .dash-nav-btn.active {
      background: var(--orange) !important;
      color: #fff !important;
    }

    /* Cookbook: no horizontal divider under the menu banner, no flanking
       rules on the section heading. */
    body.tier-cookbook .dash-header { border-bottom: none; padding-bottom: 12px; }

    /* Coach Check-in form: re-wrap with a bubble on mobile only. Desktop
       keeps the slim inline form. */
    @media (max-width: 768px) {
      #checkinForm {
        background: var(--pure) !important;
        border: 1.5px solid var(--border);
        border-radius: 16px;
        padding: 18px 14px !important;
      }

      /* Stats tab: when coachWeekHeader is reparented here on mobile, hide
         its top row (Week tag, sub copy, swap dots) and just show the
         day-of-program progress bar. Swaps live in the Plan-tab strip. */
      #tab-stats #coachWeekHeader > div:first-child { display: none !important; }

      /* Coach mobile: keep the 'swipe →' hint above the meal cards
         (.meal-rail-wrap::before stays — useful) but hide the one above
         the now-empty side panel (.swipe-rail-wrap::before) to avoid
         a dangling hint below the meal rail. */
      body:not(.tier-cookbook) .swipe-rail-wrap::before { display: none !important; }

      /* Stats mobile: small "swipe ↓" hint sitting between the Daily
         Targets bubble and the Day-of-program bubble so customers know
         there's more (today's weight + trend) further down. */
      #statsSwipeHint { display: block; }
    }
    /* (close the @media so the Stats hint only shows on mobile) */
    @media (min-width: 769px) {
      #statsSwipeHint { display: none !important; }
    }
    /* Cookbook mobile nav: single horizontal cream banner — same look as
       desktop, just narrower. 6 buttons evenly distributed in one row.
       Font shrunk so the longest label ("Breakfast") fits without
       wrapping or swipe. Desktop unaffected. */
    @media (max-width: 768px) {
      body.tier-cookbook .dash-nav {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: visible;
        gap: 3px;
        padding: 4px;
        background: var(--cream);
        border-radius: 100px;
        width: 100%;
        max-width: 100%;
        margin: 0;
      }
      body.tier-cookbook .dash-nav-btn {
        flex: 1 1 0;
        min-width: 0;
        padding: 9px 4px;
        font-size: 11px;
        letter-spacing: 0;
        white-space: nowrap;
        text-align: center;
        background: transparent;
        border-radius: 100px;
      }
      body.tier-cookbook .dash-nav-btn.active {
        background: var(--black);
        color: #fff;
      }
    }

    .tm-img {
      width: 120px; height: 120px;
      border-radius: 14px;
      overflow: hidden;
      background: var(--cream);
      position: relative;
      flex-shrink: 0;
    }
    .tm-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .tm-type-tag {
      position: absolute; top: 8px; left: 8px;
      background: rgba(10,10,10,0.72);
      -webkit-backdrop-filter: blur(6px);
      backdrop-filter: blur(6px);
      color: white;
      font-size: 9px; font-weight: 700;
      letter-spacing: 1px; text-transform: uppercase;
      padding: 3px 8px; border-radius: 100px;
    }

    .tm-body {
      display: flex; flex-direction: column; gap: 10px;
      min-width: 0; padding: 0;
    }
    .tm-name { font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 0; }
    .tm-macros { display: flex; gap: 12px; flex-wrap: wrap; }
    .tm-macro-pill { font-size: 12px; color: var(--muted); font-weight: 500; }
    .tm-macro-pill strong { color: var(--text); font-weight: 700; }

    /* Desktop: actions stack vertically on the right of each card,
       pushed down with top margin so they sit visually centred in the
       (now taller) card. */
    .tm-actions {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 8px;
      width: 150px;
      padding: 0;
      align-self: center;
      margin-top: 50px;
    }
    .tm-btn {
      background: none; border: 1.5px solid var(--border);
      padding: 9px 12px;
      font-size: 11px; font-weight: 600;
      border-radius: 100px; cursor: pointer;
      font-family: 'DM Sans', sans-serif;
      color: var(--text);
      transition: all 0.2s;
      white-space: nowrap;
      touch-action: manipulation;
      width: 100%;
    }
    .tm-btn:hover { background: var(--black); color: white; border-color: var(--black); }
    .tm-btn.primary { background: var(--orange); color: white; border-color: var(--orange); }
    .tm-btn.primary:hover { background: var(--orange-light); border-color: var(--orange-light); }
    .tm-btn.done { background: #16a34a; color: white; border-color: #16a34a; }

    .macro-panel { background: var(--pure); border: 1.5px solid var(--border); border-radius: 20px; padding: 22px; }
    .macro-panel-header { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
    .macro-ring { position: relative; width: 140px; height: 140px; margin: 0 auto 20px; }
    .macro-ring svg { transform: rotate(-90deg); }
    .macro-ring-bg { fill: none; stroke: var(--border); stroke-width: 10; }
    .macro-ring-fill { fill: none; stroke: var(--orange); stroke-width: 10; stroke-linecap: round; transition: stroke-dashoffset 0.6s ease; }
    .macro-ring-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
    .macro-ring-num { font-family: 'Bebas Neue', sans-serif; font-size: 36px; color: var(--black); line-height: 1; }
    .macro-ring-lbl { font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); margin-top: 2px; }
    .macro-bars { display: flex; flex-direction: column; gap: 14px; }
    .macro-bar-row { display: flex; justify-content: space-between; margin-bottom: 6px; font-size: 12px; }
    .macro-bar-row strong { color: var(--text); font-weight: 700; }
    .macro-bar-row span { color: var(--muted); }
    .macro-bar-track { height: 6px; background: var(--border); border-radius: 100px; overflow: hidden; }
    .macro-bar-fill { height: 100%; background: var(--orange); border-radius: 100px; transition: width 0.6s ease; }
    .macro-bar-fill.protein { background: #dc2626; }
    .macro-bar-fill.carbs { background: #f59e0b; }
    .macro-bar-fill.fats { background: #84cc16; }

    .drop-card { background: linear-gradient(135deg, var(--black) 0%, #1a1a1a 100%); color: white; border-radius: 24px; padding: 28px; position: relative; overflow: hidden; margin-top: 20px; }
    .drop-card::before { content: ''; position: absolute; top: -40px; right: -40px; width: 180px; height: 180px; background: radial-gradient(circle, rgba(232,82,26,0.35) 0%, transparent 70%); pointer-events: none; }
    .drop-tag { font-size: 10px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; color: var(--orange); margin-bottom: 10px; }
    .drop-title { font-family: 'Bebas Neue', sans-serif; font-size: 26px; letter-spacing: 0.5px; line-height: 1.1; margin-bottom: 8px; }
    .drop-sub { font-size: 13px; color: rgba(255,255,255,0.55); margin-bottom: 18px; }
    .drop-btn { background: var(--orange); color: white; border: none; padding: 10px 18px; font-size: 12px; font-weight: 700; border-radius: 100px; cursor: pointer; font-family: 'DM Sans', sans-serif; }

    .perf-card { background: #1a1a1a; color: white; border-radius: 24px; padding: 24px; margin-top: 20px; border: 1px solid rgba(232,82,26,0.3); position: relative; overflow: hidden; }
    .perf-card::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(232,82,26,0.08) 0%, transparent 60%); pointer-events: none; }
    .perf-badge { display: inline-block; background: var(--orange); color: white; font-size: 9px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; padding: 4px 10px; border-radius: 100px; margin-bottom: 10px; }
    .perf-title { font-family: 'Bebas Neue', sans-serif; font-size: 22px; letter-spacing: 0.5px; margin-bottom: 6px; }
    .perf-sub { font-size: 12px; color: rgba(255,255,255,0.55); margin-bottom: 16px; }
    .perf-list { display: flex; flex-direction: column; gap: 8px; position: relative; z-index: 1; }
    .perf-item { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: rgba(255,255,255,0.04); border-radius: 10px; font-size: 13px; }
    .perf-item-label { flex: 1; font-weight: 600; }
    .perf-item-meal { color: rgba(255,255,255,0.55); font-size: 12px; }

    .dash-section-heading { font-family: 'Bebas Neue', sans-serif; font-size: 24px; letter-spacing: 1px; color: var(--black); margin: 28px 0 16px; display: flex; align-items: center; gap: 14px; }
    .dash-section-heading::after { content: ''; flex: 1; height: 1px; background: var(--border); }

    .dash-tab { display: none; }
    .dash-tab.active { display: block; animation: tabFade 0.4s ease; }
    @keyframes tabFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

    .grocery-group { background: var(--pure); border: 1.5px solid var(--border); border-radius: 18px; padding: 20px; margin-bottom: 14px; }
    .grocery-group-label { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--orange); margin-bottom: 14px; }
    .grocery-item { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border); font-size: 14px; cursor: pointer; transition: opacity 0.2s; }
    .grocery-item:last-child { border-bottom: none; }
    .grocery-item input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--orange); cursor: pointer; }
    .grocery-item.checked { opacity: 0.4; text-decoration: line-through; }

    .account-card { background: var(--pure); border: 1.5px solid var(--border); border-radius: 18px; padding: 24px; margin-bottom: 14px; max-width: 640px; }
    .account-card-title { font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
    .account-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--border); font-size: 14px; gap: 16px; }
    .account-row:last-child { border-bottom: none; }
    .account-row strong { color: var(--text); font-weight: 700; }
    .account-row span { color: var(--muted); }
    .account-link { color: var(--orange); text-decoration: none; font-size: 13px; font-weight: 600; cursor: pointer; background: none; border: none; font-family: 'DM Sans', sans-serif; padding: 0; }
    .account-link:hover { text-decoration: underline; }
    .account-link.danger { color: #dc2626; }

    .ask-zac { background: var(--cream); border-radius: 24px; padding: 48px 40px; text-align: center; max-width: 600px; margin: 0 auto; }
    .ask-zac h2 { font-family: 'Bebas Neue', sans-serif; font-size: 36px; letter-spacing: 1px; color: var(--black); margin-bottom: 12px; }
    .ask-zac p { color: var(--muted); line-height: 1.7; max-width: 420px; margin: 0 auto 20px; }
    .ask-zac-soon { display: inline-block; background: var(--orange); color: white; font-size: 11px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase; padding: 6px 14px; border-radius: 100px; }

    /* ════════════════════════════════════════
       ANIMATIONS
    ════════════════════════════════════════ */
    .fade-up { opacity: 0; transform: translateY(32px); animation: fadeUp 0.85s ease forwards; }
    @keyframes fadeUp { to { opacity:1; transform:translateY(0); } }
    .delay-1{animation-delay:0.1s} .delay-2{animation-delay:0.25s} .delay-3{animation-delay:0.4s} .delay-4{animation-delay:0.55s} .delay-5{animation-delay:0.7s}

    /* ════════════════════════════════════════
       RESPONSIVE
    ════════════════════════════════════════ */
    /* grocery fab */
    .grocery-fab { position: fixed; bottom: 32px; right: 32px; z-index: 150; background: var(--black); color: var(--white); border: none; width: 60px; height: 60px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 22px; box-shadow: 0 8px 32px rgba(0,0,0,0.3); transition: all 0.25s; }
    .grocery-fab:hover { background: var(--orange); transform: scale(1.08); }
    .grocery-count { position: absolute; top: -4px; right: -4px; background: var(--orange); color: #fff; width: 20px; height: 20px; border-radius: 50%; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; border: 2px solid var(--white); }


/* extracted from inline second style block */
  @keyframes modalIn { from { opacity:0; transform:translateY(20px) scale(0.97); } to { opacity:1; transform:translateY(0) scale(1); } }
