/* =========================================================
   ChildEats — Playful-premium kids food homepage
   HTML · CSS · Vanilla JS · BEM · CSS variables
   ========================================================= */

   :root{
    /* ---- Brand palette: milky base + fruity accents ---- */
    --cream:      #FFFAF1;   /* milky base */
    --cream-2:    #FFF3E0;   /* soft section */
    --cream-soft: #FDEAD0;   /* placeholders / soft blocks */
    --white:      #FFFFFF;
  
    --leaf:       #5AB552;   /* primary green */
    --leaf-600:   #469C40;
    --leaf-700:   #347A30;
    --lime:       #BFD730;   /* logo bright lime */
    --sun:        #FFC23C;   /* sunny yellow */
    --berry:      #FF6F61;   /* coral / berry */
    --sky:        #4FC3E8;   /* sky blue */
    --grape:      #9B7BE0;   /* soft purple */
    --brown:      #9A6E3A;   /* logo warm brown */
  
    --forest:     #163020;   /* dark sections */
    --forest-2:   #1E3A28;
  
    --ink:        #2A2118;   /* warm dark heading */
    --body:       #5A5046;   /* body text */
    --muted:      #9A8E80;
    --border:     rgba(42,33,24,0.10);
    --border-2:   rgba(42,33,24,0.16);
    --on-dark:    #DDE8DC;
    --on-dark-muted: rgba(221,232,220,0.6);
  
    /* ---- Type ---- */
    --f-display: 'Fredoka', system-ui, sans-serif;
    --f-body:    'Plus Jakarta Sans', system-ui, sans-serif;
  
    /* ---- Spacing ---- */
    --section-y: clamp(56px, 7vw, 92px);
    --container: 1220px;
  
    /* ---- Radius ---- */
    --r-sm:14px; --r-md:22px; --r-lg:32px; --r-xl:44px; --r-pill:999px;
  
    /* ---- Shadow ---- */
    --sh-sm: 0 2px 8px rgba(42,33,24,.06), 0 8px 22px rgba(42,33,24,.05);
    --sh-md: 0 10px 28px rgba(42,33,24,.09), 0 20px 50px rgba(42,33,24,.07);
    --sh-lg: 0 24px 60px rgba(42,33,24,.16);
    --sh-focus: 0 0 0 4px rgba(90,181,82,.22);
  
    /* ---- Motion ---- */
    --d-fast:160ms; --d-normal:280ms; --d-medium:440ms; --d-slow:650ms;
    --e-out: cubic-bezier(.16,1,.3,1);
    --e-spring: cubic-bezier(.34,1.56,.64,1);
    --e-default: cubic-bezier(.4,0,.2,1);
  }
  
  *,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
  html{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; overflow-x:clip; }
  html.lenis{ height:auto; }
  .lenis.lenis-smooth{ scroll-behavior:auto !important; }
  @media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
  
  body{
    font-family:var(--f-body);
    font-size:17px; line-height:1.6;
    color:var(--body); background:var(--cream);
    overflow-x:hidden;
  }
  img{ display:block; max-width:100%; }
  a{ color:inherit; text-decoration:none; }
  ul{ list-style:none; }
  
  /* ---------- Typography ---------- */
  h1,h2,h3,h4,h5{ font-family:var(--f-display); color:var(--ink); font-weight:600; line-height:1.04; letter-spacing:-0.01em; }
  .section__title{ font-size:clamp(32px,4.4vw,54px); font-weight:700; line-height:1.05; }
  h3{ font-size:clamp(22px,2.6vw,32px); font-weight:600; }
  h4{ font-size:clamp(19px,1.7vw,23px); font-weight:600; }
  h5{ font-size:15px; font-weight:700; color:var(--ink); }
  p{ text-wrap:pretty; }
  em{ font-style:normal; color:var(--leaf); }
  
  .kicker{
    display:inline-flex; align-items:center; gap:8px;
    font-family:var(--f-body); font-size:13px; font-weight:700;
    letter-spacing:.04em; text-transform:uppercase; color:var(--leaf-700);
    background:rgba(90,181,82,.12); padding:7px 15px; border-radius:var(--r-pill);
    margin-bottom:var(--space-4,18px);
  }
  .kicker i{ font-size:16px; }
  .kicker--sun{ color:var(--brown); background:rgba(255,194,60,.20); }
  .kicker--berry{ color:#C24A3E; background:rgba(255,111,97,.16); }
  .kicker--sky{ color:#2A7E99; background:rgba(79,195,232,.18); }
  .kicker--on-dark{ color:var(--sun); background:rgba(255,194,60,.16); }
  
  /* hand-drawn underline */
  .squiggle{ position:relative; white-space:nowrap; color:var(--leaf); }
  .squiggle::after{
    content:""; position:absolute; left:0; right:0; bottom:-0.28em; height:.26em;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='12' viewBox='0 0 120 12' preserveAspectRatio='none'%3E%3Cpath d='M1 8c20-7 39 4 59-1s40-6 60 1' fill='none' stroke='%23BFD730' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat;
    background-size:100% 100%;
    transform:scaleX(0); transform-origin:left; transition:transform var(--d-slow) var(--e-out);
  }
  .squiggle.is-drawn::after{ transform:scaleX(1); }
  .squiggle--sun{ color:var(--sun); }
  .squiggle--sun::after{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='12' viewBox='0 0 120 12' preserveAspectRatio='none'%3E%3Cpath d='M1 8c20-7 39 4 59-1s40-6 60 1' fill='none' stroke='%23FFC23C' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E"); }
  
  /* ---------- Layout ---------- */
  .container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:clamp(20px,5vw,40px); }
  .container--narrow{ max-width:840px; }
  .section{ padding-block:var(--section-y); position:relative; }
  .section--soft{ background:var(--cream-2); }
  .section--dark{ background:var(--forest); }
  .section--dark .section__title,.section--dark h3,.section--dark h4{ color:var(--white); }
  .section--dark .section__lead{ color:var(--on-dark); }
  
  .section__head{ display:flex; justify-content:space-between; align-items:flex-end; gap:var(--space-8,32px); margin-bottom:clamp(40px,5vw,64px); flex-wrap:wrap; }
  .section__head--center{ flex-direction:column; align-items:center; text-align:center; }
  .section__head--stack{ flex-direction:column; align-items:flex-start; }
  .section__head--stack .section__lead{ margin-top:16px; max-width:640px; }
  .section__head--center .section__lead{ max-width:600px; }
  .section__lead{ font-size:clamp(16px,1.5vw,19px); color:var(--body); max-width:540px; }
  
  /* ---------- Buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; gap:9px;
    font-family:var(--f-body); font-weight:700; font-size:16px;
    padding:14px 26px; border-radius:var(--r-pill); border:2px solid transparent;
    cursor:pointer; white-space:nowrap;
    transition:transform var(--d-normal) var(--e-out), box-shadow var(--d-normal) var(--e-default), background var(--d-normal), color var(--d-normal), border-color var(--d-normal);
  }
  .btn i{ font-size:18px; line-height:1; display:inline-flex; align-items:center; justify-content:center; transition:transform var(--d-normal) var(--e-default); }
  .btn--sm{ padding:10px 20px; font-size:14.5px; }
  .btn--lg{ padding:17px 32px; font-size:17px; }
  .btn:disabled{ opacity:.55; pointer-events:none; transform:none; }
  .btn--primary{ background:var(--leaf); color:#fff; box-shadow:0 8px 20px rgba(90,181,82,.35); }
  .btn--primary:hover{ background:var(--leaf-600); transform:translateY(-3px); box-shadow:0 14px 30px rgba(90,181,82,.45); }
  .btn--primary:hover i{ transform:translateX(4px); }
  .btn--primary:active{ transform:translateY(-1px); }
  .btn--ghost{ background:transparent; color:var(--leaf-700); border-color:var(--border-2); }
  .btn--ghost:hover{ background:rgba(90,181,82,.10); border-color:var(--leaf); }
  .btn--glass{ background:rgba(255,255,255,.18); color:#fff; border-color:rgba(255,255,255,.4); backdrop-filter:blur(8px); }
  .btn--glass:hover{ background:rgba(255,255,255,.30); transform:translateY(-3px); }
  .btn--soft{ background:var(--cream-2); color:var(--ink); border-color:transparent; }
  .btn--soft:hover{ background:var(--cream-soft); }
  
  /* ---------- Scroll progress ---------- */
  .scroll-progress{ position:fixed; top:0; left:0; height:4px; width:0; z-index:300; background:linear-gradient(90deg,var(--leaf),var(--lime),var(--sun)); border-radius:0 4px 4px 0; transition:width .1s linear; pointer-events:none; }
  
  /* ---------- Custom cursor ---------- */
  .cursor,.cursor-ring{ position:fixed; top:0; left:0; z-index:100000; pointer-events:none; border-radius:50%; mix-blend-mode:normal; will-change:transform; }
  .cursor{ display:none; }
  .cursor-ring{ width:40px; height:40px; border:2px solid rgba(90,181,82,.6); transform:translate(-50%,-50%); transition:width .3s var(--e-spring), height .3s var(--e-spring), border-color .3s, background .3s; }
  body.has-cursor.is-hovering .cursor{ width:0; height:0; }
  body.has-cursor.is-hovering .cursor-ring{ width:64px; height:64px; border-color:var(--lime); background:rgba(191,215,48,.12); }
  body.has-cursor.is-pressed .cursor-ring{ width:30px; height:30px; }
  @media (hover:none),(pointer:coarse){ .cursor,.cursor-ring{ display:none; } }
  
  /* ---------- Confetti ---------- */
  .confetti-piece{ position:fixed; z-index:1400; width:10px; height:14px; border-radius:3px; pointer-events:none; will-change:transform,opacity; }
  
  /* ---------- Loader ---------- */
  .loader{ position:fixed; inset:0; z-index:2000; background:var(--cream); display:grid; place-items:center; transition:opacity .5s var(--e-default), visibility .5s; }
  .loader.is-done{ opacity:0; visibility:hidden; }
  .loader__inner{ display:flex; flex-direction:column; align-items:center; gap:24px; }
  .loader__logo{ width:200px; height:auto; animation:bob 1.4s var(--e-default) infinite; }
  .loader__bar{ width:160px; height:7px; border-radius:99px; background:var(--cream-soft); overflow:hidden; }
  .loader__bar i{ display:block; height:100%; width:0; background:linear-gradient(90deg,var(--leaf),var(--lime)); border-radius:99px; animation:load 1.1s var(--e-out) forwards; }
  @keyframes load{ to{ width:100%; } }
  @keyframes bob{ 0%,100%{ transform:translateY(0) scale(1); } 50%{ transform:translateY(-8px) scale(1.04); } }
  
  /* ---------- Header ---------- */
  .header{ position:fixed; inset:0 0 auto 0; z-index:100; transition:background var(--d-normal), box-shadow var(--d-normal), padding var(--d-normal); }
  /* keep logo + close visible above the open full-screen mobile menu */
  body.menu-open .header{ z-index:130; }
  body.menu-open .header::before{ opacity:0; }
  body.menu-open .header .brand__logo{ filter:none; }
  body.menu-open .header .burger{ background:rgba(42,33,24,.06); border-color:var(--border-2); }
  body.menu-open .header .burger span{ background:var(--ink); }
  .header::before{ content:""; position:absolute; inset:0 0 auto 0; height:130px; background:linear-gradient(180deg, rgba(22,48,31,.34), transparent); opacity:1; transition:opacity var(--d-normal); pointer-events:none; }
  .header.is-scrolled::before{ opacity:0; }
  .header.is-scrolled{ background:rgba(255,250,241,.82); backdrop-filter:blur(16px); box-shadow:0 4px 24px rgba(42,33,24,.07); }
  .header__inner{ position:relative; z-index:1; }
  .header:not(.is-scrolled) .brand__logo{ filter:brightness(0) invert(1); }
  .header__inner{ max-width:var(--container); margin-inline:auto; padding:16px clamp(20px,5vw,40px); display:flex; align-items:center; gap:32px; }
  .brand{ display:inline-flex; align-items:center; flex-shrink:0; }
  .brand__logo{ height:58px; width:auto; }
  .nav{ display:flex; gap:clamp(14px,2vw,30px); margin-left:auto; }
  .nav a{ font-size:15px; font-weight:600; color:var(--ink); padding:6px 2px; position:relative; }
  .nav a::after{ content:""; position:absolute; left:0; right:100%; bottom:-3px; height:3px; background:var(--lime); border-radius:3px; transition:right var(--d-normal) var(--e-out); }
  .nav a:hover::after{ right:0; }
  .nav a.is-current::after{ right:0; }
  .header:not(.is-scrolled) .nav a{ color:#fff; text-shadow:0 2px 10px rgba(0,0,0,.3); }
  .header:not(.is-scrolled) .burger{ background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.45); }
  
  /* Interior pages with a LIGHT hero: header should read dark from the start */
  body.light-hero .header::before{ opacity:0; }
  body.light-hero .header:not(.is-scrolled) .brand__logo{ filter:none; }
  body.light-hero .header:not(.is-scrolled) .nav a{ color:var(--ink); text-shadow:none; }
  body.light-hero .header:not(.is-scrolled) .burger{ background:rgba(42,33,24,.06); border-color:var(--border-2); }
  body.light-hero .header:not(.is-scrolled) .burger span{ background:var(--ink); }
  .header:not(.is-scrolled) .burger span{ background:#fff; }
  .header__actions{ display:flex; align-items:center; gap:14px; }
  
  /* language switcher */
  .lang{ position:relative; }
  .lang__btn{ display:inline-flex; align-items:center; gap:7px; font-family:var(--f-body); font-weight:700; font-size:15px; color:var(--ink); background:transparent; border:2px solid var(--border-2); border-radius:var(--r-pill); padding:8px 14px; cursor:pointer; transition:background var(--d-normal), border-color var(--d-normal), color var(--d-normal); }
  .lang__btn i{ font-size:17px; }
  .lang__caret{ font-size:14px !important; transition:transform var(--d-normal); }
  .lang.is-open .lang__caret{ transform:rotate(180deg); }
  .lang__btn:hover{ border-color:var(--leaf); color:var(--leaf-700); }
  .header:not(.is-scrolled) .lang__btn{ color:#fff; border-color:rgba(255,255,255,.4); }
  .header:not(.is-scrolled) .lang__btn:hover{ background:rgba(255,255,255,.16); border-color:#fff; }
  .lang__menu{ position:absolute; top:calc(100% + 10px); right:0; min-width:170px; background:var(--white); border:1px solid var(--border); border-radius:var(--r-md); box-shadow:var(--sh-md); padding:6px; opacity:0; visibility:hidden; transform:translateY(-8px); transition:opacity var(--d-normal), transform var(--d-normal), visibility var(--d-normal); }
  .lang.is-open .lang__menu{ opacity:1; visibility:visible; transform:translateY(0); }
  .lang__opt{ display:flex; align-items:center; gap:8px; width:100%; text-align:left; background:transparent; border:none; cursor:pointer; font-family:var(--f-body); font-size:15px; font-weight:600; color:var(--ink); padding:11px 14px; border-radius:var(--r-sm); transition:background var(--d-fast); }
  .lang__opt:hover{ background:var(--cream-2); }
  .lang__opt.is-active{ background:rgba(90,181,82,.12); color:var(--leaf-700); }
  
  .burger{ display:none; flex-direction:column; gap:5px; width:46px; height:46px; border:2px solid var(--border-2); border-radius:14px; background:rgba(255,255,255,.6); align-items:center; justify-content:center; cursor:pointer; }
  .burger span{ width:19px; height:2.5px; background:var(--ink); border-radius:2px; transition:transform var(--d-normal), opacity var(--d-normal); }
  .burger.is-open span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
  .burger.is-open span:nth-child(2){ opacity:0; }
  .burger.is-open span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }
  
  .mobile-menu{ position:fixed; top:0; right:0; bottom:0; width:min(84vw,360px); background:var(--cream); z-index:120; transform:translateX(100%); transition:transform var(--d-medium) var(--e-out); box-shadow:var(--sh-lg); padding:96px 28px 28px; overflow-y:auto; }
  .mobile-menu.is-open{ transform:translateX(0); }
  .mobile-menu nav{ display:flex; flex-direction:column; gap:4px; }
  .mobile-menu a{ font-size:19px; font-weight:600; color:var(--ink); padding:14px 6px; border-bottom:1px solid var(--border); }
  .mobile-menu .btn{ margin-top:18px; justify-content:center; border-bottom:none; }
  .menu-scrim{ position:fixed; inset:0; background:rgba(22,48,31,.45); z-index:110; opacity:0; visibility:hidden; transition:opacity var(--d-normal); }
  .menu-scrim.is-open{ opacity:1; visibility:visible; }
  
  /* ---------- Image loader ---------- */
  .ph-img{ width:100%; height:100%; object-fit:cover; transition:opacity var(--d-medium), transform var(--d-slow) var(--e-out); }
  .img-fallback{ position:relative; background:linear-gradient(135deg,var(--cream-soft),#F2D8AE); display:grid; place-items:center; min-height:120px; }
  .img-fallback::before{ content:"🍎"; font-size:38px; opacity:.7; }
  .img-fallback::after{ content:attr(data-fallback); position:absolute; inset:auto 0 14px 0; text-align:center; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--brown); font-weight:700; }
  
  /* ====================================================
     HERO
     ==================================================== */
  /* kinetic centre stage — one short line at a time, the film shows around it */

  .hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; padding-top:120px; padding-bottom:clamp(70px,14vh,170px); }
  .hero__photo,
  .hero__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
  /* very light, constant veil — keeps the header + edges legible, lets the film breathe */
  .hero__overlay{ position:absolute; inset:0; z-index:1; background:
    linear-gradient(180deg, rgba(15,34,24,.40) 0%, rgba(15,34,24,.12) 22%, rgba(15,34,24,.10) 55%, rgba(15,34,24,.30) 100%); }
  /* soft, constant centre halo — just enough to keep one line legible without hiding the film */
  .hero__scrim{ position:absolute; inset:0; z-index:2; pointer-events:none; background:
    radial-gradient(56% 44% at 50% 50%, rgba(9,22,15,.50) 0%, rgba(9,22,15,.22) 46%, rgba(9,22,15,0) 72%); }
  .hero__inner{ position:relative; z-index:4; width:100%; max-width:980px; margin-inline:auto; text-align:center; display:flex; flex-direction:column; align-items:center; }
  
  .hero__floats{ position:absolute; inset:0; z-index:3; pointer-events:none; }
  .produce{ position:absolute; display:block; filter:drop-shadow(0 16px 22px rgba(0,0,0,.32)); pointer-events:auto; cursor:pointer; -webkit-tap-highlight-color:transparent; }
  .produce:hover{ filter:drop-shadow(0 18px 26px rgba(0,0,0,.4)) brightness(1.08); }
  .produce svg{ width:100%; height:100%; display:block; }
  .produce--orange{ width:140px; height:140px; top:11%; right:4%; }
  .produce--strawberry{ width:78px; height:86px; top:62%; right:7%; }
  .produce--carrot{ width:66px; height:100px; bottom:8%; right:21%; }
  .produce--broccoli{ width:132px; height:132px; bottom:4%; left:3%; }
  .produce--tomato{ width:104px; height:104px; top:15%; left:5%; }
  .produce--blueberry{ width:46px; height:46px; top:51%; left:3.5%; }
  .sparkle{ position:absolute; color:#fff; opacity:.9; filter:drop-shadow(0 4px 10px rgba(0,0,0,.2)); }
  .sparkle i{ font-size:26px; }
  .sparkle--1{ top:22%; left:8%; color:var(--sun); }
  .sparkle--2{ top:64%; right:12%; color:var(--lime); }
  .sparkle--3{ top:34%; right:34%; color:var(--berry); font-size:0; }
  .sparkle--3 i{ font-size:22px; }
  
  .pill{ display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:600; padding:9px 18px; border-radius:var(--r-pill); }
  .pill--glass{ background:rgba(255,255,255,.16); color:#fff; backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.28); margin-bottom:26px; }
  .pill i{ color:var(--lime); font-size:17px; }
  
  /* kinetic caption stage — all lines stacked, only the active one is visible */
  .hero__stage{ position:relative; width:100%; min-height:clamp(120px,20vh,200px); display:grid; grid-template-columns:minmax(0,1fr); place-items:center; }
  .hero__cap{ grid-area:1/1; margin:0; max-width:18ch; font-family:var(--f-display); font-weight:700; line-height:1.0; letter-spacing:-0.02em; color:#fff; text-shadow:0 6px 30px rgba(0,0,0,.42); opacity:0; pointer-events:none; }
  .hero__cap--1,.hero__cap--2,.hero__cap--3,.hero__cap--4{ font-size:clamp(32px,4.4vw,62px); }
  .hero__cap--1{ max-width:none; }
  .cap__w{ display:inline-block; will-change:transform,filter,opacity; }
  .hero__cap em{ color:var(--sun); font-style:normal; }
  .no-gsap .hero__cap--1, .hero.is-static .hero__cap--1{ opacity:1; }
  
  /* persistent action dock */
  .hero__dock{ display:flex; flex-direction:column; align-items:center; gap:18px; margin-top:clamp(28px,5vh,56px); opacity:0; }
  .no-gsap .hero__dock{ opacity:1; }
  .hero__cta{ display:flex; gap:16px; flex-wrap:wrap; justify-content:center; }
  .avatars{ display:flex; }
  .avatars__a{ width:42px; height:42px; border-radius:50%; border:3px solid rgba(255,255,255,.9); margin-left:-12px; background-size:cover; box-shadow:var(--sh-sm); transition:transform var(--d-normal) var(--e-spring); }
  .avatars__a:first-child{ margin-left:0; }
  @media (prefers-reduced-motion: no-preference){
    .avatars__a{ animation:avWave 2.6s var(--e-default) infinite; }
    .avatars__a--1{ animation-delay:0s; }
    .avatars__a--2{ animation-delay:.16s; }
    .avatars__a--3{ animation-delay:.32s; }
    .avatars__a--4{ animation-delay:.48s; }
    .avatars:hover .avatars__a{ animation-duration:1.1s; }
  }
  @keyframes avWave{ 0%,55%,100%{ transform:translateY(0) rotate(0); } 28%{ transform:translateY(-9px) rotate(-6deg); } }
  .avatars__a--1{ background:linear-gradient(135deg,var(--lime),var(--leaf)); }
  .avatars__a--2{ background:linear-gradient(135deg,var(--sun),#F2962E); }
  .avatars__a--3{ background:linear-gradient(135deg,var(--sky),#2C9BC0); }
  .avatars__a--4{ background:linear-gradient(135deg,var(--berry),#E04A3C); }
  
  .hero__scroll{ position:absolute; left:50%; bottom:28px; transform:translateX(-50%); z-index:3; width:30px; height:50px; border:2px solid rgba(255,255,255,.6); border-radius:99px; display:grid; place-items:start center; padding-top:9px; }
  .hero__scroll-dot{ width:6px; height:6px; border-radius:50%; background:#fff; animation:scrolldot 1.6s var(--e-default) infinite; }
  @keyframes scrolldot{ 0%{ transform:translateY(0); opacity:1; } 70%{ transform:translateY(16px); opacity:0; } 100%{ opacity:0; } }
  
  @media (prefers-reduced-motion: no-preference){
    .produce{ animation:floaty 9s ease-in-out infinite; }
    .produce--orange{ animation-duration:9.5s; }
    .produce--strawberry{ animation-duration:8s; animation-delay:-1.5s; }
    .produce--carrot{ animation-duration:11s; animation-delay:-3s; }
    .produce--broccoli{ animation-duration:12s; animation-delay:-4.5s; }
    .produce--tomato{ animation-duration:10s; animation-delay:-2s; }
    .produce--blueberry{ animation-duration:7.5s; animation-delay:-1s; }
    .sparkle{ animation:twinkle 4s ease-in-out infinite; }
    .sparkle--2{ animation-delay:-1.3s; }
  }
  @keyframes floaty{ 0%,100%{ transform:translateY(0) rotate(-5deg); } 50%{ transform:translateY(-24px) rotate(6deg); } }
  @keyframes twinkle{ 0%,100%{ transform:scale(1) rotate(0); opacity:.5; } 50%{ transform:scale(1.25) rotate(20deg); opacity:1; } }
  
  /* ====================================================
     MARQUEE
     ==================================================== */
  .marquee{ background:var(--leaf); padding:18px 0; overflow:hidden; border-top:4px solid var(--lime); border-bottom:4px solid var(--lime); }
  .marquee__track{ display:flex; gap:40px; width:max-content; animation:marquee 26s linear infinite; }
  .marquee span{ display:inline-flex; align-items:center; gap:12px; font-family:var(--f-display); font-weight:600; font-size:clamp(18px,2.2vw,26px); color:#fff; }
  .marquee span i{ color:var(--sun); font-size:.9em; display: flex; align-items: center;}
  @keyframes marquee{ to{ transform:translateX(-50%); } }
  @media (prefers-reduced-motion: reduce){ .marquee__track{ animation:none; } }
  
  /* ====================================================
     MOBILE CAROUSEL (scroll-snap + dots / arrows)
     ==================================================== */
  .m-carousel{ display:flex !important; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; gap:0 !important; padding:14px 0 18px; -webkit-overflow-scrolling:touch; scrollbar-width:none; grid-template-columns:none !important; }
  .m-carousel::-webkit-scrollbar{ display:none; }
  .m-carousel > *{ flex:0 0 100%; max-width:100%; min-width:0; scroll-snap-align:center; }
  .m-ctrl{ display:flex; justify-content:center; align-items:center; gap:10px; margin-top:8px; }
  .m-ctrl--dots .m-dot{ width:9px; height:9px; padding:0; border:none; border-radius:99px; background:var(--leaf); opacity:.3; cursor:pointer; transition:width var(--d-normal), opacity var(--d-normal); }
  .m-ctrl--dots .m-dot.is-active{ opacity:1; width:26px; }
  .m-ctrl--arrows{ gap:14px; }
  .m-ctrl--arrows .m-arrow{ width:48px; height:48px; border-radius:50%; border:1px solid var(--border-2); background:var(--white); color:var(--ink); font-size:18px; cursor:pointer; display:grid; place-items:center; box-shadow:var(--sh-sm); transition:background var(--d-normal), color var(--d-normal), transform var(--d-normal) var(--e-spring); }
  .m-ctrl--arrows .m-arrow:hover{ background:var(--leaf); color:#fff; border-color:var(--leaf); transform:translateY(-2px); }
  .m-ctrl--arrows .m-arrow i{ line-height:0; }
  @media (min-width:761px){ .m-ctrl{ display:none !important; } }
  
  /* ====================================================
     STATS
     ==================================================== */
  .stats{ padding-block:var(--section-y); background:var(--cream); }
  .stats__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
  .stats-swiper{ overflow:hidden; padding:12px 6px; margin:-12px -6px; }
  .stats-swiper .swiper-slide{ height:auto; }
  .stats-swiper__pagination{ display:none; margin-top:22px; text-align:center; }
  .stats-swiper__pagination .swiper-pagination-bullet{ width:9px; height:9px; background:var(--leaf); opacity:.3; margin:0 4px; border-radius:99px; transition:width var(--d-normal), opacity var(--d-normal); }
  .stats-swiper__pagination .swiper-pagination-bullet-active{ opacity:1; width:26px; }
  @media (max-width:760px){ .stats-swiper__pagination{ display:block; } }
  .stat{ text-align:center; position:relative; padding:22px 14px; background:var(--white); border-radius:var(--r-lg); box-shadow:none; border:1px solid var(--border); transition:transform var(--d-normal) var(--e-spring), border-color var(--d-normal); }
  .stat:hover{ transform:translateY(-6px); border-color:rgba(90,181,82,.35); }
  .stat:nth-child(2){ background:#FFF7E6; } .stat:nth-child(3){ background:#FFF0EE; } .stat:nth-child(4){ background:#EDF8FC; }
  .stat__num{ display:block; font-family:var(--f-display); font-size:clamp(38px,4.6vw,58px); font-weight:700; line-height:1; color:var(--leaf); transition:transform var(--d-normal) var(--e-spring); }
  .stat:hover .stat__num{ transform:scale(1.08); }
  .stat:nth-child(2) .stat__num{ color:var(--brown); }
  .stat:nth-child(3) .stat__num{ color:var(--berry); }
  .stat:nth-child(4) .stat__num{ color:var(--sky); }
  .stat__label{ display:block; margin-top:10px; font-size:14.5px; font-weight:600; color:var(--body); }
  
  /* ====================================================
     AUDIENCE
     ==================================================== */
  .switch{ position:relative; display:inline-flex; gap:4px; background:var(--cream-soft); padding:6px; border-radius:var(--r-pill); margin:0 auto clamp(40px,5vw,56px); width:fit-content; }
  .switch{ left:50%; transform:translateX(-50%); }
  /* tighter gap between heading and the parent/school toggle */
  #audience .section__head{ margin-bottom:clamp(18px,2.5vw,28px); }
  .switch__tab{ position:relative; z-index:2; display:inline-flex; align-items:center; gap:9px; border:none; background:transparent; cursor:pointer; font-family:var(--f-body); font-size:16px; font-weight:700; color:var(--body); padding:12px 26px; border-radius:var(--r-pill); transition:color var(--d-normal); }
  .switch__tab i{ font-size:19px; }
  .switch__tab.is-active{ color:var(--leaf-700); }
  .switch__pill{ position:absolute; z-index:1; top:6px; bottom:6px; border-radius:var(--r-pill); background:var(--white); box-shadow:var(--sh-sm); transition:left var(--d-medium) var(--e-spring), width var(--d-medium) var(--e-spring); }
  
  .panels{ position:relative; }
  .panel{ display:none; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:center; }
  .panel.is-active{ display:grid; }
  .panel__text h3{ margin:12px 0 16px; }
  .panel__text p{ font-size:17px; margin-bottom:24px; max-width:480px; }
  .ticks{ display:flex; flex-direction:column; gap:12px; margin-bottom:30px; }
  .ticks li{ display:flex; align-items:center; gap:12px; font-size:16px; font-weight:600; color:var(--ink); }
  .ticks i{ color:var(--leaf); font-size:22px; }
  .panel__media{ position:relative; aspect-ratio:5/4.4; border-radius:var(--r-xl); box-shadow:var(--sh-md); background:var(--cream-soft); }
  .panel__media .ph-img{ border-radius:var(--r-xl); }
  /* outer wrapper: only positioning + smooth float (pure transform, no layout) */
  .sticker{ position:absolute; z-index:4; will-change:transform; }
  .sticker--berry{ top:-16px; right:-14px; }
  .sticker--sky{ top:-16px; left:-14px; }
  @media (prefers-reduced-motion: no-preference){
    .sticker{ animation:stickerFloat 3.4s ease-in-out infinite; }
    .sticker--sky{ animation-delay:-1.6s; }
  }
  @keyframes stickerFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-7px); } }
  
  /* inner pill: visual + rotation + interactive hover reaction */
  .sticker__label{ display:block; font-family:var(--f-display); font-weight:600; font-size:16px; color:#fff; padding:10px 18px; border-radius:var(--r-pill); white-space:nowrap; box-shadow:0 10px 22px rgba(42,33,24,.22); transition:transform .4s var(--e-spring), box-shadow .4s var(--e-default); }
  .sticker--berry .sticker__label{ background:var(--berry); transform:rotate(6deg); }
  .sticker--sky .sticker__label{ background:var(--sky); transform:rotate(-6deg); }
  .panel__media:hover .sticker--berry .sticker__label{ transform:rotate(-10deg) scale(1.16); box-shadow:0 16px 30px rgba(255,111,97,.4); }
  .panel__media:hover .sticker--sky .sticker__label{ transform:rotate(10deg) scale(1.16); box-shadow:0 16px 30px rgba(79,195,232,.42); }
  
  /* ====================================================
     HOW IT WORKS
     ==================================================== */
  .steps{ list-style:none; display:grid; grid-template-columns:repeat(5,1fr); gap:18px; position:relative; padding-top:88px; }
  .steps::before{ content:""; position:absolute; top:50px; left:9%; right:9%; height:3px; background:repeating-linear-gradient(90deg,var(--lime) 0 10px,transparent 10px 20px); background-size:20px 3px; z-index:0; }
  @media (prefers-reduced-motion: no-preference){
    .steps::before{ animation:conveyor 1.1s linear infinite; }
  }
  @keyframes conveyor{ to{ background-position:20px 0; } }
  
  /* traveling 3D delivery van */
  .steps__truck{ position:absolute; top:2px; left:6%; z-index:3; width:102px; transform:translateX(-50%); pointer-events:none; }
  .van{ width:100%; height:auto; display:block; filter:drop-shadow(0 6px 8px rgba(0,0,0,.16)); }
  .van__wheel{ transform-box:fill-box; transform-origin:center; }
  .steps__puff{ position:absolute; left:-4px; bottom:14px; width:10px; height:10px; border-radius:50%; background:rgba(120,120,120,.32); opacity:0; }
  @media (prefers-reduced-motion: no-preference){
    .van{ animation:truckBob .55s ease-in-out infinite; }
    .van__wheel{ animation:spin .55s linear infinite; }
    .steps__puff{ animation:puff 1s ease-out infinite; }
  }
  @keyframes truckBob{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-2.5px); } }
  @keyframes spin{ to{ transform:rotate(360deg); } }
  @keyframes puff{ 0%{ opacity:.5; transform:translate(0,0) scale(.6); } 100%{ opacity:0; transform:translate(-18px,-6px) scale(1.5); } }
  @media (max-width:1024px){ .steps__truck{ display:none; } }
  .step{ position:relative; z-index:1; background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:28px 22px; text-align:center; transition:transform var(--d-normal) var(--e-spring), box-shadow var(--d-normal); }
  .step:hover{ transform:translateY(-8px) rotate(-1.5deg); box-shadow:var(--sh-md); }
  .step__icon{ width:56px; height:56px; margin:0 auto 16px; border-radius:50%; display:grid; place-items:center; font-size:20px; color:#fff; background:var(--leaf); border:5px solid var(--cream); box-shadow:0 6px 14px rgba(90,181,82,.3); }
  .step:nth-child(2) .step__icon{ background:var(--sun); box-shadow:0 8px 18px rgba(255,194,60,.34); }
  .step:nth-child(3) .step__icon{ background:var(--berry); box-shadow:0 8px 18px rgba(255,111,97,.32); }
  .step:nth-child(4) .step__icon{ background:var(--sky); box-shadow:0 8px 18px rgba(79,195,232,.32); }
  .step:nth-child(5) .step__icon{ background:var(--grape); box-shadow:0 8px 18px rgba(155,123,224,.32); }
  .section--soft .step__icon{ border-color:var(--cream-2); }
  .step:nth-child(3) .step__icon{ position:relative; }
  .step:nth-child(3) .step__icon::before,
  .step:nth-child(3) .step__icon::after{ content:""; position:absolute; top:-8px; width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.9); filter:blur(1px); opacity:0; }
  .step:nth-child(3) .step__icon::before{ left:38%; }
  .step:nth-child(3) .step__icon::after{ left:54%; }
  @media (prefers-reduced-motion: no-preference){
    .step:nth-child(3) .step__icon::before{ animation:steam 1.9s ease-out infinite; }
    .step:nth-child(3) .step__icon::after{ animation:steam 1.9s ease-out .95s infinite; }
  }
  @keyframes steam{ 0%{ opacity:.75; transform:translateY(0) scale(.6); } 100%{ opacity:0; transform:translateY(-20px) scale(1.3); } }
  .step__num{ position:absolute; top:14px; right:16px; font-family:var(--f-display); font-size:18px; font-weight:700; color:rgba(42,33,24,.22); }
  .step h4{ margin-bottom:8px; font-size:clamp(16px,1.4vw,18px); }
  .step p{ font-size:14.5px; color:var(--body); }
  
  /* ====================================================
     MENU
     ==================================================== */
  .filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:clamp(30px,4vw,44px); }
  .chip{ font-family:var(--f-body); font-size:15px; font-weight:700; color:var(--body); background:var(--white); border:2px solid var(--border); border-radius:var(--r-pill); padding:10px 22px; cursor:pointer; white-space:nowrap; transition:all var(--d-normal) var(--e-spring); }
  .chip:hover{ border-color:var(--leaf); color:var(--leaf-700); transform:translateY(-2px); }
  .chip.is-active{ background:var(--leaf); border-color:var(--leaf); color:#fff; }
  
  .menu__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .menu__cta{ display:flex; justify-content:center; margin-top:clamp(36px,4vw,52px); }
  .dish{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; cursor:pointer; display:flex; flex-direction:column; transition:transform var(--d-normal) var(--e-spring), box-shadow var(--d-normal), border-color var(--d-normal); }
  .dish:hover{ transform:translateY(-8px); box-shadow:var(--sh-md); border-color:rgba(90,181,82,.4); }
  .dish:hover .ph-img{ transform:scale(1.07); }
  .menu__head-text .kicker{ margin-bottom:22px; }
  .menu__head-text .section__title{ line-height:1.16; }
  .menu__head-text .section__lead{ margin-top:22px; }
  .menu__head-cta{ flex-shrink:0; }
  
  .dish__media{ aspect-ratio:4/3; overflow:hidden; background:radial-gradient(circle at 50% 42%, #FFFFFF, var(--cream-soft)); position:relative; }
  .dish__media .ph-img{ object-fit:contain; padding:6px; }
  .dish__tag{ position:absolute; z-index:2; top:14px; left:14px; background:#fff; color:var(--leaf-700); font-size:12px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; padding:6px 13px; border-radius:var(--r-pill); box-shadow:var(--sh-sm); }
  .dish__info{ padding:22px 22px 24px; flex:1; display:flex; flex-direction:column; }
  .dish__info h4{ margin-bottom:7px; }
  .dish__desc{ font-size:14.5px; color:var(--body); margin-bottom:18px; flex:1; }
  .dish__foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:16px; border-top:1px solid var(--border); }
  .dish__age{ display:inline-flex; align-items:center; gap:6px; font-size:13.5px; font-weight:600; color:var(--muted); }
  .dish__age i{ font-size:17px; color:var(--berry); }
  .dish__view{ position:relative; z-index:2; font-size:14px; font-weight:700; color:var(--leaf-700); display:inline-flex; align-items:center; gap:5px; padding:4px 2px; transition:gap var(--d-normal), color var(--d-normal); }
  .dish__view i{ line-height:1; display:inline-flex; align-items:center; transform:translateY(2px); transition:transform var(--d-normal); }
  .dish__view:hover{ color:var(--leaf-600); gap:9px; }
  .dish__view:hover i{ transform:translate(4px,2px); }
  /* dish popup content lives in the card markup, never shown inline */
  .dish__details{ display:none !important; }
  
  /* ====================================================
     MENU PAGE — toolbar, filters, list view
     ==================================================== */
  .menu-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:clamp(30px,4vw,46px); }
  .menu-filters{ display:flex; gap:12px; flex-wrap:wrap; }
  .menu-filters .chip{ font-size:14px; padding:9px 20px; }
  .view-toggle{ display:inline-flex; gap:4px; background:var(--white); border:1px solid var(--border); border-radius:var(--r-pill); padding:5px; box-shadow:var(--sh-sm); }
  .view-toggle button{ border:none; background:none; width:44px; height:38px; border-radius:var(--r-pill); cursor:pointer; color:var(--muted); font-size:18px; display:grid; place-items:center; transition:background var(--d-normal), color var(--d-normal); }
  .view-toggle button i{ line-height:0; }
  .view-toggle button:hover{ color:var(--leaf-700); }
  .view-toggle button.is-active{ background:var(--leaf); color:#fff; }
  
  /* list view */
  .menu__grid.is-list{ grid-template-columns:1fr; gap:16px; }
  .menu__grid.is-list .dish{ flex-direction:row; align-items:stretch; }
  .menu__grid.is-list .dish__media{ width:230px; flex-shrink:0; aspect-ratio:auto; }
  .menu__grid.is-list .dish__info{ padding:24px 28px; }
  .menu__grid.is-list .dish__desc{ max-width:640px; }
  @media (max-width:600px){
    .menu__grid.is-list .dish{ flex-direction:column; }
    .menu__grid.is-list .dish__media{ width:100%; aspect-ratio:4/3; }
  }
  
  /* ====================================================
     WHY
     ==================================================== */
  .why__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .card{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:32px; transition:transform var(--d-normal) var(--e-spring), box-shadow var(--d-normal); }
  .card:hover{ transform:translateY(-8px) rotate(-1deg); box-shadow:var(--sh-md); }
  .card__icon{ width:62px; height:62px; border-radius:20px; display:grid; place-items:center; font-size:30px; color:#fff; margin-bottom:20px; transition:transform var(--d-normal) var(--e-spring); }
  .card:hover .card__icon{ transform:rotate(-8deg) scale(1.08); }
  .why__card h4{ margin-bottom:9px; }
  .why__card p{ font-size:15px; color:var(--body); }
  .why__card--lime .card__icon{ background:var(--leaf); }
  .why__card--sun .card__icon{ background:var(--sun); }
  .why__card--berry .card__icon{ background:var(--berry); }
  .why__card--sky .card__icon{ background:var(--sky); }
  .why__card--grape .card__icon{ background:var(--grape); }
  .why__card--leaf .card__icon{ background:var(--brown); }
  
  /* ====================================================
     GALLERY
     ==================================================== */
  .gallery__swiper{ overflow:visible; padding-inline:clamp(20px,5vw,40px); }
  .g-slide{ width:clamp(280px,34vw,440px); aspect-ratio:4/3.4; border-radius:var(--r-lg); overflow:hidden; position:relative; box-shadow:var(--sh-sm); }
  .g-slide .ph-img{ transition:transform var(--d-slow) var(--e-out); }
  .g-slide:hover .ph-img{ transform:scale(1.06); }
  .g-slide figcaption{ position:absolute; left:0; right:0; bottom:0; padding:24px 18px 16px; color:#fff; font-family:var(--f-display); font-weight:600; font-size:17px; background:linear-gradient(transparent,rgba(22,48,31,.78)); }
  .gallery__controls{ display:flex; gap:12px; align-items:center; justify-content:center; margin-top:32px; flex-wrap:wrap; }
  .gallery__arrows{ display:flex; gap:12px; }
  .g-arrow{ width:54px; height:54px; border-radius:50%; border:2px solid var(--border-2); background:var(--white); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:20px; color:var(--ink); transition:all var(--d-normal) var(--e-spring); }
  .g-arrow i{ line-height:0; display:flex; align-items:center; justify-content:center; }
  .g-arrow:hover{ background:var(--leaf); border-color:var(--leaf); color:#fff; transform:scale(1.08); }
  
  /* ====================================================
     COMPLIANCE (dark)
     ==================================================== */
  .compliance__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
  .comp-card{ background:var(--forest-2); border:1px solid rgba(255,255,255,.08); border-radius:var(--r-lg); padding:30px; transition:transform var(--d-normal) var(--e-spring), border-color var(--d-normal); }
  .comp-card:hover{ transform:translateY(-6px); border-color:rgba(191,215,48,.5); }
  .comp-card__icon{ width:56px; height:56px; border-radius:18px; background:rgba(191,215,48,.16); color:var(--lime); display:grid; place-items:center; font-size:28px; margin-bottom:18px; }
  .comp-card h4{ color:#fff; margin-bottom:8px; }
  .comp-card p{ font-size:14.5px; color:var(--on-dark); }
  
  /* ====================================================
     TESTIMONIALS
     ==================================================== */
  .tst-swiper{ 
    /* padding:8px clamp(20px,5vw,40px) 56px;  */
    overflow:hidden;
  }
  .tst-swiper .swiper-slide{ height:auto; display:flex; }
  .tst{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:34px; width:100%; height:100%; display:flex; flex-direction:column; justify-content:space-between; box-shadow:var(--sh-sm); }
  .tst__stars{ display:flex; gap:3px; color:var(--sun); font-size:18px; margin-bottom:18px; }
  .tst blockquote{ font-family:var(--f-display); font-weight:500; font-size:clamp(17px,1.6vw,20px); line-height:1.4; color:var(--ink); margin-bottom:24px; }
  .tst figcaption{ display:flex; align-items:center; gap:14px; }
  .tst__av{ width:48px; height:48px; border-radius:50%; flex-shrink:0; }
  .tst__av--1{ background:linear-gradient(135deg,var(--lime),var(--leaf)); }
  .tst__av--2{ background:linear-gradient(135deg,var(--sun),#F2962E); }
  .tst__av--3{ background:linear-gradient(135deg,var(--berry),#E04A3C); }
  .tst__av--4{ background:linear-gradient(135deg,var(--sky),#2C9BC0); }
  .tst figcaption strong{ display:block; font-family:var(--f-body); font-size:15px; font-weight:700; color:var(--ink); }
  .tst figcaption small{ font-size:13px; color:var(--muted); }
  .tst-swiper__pagination{ display:flex; justify-content:center; gap:8px; margin-top:32px; }
  .tst-swiper__pagination .swiper-pagination-bullet{ width:9px; height:9px; background:var(--border-2); border-radius:99px; opacity:1; transition:all var(--d-normal); }
  .tst-swiper__pagination .swiper-pagination-bullet-active{ width:28px; background:var(--leaf); }

  /* ====================================================
     PARTNERS
     ==================================================== */
  .partners{ overflow:hidden; }
  .partners__head{ text-align:center; max-width:760px; margin:0 auto clamp(40px,5vw,64px); display:flex; flex-direction:column; align-items:center; gap:clamp(22px,2.6vw,32px); }
  .partners__head .kicker{ margin-bottom:0; }
  .partners__head .section__title{ line-height:1.42; }
  .partners__head .section__lead{ margin-top:0; }
  .partners__count{ color:var(--berry); }
  .partners__marquee{ position:relative; -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
  .partners__track{ display:flex; gap:18px; width:max-content; }
  @media (prefers-reduced-motion: no-preference){
    .partners__track{ animation:marquee 38s linear infinite; }
    .partners__marquee:hover .partners__track{ animation-play-state:paused; }
  }
  .logo-chip{ display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; padding:0 clamp(28px,4vw,56px); }
  .logo-chip img{ height:60px; width:auto; max-width:240px; object-fit:contain; display:block; opacity:.85; transition:opacity var(--d-normal), transform var(--d-normal) var(--e-spring); }
  .logo-chip:hover img{ opacity:1; transform:scale(1.06); }
  
  /* ====================================================
     BLOG
     ==================================================== */
  .blog__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .blog-card{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; transition:transform var(--d-normal) var(--e-spring), box-shadow var(--d-normal); }
  .blog-card:hover{ transform:translateY(-7px); box-shadow:var(--sh-md); }
  .blog-card:hover .ph-img{ transform:scale(1.06); }
  .blog-card__media{ aspect-ratio:16/10; overflow:hidden; background:var(--cream-soft); }
  .blog-card__body{ padding:24px 26px 28px; }
  .blog-card__cat{ display:inline-block; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--berry); margin-bottom:10px; }
  .blog-card__body h4{ margin-bottom:9px; }
  .blog-card__body p{ font-size:15px; color:var(--body); margin-bottom:16px; }
  .read-more{ font-size:14.5px; font-weight:700; color:var(--leaf-700); display:inline-flex; align-items:center; gap:6px; transition:gap var(--d-normal); }
  .read-more:hover{ gap:11px; }
  .read-more i{ line-height:1; display:inline-flex; align-items:center; transform:translateY(2px); }
  /* clickable blog-card elements */
  a.blog-card__media{ display:block; }
  .blog-card__body h4 a{ color:inherit; transition:color var(--d-normal); }
  .blog-card:hover .blog-card__body h4 a,
  .blog-card__body h4 a:hover{ color:var(--leaf-700); }
  a.blog-card__cat{ transition:color var(--d-normal); }
  a.blog-card__cat:hover{ color:var(--leaf-700); }
  
  /* blog category filters */
  .blog-filters{ display:flex; gap:12px; flex-wrap:wrap; justify-content:flex-start; margin-bottom:clamp(28px,4vw,44px);padding-top: 20px; }
  .blog-filters .chip{ font-size:14px; padding:9px 20px; }
  @media (max-width:760px){
    .blog-filters{ flex-wrap:wrap; justify-content:flex-start; gap:8px; }
    .blog-filters .chip{ padding:10px 16px; font-size:13.5px; }
    .blog-filters::-webkit-scrollbar{ display:none; }
    .blog-filters .chip{ flex:0 0 auto; }
  }
  
  /* pagination */
  .pagination{ display:flex; justify-content:center; align-items:center; gap:8px; margin-top:clamp(38px,5vw,58px); flex-wrap:wrap; }
  .pagination__num, .pagination__arrow{ min-width:46px; height:46px; padding:0 12px; border-radius:14px; border:1px solid var(--border); background:var(--white); font-family:var(--f-display); font-weight:600; font-size:16px; color:var(--ink); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:transform var(--d-normal) var(--e-spring), background var(--d-normal), color var(--d-normal), border-color var(--d-normal); }
  .pagination__num:hover:not(.is-active), .pagination__arrow:hover:not([disabled]){ transform:translateY(-3px); border-color:var(--leaf); color:var(--leaf-700); }
  .pagination__num.is-active{ background:var(--leaf); border-color:var(--leaf); color:#fff; }
  .pagination__arrow[disabled]{ opacity:.4; cursor:default; }
  .pagination__arrow i{ line-height:0; }
  
  /* category page toolbar */
  .cat-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:clamp(22px,3vw,34px); }
  .cat-chips{ display:flex; gap:10px; flex-wrap:wrap; }
  .cat-chips .chip{ text-decoration:none; }
  .cat-empty{ text-align:center; color:var(--muted); font-size:17px; padding:40px 0; }
  
  /* related articles swiper (article page) */
  .related-swiper{ overflow:hidden; padding:16px 6px 20px; margin:-16px -6px -20px; }
  .related-swiper .swiper-slide{ height:auto; }
  .related-swiper .blog-card, .related-swiper .dish{ height:auto; margin:0; box-shadow:none; display:flex; flex-direction:column; }
  .related-swiper .blog-card:hover, .related-swiper .dish:hover{ box-shadow:none; }
  .related-swiper .blog-card__body, .related-swiper .dish__info{ flex:1 1 auto; }
  .related-swiper .blog-card__body{ display:flex; flex-direction:column; }
  .related-swiper .blog-card__body p{ flex:1 1 auto; }
  .related-swiper__nav{ display:flex; align-items:center; justify-content:center; gap:18px; margin-top:28px; }
  /* stop Swiper stretching the pagination full-width (which shoves the arrows to the edges) */
  .related-swiper__pagination.swiper-pagination-horizontal,
  .related-swiper__nav .related-swiper__pagination{ position:static !important; width:auto !important; left:auto !important; bottom:auto !important; }
  .related-swiper__prev, .related-swiper__next{ width:48px; height:48px; border-radius:50%; border:1px solid var(--border); background:var(--white); color:var(--ink); display:grid; place-items:center; cursor:pointer; box-shadow:var(--sh-sm); transition:transform var(--d-normal) var(--e-spring), color var(--d-normal), border-color var(--d-normal); }
  .related-swiper__prev:hover, .related-swiper__next:hover{ transform:translateY(-3px); color:var(--leaf-700); border-color:var(--leaf); }
  .related-swiper__prev i, .related-swiper__next i{ line-height:0; }
  .related-swiper__prev.swiper-button-disabled, .related-swiper__next.swiper-button-disabled{ opacity:.4; cursor:default; transform:none; color:var(--ink); border-color:var(--border); }
  .related-swiper__pagination{ display:flex; align-items:center; gap:6px; }
  .related-swiper__pagination .swiper-pagination-bullet{ width:9px; height:9px; background:var(--leaf); opacity:.3; margin:0 !important; border-radius:99px; transition:width var(--d-normal), opacity var(--d-normal); }
  .related-swiper__pagination .swiper-pagination-bullet-active{ opacity:1; width:26px; }
  
  /* ====================================================
     FAQ
     ==================================================== */
  .accordion{ display:flex; flex-direction:column; gap:14px; }
  .acc{ background:var(--white); border:2px solid var(--border); border-radius:var(--r-md); overflow:hidden; transition:border-color var(--d-normal), box-shadow var(--d-normal); }
  .acc.is-open{ border-color:rgba(90,181,82,.45); box-shadow:var(--sh-sm); }
  .acc__q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:16px; text-align:left; background:none; border:none; cursor:pointer; font-family:var(--f-display); font-size:clamp(17px,1.6vw,20px); font-weight:600; color:var(--ink); padding:22px 24px; }
  .acc__plus{ width:34px; height:34px; flex-shrink:0; border-radius:50%; background:rgba(90,181,82,.12); color:var(--leaf); display:grid; place-items:center; font-size:16px; transition:transform var(--d-normal) var(--e-spring), background var(--d-normal); }
  .acc.is-open .acc__plus{ transform:rotate(135deg); background:var(--leaf); color:#fff; }
  .acc__a{ max-height:0; overflow:hidden; transition:max-height var(--d-medium) var(--e-default); }
  .acc__a p{ padding:0 24px 22px; font-size:16px; color:var(--body); max-width:64ch; }
  
  /* ====================================================
     CONTACT
     ==================================================== */
  .contact__grid{ display:grid; grid-template-columns:1fr; gap:clamp(32px,4vw,48px); align-items:stretch; }
  .contact__intro{ position:static; }
  .contact__intro .kicker{ margin-bottom:24px; }
  .contact__intro .section__title{ line-height:1.16; }
  .contact__intro p{ color:var(--on-dark); font-size:18px; margin:28px 0 36px; max-width:none; }
  .contact__points{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:0; padding:0; list-style:none; }
  .contact__point{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding:18px 16px; border-radius:var(--r-md); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); transition:transform var(--d-normal) var(--e-spring), background var(--d-normal), border-color var(--d-normal); }
  .contact__point:hover{ transform:translateY(-5px); background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.28); }
  .contact__point:hover .contact__point-ic{ transform:scale(1.06); }
  .contact__point-ic{ transition:transform var(--d-normal) var(--e-spring); }
  .contact__point-ic{ width:44px; height:44px; border-radius:12px; display:grid; place-items:center; font-size:20px; color:#fff; flex-shrink:0; }
  .contact__point-ic i{ line-height:0; }
  .contact__point--leaf .contact__point-ic{ background:var(--leaf); }
  .contact__point--sun .contact__point-ic{ background:var(--sun); color:#3a2d14; }
  .contact__point--sky .contact__point-ic{ background:var(--sky); }
  .contact__point-txt{ display:flex; flex-direction:column; gap:3px; }
  .contact__point-txt small{ font-size:11.5px; color:var(--on-dark-muted); text-transform:uppercase; letter-spacing:.05em; font-weight:700; }
  .contact__point-txt a, .contact__point-txt > span{ color:#fff; font-size:14.5px; font-weight:600; word-break:break-word; line-height:1.4; }
  .contact__point-txt a{ transition:color var(--d-normal); }
  .contact__point-txt a:hover{ color:var(--lime); }
  @media (max-width:520px){ .contact__points{ grid-template-columns:1fr; } }
  
  .form-card{ background:var(--white); border-radius:var(--r-xl); padding:clamp(26px,3.5vw,46px); box-shadow:var(--sh-lg); }
  .contact__head-row{ display:flex; align-items:center; justify-content:space-between; gap:28px; }
  .contact__head-row .section__title{ margin:0; flex:1 1 auto; min-width:0; }
  .contact__cta{ flex:0 0 auto; }
  @media (max-width:640px){ .contact__head-row{ flex-direction:column; align-items:flex-start; gap:20px; } }
  /* form popup */
  .form-modal{ position:fixed; inset:0; z-index:1000; display:none; }
  .form-modal.is-open{ display:block; }
  .form-modal__scrim{ position:absolute; inset:0; background:rgba(18,38,24,.62); }
  .form-modal__card{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:min(500px,calc(100vw - 28px)); max-height:calc(100dvh - 48px); background:var(--white); border-radius:var(--r-xl); box-shadow:var(--sh-lg); overflow:hidden; display:flex; flex-direction:column; animation:popIn var(--d-medium) var(--e-spring); }
  /* compact single-column fields inside the popup */
  .form-modal .field-grid{ grid-template-columns:1fr; gap:12px; }
  .form-modal__card .form-card{ padding-left:clamp(22px,4vw,32px); padding-right:clamp(22px,4vw,32px); padding-bottom:clamp(24px,4vw,34px); }
  .form-modal__scroll{ overflow-y:auto; -webkit-overflow-scrolling:touch; scrollbar-width:thin; scrollbar-color:rgba(90,181,82,.5) transparent; }
  .form-modal__scroll::-webkit-scrollbar{ width:11px; }
  .form-modal__scroll::-webkit-scrollbar-track{ background:transparent; }
  .form-modal__scroll::-webkit-scrollbar-thumb{ background:rgba(90,181,82,.5); border-radius:99px; border:4px solid transparent; background-clip:content-box; min-height:44px; }
  .form-modal__scroll::-webkit-scrollbar-thumb:hover{ background:rgba(90,181,82,.75); background-clip:content-box; }
  .form-modal__card .form-card{ box-shadow:none; border-radius:0; padding-top:clamp(58px,7vw,72px); }
  .form-modal__close{ position:absolute; top:14px; right:14px; z-index:4; width:40px; height:40px; border-radius:50%; border:none; background:var(--cream-2); color:var(--ink); display:grid; place-items:center; cursor:pointer; font-size:20px; transition:background var(--d-normal), transform var(--d-normal) var(--e-spring); }
  .form-modal__close:hover{ background:var(--cream-soft); transform:rotate(90deg); }
  .form-modal__close i{ line-height:0; }
  @keyframes popIn{ from{ opacity:0; transform:translate(-50%,-46%) scale(.96); } to{ opacity:1; transform:translate(-50%,-50%) scale(1); } }
  /* Auth modal (login / register) */
  .auth-tabs{ display:flex; gap:6px; background:var(--cream-2); border:1px solid var(--border); border-radius:var(--r-pill); padding:5px; margin-bottom:24px; }
  .auth-tab{ flex:1; padding:11px 16px; border:none; background:transparent; border-radius:var(--r-pill); font-family:var(--f-display); font-weight:600; font-size:15px; color:var(--body); cursor:pointer; transition:background var(--d-normal), color var(--d-normal); }
  .auth-tab.is-active{ background:var(--leaf); color:#fff; }
  .auth-panel{ display:none; }
  .auth-panel.is-active{ display:block; }
  .auth-panel .field{ margin-bottom:14px; }
  .auth-msg{ font-size:14px; margin:16px 0 0; min-height:1.1em; }
  .auth-msg.is-err{ color:#c0392b; }
  .auth-msg.is-ok{ color:var(--leaf-700); }
  .auth-alt{ font-size:14px; margin-top:16px; color:var(--muted); }
  .auth-alt a{ color:var(--leaf-700); font-weight:600; text-decoration:none; }
  .auth-alt a:hover{ text-decoration:underline; }
  .comment-auth{ margin-top:24px; }
  .comment.is-pending{ opacity:.8; }
  .comments .comment-notes, .comments .required-field-message{ display:none; }
  .comment-loggedin{ margin-bottom:18px; }
  .comment__av-img{ flex-shrink:0; width:48px; height:48px; border-radius:50%; object-fit:cover; }
  /* Profile page */
  .profile-card{ max-width:600px; margin-top:clamp(24px,3vw,36px); }
  .profile-card .field{ margin-bottom:18px; }
  .profile-card .field:last-of-type{ margin-bottom:0; }
  .profile-avatar{ display:flex; align-items:center; gap:18px; margin-bottom:24px; }
  .profile-avatar__img{ width:96px; height:96px; border-radius:50%; object-fit:cover; background:var(--cream-2); flex-shrink:0; }
  .profile-avatar__badge{ width:96px; height:96px; border-radius:50%; display:grid; place-items:center; color:#fff; font-weight:700; font-family:var(--f-display); font-size:30px; background:linear-gradient(140deg,var(--leaf),var(--leaf-700)); flex-shrink:0; }
  .profile-card .field input:disabled{ opacity:.55; cursor:not-allowed; background:var(--cream-2); }
  .profile-danger{ margin-top:22px; padding-top:20px; border-top:1px solid var(--border); }
  .profile-delete{ background:none; border:none; padding:0; color:#c0392b; font-weight:600; font-size:14px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
  .profile-delete:hover{ text-decoration:underline; }
  .comment__pending{ display:inline-flex; align-items:center; margin-left:8px; padding:2px 10px; border-radius:var(--r-pill); background:#fdecc8; color:#8a5a00; font-size:12px; font-weight:700; line-height:1.6; }
  .comments .logged-in-as, .comments .comment-notes{ font-size:14px; color:var(--muted); margin-bottom:16px; }
  .comments .logged-in-as a, .comments .comment-notes a{ color:var(--leaf-700); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
  .comments .logged-in-as a:hover, .comments .comment-notes a:hover{ color:var(--leaf); }
  .form-progress{ display:flex; align-items:center; gap:10px; margin-bottom:32px; }
  .fp-step{ width:36px; height:36px; flex-shrink:0; border-radius:50%; display:grid; place-items:center; font-family:var(--f-display); font-weight:700; font-size:15px; background:var(--cream-2); color:var(--muted); transition:all var(--d-normal) var(--e-spring); }
  .fp-step.is-active,.fp-step.is-done{ background:var(--leaf); color:#fff; }
  .fp-bar{ flex:1; height:4px; border-radius:4px; background:var(--cream-2); overflow:hidden; }
  .fp-bar i{ display:block; height:100%; width:0; background:var(--leaf); transition:width var(--d-medium) var(--e-out); }
  
  .form-step{ display:none; }
  .form-step.is-active{ display:block; animation:fadeUp var(--d-medium) var(--e-out); }
  @keyframes fadeUp{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
  .form-step h3{ margin-bottom:15px; }
  .form-hint{ font-size:15px; color:var(--muted); margin-bottom:22px; }
  .type-choices{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:8px; }
  .type-choice{ cursor:pointer; }
  .type-choice input{ position:absolute; opacity:0; }
  .type-choice__inner{ display:flex; flex-direction:column; align-items:center; gap:12px; padding:30px 18px; border:2px solid var(--border-2); border-radius:var(--r-md); font-family:var(--f-display); font-weight:600; font-size:17px; color:var(--ink); transition:all var(--d-normal) var(--e-spring); }
  .type-choice__inner i{ font-size:36px; color:var(--leaf); transition:transform var(--d-normal) var(--e-spring); }
  .type-choice:hover .type-choice__inner{ border-color:var(--leaf); transform:translateY(-3px); }
  .type-choice input:checked + .type-choice__inner{ border-color:var(--leaf); background:rgba(90,181,82,.08); box-shadow:var(--sh-focus); }
  .type-choice input:checked + .type-choice__inner i{ transform:scale(1.15) rotate(-6deg); }
  
  .field-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:8px; }
  .field{ display:flex; flex-direction:column; gap:7px; }
  .field > span{ font-size:14px; font-weight:700; color:var(--ink); }
  .field textarea,
  .field input{ font-family:var(--f-body); font-size:15.5px; color:var(--ink); padding:13px 16px; border:2px solid var(--border-2); border-radius:var(--r-sm); background:var(--cream); outline:none; transition:border-color var(--d-normal), box-shadow var(--d-normal), background var(--d-normal); width:100%; }
  .field textarea{ min-height:120px; resize:vertical; }
  .field input::placeholder{ color:var(--muted); }
  .field input:focus{ border-color:var(--leaf); box-shadow:var(--sh-focus); background:#fff; }
  .field input.invalid{ border-color:var(--berry); }
  .field-error{ display:none; font-style:normal; font-size:13px; color:var(--berry); margin-top:5px; font-weight:600; }
  .field-error.show{ display:block; }
  .field-diet{ margin-top:18px; }
  .field-diet__label{ display:block; font-size:14px; font-weight:700; color:var(--ink); margin-bottom:10px; }
  .diet-choices{ display:flex; flex-wrap:wrap; gap:10px; }
  .diet-chip{ cursor:pointer; }
  .diet-chip input{ position:absolute; opacity:0; width:0; height:0; }
  .diet-chip span{ display:inline-block; padding:9px 16px; border-radius:var(--r-pill); border:2px solid var(--border-2); font-size:14px; font-weight:600; color:var(--body); transition:background var(--d-normal), border-color var(--d-normal), color var(--d-normal); }
  .diet-chip:hover span{ border-color:var(--leaf); color:var(--leaf-700); }
  .diet-chip input:checked + span{ background:var(--leaf); border-color:var(--leaf); color:#fff; }
  .diet-chip input:focus-visible + span{ box-shadow:var(--sh-focus); }
  
  .checkbox{ display:flex; align-items:center; gap:11px; margin:18px 0 4px; cursor:pointer; font-size:15px; color:var(--ink); font-weight:500; }
  .checkbox input{ width:20px; height:20px; accent-color:var(--leaf); }
  .form-nav{ display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:16px; }
  .form-success{ text-align:center; padding:20px 0; }
  .success-check{ font-size:64px; color:var(--leaf); display:block; margin-bottom:8px; animation:pop var(--d-medium) var(--e-spring); }
  .form-success p{ font-size:17px; color:var(--body); max-width:380px; margin:8px auto 26px; }
  @keyframes pop{ from{ transform:scale(0); } to{ transform:scale(1); } }
  
  /* ====================================================
     FOOTER
     ==================================================== */
  .footer{ background:var(--forest); color:var(--on-dark); padding-top:clamp(56px,7vw,88px); border-top:1px solid rgba(255,255,255,.12); }
  .footer__grid{ display:grid; grid-template-columns:2fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:56px; }
  .footer__logo{ height:62px; margin-bottom:20px; filter:brightness(0) invert(1); opacity:.95; }
  .footer__brand p{ font-size:15px; color:var(--on-dark-muted); max-width:300px; margin-bottom:22px; }
  .socials{ display:flex; gap:10px; }
  .socials a{ width:44px; height:44px; border-radius:14px; background:rgba(255,255,255,.06); display:grid; place-items:center; font-size:20px; color:var(--on-dark); transition:all var(--d-normal) var(--e-spring); }
  .socials a:hover{ background:var(--leaf); color:#fff; transform:translateY(-4px) rotate(-6deg); }
  .footer__col h5{ color:#fff; margin-bottom:16px; }
  .footer__col a,.footer__addr{ display:block; font-size:15px; color:var(--on-dark-muted); margin-bottom:11px; transition:color var(--d-fast); }
  .footer__col a:hover{ color:var(--lime); }
  .footer__bottom{ display:flex; justify-content:space-between; align-items:center; gap:16px; padding-block:24px; border-top:1px solid rgba(255,255,255,.08); font-size:14px; color:var(--on-dark-muted); flex-wrap:wrap; }
  .footer__bottom_menu{
    display: flex;
    gap: 16px;
  }
  /* ====================================================
     MODAL
     ==================================================== */
  .modal{ position:fixed; inset:0; z-index:200; background:rgba(22,48,31,.5); backdrop-filter:blur(4px); display:flex; justify-content:center; align-items:center; padding:clamp(16px,4vw,40px); opacity:0; visibility:hidden; transition:opacity var(--d-normal); }
  .modal.is-open{ opacity:1; visibility:visible; }
  .modal__drawer{ width:min(540px,100%); max-height:90vh; background:var(--cream-soft); overflow:hidden; border-radius:var(--r-lg); box-shadow:var(--sh-lg); transform:scale(.94) translateY(12px); opacity:0; transition:transform var(--d-medium) var(--e-out), opacity var(--d-normal); position:relative; }
  .modal.is-open .modal__drawer{ transform:none; opacity:1; }
  .modal__scroll{ max-height:90vh; overflow-y:auto; border-radius:var(--r-lg); scrollbar-width:thin; scrollbar-color:rgba(90,181,82,.32) transparent; }
  .modal__body{ background:var(--white); }
  .modal__scroll::-webkit-scrollbar{ width:9px; }
  .modal__scroll::-webkit-scrollbar-track{ background:transparent; margin:var(--r-lg) 0; }
  .modal__scroll::-webkit-scrollbar-thumb{ background:rgba(90,181,82,.45); border-radius:var(--r-pill); border:2.5px solid transparent; background-clip:padding-box; }
  .modal__scroll::-webkit-scrollbar-thumb:hover{ background:rgba(90,181,82,.65); background-clip:padding-box; }
  .modal__close{ position:absolute; top:16px; right:16px; z-index:2; width:46px; height:46px; border-radius:50%; border:none; background:rgba(255,255,255,.92); cursor:pointer; display:grid; place-items:center; font-size:20px; color:var(--ink); box-shadow:var(--sh-sm); transition:transform var(--d-normal); }
  .modal__close:hover{ transform:rotate(90deg); }
  .modal__media{ aspect-ratio:16/11; background:var(--cream-soft); overflow:hidden; position:relative; }
  .modal__media img{ width:100%; height:100%; object-fit:cover; }
  /* dish photo slider (arrows only, no thumbnails) */
  .dish-swiper{ width:100%; height:100%; }
  .dish-swiper .swiper-slide{ height:100%; }
  .dish-swiper .swiper-slide img{ width:100%; height:100%; object-fit:cover; }
  .dish-swiper__nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:42px; height:42px; border-radius:50%; border:none; background:rgba(255,255,255,.92); color:var(--ink); display:grid; place-items:center; font-size:20px; cursor:pointer; box-shadow:0 6px 16px rgba(0,0,0,.16); transition:background var(--d-normal), transform var(--d-normal) var(--e-spring); }
  .dish-swiper__nav:hover{ background:#fff; }
  .dish-swiper__nav i{ line-height:0; }
  .dish-swiper__prev{ left:14px; }
  .dish-swiper__next{ right:14px; }
  .dish-swiper__nav.swiper-button-disabled{ opacity:0; pointer-events:none; }
  .modal__body{ padding:30px 32px 38px; }
  .dish-cat{ display:inline-block; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--berry); margin-bottom:8px; }
  .modal__body > h3{ margin-bottom:12px; }
  #dishDesc{ margin-bottom:24px; }
  #dishDesc p{ font-size:16px; color:var(--body); margin-bottom:12px;  }
  #dishDesc p:last-child{ margin-bottom:0; }
  .dish-meta{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; padding:18px; background:var(--cream); border-radius:var(--r-md); margin-bottom:26px; }
  .dish-meta > div{ display:flex; flex-direction:column; gap:4px;align-items: center; }
  .dm-label{ font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:700; }
  .dish-meta > div > span:last-child{ font-size:14.5px; color:var(--ink); font-weight:600; }
  .dish-sub{ margin-bottom:10px; }
  #dishIngredients{ font-size:15px; color:var(--body); margin-bottom:24px; }
  .nutri-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:28px; }
  .nutri-cell{ background:var(--cream); border:1px solid var(--border); border-radius:var(--r-sm); padding:14px 10px; text-align:center; }
  .nutri-cell strong{ display:block; font-family:var(--f-display); font-size:23px; font-weight:700; color:var(--leaf-700); }
  .nutri-cell span{ font-size:12px; color:var(--muted); }
  .modal__cta{ width:100%; justify-content:center; }
  
  /* ====================================================
     REVEAL
     ==================================================== */
  [data-reveal]{ opacity:0; transform:translateY(30px); }
  .no-gsap [data-reveal]{ opacity:1; transform:none; }
  @media (prefers-reduced-motion: reduce){
    [data-reveal]{ opacity:1 !important; transform:none !important; }
    .float-shape,.sparkle,.loader__emoji{ animation:none !important; }
  }
  
  /* ====================================================
     RESPONSIVE
     ==================================================== */
  @media (max-width:1024px){
    .nav{ display:none; }
    .burger{ display:flex; }
    .header__actions{ margin-left:auto; }
    .stats__grid{ grid-template-columns:repeat(2,1fr); }
    .menu__grid,.why__grid,.compliance__grid,.blog__grid{ grid-template-columns:repeat(2,1fr); }
    .steps{ grid-template-columns:repeat(2,1fr); padding-top:0; }
    .steps::before{ display:none; }
  }
  @media (max-width:600px){
    .header__actions .btn{ display:none; }
    .brand__logo{ height:55px; }
    .mobile-menu{ width:100%; max-width:100%; }
  }
  @media (max-width:760px){
    body{ font-size:16px; }
    :root{ --section-y: clamp(40px,8vw,60px); }
    .section__head{ margin-bottom:clamp(26px,6vw,36px); }
    .gallery__controls{ justify-content:center; margin-top:20px; }
    .hero{ min-height:90svh; padding-top:104px; padding-bottom:clamp(40px,9vh,80px); }
    .hero__stage{ min-height:clamp(110px,24vh,180px); }
    .hero__cap--1,.hero__cap--2,.hero__cap--3,.hero__cap--4{ font-size:clamp(26px,7.6vw,42px); }
    .hero__dock{ margin-top:20px; width:100%; }
    .hero__cta{ flex-direction:row; flex-wrap:nowrap; gap:10px; width:100%; }
    .hero__cta .btn{ flex:1; min-width:0; justify-content:center; padding:14px 12px; font-size:14px; gap:7px; }
    .hero__cta .btn i{ font-size:15px; }
    .panel{ grid-template-columns:1fr; }
    .panel.is-active{ gap:28px; }
    .panel__media{ order:-1; }
    .switch{ width:100%; flex-direction:column; border-radius:var(--r-lg); }
    .switch__tab{ justify-content:center; }
    .switch__pill{ display:none; }
    .switch__tab.is-active{ background:var(--white); box-shadow:var(--sh-sm); }
    .section__head{ flex-direction:column; align-items:flex-start; }
    .section__head--center{ align-items:center; }
    .menu__grid,.why__grid,.compliance__grid,.blog__grid,.steps{ grid-template-columns:1fr; }
    .contact__grid{ grid-template-columns:1fr; }
    .contact__intro{ position:static; }
    .field-grid{ grid-template-columns:1fr; }
    .type-choices{ grid-template-columns:1fr 1fr; gap:12px; }
    .type-choice__inner{ padding:18px 8px; gap:8px; font-size:15px; }
    .type-choice__inner i{ font-size:26px; }
    .footer__grid{ grid-template-columns:1fr 1fr; gap:32px; }
    .footer__brand{ grid-column:1/-1; }
    .modal__drawer{ width:100%; }
    /* menu toolbar: filters scroll left, toggle pinned right */
    .menu-toolbar{ flex-wrap:nowrap; gap:12px; }
    .menu-toolbar{ flex-wrap:wrap; }
    .menu-filters{ flex-wrap:wrap; justify-content:flex-start; gap:8px; width:100%; }
    .menu-filters .chip{ flex:0 0 auto; padding:10px 16px; font-size:13.5px; }
    .view-toggle{ flex-shrink:0; }
    /* dish modal: compact meta + shorter nutrition cells */
    .dish-meta{ gap:8px; padding:14px; grid-template-columns:repeat(3,1fr); }
    .dm-label{ font-size:9.5px; letter-spacing:.03em; white-space:nowrap; }
    .dish-meta > div > span:last-child{ font-size:13px; }
    .nutri-grid{ gap:8px; }
    .nutri-cell{ padding:9px 6px; }
    .nutri-cell strong{ font-size:18px; }
    .nutri-cell span{ font-size:10.5px; }
    /* impact band: remove bottom dish, keep top-right */
    .impact__dish--2{ display:none; }
    .impact__dish--1{ width:112px; top:-6px; right:-6px; }
    /* menu: drop the grid/list toggle, chips scroll in one line */
    .view-toggle{ display:none; }
    /* flatten card shadows inside mobile carousels */
    .m-carousel .guideline,
    .m-carousel .why__card,
    .m-carousel .comp-card{ box-shadow:none; }
    .comp-card,
    .why__card{
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    .comp-card p,
    .why__card p{
      text-align: center;
    }
  }
  @media (max-width:440px){
    .stats__grid{ grid-template-columns:1fr; }
    .footer__grid{ grid-template-columns:1fr; }
    .form-nav{ flex-wrap:wrap; }
    .form-nav .btn{ flex:1; justify-content:center; }
  }
  
  /* ====================================================
     INTERIOR PAGE HERO  (about, menu, etc.)
     ==================================================== */
  .page-hero{
    position:relative; overflow:hidden;
    padding:clamp(128px,17vh,196px) 0 clamp(92px,11vw,140px);
    background:
      radial-gradient(60% 90% at 82% 8%, rgba(255,194,60,.20), transparent 60%),
      radial-gradient(55% 80% at 6% 92%, rgba(90,181,82,.16), transparent 60%),
      var(--cream);
    border-bottom:1px solid var(--border);
  }
  .page-hero__inner{ position:relative; z-index:4; max-width:860px; }
  .page-hero__inner--center{ margin-inline:auto; text-align:center; }
  .page-hero__title{
    font-family:var(--f-display); font-weight:700; color:var(--ink);
    font-size:clamp(40px,6.6vw,82px); line-height:1.02; letter-spacing:-0.02em;
    margin:6px 0 40px;
  }
  .page-hero__title .squiggle::after{ bottom:-0.34em; }
  .page-hero__lead{ font-size:clamp(17px,1.7vw,21px); color:var(--body); max-width:620px; }
  .page-hero__inner--center .page-hero__lead{ margin-inline:auto; }
  /* contact hero: text left, contact cards stacked right */
  .page-hero__grid{ position:relative; z-index:4; display:grid; grid-template-columns:1fr minmax(340px,420px); gap:clamp(36px,5vw,72px); align-items:center; }
  .page-hero__grid .page-hero__inner{ max-width:none; }
  .page-hero__grid .page-hero__title{ margin-bottom:28px; }
  .page-hero__floats{ position:absolute; inset:0; z-index:2; pointer-events:none; opacity:.92; }
  .page-hero .produce{ cursor:default; }
  /* keep interior-hero produce clear of the left-aligned heading */
  .page-hero .produce--orange{ width:124px; height:124px; top:12%; right:5%; left:auto; }
  .page-hero .produce--blueberry{ width:46px; height:46px; top:44%; right:8%; left:auto; }
  .page-hero .produce--broccoli{ width:86px; height:86px; bottom:6%; left:2%; right:auto; }
  .page-hero .produce--strawberry{ width:64px; height:70px; top:30%; right:20%; left:auto; }
  .page-hero .produce--carrot{ width:56px; height:86px; bottom:16%; right:15%; left:auto; }
  .page-hero .produce--tomato{ width:70px; height:70px; top:20%; left:2.5%; right:auto; bottom:auto; }
  /* contact hero: keep the right column clean behind the contact cards */
  @media (min-width:901px){
    #contact-hero .produce--orange,
    #contact-hero .produce--blueberry,
    #contact-hero .produce--strawberry,
    #contact-hero .produce--carrot{ display:none; }
  }
  @media (max-width:900px){
    .page-hero .produce--blueberry,
    .page-hero .produce--strawberry,
    .page-hero .produce--carrot{ display:none; }
    .page-hero .produce--broccoli{ opacity:.4; bottom:auto; top:7%; left:auto; right:5%; width:70px; height:70px; }
    .page-hero .produce--tomato{ opacity:.4; top:auto; bottom:6%; left:5%; width:56px; height:56px; }
  }
  .crumbs{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:13px; font-weight:600; color:var(--muted); }
  .crumbs a:hover{ color:var(--leaf-700); }
  .crumbs i{ font-size:12px; }
  
  /* ====================================================
     ABOUT — STORY
     ==================================================== */
  .story__grid{ display:grid; grid-template-columns:1fr 1.02fr; gap:clamp(36px,6vw,84px); align-items:center; }
  .story__media{ position:relative; }
  .story__media img{
    width:100%; height:auto;
    filter:drop-shadow(0 18px 26px rgba(42,33,24,.14));
    -webkit-mask-image:linear-gradient(to bottom, #000 68%, rgba(0,0,0,0) 97%);
    mask-image:linear-gradient(to bottom, #000 68%, rgba(0,0,0,0) 97%);
  }
  .story__badge{
    position:absolute; left:-14px; bottom:6px; background:var(--white);
    border-radius:var(--r-md); box-shadow:var(--sh-lg); padding:18px 22px; text-align:center;
    border:1px solid var(--border);
  }
  .story__badge strong{ display:block; font-family:var(--f-display); font-size:34px; color:var(--leaf); line-height:1; }
  .story__badge span{ font-size:12.5px; font-weight:700; letter-spacing:.03em; color:var(--body); text-transform:uppercase; }
  .story__title{ margin:4px 0 54px; }
  .story__title .squiggle::after{ bottom:-0.32em; }
  .story__text p{ margin-bottom:18px; }
  .story__text p:last-child{ margin-bottom:0; }
  
  /* ---- Journey: reuses the homepage .steps truck rail (4 milestones) ---- */
  .journey{ margin-top:clamp(56px,7vw,88px); }
  .journey__lead{ text-align:center; margin-bottom:clamp(30px,4vw,46px); }
  .steps--journey{ grid-template-columns:repeat(4,1fr); }
  .steps--journey .j-year{ display:block; font-family:var(--f-display); font-weight:700; font-size:24px; line-height:1; margin-bottom:4px; color:var(--leaf-700); }
  .steps--journey .step:nth-child(2) .j-year{ color:#B47A0E; }
  .steps--journey .step:nth-child(3) .j-year{ color:#C24A3E; }
  .steps--journey .step:nth-child(4) .j-year{ color:#2A7E99; }
  .steps--journey .step:nth-child(5) .j-year{ color:#6B4FB0; }
  
  /* ====================================================
     ABOUT — IMPACT BAND
     ==================================================== */
  .impact{ background:var(--forest); position:relative; overflow:hidden; }
  .impact::after{ content:""; position:absolute; inset:0; background:radial-gradient(50% 120% at 85% 15%, rgba(191,215,48,.14), transparent 60%); pointer-events:none; z-index:1; }
  .impact__dishes{ position:absolute; inset:0; z-index:0; pointer-events:none; }
  .impact__dish{ position:absolute; filter:drop-shadow(0 18px 30px rgba(0,0,0,.4)); }
  .impact__dish--1{ width:178px; top:16px; right:2.5%; transform:rotate(-6deg); opacity:.95; }
  .impact__dish--2{ width:158px; bottom:16px; left:2%; transform:rotate(5deg); opacity:.9; }
  .impact__dish--3{ width:126px; bottom:18px; right:9%; transform:rotate(4deg); opacity:.62; }
  .impact__dish--4{ width:150px; top:18px; left:2%; transform:rotate(7deg); opacity:.9; }
  @media (prefers-reduced-motion:no-preference){
    .impact__dish--1{ animation:floaty 11s ease-in-out infinite; }
    .impact__dish--2{ animation:floaty 9.5s ease-in-out infinite -2s; }
    .impact__dish--3{ animation:floaty 12.5s ease-in-out infinite -4s; }
    .impact__dish--4{ animation:floaty 10.5s ease-in-out infinite -3s; }
  }
  .impact__grid{ position:relative; z-index:2; display:grid; grid-template-columns:auto 1fr; gap:clamp(30px,6vw,72px); align-items:center; }
  .impact__big{ font-family:var(--f-display); font-weight:700; color:var(--lime); font-size:clamp(72px,13vw,150px); line-height:.9; letter-spacing:-0.03em; }
  .impact__big small{ display:block; font-size:clamp(15px,1.6vw,19px); font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--sun); margin-top:10px; }
  .impact__text h2{ color:var(--white); font-size:clamp(26px,3.4vw,42px); margin-bottom:16px; }
  .impact__text p{ color:var(--on-dark); max-width:560px; }
  
  /* ====================================================
     ABOUT — MISSION / VALUES (editorial list)
     ==================================================== */
  .mission__wrap{ display:grid; grid-template-columns:0.82fr 1.18fr; gap:clamp(40px,6vw,88px); align-items:start; }
  .mission__intro{ position:sticky; top:110px; }
  .mission__intro .section__title{ font-size:clamp(30px,3.6vw,46px); margin:8px 0 20px; }
  .mission__intro .section__lead{ max-width:none; }
  .mission__note{ display:inline-flex; align-items:center; gap:10px; margin-top:26px; font-weight:700; color:var(--leaf-700); }
  .mission__note i{ font-size:20px; }
  
  .values{ list-style:none; display:flex; flex-direction:column; }
  .value{ display:grid; grid-template-columns:auto auto 1fr; align-items:start; gap:22px; padding:26px 8px 26px 0; border-top:1px solid var(--border); position:relative; transition:padding-left var(--d-normal) var(--e-out); }
  .value:last-child{ border-bottom:1px solid var(--border); }
  .value::before{ content:""; position:absolute; left:0; top:-1px; height:calc(100% + 1px); width:3px; background:var(--leaf); border-radius:3px; transform:scaleY(0); transform-origin:top; transition:transform var(--d-normal) var(--e-out); }
  .value:hover{ padding-left:18px; }
  .value:hover::before{ transform:scaleY(1); }
  .value__num{ font-family:var(--f-display); font-weight:700; font-size:22px; color:var(--muted); line-height:1.2; min-width:34px; }
  .value__icon{ width:58px; height:58px; border-radius:16px; display:grid; place-items:center; font-size:30px; color:#fff; background:linear-gradient(140deg,var(--leaf),var(--leaf-700)); box-shadow:var(--sh-sm); }
  .value__icon i{ line-height:0; }
  .value:nth-child(2) .value__icon{ background:linear-gradient(140deg,var(--sun),#E89B12); }
  .value:nth-child(3) .value__icon{ background:linear-gradient(140deg,var(--berry),#C24A3E); }
  .value:nth-child(4) .value__icon{ background:linear-gradient(140deg,var(--sky),#2A7E99); }
  .value__body h4{ margin-bottom:6px; }
  .value__body p{ font-size:15.5px; color:var(--body); max-width:520px; }
  
  /* ====================================================
     GUIDELINES PAGE — distinct standards layout (rows)
     ==================================================== */
  .std-detail{ list-style:none; display:flex; flex-direction:column; }
  .std-block{ display:grid; grid-template-columns:300px 1fr; gap:clamp(28px,5vw,72px); padding:clamp(36px,5vw,56px) 0; border-top:1px solid var(--border); align-items:start; }
  .std-detail > .std-block:first-child{ border-top:0; }
  .std-block:last-child{ border-bottom:1px solid var(--border); }
  .std-rail__num{ font-family:var(--f-display); font-weight:700; font-size:15px; letter-spacing:.06em; color:var(--muted); }
  .std-rail__ic{ width:66px; height:66px; border-radius:19px; display:grid; place-items:center; font-size:31px; color:#fff; background:linear-gradient(140deg,var(--leaf),var(--leaf-700)); box-shadow:0 12px 24px rgba(90,181,82,.26); margin:0 0 18px; }
  .std-rail__ic i{ line-height:0; }
  .std-rail__acr{ font-family:var(--f-display); font-weight:700; font-size:clamp(26px,3vw,34px); color:var(--ink); line-height:1.05; }
  .std-rail__full{ display:block; margin-top:7px; font-size:12.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
  .std-rail__link{ display:inline-flex; align-items:center; gap:7px; margin-top:16px; padding:9px 16px; border:1px solid var(--border); border-radius:99px; font-size:13px; font-weight:700; color:var(--ink); background:var(--white); transition:transform var(--d-normal) var(--e-spring), color var(--d-normal), border-color var(--d-normal); }
  .std-rail__link:hover{ transform:translateY(-2px); color:var(--leaf-700); border-color:var(--leaf); }
  .std-rail__link i{ line-height:0; font-size:14px; transition:transform var(--d-normal) var(--e-default); }
  .std-rail__link:hover i{ transform:translateX(3px); }
  .std-block--sun .std-rail__link:hover{ color:#C9891A; border-color:var(--sun); }
  .std-block--sky .std-rail__link:hover{ color:#2A7E99; border-color:var(--sky); }
  .std-block--berry .std-rail__link:hover{ color:#C24A3E; border-color:var(--berry); }
  .std-block__lead{ font-size:clamp(16px,1.6vw,18px); color:var(--ink); line-height:1.66; font-weight:500; margin-bottom:22px; }
  .std-points{ list-style:none; display:flex; flex-direction:column; gap:13px; }
  .std-points li{ position:relative; padding-left:34px; font-size:15.5px; color:var(--body); line-height:1.55; }
  .std-points li i{ position:absolute; left:0; top:1px; color:var(--leaf); font-size:19px; line-height:0; display:inline-flex; align-items:center; }
  .std-block--sun .std-rail__ic{ background:linear-gradient(140deg,var(--sun),#E89B12); box-shadow:0 12px 24px rgba(255,194,60,.28); }
  .std-block--sun .std-points li i{ color:#C9891A; }
  .std-block--sky .std-rail__ic{ background:linear-gradient(140deg,var(--sky),#2A7E99); box-shadow:0 12px 24px rgba(79,195,232,.26); }
  .std-block--sky .std-points li i{ color:#2A7E99; }
  .std-block--berry .std-rail__ic{ background:linear-gradient(140deg,var(--berry),#C24A3E); box-shadow:0 12px 24px rgba(255,111,97,.24); }
  .std-block--berry .std-points li i{ color:#C24A3E; }
  .std-rail__logo{
    margin-bottom: 20px;
    max-width: 210px;
    width: 100%;
  }
  @media (max-width:760px){
    /* icon+name on top, checklist in the middle, button pinned to the bottom */
    .std-block{ grid-template-columns:auto 1fr; grid-template-areas:"ic name" "body body" "link link"; gap:14px 14px; padding:36px 0; align-items:center; }
    .std-rail{ display:contents; }
    .std-rail__ic{ grid-area:ic; margin:0; width:56px; height:56px; font-size:26px; }
    .std-rail__txt{ grid-area:name; min-width:0; }
    .std-block__body{ grid-area:body; margin-top:2px; }
    .std-rail__link{ grid-area:link; justify-self:start; margin-top:4px; }
  }
  
  /* guidelines page — licensing row */
  .std-licenses{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px 28px; margin-top:clamp(34px,5vw,50px); }
  .std-lic{ display:flex; align-items:center; gap:13px; font-size:15px; font-weight:600; color:var(--ink); }
  @media (max-width:760px){ .std-licenses{ grid-template-columns:1fr; } }
  .std-lic i{ flex-shrink:0; width:40px; height:40px; border-radius:12px; display:grid; place-items:center; background:rgba(90,181,82,.14); color:var(--leaf-700); font-size:18px; }
  
  /* ====================================================
     ARTICLE (single post) — one template for all
     ==================================================== */
  .article-hero{ padding:clamp(120px,16vh,180px) 0 clamp(10px,1.5vw,16px); background:radial-gradient(60% 90% at 82% 0%, rgba(255,194,60,.16), transparent 60%), var(--cream); }
  .article-hero .crumbs{ margin-bottom:22px; }
  .article-hero__cat{ display:inline-block; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--berry); margin:0 0 12px; }
  .article-hero__title{ font-family:var(--f-display); font-weight:700; color:var(--ink); font-size:clamp(32px,4.6vw,54px); line-height:1.06; letter-spacing:-0.01em; margin-bottom:22px; }
  .article-meta{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
  .article-meta__author{ display:flex; align-items:center; gap:11px; }
  .article-meta__av{ width:44px; height:44px; border-radius:50%; background:linear-gradient(140deg,var(--leaf),var(--leaf-700)); display:grid; place-items:center; color:#fff; font-weight:700; font-family:var(--f-display); }
  .article-meta__av-img{ width:44px; height:44px; border-radius:50%; object-fit:cover; flex:0 0 auto; }
  .article-meta__author-info{ display:flex; flex-direction:column; gap:0px; }
  .article-meta__author strong{ display:block; font-size:15px; color:var(--ink); }
  .article-meta__author small{ font-size:13px; color:var(--muted); }
  .article-meta__dot{ color:var(--border-2); }
  .article-meta__item{ display:inline-flex; align-items:center; gap:6px; font-size:13.5px; font-weight:600; color:var(--muted); }
  .article-meta__item i{ font-size:14px; color:var(--leaf); }
  
  .article-cover{ margin:clamp(12px,2vw,20px) auto clamp(30px,5vw,52px); }
  .article-cover img{ width:100%; border-radius:var(--r-lg); box-shadow:var(--sh-md); height:clamp(280px,30vw,420px); object-fit:cover; background:var(--cream-soft); }
  
  .article{ padding-bottom:clamp(40px,6vw,72px); padding-top: 30px;}
  .article-content{ font-size:17.5px; line-height:1.78; color:var(--body); }
  .article-content > * + *{ margin-top:22px; }
  .article-content h2{ font-family:var(--f-display); font-weight:700; color:var(--ink); font-size:clamp(24px,2.8vw,34px); line-height:1.15; margin-top:46px; }
  .article-content h3{ font-family:var(--f-display); font-weight:600; color:var(--ink); font-size:clamp(20px,2vw,25px); margin-top:36px; }
  .article-content strong{ color:var(--ink); font-weight:700; }
  .article-content a{ color:var(--leaf-700); text-decoration:underline; text-underline-offset:3px; }
  .article-content ul, .article-content ol{ list-style:none; padding-left:4px; display:flex; flex-direction:column; gap:12px; }
  .article-content li{ position:relative; padding-left:32px; }
  .article-content ul li::before{ content:""; position:absolute; left:4px; top:11px; width:9px; height:9px; border-radius:50%; background:var(--lime); }
  .article-content ol{ counter-reset:li; }
  .article-content ol li{ counter-increment:li; }
  .article-content ol li::before{ content:counter(li); position:absolute; left:0; top:0; width:24px; height:24px; border-radius:50%; background:rgba(90,181,82,.14); color:var(--leaf-700); font-size:13px; font-weight:700; display:grid; place-items:center; }
  .article-content blockquote{ border-left:4px solid var(--leaf); padding:4px 0 4px 24px; margin:34px 0; font-family:var(--f-display); font-weight:500; font-size:clamp(20px,2.2vw,26px); line-height:1.4; color:var(--ink); }
  .article-content figure{ margin:34px 0; }
  .article-content figure img{ width:100%; height:clamp(240px,26vw,380px); object-fit:cover; border-radius:var(--r-md); box-shadow:var(--sh-sm); background:var(--cream-soft); }
  .article-content figcaption{ text-align:center; font-size:14px; color:var(--muted); margin-top:12px; }
  .article__tags{ display:flex; flex-wrap:wrap; gap:10px; margin-top:clamp(36px,5vw,54px); padding-top:26px; border-top:1px solid var(--border); }
  .article__tag{ font-size:13px; font-weight:600; color:var(--body); background:var(--cream-2); border:1px solid var(--border); padding:7px 15px; border-radius:var(--r-pill); text-decoration:none!important; transition:color var(--d-normal), border-color var(--d-normal); }
  a.article__tag:hover{ color:var(--leaf-700); border-color:var(--leaf); }
  .article__share{ display:flex; align-items:center; gap:12px; margin-top:26px; }
  .article__share span{ font-size:14px; font-weight:700; color:var(--ink); }
  .article__share a{ width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background:var(--cream-2); border:1px solid var(--border); color:var(--ink); font-size:16px; transition:transform var(--d-normal) var(--e-spring), background var(--d-normal), color var(--d-normal); text-decoration:none!important; }
  .article__share a:hover{ transform:translateY(-3px); background:var(--leaf); color:#fff; border-color:var(--leaf); }
  .article__share a i{
    display: flex;
  }
  
  /* comments */
  .comments{ }
  .comments__head{ font-family:var(--f-display); font-weight:700; font-size:clamp(22px,2.4vw,28px); color:var(--ink); margin-bottom:26px; }
  .comment{ display:flex; gap:16px; padding:22px 0; border-top:1px solid var(--border); }
  .comment__av{ flex-shrink:0; width:48px; height:48px; border-radius:50%; display:grid; place-items:center; color:#fff; font-weight:700; font-family:var(--f-display); background:linear-gradient(140deg,var(--sun),#E89B12); }
  .comment:nth-child(3) .comment__av{ background:linear-gradient(140deg,var(--sky),#2A7E99); }
  .comment:nth-child(4) .comment__av{ background:linear-gradient(140deg,var(--berry),#C24A3E); }
  .comment__head{ display:flex; align-items:baseline; gap:10px; margin-bottom:6px; }
  .comment__head strong{ font-size:15px; color:var(--ink); }
  .comment__head small{ font-size:12.5px; color:var(--muted); }
  .comment__body{ font-size:15.5px; color:var(--body); line-height:1.6; }
  .comment-form{ margin-top:34px; background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:clamp(24px,4vw,34px); box-shadow:var(--sh-sm); }
  .comment-form h4{ margin-bottom:16px; }
  .comment-form .field-grid{ margin-bottom:16px; }
  .comment-form textarea{ font-family:var(--f-body); font-size:15.5px; color:var(--ink); padding:13px 16px; border:2px solid var(--border-2); border-radius:var(--r-sm); background:var(--cream); outline:none; width:100%; min-height:120px; resize:vertical; transition:border-color var(--d-normal), box-shadow var(--d-normal); }
  .comment-form textarea:focus{ border-color:var(--leaf); box-shadow:var(--sh-focus); background:#fff; }
  .comment-note{ font-size:13px; color:var(--muted); margin-top:14px; }
  
  @media (max-width:600px){ .article-meta{ gap:10px; } }
  
  /* ====================================================
     BLOG PAGE — card meta
     ==================================================== */
  .blog-card__meta{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--muted); font-weight:600; margin-bottom:14px; }
  .blog-card__meta i{ font-size:14px; color:var(--leaf); }
  .blog-card__meta span{ display:inline-flex; align-items:center; gap:5px; }
  
  /* ====================================================
     GALLERY PAGE — filters, bento grid, lightbox
     ==================================================== */
  .gallery-filters{ display:flex; gap:12px; flex-wrap:wrap; justify-content:flex-start; margin-bottom:clamp(30px,4vw,46px); }
  /* filter chips as a swiper: N visible + dots on mobile, natural row on desktop */
  .filter-swiper{ display:block; overflow:hidden; }
  .filter-swiper .swiper-wrapper{ align-items:center; }
  .filter-swiper .swiper-slide{ width:auto; height:auto; }
  .filter-swiper .chip{ display:flex; align-items:center; justify-content:center; white-space:nowrap; }
  .filter-swiper__pagination{ display:flex; justify-content:center; gap:6px; margin-top:16px; }
  .filter-swiper__pagination .swiper-pagination-bullet{ width:8px; height:8px; margin:0 !important; background:var(--leaf); opacity:.3; border-radius:99px; transition:width var(--d-normal), opacity var(--d-normal); }
  .filter-swiper__pagination .swiper-pagination-bullet-active{ opacity:1; width:22px; }
  @media (min-width:761px){ .filter-swiper__pagination{ display:none; } }
  .gallery-filters .chip{ font-size:14px; padding:9px 20px; }
  .gallery-more{ display:flex; justify-content:center; margin-top:clamp(34px,4.5vw,52px); }
  .gallery-more .btn i{ font-size:15px; transform:translateY(1px); }
  .gallery-more .btn:hover i{ transform:translateY(4px); }
  /* horizontal scroll indicator dots (mobile filter strips) */
  .scroll-dots{ display:none; justify-content:center; gap:7px; margin:2px 0 clamp(22px,5vw,30px); }
  .scroll-dot{ width:8px; height:8px; padding:0; border:none; border-radius:99px; background:var(--leaf); opacity:.28; cursor:pointer; transition:width var(--d-normal), opacity var(--d-normal); }
  .scroll-dot.is-active{ opacity:1; width:22px; }
  /* gallery filter tabs: single row, scroll/swipe right on mobile */
  @media (max-width:760px){
    .gallery-filters{ flex-wrap:wrap; justify-content:flex-start; gap:8px; }
    .gallery-filters .chip{ padding:10px 16px; font-size:13.5px; }
    .gallery-filters::-webkit-scrollbar{ display:none; }
    .gallery-filters .chip{ flex:0 0 auto; }
    .scroll-dots{ display:flex; }
  }
  .gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; grid-auto-flow:dense; gap:16px; }
  .g-item{ position:relative; overflow:hidden; border-radius:var(--r-lg); background:var(--cream-soft); box-shadow:var(--sh-sm); }
  .g-item img{ width:100%; height:100%; object-fit:cover; transition:transform var(--d-slow) var(--e-out); opacity:0; }
  .g-item img.is-loaded{ opacity:1; }
  .g-item:hover img{ transform:scale(1.07); }
  .g-item::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(22,48,31,.55), transparent 48%); opacity:0; transition:opacity var(--d-normal); pointer-events:none; }
  .g-item:hover::after{ opacity:1; }
  .g-item__cap{ position:absolute; left:18px; bottom:15px; z-index:2; color:#fff; font-family:var(--f-display); font-weight:600; font-size:16px; transform:translateY(8px); opacity:0; transition:transform var(--d-normal), opacity var(--d-normal); pointer-events:none; }
  .g-item:hover .g-item__cap{ transform:none; opacity:1; }
  .g-item__zoom{ position:absolute; top:12px; right:12px; z-index:2; width:40px; height:40px; border:0; padding:0; border-radius:50%; background:rgba(255,255,255,.92); display:grid; place-items:center; color:var(--ink); font-size:16px; cursor:pointer; opacity:0; transform:scale(.8); transition:transform var(--d-normal) var(--e-spring), opacity var(--d-normal); }
  .g-item:hover .g-item__zoom{ opacity:1; transform:none; }
  @media (hover: none){ .g-item__zoom{ opacity:1; transform:none; } }
  .g-item--wide{ grid-column:span 2; }
  .g-item--tall{ grid-row:span 2; }
  .g-item--big{ grid-column:span 2; grid-row:span 2; }
  @media (max-width:900px){
    .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:180px; }
    .g-item--big{ grid-column:span 2; grid-row:span 2; }
    .g-item--wide{ grid-column:span 2; }
    .g-item--tall{ grid-row:span 1; }
  }
  @media (max-width:560px){
    .gallery-grid{ grid-template-columns:1fr; grid-auto-rows:230px; }
    .g-item--wide,.g-item--big{ grid-column:span 1; }
    .g-item--big,.g-item--tall{ grid-row:span 1; }
  }
  
  /* lightbox */
  .lightbox{ position:fixed; inset:0; z-index:220; background:rgba(22,48,31,.86); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; padding:clamp(16px,4vw,54px); opacity:0; visibility:hidden; transition:opacity var(--d-normal); }
  .lightbox.is-open{ opacity:1; visibility:visible; }
  .lightbox__img{ max-width:100%; max-height:84vh; border-radius:var(--r-md); box-shadow:var(--sh-lg); object-fit:contain; transform:scale(.95); transition:transform var(--d-medium) var(--e-out); }
  .lightbox.is-open .lightbox__img{ transform:none; }
  .lightbox__cap{ position:absolute; left:0; right:0; bottom:24px; text-align:center; color:#fff; font-weight:600; font-size:15px; }
  .lb-btn{ position:absolute; width:52px; height:52px; border-radius:50%; border:none; background:rgba(255,255,255,.14); color:#fff; font-size:20px; cursor:pointer; display:grid; place-items:center; transition:background var(--d-normal), transform var(--d-normal); }
  .lb-btn:hover{ background:rgba(255,255,255,.28); }
  .lb-btn i{ line-height:0; }
  .lightbox__close{ top:24px; right:24px; }
  .lightbox__close:hover{ transform:rotate(90deg); }
  .lb-prev{ left:clamp(10px,3vw,32px); top:50%; transform:translateY(-50%); }
  .lb-next{ right:clamp(10px,3vw,32px); top:50%; transform:translateY(-50%); }
  .lb-prev:hover,.lb-next:hover{ transform:translateY(-50%) scale(1.08); }
  @media (max-width:560px){ .lb-prev{ left:8px; } .lb-next{ right:8px; } .lb-btn{ width:44px; height:44px; } }
  
  /* ====================================================
     FAQ PAGE — two-column groups
     ==================================================== */
  .faq-cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,60px); align-items:start; }
  .faq-col__head{ display:flex; align-items:center; gap:12px; margin-bottom:20px; }
  .faq-col__ic{ width:44px; height:44px; border-radius:13px; display:grid; place-items:center; font-size:20px; color:#fff; background:linear-gradient(140deg,var(--leaf),var(--leaf-700)); }
  .faq-col--school .faq-col__ic{ background:linear-gradient(140deg,var(--sky),#2A7E99); }
  .faq-col__ic i{ line-height:0; }
  .faq-col__head h3{ font-size:clamp(20px,2.2vw,26px); }
  @media (max-width:820px){ .faq-cols{ grid-template-columns:1fr; gap:40px; } }
  
  /* ====================================================
     CONTACT PAGE — info cards + map
     ==================================================== */
  .contact-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  .c-card{ background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:34px 28px; text-align:center; box-shadow:var(--sh-sm); transition:transform var(--d-normal) var(--e-spring), box-shadow var(--d-normal); }
  .c-card:hover{ transform:translateY(-6px); box-shadow:var(--sh-md); }
  .c-card__ic{ width:64px; height:64px; margin:0 auto 18px; border-radius:50%; display:grid; place-items:center; font-size:26px; color:#fff; background:linear-gradient(140deg,var(--leaf),var(--leaf-700)); box-shadow:0 10px 22px rgba(90,181,82,.26); }
  .c-card__ic i{ line-height:0; }
  .c-card:nth-child(2) .c-card__ic{ background:linear-gradient(140deg,var(--sun),#E89B12); box-shadow:0 10px 22px rgba(255,194,60,.28); }
  .c-card:nth-child(3) .c-card__ic{ background:linear-gradient(140deg,var(--sky),#2A7E99); box-shadow:0 10px 22px rgba(79,195,232,.26); }
  .c-card h4{ margin-bottom:8px; }
  .c-card a, .c-card p{ font-size:15.5px; color:var(--body); font-weight:600; }
  .c-card a:hover{ color:var(--leaf-700); }
  .c-card small{ display:block; font-size:13.5px; font-weight:600; color:var(--muted); margin-top:4px; }
  
  .map-embed{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-md); border:1px solid var(--border); line-height:0; }
  .map-embed iframe{ width:100%; height:clamp(320px,42vw,460px); border:0; display:block; filter:saturate(1.03); }
  
  /* ===== Contact page: tabbed form + map ===== */
  #contact .section__head{ margin-bottom:clamp(24px,3vw,34px); }
  .contact2{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,4vw,52px); align-items:flex-start; }
  .contact2__form{ background:var(--white); border-radius:var(--r-xl); padding:clamp(24px,3vw,40px); box-shadow:var(--sh-lg); }
  .contact2__side{ display:flex; flex-direction:column; gap:16px; }
  .contact2__side .map-embed{ width:100%; flex:1 1 auto; min-height:360px; border:1px solid rgba(255,255,255,.14); box-shadow:none; }
  .contact2__side .map-embed iframe{ height:100%; min-height:360px; }
  .contact2__loc{ display:flex; gap:14px; align-items:flex-start; padding:18px 20px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:var(--r-lg); }
  .contact2__loc-ic{ width:44px; height:44px; border-radius:12px; background:var(--sky); color:#fff; display:grid; place-items:center; font-size:20px; flex-shrink:0; }
  .contact2__loc-ic i{ line-height:0; }
  .contact2__loc-txt strong{ display:block; color:#fff; font-family:var(--f-display); font-weight:600; font-size:17px; margin-bottom:5px; }
  .contact2__loc-txt p{ color:var(--on-dark-muted); font-size:14px; margin:3px 0 0; line-height:1.5; }
  .ctabs{ display:flex; gap:6px; margin-bottom:26px; border-bottom:1px solid var(--border); }
  .ctab{ background:none; border:none; padding:12px 14px; font-family:var(--f-body); font-size:15px; font-weight:700; color:var(--muted); cursor:pointer; position:relative; transition:color var(--d-normal); }
  .ctab:hover{ color:var(--ink); }
  .ctab:focus{ outline:none; }
  .ctab:focus-visible{ outline:2px solid var(--leaf); outline-offset:2px; border-radius:6px; }
  .ctab.is-active{ color:var(--ink); }
  .ctab.is-active::after{ content:""; position:absolute; left:8px; right:8px; bottom:-1px; height:3px; border-radius:99px; background:var(--leaf); }
  .cform{
    display: none;
  }
  .cform.is-active{ display:block; }
  .cform__grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
  .cfield{ display:flex; flex-direction:column; gap:8px; }
  .cfield--full{ margin-bottom:18px; grid-column:span 2; }
  .cfield > p{ font-size:13px; font-weight:700; color:var(--ink); letter-spacing:.02em; }
  .cfield > p span.required{color: red;}
  .cfield input, .cfield textarea{ width:100%; background:var(--cream); border:1px solid var(--border); border-radius:var(--r-md); padding:14px 16px; color:var(--ink); font-family:var(--f-body); font-size:15px; transition:border-color var(--d-normal), background var(--d-normal); }
  .cfield textarea{ resize:vertical; min-height:110px; }
  .cfield input::placeholder, .cfield textarea::placeholder{ color:var(--muted); }
  .cfield input:focus, .cfield textarea:focus{ outline:none; border-color:var(--leaf); background:#fff; }
  .cfield.is-error input, .cfield.is-error textarea{ border-color:var(--berry); background:#fff5f3; }
  .cfield.is-error input:focus, .cfield.is-error textarea:focus{ border-color:var(--berry); }
  .cform__foot{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
  .cform__note{ font-size:14px; font-weight:600; color:var(--leaf-700); margin:0; }
  .cform__note.is-error{ color:var(--berry); }
  .contact__points--wide{ margin-top:clamp(28px,4vw,44px); }
  @media (max-width:900px){ .contact2{ grid-template-columns:1fr; } .contact2__side .map-embed iframe{ min-height:320px; } }
  @media (max-width:560px){
    .cform__grid{ grid-template-columns:1fr; }
    .ctabs{ flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
    .ctabs::-webkit-scrollbar{ display:none; }
    .ctab{ flex:0 0 auto; white-space:nowrap; padding:11px 10px; font-size:14px; }
  }
  
  @media (max-width:820px){ .contact-cards{ grid-template-columns:1fr; } }
  /* hero variant: stacked horizontal rows (icon left, text right) */
  .contact-cards--hero{ grid-template-columns:1fr; gap:16px; }
  .contact-cards--hero .c-card{ display:flex; align-items:center; gap:18px; text-align:left; padding:20px 24px; }
  .contact-cards--hero .c-card__ic{ margin:0; flex:0 0 auto; width:54px; height:54px; font-size:22px; }
  .contact-cards--hero .c-card__bd{ display:flex; flex-direction:column; gap:2px; }
  .contact-cards--hero .c-card h4{ margin-bottom:2px; }
  .contact-cards--hero .c-card small{ margin-top:2px; }
  @media (max-width:900px){ .page-hero__grid{ grid-template-columns:1fr; gap:34px; } }
  
  /* ---- Socials hub (kid + orbiting networks + produce) ---- */
  .socials-hub{ overflow:hidden; }
  .hub{ position:relative; max-width:940px; margin:clamp(24px,4vw,44px) auto 0; min-height:clamp(380px,46vw,540px); }
  .hub__nodes{ display:contents; }
  .hub__center{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:clamp(180px,25vw,280px); z-index:3; filter:drop-shadow(0 24px 34px rgba(42,33,24,.22)); }
  .hub__center img{ width:100%; height:auto; display:block; -webkit-mask-image:linear-gradient(to bottom,#000 80%,rgba(0,0,0,0) 99%); mask-image:linear-gradient(to bottom,#000 80%,rgba(0,0,0,0) 99%); }
  .hub__node{ position:absolute; z-index:4; display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; transform:translate(-50%,-50%); }
  .hub__node span:last-child{ font-size:12.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--body); }
  .hub__ic{ width:clamp(60px,7vw,78px); height:clamp(60px,7vw,78px); border-radius:50%; display:grid; place-items:center; font-size:clamp(25px,3vw,32px); color:#fff; box-shadow:0 14px 26px rgba(42,33,24,.2); transition:transform var(--d-normal) var(--e-spring); }
  .hub__node:hover .hub__ic{ transform:translateY(-6px) scale(1.06); }
  .hub__ic i{ line-height:0; }
  .hub__node--ig{ top:15%; left:26%; }
  .hub__node--fb{ top:48%; left:13%; }
  .hub__node--email{ top:81%; left:26%; }
  .hub__node--tiktok{ top:15%; left:74%; }
  .hub__node--phone{ top:48%; left:87%; }
  .hub__node--youtube{ top:81%; left:74%; }
  .hub__ic--ig{ background:linear-gradient(135deg,#FEDA75,#FA7E1E 35%,#D62976 70%,#962FBF); }
  .hub__ic--fb{ background:linear-gradient(135deg,#2AA4F4,#1877F2); }
  .hub__ic--email{ background:linear-gradient(140deg,#C15FD6,#7E3A9E); }
  .hub__ic--tiktok{ background:linear-gradient(135deg,#F14E8C,#5B6BD6); }
  .hub__ic--phone{ background:linear-gradient(140deg,#FFC23C,#E89B12); }
  .hub__ic--youtube{ background:linear-gradient(140deg,#FF4E45,#D32F2F); }
  .hub__fruit{ position:absolute; z-index:1; pointer-events:none; opacity:.92; filter:drop-shadow(0 12px 16px rgba(0,0,0,.16)); }
  .hub__fruit svg{ width:100%; height:auto; display:block; }
  .hub__fruit--1{ width:72px; top:4%; left:3%; }
  .hub__fruit--2{ width:54px; bottom:6%; left:1%; }
  .hub__fruit--3{ width:70px; top:6%; right:4%; }
  .hub__fruit--4{ width:46px; bottom:9%; right:2%; }
  @media (prefers-reduced-motion:no-preference){
    .hub__fruit{ animation:floaty 9s ease-in-out infinite; }
    .hub__fruit--2{ animation-duration:11s; animation-delay:-2s; }
    .hub__fruit--3{ animation-duration:8s; animation-delay:-1s; }
    .hub__fruit--4{ animation-duration:10.5s; animation-delay:-3s; }
  }
  @media (max-width:760px){
    .hub{ min-height:clamp(340px,92vw,440px); }
    .hub__center{ width:clamp(118px,31vw,150px); }
    .hub__ic{ width:52px; height:52px; font-size:22px; }
    .hub__node span:last-child{ font-size:10.5px; }
    .hub__node--ig{ top:12%; left:21%; }
    .hub__node--fb{ top:45%; left:10%; }
    .hub__node--email{ top:80%; left:21%; }
    .hub__node--tiktok{ top:12%; left:79%; }
    .hub__node--phone{ top:45%; left:90%; }
    .hub__node--youtube{ top:80%; left:79%; }
    .hub__fruit{ display:none; }
  }
  
  /* ====================================================
     ABOUT — GUIDELINES
     ==================================================== */
  .guidelines__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
  .guideline{ text-align:center; background:var(--white); border:1px solid var(--border); border-radius:var(--r-lg); padding:30px 22px; box-shadow:var(--sh-sm); transition:transform var(--d-normal) var(--e-spring), box-shadow var(--d-normal); }
  .guideline:hover{ transform:translateY(-6px); box-shadow:var(--sh-md); }
  .guideline__badge{ width:72px; height:72px; margin:0 auto 16px; border-radius:50%; display:grid; place-items:center; font-size:31px; color:#fff; background:linear-gradient(140deg,var(--leaf),var(--leaf-700)); box-shadow:0 10px 22px rgba(90,181,82,.28); }
  .guideline__badge i{ line-height:0; }
  .guideline:nth-child(2) .guideline__badge{ background:linear-gradient(140deg,var(--sun),#E89B12); }
  .guideline:nth-child(3) .guideline__badge{ background:linear-gradient(140deg,var(--sky),#2A7E99); }
  .guideline:nth-child(4) .guideline__badge{ background:linear-gradient(140deg,var(--berry),#C24A3E); }
  .guideline strong{ display:block; font-family:var(--f-display); font-size:19px; color:var(--ink); }
  .guideline > span:not(.guideline__badge){ font-size:14px; color:var(--body); }
  
  .guideline-notes{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:clamp(30px,4vw,44px); }
  .gnote{ display:flex; align-items:center; gap:14px; background:var(--white); border:1px solid var(--border); border-radius:var(--r-md); padding:18px 20px; box-shadow:var(--sh-sm); font-weight:600; color:var(--ink); font-size:15px; transition:transform var(--d-normal) var(--e-spring), box-shadow var(--d-normal); }
  .gnote:hover{ transform:translateY(-4px); box-shadow:var(--sh-md); }
  .gnote__ic{ flex-shrink:0; width:40px; height:40px; border-radius:12px; display:grid; place-items:center; font-size:20px; color:#fff; background:linear-gradient(140deg,var(--leaf),var(--leaf-600)); }
  .gnote__ic i{ line-height:0; }
  @media (max-width:820px){ .guideline-notes{ grid-template-columns:1fr; } }
  
  /* ====================================================
     ABOUT — CTA BAND
     ==================================================== */
  .about-cta{ text-align:center; padding-top:clamp(20px,3vw,40px); }
  .about-cta__box{
    background:linear-gradient(150deg,var(--leaf) 0%,var(--leaf-700) 100%);
    border-radius:var(--r-xl); padding:clamp(44px,7vw,84px) clamp(24px,5vw,60px); position:relative; overflow:hidden;
  }
  .about-cta__box::after{ content:""; position:absolute; inset:0; background:radial-gradient(45% 120% at 15% 10%, rgba(255,255,255,.18), transparent 55%); }
  .about-cta__box h2{ color:#fff; position:relative; z-index:2; margin-bottom:14px; }
  .about-cta__box p{ color:rgba(255,255,255,.9); position:relative; z-index:2; max-width:560px; margin:0 auto 30px; }
  .about-cta__actions{ position:relative; z-index:2; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
  
  @media (max-width:1024px){
    .guidelines__grid{ grid-template-columns:repeat(2,1fr); }
    .journey__track{ grid-template-columns:repeat(2,1fr); gap:34px 40px; }
    .journey__track::before{ display:none; }
    .j-step{ padding-left:40px; }
    .j-step::before{ top:6px; }
    .j-step__year{ margin-top:0; }
    .mission__wrap{ grid-template-columns:1fr; gap:36px; }
    .mission__intro{ position:static; }
  }
  @media (max-width:820px){
    .story__grid{ grid-template-columns:1fr; }
    .story__media{ max-width:440px; }
    .impact__grid{ grid-template-columns:1fr; text-align:left; }
    .impact__dish--1{ width:120px; top:10px; }
    .impact__dish--2{ width:110px; }
    .impact__dish--3, .impact__dish--4{ display:none; }
  }
  @media (max-width:560px){
    .journey__track{ grid-template-columns:1fr; gap:0; }
    .journey__track .j-step{ padding-bottom:30px; }
    .value{ grid-template-columns:auto 1fr; }
    .value__num{ display:none; }
  }
  @media (max-width:440px){
    .guidelines__grid{ grid-template-columns:1fr; }
  }

  /* ===== Single dish page ===== */
  .single-dish{ padding-top:clamp(60px,8vh,60px); }
  .single-dish .crumbs{ margin-bottom:clamp(18px,3vw,28px); }
  .single-dish__grid{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:clamp(24px,4vw,56px); align-items:start; }
  .single-dish__media, .single-dish__body{ min-width:0; }
  .dish-gallery, .dish-gallery__main, .dish-gallery__thumbs{ min-width:0; max-width:100%; }
  .dish-gallery__main{ position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-sm); }
  .dish-gallery__main .swiper-slide img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
  .dish-gallery__nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:42px; height:42px; border:0; border-radius:50%; background:rgba(255,255,255,.92); color:var(--ink); display:grid; place-items:center; font-size:18px; cursor:pointer; box-shadow:var(--sh-sm); transition:transform var(--d-normal) var(--e-out), opacity var(--d-normal); }
  .dish-gallery__nav:hover{ transform:translateY(-50%) scale(1.08); }
  .dish-gallery__prev{ left:14px; }
  .dish-gallery__next{ right:14px; }
  .dish-gallery__nav.swiper-button-disabled{ opacity:.35; cursor:default; }
  .dish-gallery__thumbs{ margin-top:12px; }
  .dish-gallery__thumbs .swiper-slide{ border-radius:var(--r-sm); overflow:hidden; cursor:pointer; opacity:.5; transition:opacity var(--d-normal); }
  .dish-gallery__thumbs .swiper-slide img{ width:100%; aspect-ratio:1; object-fit:cover; display:block; }
  .dish-gallery__thumbs .swiper-slide-thumb-active{ opacity:1; }
  .single-dish__title{ font-family:var(--f-display); font-size:clamp(28px,4vw,44px); line-height:1.1; margin:6px 0 14px; }
  .single-dish__desc{ color:var(--muted); font-size:16.5px; line-height:1.7; margin-bottom:22px; }
  .single-dish__desc p{ margin:0 0 10px; }
  .single-dish .dish-meta{ margin-bottom:24px; }
  .single-dish__ingredients{ color:var(--muted); line-height:1.7; margin-bottom:22px; }
  .single-dish__cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
  @media (max-width:860px){
    .single-dish__grid{ grid-template-columns:1fr; }
    .dish-gallery__main .swiper-slide img{ aspect-ratio:16/10; }
  }
.dish-gallery__thumbs .swiper-slide,
.dish-gallery__main .swiper-slide{
  background: #fff;;
}
.single-dish__body .dish-meta{
  background: #fff;
  box-shadow: var(--sh-sm);
}
  /* ===== 404 page ===== */
  .error-404{ text-align:center; }
  .error-404__code{ font-size:clamp(90px,20vw,220px); line-height:.9; color:var(--leaf-700); margin-bottom:6px; }
  .error-404__actions{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:28px; }

  /* ---------- Cookie consent ---------- */
  body.cookie-lock{ overflow:hidden; }
  .cookie-popup{ position:fixed; inset:0; z-index:1100000; display:grid; place-items:center; padding:20px; }
  .cookie-popup__scrim{ position:absolute; inset:0; background:rgba(18,38,24,.62); }
  .cookie-popup__card{ position:relative; z-index:1; width:min(480px,100%); background:var(--white); border-radius:var(--r-xl); box-shadow:var(--sh-lg); padding:clamp(26px,4vw,40px); text-align:center; }
  .cookie-popup__icon{ width:56px; height:56px; margin:0 auto 16px; border-radius:50%; background:rgba(90,181,82,.12); color:var(--leaf-700); display:grid; place-items:center; font-size:24px; }
  .cookie-popup__title{ font-family:var(--f-display); font-size:clamp(26px,3vw,34px); line-height:1.1; margin:0 0 12px; color:var(--ink); }
  .cookie-popup__text{ margin:0 auto 24px; max-width:38ch; color:var(--body); font-size:16px; line-height:1.55; }
  .cookie-popup__actions{ display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }
