/* ============================================================================
   farm-theme.css — "Zukro Farm Theme" skin for the product page.
   Scoped under body.farm-theme so it only affects product-farm.html and can be
   removed by deleting one class. It re-skins the EXISTING markup/IDs — no JS or
   data logic is touched. Built left → right; this pass = hero + left gallery.
   ========================================================================== */

.farm-theme{
  --ft-green:#123D2A;--ft-green-d:#123D2A;--ft-green-l:#123D2A;
  --ft-gold:#e8a92e;--ft-gold-d:#E8A92E;
  --ft-ink:#1a1a1a;--ft-paper:#F3EEE3;--ft-paper-2:#f3eee3;--ft-line:#CED6C9;--ft-muted:#5f6b60;
  /* PDP audit-pass tokens: deep brand green + a muted premium gold (large areas) */
  --zukro-dark-green:#123D2A;--zukro-gold:#E8A92E;
  background:var(--ft-paper);
}
.farm-theme .disp,.farm-theme h1,.farm-theme h2{font-family:var(--font-body);letter-spacing:-.03em;}
.farm-theme .ftmono{font-family:var(--font-body);}

/* keep the shared header readable while the hero is dark behind it */
.farm-theme{padding-top:0 !important;}

/* ============================================================
   1. CINEMATIC HERO BAND (new element inserted above the layout)
   ============================================================ */
.ft-hero{position:relative;min-height:82vh;display:flex;align-items:flex-end;overflow:hidden;background:var(--ft-ink);margin-top:0;}
.ft-hero .ft-bgwrap{position:absolute;inset:0;overflow:hidden;}
.ft-hero img.ft-bg{position:absolute;inset:-6%;width:112%;height:112%;object-fit:cover;animation:ftkb 24s ease-in-out infinite alternate;}
@keyframes ftkb{from{transform:scale(1)}to{transform:scale(1.12) translate(-2%,-2%)}}
.ft-hero::after{content:"";position:absolute;inset:0;z-index:1;background:
  radial-gradient(120% 110% at 0% 60%,rgba(8,12,8,.9),rgba(8,12,8,.25) 60%,transparent),
  linear-gradient(0deg,rgba(8,12,8,.85),transparent 45%);}
.ft-hero .ft-inner{position:relative;z-index:2;width:92%;max-width:1300px;margin:0 auto;padding:120px 0 9vh;color:#fff;}
.ft-hero .ft-eyebrow{font:700 11px/1 'Plus Jakarta Sans',monospace;letter-spacing:.24em;text-transform:uppercase;color:var(--ft-gold);}
.ft-hero h1{font-size:clamp(2.8rem,6.4vw,5.6rem);line-height:.95;font-weight:700;margin:16px 0 18px;color:#fff;max-width:18ch;}
.ft-hero h1 em{font-style:normal;color:var(--ft-gold);}
.ft-hero .ft-sub{font-size:clamp(1.05rem,1.7vw,1.25rem);color:rgba(255,255,255,.82);max-width:46ch;font-weight:300;}
.ft-hero .ft-stats{display:flex;gap:34px;margin-top:30px;flex-wrap:wrap;}
.ft-hero .ft-stats .s b{display:block;font-family:var(--font-body);font-size:1.5rem;}
.ft-hero .ft-stats .s b.star{color:var(--ft-gold);}
.ft-hero .ft-stats .s span{font:600 10px/1.4 'Plus Jakarta Sans';letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.62);}
.ft-scrollcue{position:absolute;left:max(4vw,calc((100% - 1300px)/2));bottom:22px;z-index:3;font:700 10px/1 'Plus Jakarta Sans';letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.65);}
.ft-scrollcue::after{content:"";display:block;width:1px;height:32px;background:linear-gradient(rgba(255,255,255,.7),transparent);margin-top:8px;animation:ftdrop 1.9s infinite;}
@keyframes ftdrop{0%{opacity:0;transform:translateY(-8px)}40%{opacity:1}100%{opacity:0;transform:translateY(10px)}}
@media(max-width:760px){.ft-hero{min-height:70vh;}.ft-hero .ft-inner{padding-top:100px;}}

/* lift the product layout up so it overlaps the hero slightly (premium depth) */
.farm-theme .container{position:relative;z-index:3;}
.farm-theme #productLayout{margin-top:-7vh;background:var(--ft-paper);border-radius:22px 22px 0 0;padding:34px clamp(16px,3vw,40px) 10px;box-shadow:0 -30px 60px rgba(16,24,40,.10);}

/* ============================================================
   2. LEFT — premium gallery
   ============================================================ */
/* gallery must NOT be sticky — there is content below it in the same column,
   which would otherwise slide behind the pinned image while scrolling. */
.farm-theme .left-content .gallery-container{position:relative;}
.farm-theme .main-image-box{
  position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--ft-line);
  background:#fff;box-shadow:0 20px 50px rgba(16,24,40,.10);aspect-ratio:1/1;cursor:zoom-in;
}
.farm-theme .main-image{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.22,1,.36,1);}
.farm-theme .main-image-box:hover .main-image{transform:scale(1.05);}
.farm-theme .discount-badge{
  position:absolute;top:16px;left:16px;z-index:2;background:var(--ft-green-d);color:#fff;
  font:700 11px/1 'Plus Jakarta Sans',monospace;letter-spacing:.06em;padding:8px 12px;border-radius:6px;
}
.farm-theme .zoom-hint{
  position:absolute;bottom:14px;right:14px;z-index:2;background:rgba(15,20,15,.55);color:#fff;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font:600 11px/1 'Plus Jakarta Sans';
  letter-spacing:.04em;padding:8px 12px;border-radius:20px;display:flex;gap:7px;align-items:center;
}
.farm-theme .thumbnail-row{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;}
.farm-theme .thumb-box{
  width:68px;height:68px;border-radius:10px;overflow:hidden;border:1px solid var(--ft-line);
  cursor:pointer;transition:.18s;background:#fff;
}
.farm-theme .thumb-box:hover{transform:translateY(-2px);}
.farm-theme .thumb-box.active{border-color:var(--ft-green);box-shadow:0 0 0 2px rgba(45,91,50,.2);}
.farm-theme .thumb-box img{width:100%;height:100%;object-fit:cover;}

/* a hairline 'origin record' strip under the gallery — signature detail */
.ft-origin{
  margin-top:18px;border:1px solid var(--ft-line);border-radius:12px;background:#fff;
  display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden;
}
.ft-origin .o{padding:13px 14px;border-right:1px dashed var(--ft-line);}
.ft-origin .o:last-child{border-right:none;}
.ft-origin .o .l{font:700 9.5px/1 'Plus Jakarta Sans';letter-spacing:.14em;text-transform:uppercase;color:var(--ft-muted);}
.ft-origin .o b{display:block;margin-top:5px;font:700 14px/1 'Plus Jakarta Sans';color:var(--ft-ink);}

/* ============================================================
   3. on-scroll reveal helper (used by farm-theme.js)
   ============================================================ */
.farm-theme .ft-reveal{opacity:0;transform:translateY(26px);transition:.8s cubic-bezier(.22,1,.36,1);}
.farm-theme .ft-reveal.ft-in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .farm-theme .ft-reveal{opacity:1!important;transform:none!important;}
  .ft-hero img.ft-bg{animation:none!important;}
}

/* ============================================================
   PASS-1 FEEDBACK FIXES
   ============================================================ */
/* (a) keep the layout opaque & above the hero — no behind-image overlap */
.farm-theme #productLayout{position:relative;z-index:2;}

/* (b) Process / Benefits / Usage read better — honour the line breaks stored in
   Firestore (the text uses real \n separators) instead of one run-on block,
   and give the accordion content premium spacing. */
.farm-theme #pDesc,
.farm-theme #pProcess,
.farm-theme #pBenefits,
.farm-theme #pUsage{ white-space:pre-line; line-height:1.78; color:#3a463c; }
.farm-theme #pProcess,
.farm-theme #pBenefits,
.farm-theme #pUsage{ margin-top:6px; }
.farm-theme .acc-content-inner h4{
  margin:16px 0 6px;font-family:var(--font-body);font-weight:700;color:var(--ft-green-d);
  font-size:1.02rem;letter-spacing:-.01em;
}
.farm-theme .accordion-container{margin-top:26px;border-radius:14px;overflow:hidden;border:1px solid var(--ft-line);background:#fff;}
.farm-theme .acc-header{font-family:var(--font-body);font-weight:700;color:var(--ft-green-d);}

/* ============================================================
   BUY CARD — restyle the existing right sidebar into the premium
   "shopping" card from the approved mockup (real data, no JS change).
   ============================================================ */
.farm-theme .right-sidebar{
  display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--ft-line);border-top:3px solid var(--ft-gold-d);
  border-radius:18px;padding:26px 24px 24px;box-shadow:0 26px 64px rgba(16,24,40,.12);
  position:sticky;top:90px;
}
/* Contents are authored in the intended top→bottom order in the HTML and grouped
   into .buy-group blocks, so we rely on DOM order (no per-item `order:` hacks).
   Logical groups are separated by light hairlines — no nested sub-cards. */
.farm-theme #themeBadge{margin-bottom:8px;}
.farm-theme #themeBadge:empty{display:none;}
.farm-theme .buy-group{border-top:1px solid var(--ft-line);padding-top:16px;margin-top:16px;}
.farm-theme .member-upsell,
.farm-theme #buyConfidence{display:none;}   /* duplicate member CTA + generic card removed */

/* ---- MOBILE hierarchy: hero → product image → buy-card → left story/details ----
   left-content becomes display:contents so its gallery can sit ABOVE the buy
   card while its story/accordion fall BELOW it. */
@media(max-width:900px){
  .farm-theme #productLayout{margin-top:-5vh;padding-top:24px;}
  .farm-theme .left-content{display:contents;}
  .farm-theme .gallery-container{order:1;margin-bottom:26px;}
  .farm-theme .right-sidebar{order:2;position:static;top:auto;margin-bottom:26px;}
  .farm-theme #themeBlocks{order:3;}
  .farm-theme .accordion-container{order:4;}
}

/* 1. IDENTITY — eyebrow → title → rating → subtitle */
.farm-theme .theme-badge{
  display:inline-block;font-family:var(--font-body);
  font-weight:700;font-size:11px;line-height:1.2;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ft-gold-d);background:none;padding:0;border:none;
}
.farm-theme .p-title{font-family:var(--font-body);font-size:clamp(1.6rem,2.7vw,2.05rem);font-weight:800;color:var(--ft-green-d);letter-spacing:-.025em;margin:0 0 6px;}
.farm-theme #pRatingLine{font:600 13px/1 'Plus Jakarta Sans';color:var(--ft-muted);gap:6px;align-items:center;}
.farm-theme #pRatingLine .stars,.farm-theme #pRatingLine b{color:var(--ft-gold-d);}
.farm-theme .p-subtitle{font-size:13.5px;color:var(--ft-muted);line-height:1.55;margin:8px 0 0;}

/* 2. PRICE BLOCK — sale price hero + membership + coupon + per-unit */
.farm-theme .pricing-box{margin:0;padding:0;border:none;}
.farm-theme .price-row{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;}
.farm-theme .current-price{font:800 clamp(34px,5.4vw,42px)/1 'Plus Jakarta Sans';color:var(--ft-green-d);letter-spacing:-.02em;}
.farm-theme .price-row .mrp{font-size:17px;color:var(--ft-muted);text-decoration:line-through;font-weight:500;}
.farm-theme .pct-pill{font:800 12.5px/1 'Plus Jakarta Sans';color:#1f7a3d;background:#e3f0e4;border-radius:6px;padding:4px 8px;}
.farm-theme .save-line{font:700 14px/1 'Plus Jakarta Sans';color:#1f7a3d;margin-top:8px;}
/* MEMBERSHIP — one clean borderless line (was a bordered box) */
.farm-theme .ft-member{margin-top:11px;display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:#123D2A;background:none;border:none;padding:0;border-radius:0;}
.farm-theme .ft-member i{color:var(--ft-gold-d);}
.farm-theme .ft-member b{color:var(--ft-green-d);font-weight:800;}
.farm-theme .ft-member a{color:var(--ft-green-d);font-weight:700;text-decoration:underline;}
/* COUPON — first-order offer chip */
.farm-theme .offer-chip{display:inline-flex;align-items:center;gap:8px;margin-top:11px;font-size:12.5px;font-weight:600;color:#9a5b12;background:#fbf3df;border:1px dashed #e3c98c;border-radius:8px;padding:7px 11px;text-decoration:none;}
.farm-theme .offer-chip i{color:var(--ft-gold-d);}
.farm-theme .offer-chip b{font-weight:800;letter-spacing:.03em;}
.farm-theme .per-unit{font:500 12.5px/1 'Plus Jakarta Sans';color:var(--ft-muted);margin-top:11px;}

/* 3. CHOOSE + BUY — pack size → subscription/qty/CTAs → seeds reward */
.farm-theme #variantBlock{margin:0;}
.farm-theme .variant-heading{font:700 11px/1 'Plus Jakarta Sans';letter-spacing:.12em;text-transform:uppercase;color:var(--ft-muted);margin-bottom:10px;}
.farm-theme .variant-choices{display:flex;gap:8px;flex-wrap:wrap;}
.farm-theme .choice-pill{
  border:1.5px solid var(--ft-line);background:#fff;border-radius:9px;padding:10px 16px;
  font:600 13px 'Plus Jakarta Sans';color:var(--ft-ink);cursor:pointer;transition:.18s;position:relative;
}
.farm-theme .choice-pill:hover{border-color:var(--ft-green-l);}
/* SELECTED size pill → sage #CED6C9 (per request) */
.farm-theme .choice-pill.active{border-color:var(--ft-green-d);background:#CED6C9;color:var(--ft-green-d);box-shadow:none;}
.farm-theme .choice-pill .vtag{display:block;font:600 9.5px/1 'Plus Jakarta Sans';letter-spacing:.04em;color:var(--ft-gold-d);margin-top:4px;text-transform:uppercase;}
.farm-theme .choice-pill.active .vtag{color:var(--ft-green-d);}
.farm-theme .desktop-action-area{margin-top:16px;}
.farm-theme .purchase-row{display:flex;gap:10px;align-items:stretch;}
/* qty stepper → sage #CED6C9 frame (per request) */
.farm-theme .qty-box{display:flex;align-items:center;border:1.5px solid #CED6C9;border-radius:11px;overflow:hidden;background:#fff;}
.farm-theme .qty-action{background:#CED6C9;border:none;width:40px;font-size:18px;color:var(--ft-green-d);cursor:pointer;}
.farm-theme .qty-num{width:40px;text-align:center;border:none;font-weight:700;background:#fff;}
.farm-theme .btn-action-main{border:none;border-radius:11px;padding:15px;font:700 14px 'Plus Jakarta Sans';cursor:pointer;transition:.2s;}
.farm-theme .btn-zukro-cart{flex:1;background:var(--ft-green);color:#fff;}
.farm-theme .btn-zukro-cart:hover{background:var(--ft-green-d);transform:translateY(-2px);box-shadow:0 10px 22px rgba(45,91,50,.28);}
.farm-theme .btn-sleek{width:100%;margin-top:10px;background:linear-gradient(135deg,var(--ft-gold),var(--ft-gold-d));color:#123D2A;}
.farm-theme .btn-sleek:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(207,148,33,.32);}
/* SUBSCRIPTION — compact One-time / Subscribe & Save selector (sits above the CTAs) */
.farm-theme .zk-sub-wrap{margin:0 0 14px;}
.farm-theme .zk-pt{border:1px solid #e8e1d4;border-radius:12px;overflow:hidden;}
.farm-theme .zk-pt-opt{display:flex;align-items:center;gap:11px;padding:12px 14px;cursor:pointer;border-bottom:1px solid #e8e1d4;transition:background .15s;}
.farm-theme .zk-pt-opt:last-of-type{border-bottom:none;}
.farm-theme .zk-pt-opt input{position:absolute;opacity:0;width:0;height:0;}
.farm-theme .zk-pt-tick{flex:0 0 auto;width:18px;height:18px;border-radius:50%;border:2px solid #c3cabc;position:relative;transition:.15s;}
.farm-theme .zk-pt-opt.is-active{background:#f3f6f1;}
.farm-theme .zk-pt-opt.is-active .zk-pt-tick{border-color:var(--ft-green);}
.farm-theme .zk-pt-opt.is-active .zk-pt-tick::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--ft-green);}
.farm-theme .zk-pt-body{display:flex;flex-direction:column;gap:2px;flex:1;}
.farm-theme .zk-pt-main{font:700 13.5px var(--font-body);color:var(--ft-green-d);}
.farm-theme .zk-pt-main b{color:var(--ft-gold-d);}
.farm-theme .zk-pt-side{font:500 11.5px var(--font-body);color:var(--ft-muted);}
.farm-theme .zk-pt-expand{padding:12px 14px;border-top:1px solid #e8e1d4;background:var(--ft-paper);}
.farm-theme .zk-pt-expand[hidden]{display:none;}
.farm-theme .zk-pt-expand .zk-sub-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.farm-theme .zk-pt-expand .zk-sub-row label{font:600 12.5px var(--font-body);color:var(--ft-green-d);}
.farm-theme .zk-pt-expand select{flex:1 1 120px;padding:9px 10px;border:1px solid var(--ft-line);border-radius:11px;font:inherit;font-size:13px;background:#fff;color:var(--ft-green-d);}
.farm-theme .zk-pt-expand #zkSubBtn{background:#fff;border:1.5px solid var(--ft-green);color:var(--ft-green-d);border-radius:11px;padding:9px 16px;font:700 12.5px var(--font-body);cursor:pointer;}
.farm-theme .zk-pt-expand #zkSubBtn:hover{background:var(--ft-green);color:#fff;}
.farm-theme .zk-sub-guest{font-size:11.5px;color:var(--ft-muted);margin-top:9px;display:flex;gap:6px;align-items:center;}
.farm-theme .zk-sub-msg{font-size:12px;margin-top:8px;color:var(--ft-muted);}
.farm-theme .zk-sub-msg .zk-sub-ok{color:var(--ft-green);font-weight:600;}
/* SEEDS — single green reward line, no box */
.farm-theme .token-badge-note{display:flex;gap:8px;align-items:center;margin-top:14px;font-size:13px;font-weight:600;color:#1f7a3d;}
.farm-theme .token-badge-note i{color:#1f7a3d;}
.farm-theme .token-badge-note #pTokenReward{color:var(--ft-green-d);font-weight:800;}

/* 4. REASSURANCE — delivery → highlighted trust row → help links → tags */
.farm-theme #deliveryCheck{margin:0 0 14px;border:none;border-radius:0;padding:0;background:none;}
.farm-theme .dc-head{font:700 13.5px var(--font-body);color:var(--ft-green-d);margin-bottom:9px;display:flex;gap:7px;align-items:center;}
.farm-theme .dc-row{display:flex;gap:8px;}
.farm-theme #pincodeInput{flex:1;border:1px solid var(--ft-line);border-radius:11px;padding:10px 12px;font:inherit;font-size:13px;outline:none;}
.farm-theme #pincodeInput:focus{border-color:var(--ft-green);box-shadow:0 0 0 3px rgba(45,91,50,.12);}
.farm-theme .dc-row button{background:var(--ft-green);border:1px solid var(--ft-green);color:#fff;border-radius:11px;padding:0 18px;font:700 12px var(--font-body);cursor:pointer;}
/* highlighted trust row (replaces the long sentence + the generic card) */
.farm-theme .p-trust{display:flex;flex-wrap:wrap;gap:9px 16px;margin:0 0 12px;padding:13px 15px;background:#f1efe6;border-radius:11px;}
.farm-theme .p-trust span{display:inline-flex;align-items:center;gap:6px;font:700 11.5px/1 var(--font-body);text-transform:none;color:var(--ft-green-d);}
.farm-theme .p-trust i{color:#1f7a3d;}
.farm-theme .p-help-row{display:flex;align-items:center;gap:9px;margin:0 0 12px;}
.farm-theme .p-help-link{font:600 12.5px var(--font-body);color:var(--ft-muted);text-decoration:underline;}
.farm-theme .p-help-sep{color:var(--ft-line);}
.farm-theme .p-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0;}
.farm-theme .p-tag{font:500 11px/1 var(--font-body);color:var(--ft-muted);background:transparent;border:1px solid var(--ft-line);border-radius:20px;padding:5px 10px;}

/* Storage & Shelf Life — now a calm info block in the LEFT column.
   order:5 keeps it last on mobile, where .left-content becomes display:contents
   and its children join #productLayout's flow (gallery:1 … accordion:4). */
.farm-theme .left-content .p-storage{order:5;margin-top:18px;font-size:13px;color:var(--ft-muted);background:#fff;border:1px solid var(--ft-line);border-radius:12px;padding:14px 16px;line-height:1.6;}
.farm-theme .left-content .p-storage b{color:var(--ft-green-d);}
.farm-theme .left-content .p-storage:empty{display:none;}

/* ============================================================
   PASS 2–4 — trust strip · cinematic scenes · premium sections
   · membership glow · docked buy bar
   ============================================================ */

/* ---- trust strip ---- */
.ft-trust{background:#CED6C9;border-top:1px solid rgba(18,61,42,.14);border-bottom:1px solid rgba(18,61,42,.14);}
.ft-trust-in{max-width:1200px;margin:0 auto;padding:18px 30px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.ft-trust .t{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ft-ink);}
.ft-trust .t i{color:var(--ft-gold-d);font-size:16px;}

/* ---- cinematic process scenes ---- */
.ft-scenes{background:var(--ft-ink);}
.ft-scene{position:relative;min-height:62vh;display:flex;align-items:center;overflow:hidden;}
.ft-scene-bgwrap{position:absolute;inset:0;overflow:hidden;}
.ft-scene-bg{position:absolute;inset:-12%;width:124%;height:124%;object-fit:cover;will-change:transform;}
.ft-scene::after{content:"";position:absolute;inset:0;z-index:1;background:
  radial-gradient(120% 100% at 0% 50%,rgba(8,12,8,.88),rgba(8,12,8,.3) 60%,transparent),
  radial-gradient(80% 60% at 50% 120%,rgba(0,0,0,.55),transparent);}
.ft-scene-copy{position:relative;z-index:2;max-width:560px;padding:0 7vw;color:#fff;}
.ft-scene-copy>*{opacity:0;transform:translateY(28px);transition:.9s cubic-bezier(.22,1,.36,1);}
.ft-scene.in .ft-scene-copy>*{opacity:1;transform:none;}
.ft-scene.in .ft-scene-copy>*:nth-child(2){transition-delay:.1s}
.ft-scene.in .ft-scene-copy>*:nth-child(3){transition-delay:.2s}
.ft-scene-n{font:700 12px/1 'Plus Jakarta Sans',monospace;letter-spacing:.22em;color:var(--ft-gold);}
.ft-scene-copy h2{font-family:var(--font-body);font-size:clamp(2.3rem,5vw,4rem);line-height:1.02;margin:16px 0 14px;font-weight:700;color:#fff;}
.ft-scene-copy p{font-size:1.16rem;color:rgba(255,255,255,.82);max-width:42ch;font-weight:300;}
/* subtle floating keyword — fills the empty dark space purposefully, never loud */
.ft-float{position:absolute;right:6vw;top:50%;z-index:1;font:800 clamp(3rem,9vw,7rem)/1 var(--font-body);letter-spacing:-.03em;color:rgba(255,255,255,.05);white-space:nowrap;transform:translateY(-50%);animation:ftFloat 9s ease-in-out infinite alternate;pointer-events:none;user-select:none;}
@keyframes ftFloat{from{transform:translateY(-54%)}to{transform:translateY(-46%)}}
@media(max-width:760px){ .ft-float{font-size:2.4rem;right:5vw;color:rgba(255,255,255,.045);} }
/* cinematic scroll-progress rail — shows the active step (01–04) down the scenes */
.ft-prog{position:fixed;right:24px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:18px;opacity:0;pointer-events:none;transition:opacity .4s;}
.ft-prog.show{opacity:1;}
.ft-prog-l{display:flex;align-items:center;justify-content:flex-end;gap:10px;font:800 12px/1 var(--font-body);color:rgba(255,255,255,.42);transition:.3s;}
.ft-prog-l i{font-style:normal;font-weight:600;font-size:10px;letter-spacing:.12em;text-transform:uppercase;opacity:0;transform:translateX(6px);transition:.3s;}
.ft-prog-l::after{content:"";width:22px;height:2px;background:rgba(255,255,255,.32);border-radius:2px;transition:.3s;}
.ft-prog-l.on{color:#fff;}
.ft-prog-l.on i{opacity:1;transform:none;color:var(--ft-gold);}
.ft-prog-l.on::after{width:40px;background:var(--ft-gold);}
@media(max-width:760px){ .ft-prog{display:none;} }
@media(prefers-reduced-motion:reduce){ .ft-prog,.ft-prog-l,.ft-prog-l i,.ft-prog-l::after{transition:none;} }

/* ---- premium lower sections (override the plain originals) ---- */
.farm-theme .fbt-section,
.farm-theme .recs-section,
.farm-theme .reviews-section,
.farm-theme .pfaq-section{max-width:1180px;margin:0 auto;padding:52px 30px;}
.farm-theme .fbt-section>h2,
.farm-theme .recs-section>h2,
.farm-theme .reviews-section>h2,
.farm-theme .pfaq-section>h2{font-family:var(--font-body);font-size:1.8rem;color:var(--ft-green-d);letter-spacing:-.025em;margin-bottom:26px;position:relative;padding-left:16px;}
.farm-theme .fbt-section>h2::before,
.farm-theme .recs-section>h2::before,
.farm-theme .reviews-section>h2::before,
.farm-theme .pfaq-section>h2::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:4px;border-radius:3px;background:var(--ft-gold-d);}
.farm-theme .reviews-section{background:var(--ft-paper-2);max-width:none;}
.farm-theme .reviews-section>*{max-width:1180px;margin-left:auto;margin-right:auto;}
.farm-theme .rec-card,.farm-theme .fbt-item,.farm-theme .rev-item{border-radius:14px!important;}
.farm-theme .rec-card{border:1px solid var(--ft-line)!important;transition:.25s;background:#fff;}
.farm-theme .rec-card:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(16,24,40,.12);}
.farm-theme .fbt-add,.farm-theme .rev-submit{background:var(--ft-green)!important;border-radius:10px!important;}
.farm-theme .pfaq details{border:1px solid var(--ft-line);border-radius:12px;margin-bottom:11px;background:#fff;padding:2px 18px;}
.farm-theme .pfaq details[open]{border-color:#cfe0cf;box-shadow:0 6px 18px rgba(16,24,40,.05);}
.farm-theme .pfaq-cat{font:700 11px/1 'Plus Jakarta Sans',monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--ft-gold-d);margin:22px 0 10px;}

/* ---- membership glow (guest-aware) ---- */
.ft-glow{position:relative;background:radial-gradient(ellipse at 50% -10%,rgba(45,91,50,.55),var(--ft-ink) 64%);padding:66px 0;text-align:center;overflow:hidden;color:#fff;}
.ft-glow::before{content:"";position:absolute;inset:0;background:url("../uploads/farm-family.jpg") center/cover;opacity:.06;}
.ft-glow-in{position:relative;z-index:2;max-width:980px;margin:0 auto;padding:0 30px;}
.ft-glow-ey{font:700 11px/1 'Plus Jakarta Sans',monospace;letter-spacing:.24em;text-transform:uppercase;color:var(--ft-gold);}
.ft-glow h2{font-family:var(--font-body);font-size:clamp(2rem,4.2vw,3rem);margin:14px 0 12px;font-weight:700;color:#fff;}
.ft-glow-sub{color:rgba(255,255,255,.78);max-width:54ch;margin:0 auto 36px;font-weight:300;}
.ft-perks{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:36px;}
.ft-perk{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.13);border-radius:16px;padding:22px 18px;text-align:left;transition:.25s;}
.ft-perk:hover{background:rgba(255,255,255,.09);transform:translateY(-3px);border-color:rgba(232,169,46,.4);}
.ft-perk i{font-size:22px;font-style:normal;}.ft-perk b{display:block;font-family:var(--font-body);margin:9px 0 3px;}
.ft-perk small{color:rgba(255,255,255,.62);font-size:12.5px;}
.ft-glow-cta .c{display:inline-block;border-radius:30px;padding:15px 30px;font-weight:700;text-decoration:none;transition:.2s;}
.ft-glow-cta .c.p{background:linear-gradient(135deg,var(--ft-gold),var(--ft-gold-d));color:#123D2A;}
.ft-glow-cta .c.p:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(232,169,46,.3);}
.ft-glow-cta .c.g{background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;margin-left:10px;}
/* guest vs signed-in (body gets .zk-signed-in from the shared header) */
.farm-theme .ft-glow .zk-auth-in{display:none;}
.farm-theme.zk-signed-in .ft-glow .zk-auth-in{display:block;}
.farm-theme.zk-signed-in .ft-glow .zk-auth-out{display:none;}

/* reveal helper for always-visible blocks */
.farm-theme .ft-trust,.farm-theme .ft-glow{opacity:0;transform:translateY(22px);transition:.8s cubic-bezier(.22,1,.36,1);}
.farm-theme .ft-trust.in,.farm-theme .ft-glow.in{opacity:1;transform:none;}

/* ---- docked buy bar ---- */
.ft-dock{position:fixed;left:0;right:0;bottom:0;z-index:1200;background:rgba(11,15,11,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid rgba(255,255,255,.12);transform:translateY(120%);transition:transform .5s cubic-bezier(.22,1,.36,1);}
.ft-dock.show{transform:none;}
.ft-dock-in{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:12px 30px;color:#fff;}
.ft-dock-info .nm{font-family:var(--font-body);font-weight:700;color:#fff;}
.ft-dock-info .mem{font-size:12px;color:rgba(255,255,255,.74);}
.ft-dock-price{color:var(--ft-gold);font:800 17px 'Plus Jakarta Sans',monospace;}
.ft-dock-sp{flex:1;}
/* Buy Now — secondary, outlined; explicit cream/white text so it never inherits dark */
.ft-dock-buy{background:transparent;border:1.5px solid rgba(255,255,255,.55);color:#fff;border-radius:30px;padding:11px 20px;min-height:44px;font-weight:700;cursor:pointer;transition:.18s;}
.ft-dock-buy:hover,.ft-dock-buy:focus-visible{background:#F3EEE3;color:#123D2A;border-color:#F3EEE3;}
/* Add to Cart — PRIMARY (strongest, readable on the dark bar) → brand gold + dark-green
   label. Fixes the invisible dark-on-dark label (all --ft-green-* tokens are #123D2A). */
.ft-dock-add{background:var(--ft-gold);color:#123D2A;border:none;border-radius:30px;padding:12px 26px;min-height:44px;font-weight:800;cursor:pointer;transition:.18s;}
.ft-dock-add:hover,.ft-dock-add:focus-visible{background:#F3EEE3;color:#123D2A;}
.ft-dock-buy:focus-visible,.ft-dock-add:focus-visible{outline:2px solid #F3EEE3;outline-offset:2px;}

@media(max-width:920px){
  .ft-perks{grid-template-columns:1fr 1fr;}
  .ft-scene{min-height:56vh;}
  .ft-dock{display:none!important;} /* mobile uses the existing .mobile-sticky-bar */
}
@media(prefers-reduced-motion:reduce){
  .ft-scene-copy>*{opacity:1!important;transform:none!important;}
  .farm-theme .ft-trust,.farm-theme .ft-glow,.farm-theme .ft-bridge{opacity:1!important;transform:none!important;}
}

/* ============================================================
   ZUKRO CART — premium skin for cart.html (scoped .zk-cart).
   Re-skins the existing JS-rendered markup; logic untouched.
   ============================================================ */
.farm-theme.zk-cart{padding-top:72px!important;background:var(--ft-paper);}
.zk-cart .cart-wrap{max-width:1140px;}  /* compact 4.19.15 proportion (not the wide 5.02 1300) */

/* header band + step indicator */
.zk-cart-head{margin:6px 0 28px;}
.zk-cart-head .ey{font:700 11px/1 'Plus Jakarta Sans',monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--ft-gold-d);}
.zk-cart-head h1{font-family:var(--font-body);font-size:clamp(1.9rem,3vw,2.5rem)!important;color:var(--ft-green-d)!important;letter-spacing:-.03em;margin:9px 0 18px!important;}
.zk-steps{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.zk-step{display:flex;align-items:center;gap:9px;font:600 13px Inter,sans-serif;color:var(--ft-muted);}
.zk-step .n{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font:700 12px 'Plus Jakarta Sans',monospace;background:#fff;border:1px solid var(--ft-line);color:var(--ft-muted);}
.zk-step.on{color:var(--ft-green-d);}
.zk-step.on .n{background:var(--ft-green);border-color:var(--ft-green);color:#fff;}
.zk-step .ln{width:34px;height:1px;background:var(--ft-line);}

/* cart line items */
.zk-cart .ci{border-radius:16px!important;border:1px solid var(--ft-line)!important;padding:18px!important;box-shadow:0 6px 18px rgba(16,24,40,.05);}
.zk-cart .ci:hover{box-shadow:0 16px 34px rgba(16,24,40,.10)!important;border-color:#CED6C9!important;}
.zk-cart .ci-thumb{flex:0 0 84px!important;width:84px!important;height:84px!important;border-radius:12px!important;}
.zk-cart .ci-info h3{font-family:var(--font-body);font-weight:700;color:var(--ft-ink);}
.zk-cart .ci-sell{color:var(--ft-green-d);}
.zk-cart .ci-off{color:#9a3412;}
/* Match the PDP + drawer qty stepper exactly: sage fill, green glyphs, sage border. */
.zk-cart .qty{border-radius:10px!important;border-color:#CED6C9!important;}
.zk-cart .qty button{background:#CED6C9!important;color:#123D2A!important;}
.zk-cart .qty button:hover{background:#bcc8b6!important;color:#123D2A!important;}
.zk-cart .btn-shop{color:var(--ft-green-d);font-weight:700;}

/* bill-summary panel — skin only; padding/top/scroll handled by cart.html inline
   (panel splits into a scroll body + sticky checkout foot, so NO panel padding here) */
.zk-cart .summary{border-radius:18px!important;border:1px solid var(--ft-line)!important;border-top:3px solid var(--ft-gold-d)!important;box-shadow:0 26px 60px rgba(16,24,40,.12)!important;}
.zk-cart .summary h3,.zk-cart .bs-h,.zk-cart .rec h2,.zk-cart .saved-h{font-family:var(--font-body);color:var(--ft-green-d)!important;letter-spacing:-.02em;}
.zk-cart .cc-h{font-family:var(--font-body);}
/* premium GOLD checkout CTA (dark-green text) — matches the drawer; replaces the
   old flat-green button that rendered dark text invisibly on a green fill */
.zk-cart .btn-checkout{background:linear-gradient(135deg,#EFB23A,#D6961C)!important;color:#123D2A!important;border:1px solid #cf8f17!important;border-radius:12px!important;font-family:var(--font-body);font-weight:900!important;box-shadow:0 10px 24px rgba(207,148,33,.32);}
.zk-cart .btn-checkout:hover{filter:brightness(1.04);color:#123D2A!important;transform:translateY(-2px);box-shadow:0 14px 30px rgba(207,148,33,.4);}

/* upsell cards + trust bar */
.zk-cart .up-card{border-radius:14px!important;border:1px solid var(--ft-line)!important;}
.zk-cart .up-card:hover{box-shadow:0 16px 30px rgba(16,24,40,.12)!important;}
.zk-cart .up-add{border-radius:11px!important;}
.zk-cart .up-add:hover{background:var(--ft-green)!important;color:#fff!important;}
.zk-cart .cart-trustbar{border-radius:16px!important;border:1px solid var(--ft-line)!important;box-shadow:0 8px 22px rgba(16,24,40,.05);}
.zk-cart .empty h3{font-family:var(--font-body);}

/* ============================================================
   ZUKRO CART — slide-out DRAWER skin (themed pages; UI only).
   Re-skins cart.js-rendered drawer classes; no logic touched.
   ============================================================ */
.farm-theme #cartDrawer .cart-head h4{font-family:var(--font-body);letter-spacing:-.02em;}
.farm-theme #cartItems{background:var(--ft-paper);}
.farm-theme .zk-citem{border-radius:14px!important;border-color:var(--ft-line)!important;}
.farm-theme .zk-citem-title{font-family:var(--font-body);font-weight:700;}
.farm-theme .zk-citem-price b{color:var(--ft-green-d);}
.farm-theme .zk-qty{border-radius:9px!important;}
.farm-theme .zk-sec{border-radius:14px!important;}
.farm-theme .zk-sec-h{font-family:var(--font-body);color:var(--ft-green-d);}
.farm-theme .zk-sec-bill{border-top:2px solid var(--ft-gold-d)!important;}
.farm-theme .zk-brk-total{font-family:var(--font-body);color:var(--ft-ink);}
.farm-theme .zk-xcard{border-radius:12px!important;}
.farm-theme .zk-fomo{border-radius:10px!important;}
.farm-theme .checkout-btn{border-radius:12px!important;font-family:var(--font-body);font-weight:700;}

/* ---- Zukro Cart: theme the coupon field (js/coupon.js mountInput) ---- */
.farm-theme .zk-coupon-row{display:flex;gap:8px;}
.farm-theme #zkCouponInput{flex:1;min-width:0;border:1px solid var(--ft-line);border-radius:11px;padding:11px 12px;font:inherit;font-size:13px;outline:none;text-transform:uppercase;background:#fff;}
.farm-theme #zkCouponInput:focus{border-color:var(--ft-green);box-shadow:0 0 0 3px rgba(45,91,50,.12);}
.farm-theme #zkCouponApply{background:var(--ft-green);color:#fff;border:none;border-radius:11px;padding:0 18px;font:700 13px 'Plus Jakarta Sans',sans-serif;cursor:pointer;white-space:nowrap;}
.farm-theme #zkCouponApply:hover{background:var(--ft-green-d);}
.farm-theme .zk-coupon-applied{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#F3EEE3;border:1px solid #cfe0cf;border-radius:11px;padding:10px 12px;font-size:13px;color:var(--ft-green-d);}
.farm-theme .zk-coupon-applied a{color:#9a3412;font-weight:700;text-decoration:none;}
.farm-theme .zk-coupon-msg{font-size:12px;margin-top:6px;}

/* ============================================================
   ZUKRO CHECKOUT + CONFIRMED — step bar + light premium touch
   ============================================================ */
.farm-theme.zk-checkout,.farm-theme.zk-confirmed{padding-top:72px!important;background:var(--ft-paper);}
.zk-step.done{color:var(--ft-green-d);}
.zk-step.done .n{background:#F3EEE3;border-color:var(--ft-green);color:var(--ft-green);}
.zk-checkout h1,.zk-checkout h2,.zk-checkout h3,
.zk-confirmed h1,.zk-confirmed h2{font-family:var(--font-body);letter-spacing:-.02em;}
.zk-checkout .co-wrap{max-width:1140px;}
.zk-confirmed .zk-cart-head{margin:0 0 4px;}

/* ============================================================
   PDP AUDIT PASS — dark-green brand transition band, per-product
   banner, tighter lower spacing, mockup-matched recs grid, compact
   reviews, and sticky-bar safe spacing. (Layout/spacing only.)
   ============================================================ */

/* ---- 1. dark-green brand transition band (premium bridge) ----
   Sits BELOW the white/cream product hero and ABOVE the story scenes.
   Removes the empty white gap; feels intentional + brand-owned.
   Uses existing brand dark-green tokens only — no new colour. */
/* Gold transition band — premium muted gold with readable dark-green text. */
.ft-bridge{position:relative;overflow:hidden;color:var(--ft-green-d);
  background:linear-gradient(160deg,var(--zukro-gold) 0%,var(--ft-gold-d) 130%);}
.ft-bridge::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 90% at 0% 0%,rgba(255,255,255,.16),transparent 60%);}
.ft-bridge-in{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:clamp(40px,6vw,72px) 30px;}
.ft-bridge-head{max-width:760px;}
.ft-bridge-ey{font-family:var(--font-body);font-weight:600;font-size:11.5px;line-height:1;letter-spacing:.14em;text-transform:uppercase;color:var(--ft-green-d);}
.ft-bridge h2{font-family:var(--font-body);font-size:clamp(1.65rem,3.4vw,2.6rem);font-weight:700;color:var(--ft-green-d);margin:13px 0 10px;letter-spacing:-.03em;line-height:1.05;}
.ft-bridge-sub{color:rgba(18,40,30,.82);font-size:clamp(1rem,1.4vw,1.12rem);font-weight:400;max-width:54ch;}
/* reveal helper (observed by farm-theme.js) */
.farm-theme .ft-bridge{opacity:0;transform:translateY(22px);transition:.8s cubic-bezier(.22,1,.36,1);}
.farm-theme .ft-bridge.in{opacity:1;transform:none;}

/* FBT now lives inside the bridge — light card on the dark band */
.ft-bridge .fbt-section{max-width:none;margin:28px 0 0;padding:0;}
.ft-bridge .fbt-section>h2{color:var(--ft-green-d);padding-left:0;margin-bottom:16px;font-family:var(--font-body);font-size:1.2rem;letter-spacing:-.02em;}
.ft-bridge .fbt-section>h2::before{display:none;}

/* ---- 2. per-product story banner (Product → Banner) ----
   Controlled aspect ratio so any uploaded image stays crop-safe. */
.ft-banner{background:var(--ft-ink);}
.ft-banner-wrap{position:relative;width:100%;aspect-ratio:16/6.5;overflow:hidden;}
.ft-banner-wrap img{width:100%;height:100%;object-fit:cover;display:block;}
@media(max-width:760px){ .ft-banner-wrap{aspect-ratio:4/3;} }

/* ---- 3. tighter "More than a purchase" block ---- */
.farm-theme .theme-ending{max-width:1180px;margin:0 auto;padding:8px 30px 0;}

/* ---- 4. Continue Exploring / You might also like — mockup proportions ----
   4-up desktop grid, 2-up mobile, even card rhythm. */
.farm-theme .recs-grid{grid-template-columns:repeat(4,1fr);gap:18px;}
.farm-theme .rec-card{border-radius:14px!important;overflow:hidden;}
.farm-theme .rec-img{aspect-ratio:1/1;padding:14px;}
.farm-theme .rec-b{padding:15px;}
.farm-theme .rec-t{font:600 14.5px/1.3 'Plus Jakarta Sans',sans-serif;color:var(--ft-green-d);margin-bottom:6px;}
.farm-theme .rec-p{font:700 14px 'Plus Jakarta Sans',monospace;color:var(--ft-green-d);}
@media(max-width:920px){ .farm-theme .recs-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:420px){ .farm-theme .recs-grid{gap:12px;} }

/* ---- 5. compact reviews: form collapsed until "Write a review" ---- */
.farm-theme .reviews-section .rev-summary{margin-bottom:14px;}
.farm-theme .reviews-section .rev-write-btn{display:inline-flex;align-items:center;gap:9px;margin:2px 0;
  background:var(--ft-green);color:#fff;border:none;border-radius:11px;padding:13px 24px;
  font:700 13px 'Plus Jakarta Sans',sans-serif;cursor:pointer;transition:.2s;}
.farm-theme .reviews-section .rev-write-btn:hover{background:var(--ft-green-d);transform:translateY(-2px);box-shadow:0 10px 22px rgba(45,91,50,.28);}
.farm-theme .reviews-section .rev-form-wrap{display:none;margin-top:18px;}
.farm-theme .reviews-section.rev-open .rev-form-wrap{display:block;}
.farm-theme .reviews-section.rev-open .rev-write-btn{display:none;}

/* ---- 6. sticky CTA safe space — footer never sits under the bar ----
   .footer keeps its own background, so the bar floats over footer space
   (no cream gap). Scoped to the PDP via body.ft-pdp. */
.ft-pdp .footer{padding-bottom:84px;}
@media(max-width:900px){ .ft-pdp .footer{padding-bottom:92px;} }

/* ============================================================
   PDP AUDIT PASS 2 — area recolours, review alignment, themed
   scrollbars. (Theme colours only: dark green / gold / cream.)
   ============================================================ */

/* (Removed legacy "Subscribe & Save dark-green card" styles. The widget is now the
   compact One-time/Subscribe selector on a CREAM panel — styled in the buy-box
   section above (.zk-pt-*). Those old rules set white text / gold button for a dark
   background and were making the guest note + message invisible on the light panel.)
   Guest note + link kept here, but in readable on-cream colours: */
.farm-theme .zk-sub-guest{margin-top:9px;font-size:12px;color:var(--ft-muted);display:flex;align-items:center;gap:6px;line-height:1.4;}
.farm-theme .zk-sub-guest i{color:var(--ft-gold-d);}
.farm-theme .zk-sub-guest a{color:var(--ft-green-d);font-weight:700;text-decoration:underline;}

/* ---- T4: keep the "Write a review" button inside the centred content column ----
   The reviews section is full-bleed with per-child max-width centring; an inline
   button escaped to the far left. Wrapping it in a block re-anchors it to the
   column's left edge, aligned with the heading + summary. */
.farm-theme .reviews-section .rev-write-wrap{display:block;}
.farm-theme .reviews-section .rev-write-btn{margin:2px 0;}
.farm-theme .reviews-section .rev-summary{align-items:baseline;flex-wrap:wrap;gap:10px;}
.farm-theme .reviews-section .rev-list .rev-empty{margin-top:4px;}

/* (Themed scrollbars deduped → now defined once, site-wide, in theme-fix.css.) */

/* ============================================================
   PROOF & EDUCATION sections — Why · Sensory · Usage · Comparison
   (cream content bands; brand tokens only)
   ============================================================ */
.sec-eyebrow{font:700 11px/1 var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--ft-gold-d);margin-bottom:10px;}
.sec-h{font-family:var(--font-body);font-weight:800;letter-spacing:-.025em;color:var(--ft-green-d);font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.1;margin:0 0 8px;}
.sec-sub{color:var(--ft-muted);font-size:15px;line-height:1.55;max-width:52ch;margin:0;}

/* Why this product */
.why-section{background:#F3EEE3;}
.why-in{max-width:1200px;margin:0 auto;padding:clamp(48px,7vw,84px) 5%;}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-top:26px;}
.why-card{background:#fff;border:1px solid var(--ft-line);border-radius:14px;padding:22px 20px;}
.why-ic{width:42px;height:42px;border-radius:11px;background:#eef3ea;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
.why-ic i{color:var(--ft-green);font-size:17px;}
.why-card h3{font:800 15px/1.25 var(--font-body);color:var(--ft-green-d);margin:0 0 6px;letter-spacing:-.01em;}
.why-card p{font-size:13px;color:var(--ft-muted);line-height:1.55;margin:0;}

/* Sensory notes — split: copy + spec cards */
.sensory-section{background:#fff;}
.sensory-in{max-width:1200px;margin:0 auto;padding:clamp(48px,7vw,84px) 5%;display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,5vw,64px);align-items:center;}
.sensory-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.sense-item{background:#F3EEE3;border:1px solid var(--ft-line);border-radius:14px;padding:18px 18px;}
.sense-item .sl{font:700 10.5px/1 var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ft-gold-d);margin-bottom:8px;}
.sense-item .sv{font:700 16px/1.3 var(--font-body);color:var(--ft-green-d);letter-spacing:-.01em;}

/* How to use — icon cards */
.usage-section{background:#F3EEE3;}
.usage-in{max-width:1200px;margin:0 auto;padding:clamp(48px,7vw,84px) 5%;}
.usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin-top:24px;}
.use-card{background:#fff;border:1px solid var(--ft-line);border-radius:14px;padding:22px 14px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;}
.use-card i{color:var(--ft-green);font-size:22px;}
.use-card span{font:700 13px/1.2 var(--font-body);color:var(--ft-green-d);}

/* Comparison table */
.compare-section{background:#fff;}
.compare-in{max-width:1000px;margin:0 auto;padding:clamp(48px,7vw,84px) 5%;}
.compare-wrap{margin-top:24px;border:1px solid var(--ft-line);border-radius:16px;overflow:hidden;}
.compare-table{width:100%;border-collapse:collapse;font-family:var(--font-body);}
.compare-table th,.compare-table td{padding:15px 18px;text-align:left;font-size:14px;border-bottom:1px solid var(--ft-line);}
.compare-table thead th{background:#F3EEE3;font-weight:800;color:var(--ft-green-d);font-size:12.5px;letter-spacing:.02em;}
.compare-table thead th.cz-h{background:var(--ft-green);color:#fff;}
.compare-table tbody tr:last-child td{border-bottom:none;}
.compare-table td.cf{font-weight:700;color:var(--ft-green-d);width:26%;}
.compare-table td.cz{color:#1f3d2c;font-weight:600;background:#f4f8f3;}
.compare-table td.cz i{color:var(--ft-green);margin-right:5px;}
.compare-table td.cm{color:var(--ft-muted);}
.compare-foot{margin-top:12px;font-size:12px;color:var(--ft-muted);text-align:center;}

@media(max-width:760px){
  .sensory-in{grid-template-columns:1fr;gap:26px;}
  .compare-table th,.compare-table td{padding:12px 12px;font-size:13px;}
}

/* ---- Product Assistant (floating, non-intrusive) ---- */
.pa-fab{position:fixed;right:22px;bottom:84px;z-index:1150;display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
.pa-pill{display:inline-flex;align-items:center;gap:8px;background:var(--ft-green);color:#fff;border:none;border-radius:30px;padding:12px 18px;font:700 13px var(--font-body);cursor:pointer;box-shadow:0 10px 26px rgba(16,40,28,.28);transition:transform .18s,box-shadow .2s;}
.pa-pill:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(16,40,28,.34);}
.pa-pill i{color:var(--ft-gold);}
.pa-panel{width:280px;max-width:calc(100vw - 32px);background:#fff;border:1px solid var(--ft-line);border-radius:16px;box-shadow:0 20px 50px rgba(16,24,40,.22);padding:16px;}
.pa-panel[hidden]{display:none;}
.pa-head{display:flex;justify-content:space-between;align-items:center;font:800 14px var(--font-body);color:var(--ft-green-d);margin-bottom:4px;}
.pa-head i{color:var(--ft-green);}
.pa-x{background:none;border:none;font-size:22px;line-height:1;color:var(--ft-muted);cursor:pointer;}
.pa-q{font:600 11px/1 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ft-muted);margin:10px 0 9px;}
.pa-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.pa-grid button{background:#F3EEE3;border:1px solid var(--ft-line);border-radius:9px;padding:10px 8px;font:600 12.5px var(--font-body);color:var(--ft-green-d);cursor:pointer;transition:.15s;}
.pa-grid button:hover{background:#CED6C9;}
.pa-wa{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;background:#1f7a3d;color:#fff;border-radius:9px;padding:10px;font:700 12.5px var(--font-body);text-decoration:none;}
.pa-wa:hover{background:#176030;}
@media(max-width:900px){ .pa-fab{bottom:78px;right:14px;} }
@media(prefers-reduced-motion:reduce){ .pa-pill{transition:none;} }

/* ---- Global reduced-motion guard (a11y): honour the OS setting ---- */
@media(prefers-reduced-motion:reduce){
  .ft-float{animation:none!important;}
  .ft-hero img.ft-bg,.ft-scene-bg{animation:none!important;transform:none!important;}
  .ft-scene-copy>*{opacity:1!important;transform:none!important;transition:none!important;}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
}

/* ============================================================
   REVIEWS — credibility upgrade (summary distribution + rich cards)
   ============================================================ */
.farm-theme #revSummary{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(20px,4vw,48px);}
.farm-theme .rev-sum-score{display:flex;align-items:center;gap:12px;}
.farm-theme .rev-sum-score .big{font:800 44px/1 var(--font-body);color:var(--ft-green-d);}
.farm-theme .rev-sum-st{display:flex;flex-direction:column;gap:4px;}
.farm-theme .rev-sum-st .stars{color:var(--ft-gold-d);}
.farm-theme .rev-sum-count{font-size:12.5px;color:var(--ft-muted);}
.farm-theme .rev-dist{flex:1;min-width:220px;max-width:360px;display:flex;flex-direction:column;gap:5px;}
.farm-theme .rev-distrow{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--ft-muted);}
.farm-theme .rev-distrow .rd-l{flex:0 0 30px;display:inline-flex;align-items:center;gap:2px;color:var(--ft-green-d);font-weight:600;}
.farm-theme .rev-distrow .rd-l i{font-size:9px;color:var(--ft-gold-d);}
.farm-theme .rev-distrow .rd-bar{flex:1;height:7px;background:#ece7da;border-radius:6px;overflow:hidden;}
.farm-theme .rev-distrow .rd-bar span{display:block;height:100%;background:var(--ft-gold);border-radius:6px;}
.farm-theme .rev-distrow .rd-c{flex:0 0 18px;text-align:right;}

.farm-theme .rev-card{background:#fff;border:1px solid var(--ft-line);border-radius:14px;padding:18px 20px;margin-bottom:14px;}
.farm-theme .rev-card-head{display:flex;align-items:flex-start;gap:12px;}
.farm-theme .rev-av{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:#CED6C9;color:var(--ft-green-d);display:flex;align-items:center;justify-content:center;font:800 15px var(--font-body);}
.farm-theme .rev-id{flex:1;min-width:0;}
.farm-theme .rev-name{font:700 14px var(--font-body);color:var(--ft-green-d);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.farm-theme .rev-vbadge{display:inline-flex;align-items:center;gap:4px;background:#e7f1e9;color:var(--ft-green-d);font:600 11px var(--font-body);padding:2px 8px;border-radius:20px;}
.farm-theme .rev-vbadge i{color:var(--ft-green);}
.farm-theme .rev-meta{font-size:12px;color:var(--ft-muted);margin-top:3px;display:flex;flex-wrap:wrap;gap:4px;align-items:center;}
.farm-theme .rev-meta i{color:var(--ft-gold-d);margin-right:2px;}
.farm-theme .rev-stars{flex:0 0 auto;color:var(--ft-gold-d);font-size:13px;}
.farm-theme .rev-body{margin-top:10px;color:#3a463c;font-size:14px;line-height:1.6;}
.farm-theme .rev-photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.farm-theme .rev-photos img{height:72px;width:72px;object-fit:cover;border-radius:8px;border:1px solid var(--ft-line);}
.farm-theme .rev-foot{margin-top:12px;}
.farm-theme .rev-helpful{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--ft-line);border-radius:30px;padding:7px 14px;font:600 12.5px var(--font-body);color:var(--ft-green-d);cursor:pointer;transition:.15s;}
.farm-theme .rev-helpful:hover{background:#F3EEE3;}
.farm-theme .rev-helpful.on{background:#e7f1e9;border-color:#bcd6c2;color:var(--ft-green-d);cursor:default;}
.farm-theme .rev-helpful i{color:var(--ft-green);}
.farm-theme .rev-helpful:focus-visible{outline:2px solid var(--ft-gold);outline-offset:2px;}

/* ---- a11y: visible focus rings + comfortable touch targets (PDP) ---- */
.farm-theme a:focus-visible,
.farm-theme button:focus-visible,
.farm-theme select:focus-visible,
.farm-theme input:focus-visible,
.farm-theme summary:focus-visible{outline:2px solid var(--ft-gold);outline-offset:2px;border-radius:6px;}
@media(max-width:900px){
  .farm-theme .choice-pill,
  .farm-theme .pa-grid button,
  .farm-theme .rev-helpful,
  .farm-theme .dc-row button,
  .farm-theme .zk-pt-expand #zkSubBtn{min-height:44px;}
}

/* ============================================================
   COMMERCE PREMIUM — Cart · Checkout · Thank-you lifted to the
   product-page standard. VISUAL ONLY (no markup/flow/JS change).
   Body carries .farm-theme + .zk-cart / .zk-checkout / .zk-confirmed,
   so these .zk-* selectors layer over each page's inline styles.
   ============================================================ */
/* headings → bold + tight, brand green */
.zk-cart .cart-wrap h1,.zk-checkout h1,.zk-confirmed .ty-wrap h1{font-weight:800;letter-spacing:-.025em;color:var(--ft-green-d);}
.zk-cart .summary h3,.zk-checkout .sum h3,.zk-checkout .co-step h2,.zk-confirmed .ty-support h3,.zk-confirmed .ty-sav-head{font-weight:800;letter-spacing:-.015em;color:var(--ft-green-d);}

/* cards → unified elevation + radius */
.zk-checkout .co-card,.zk-cart .summary,.zk-confirmed .ty-support,.zk-confirmed .ty-savings{
  border:1px solid var(--ft-line);border-radius:18px;box-shadow:0 16px 40px rgba(16,24,40,.07);
}
/* the order/summary card → premium gold top-edge (matches the product buy-card).
   NOTE: do NOT force position on .zk-cart .summary — it is position:sticky;top:88px
   from cart.html. Forcing position:relative here both broke the sticky AND (with
   top:88px) shoved the panel 88px down, misaligning it from the first cart item. */
.zk-cart .summary,.zk-checkout .co-card.sum{border-top:3px solid var(--ft-gold-d);}
.zk-checkout .co-card.sum{position:relative;}
.zk-cart .ci{border-radius:16px;}
.zk-cart .ci:hover{box-shadow:0 12px 28px rgba(16,40,28,.10);}

/* selected states → sage #CED6C9 (per pattern) */
.zk-checkout .pay-opt.sel,.zk-checkout .addr-card.sel{background:#CED6C9;border-color:var(--ft-green-d);box-shadow:none;}
.zk-checkout .pay-opt.sel i,.zk-checkout .addr-card.sel b{color:var(--ft-green-d);}
/* numbered step badge → subtle gold ring */
.zk-checkout .co-step h2::before{box-shadow:0 0 0 3px rgba(232,169,46,.18);}

/* primary CTAs → strongest, bolder, lift + shadow */
.zk-cart .btn-checkout,.zk-checkout .co-place .btn-p,.zk-confirmed .ty-actions .primary{font-weight:800;border-radius:12px;}
.zk-cart .btn-checkout:hover,.zk-checkout .co-place .btn-p:hover{box-shadow:0 12px 26px rgba(16,40,28,.26);transform:translateY(-2px);}
.zk-confirmed .ty-actions .primary:hover{transform:translateY(-2px);}

/* trust → calm highlighted reassurance panel */
.zk-cart .cart-trust,.zk-checkout .trust{background:#f1efe6;border-radius:12px;padding:14px 15px;border-top:none;margin-top:16px;}
.zk-cart .cart-trust div,.zk-checkout .trust div{font-weight:600;color:var(--ft-green-d);}
.zk-cart .cart-trust i,.zk-checkout .trust i{color:#1f7a3d;}

/* thank-you: fix low-contrast WhatsApp button (was white-on-sage) + richer hero/refer */
.zk-confirmed .btn-wa{background:var(--ft-green);color:#fff;}
.zk-confirmed .btn-wa:hover{background:var(--ft-green-d);}
.zk-confirmed .ty-check{box-shadow:none;}
.zk-confirmed .ty-step.done .dot{box-shadow:none;}
.zk-confirmed .refer-card{border:1px solid rgba(232,169,46,.28);}

/* defensive: converted icons always 1em even before svg-icons.js injects its CSS
   (prevents a brief horizontal-overflow flash from intrinsic SVG viewBox widths) */
svg.zk-ico{width:1em;height:1em;flex:0 0 auto;}

/* commerce pages: clip the off-screen cart drawer's horizontal bleed without
   making body a scroll container (overflow:hidden would break position:sticky). */
.farm-theme.zk-cart,.farm-theme.zk-checkout,.farm-theme.zk-confirmed{overflow-x:clip;}
/* checkout mobile: grid tracks/children default to min-width:auto and refuse to
   shrink → cards overflowed the container by ~15px. Let them shrink to fit. */
.zk-checkout .co-grid,.zk-checkout .co-grid>*,.zk-cart .cart-grid,.zk-cart .cart-grid>*{min-width:0;}

/* ============================================================
   THANK-YOU — solid golden background.
   White cards float on gold; text stays dark-green for contrast.
   ============================================================ */
.farm-theme.zk-confirmed{
  background:#EDA719;
}
.zk-confirmed .ty-wrap .sub{color:#123D2A;opacity:.86;}
.zk-confirmed .ty-order{box-shadow:none;}
.zk-confirmed .ty-step small{color:#3a2a08;}
.zk-confirmed .ty-step.done small{color:#123D2A;}
.zk-confirmed .ty-timeline::before{background:rgba(18,40,30,.18);}
.zk-confirmed .ty-savings,.zk-confirmed .ty-support,.zk-confirmed .refer-card,
.zk-confirmed .ty-biz,.zk-confirmed .ty-wrap > div[style*="background"]{box-shadow:none;}

/* ============================================================
   MOBILE iOS ZOOM FIX
   Safari zooms the viewport when an input with font-size < 16px
   receives focus. Fix: set minimum 16px on all interactive
   inputs within farm-theme pages on mobile. Desktop keeps the
   visual 13px via the base rules above.
   ============================================================ */
@media(max-width:768px){
  .farm-theme #pincodeInput,
  .farm-theme #zkCouponInput,
  .farm-theme .zk-pt-expand select { font-size:16px; }
}

/* ============================================================
   COMPACT MOBILE — 390px (iPhone mini / SE3 / compact Android)
   Tighten spacing and font sizes where content can be cramped
   at the smallest common viewport width without breaking layouts.
   ============================================================ */
@media(max-width:390px){
  .ft-hero .ft-inner { padding-top:88px; }
  .ft-trust-in { padding:14px 16px; gap:12px; }
  .ft-scene-copy { padding:0 5vw; }
  .ft-bridge-in { padding-left:16px; padding-right:16px; }
  .ft-glow-in { padding-left:16px; padding-right:16px; }
  .farm-theme .pfaq-section { padding-left:16px; padding-right:16px; }
  .farm-theme .why-in,
  .farm-theme .sensory-in,
  .farm-theme .usage-in,
  .farm-theme .compare-in { padding-left:16px; padding-right:16px; }
  .ft-dock-in { padding-left:16px; padding-right:16px; gap:10px; }
}
