:root{
  --cream:#F7F5EF;
  --paper:#F0EDE3;
  --forest:#16332B;
  --forest-deep:#0E211B;
  --ink:#1C2B27;
  /* Accents sampled from the product photography, so the page and the bottle
     read as one brand. --rose is for light backgrounds, --blush for dark
     ones; both clear WCAG AA where they carry text.
       rose  #B84A46  4.72:1 on cream, 5.14:1 for white text on it
       blush #E58583  5.20:1 on forest — this is the bottle's own pink
       deep  #7C2A28  8.68:1 on cream — the label's burgundy type */
  --rose:#B84A46;
  --rose-deep:#7C2A28;
  --blush:#E58583;
  --sand:#C9BFA4;
  --line:#E3DFD3;
  --sage:#7FA98F;
  --sage-pale:#E4EFE8;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'IBM Plex Sans',sans-serif;color:var(--ink);background:var(--cream);
  line-height:1.6;-webkit-font-smoothing:antialiased;padding-bottom:84px;
}
h1,h2,h3{font-family:'Fraunces',serif;font-weight:500;letter-spacing:-0.01em;color:var(--ink);}
.mono{font-family:'IBM Plex Mono',monospace;letter-spacing:0.02em;}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--rose);}
a:focus-visible, button:focus-visible{outline:2px solid var(--rose);outline-offset:3px;}
@media (prefers-reduced-motion: reduce){*{animation-duration:0.01ms !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}}

/* ---------- NAV ---------- */
.nav{position:sticky;top:0;z-index:60;background:rgba(247,245,239,0.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;max-width:1180px;margin:0 auto;}
.brand{font-family:'Fraunces',serif;font-size:21px;font-weight:500;}
.brand .accent{color:var(--rose);}
.nav-links{display:flex;gap:34px;font-size:14px;color:#5A6B60;}
.nav-links a:hover{color:var(--ink);}
.nav-cart{width:20px;height:20px;color:var(--ink);}
@media (max-width:760px){.nav-links{display:none;}}

/* ---------- HERO ---------- */
.hero{padding:64px 0 80px;}
.hero-grid{display:grid;grid-template-columns:0.95fr 1.05fr;gap:64px;align-items:center;}
.hero-frame{
  position:relative;border-radius:8px;overflow:hidden;aspect-ratio:4/5;
  background:radial-gradient(ellipse at 50% 42%, #F2DAD8 0%, var(--paper) 62%);
  display:flex;align-items:center;justify-content:center;padding:40px;
}
.hero-frame img{width:78%;border-radius:4px;box-shadow:0 30px 60px -20px rgba(28,43,39,0.28);}

.hero h1{font-size:clamp(32px,4vw,50px);line-height:1.08;margin:16px 0 18px;}
.hero p.sub{font-size:16.5px;color:#4A5B50;max-width:46ch;margin-bottom:26px;}
.hero-cta-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.btn-dark{
  background:var(--forest);color:var(--cream);padding:15px 30px;border-radius:100px;
  text-decoration:none;font-weight:600;font-size:14.5px;border:none;cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;transition:background 0.15s ease;
}
.btn-dark:hover{background:var(--forest-deep);}
.link-underline{font-size:14px;text-decoration:underline;color:#4A5B50;}
.hero-note{margin-top:22px;font-size:12px;color:#8A9690;font-family:'IBM Plex Mono',monospace;}

/* ---------- TRUST STRIP ---------- */
.trustbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;}
.trustbar .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px 28px;}
.trust-item{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#4A5B50;font-weight:500;}
.trust-item .ico{color:var(--rose);}

/* ---------- SECTION SCAFFOLDING ---------- */
section{padding:88px 0;}
.section-head{max-width:620px;margin:0 auto 48px;text-align:center;}
.section-head h2{font-size:clamp(26px,3.2vw,38px);}
.section-head p{color:#4A5B50;font-size:16px;margin-top:12px;}
.dark{background:var(--forest);color:var(--cream);}
.dark h1,.dark h2,.dark h3{color:var(--cream);}
.dark .eyebrow{color:var(--blush);}

/* ---------- ECOSYSTEM (dark, editorial) ---------- */
.eco-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:64px;align-items:center;}
.eco-visual{
  aspect-ratio:4/5;border-radius:8px;overflow:hidden;position:relative;
  background:
    radial-gradient(circle at 30% 25%, rgba(229,133,131,0.35), transparent 55%),
    radial-gradient(circle at 70% 75%, rgba(127,169,143,0.28), transparent 55%),
    linear-gradient(160deg, #0E211B, #16332B 60%);
  display:flex;align-items:center;justify-content:center;
}
.eco-visual img{width:62%;border-radius:4px;box-shadow:0 30px 60px -18px rgba(0,0,0,0.5);}
.eco-copy h2{font-size:clamp(26px,3.2vw,36px);margin:14px 0 18px;max-width:16ch;}
.eco-copy p{color:#CBD6CE;font-size:15.5px;margin-bottom:16px;max-width:52ch;}
.eco-copy a{font-size:14px;text-decoration:underline;color:var(--blush);}

/* ---------- PRODUCT SECTION ---------- */
#product{padding-top:88px;}
.pdp-grid{display:grid;grid-template-columns:0.95fr 1.05fr;gap:56px;align-items:start;}
.pdp-main{border-radius:6px;overflow:hidden;background:var(--paper);aspect-ratio:4/5;}
.pdp-main img{width:100%;height:100%;object-fit:cover;}
.pdp-thumbs{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:10px;}
.pdp-thumbs button{border:2px solid var(--line);border-radius:4px;overflow:hidden;padding:0;cursor:pointer;background:none;aspect-ratio:1/1;transition:border-color 0.15s ease;}
.pdp-thumbs button.active{border-color:var(--rose);}
.pdp-thumbs img{width:100%;height:100%;object-fit:cover;}

.pdp-info h1{font-size:clamp(28px,3.4vw,38px);margin:10px 0 10px;}
.pdp-desc{color:#4A5B50;font-size:15.5px;margin-bottom:8px;max-width:50ch;}
.pdp-meta{font-size:13px;color:#8A9690;margin-bottom:22px;}

.qty-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;}
.qty-opt{border:1.5px solid var(--line);border-radius:8px;padding:12px 8px;text-align:center;cursor:pointer;position:relative;transition:all 0.15s ease;background:var(--cream);}
.qty-opt.selected{border-color:var(--rose);background:#FBEFEE;}
.qty-opt .badge{position:absolute;top:-9px;left:50%;transform:translateX(-50%);background:var(--rose);color:#fff;font-size:9px;font-family:'IBM Plex Mono',monospace;padding:2px 8px;border-radius:10px;white-space:nowrap;}
.qty-opt .n{font-family:'Fraunces',serif;font-size:14px;margin-top:4px;}
.qty-opt .unit-price{font-size:11px;color:#8A9690;margin-top:3px;}

.plan-card{border:1.5px solid var(--line);border-radius:10px;padding:18px 20px;margin-bottom:12px;cursor:pointer;transition:all 0.15s ease;}
.plan-card.selected{border-color:var(--forest);background:var(--sage-pale);}
.plan-row{display:flex;justify-content:space-between;align-items:flex-start;}
.plan-left{display:flex;gap:12px;align-items:flex-start;}
.plan-radio{width:18px;height:18px;border-radius:50%;border:2px solid #B9C4BC;flex:none;margin-top:2px;position:relative;}
.plan-card.selected .plan-radio{border-color:var(--forest);}
.plan-card.selected .plan-radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--forest);}
.plan-title{font-weight:600;font-size:15px;}
.plan-sub{font-size:12.5px;color:#8A9690;margin-top:2px;}
.plan-price{font-family:'Fraunces',serif;font-size:17px;text-align:right;white-space:nowrap;}
.plan-perks{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(28,43,39,0.1);}
.plan-perks span{font-size:12px;color:#4A5B50;display:flex;gap:6px;}
.plan-perks span::before{content:"✓";color:var(--rose);font-weight:700;}

.btn-add{
  background:var(--forest);color:var(--cream);width:100%;padding:16px;border-radius:100px;
  border:none;cursor:pointer;font-weight:600;font-size:15px;transition:background 0.15s ease;
}
.btn-add:hover{background:var(--forest-deep);}
.pdp-note{text-align:center;font-size:12px;color:#8A9690;margin-top:12px;}

.purity-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line);}
.purity-item{font-size:12px;color:#4A5B50;display:flex;gap:8px;align-items:center;}
.purity-item .ico{color:var(--rose);}

/* ---------- RITUAL STATS (dark) ---------- */
.ritual-grid{display:grid;grid-template-columns:1fr auto;gap:64px;align-items:center;}
.ritual-copy .eyebrow{color:var(--blush);}
.ritual-copy h2{font-size:clamp(26px,3.4vw,38px);margin:14px 0 16px;max-width:16ch;}
.ritual-copy p{color:#CBD6CE;font-size:15.5px;max-width:50ch;margin-bottom:8px;}
.ritual-stats{display:flex;gap:40px;margin-top:26px;}
.ritual-stat .n{font-family:'Fraunces',serif;font-size:36px;color:var(--blush);}
.ritual-stat .l{font-size:12.5px;color:#B7C4BC;margin-top:2px;}
.ritual-visual{
  width:280px;aspect-ratio:4/5;border-radius:8px;overflow:hidden;
  background:radial-gradient(ellipse at 50% 40%, rgba(229,133,131,0.3), transparent 60%), var(--forest-deep);
  display:flex;align-items:center;justify-content:center;padding:24px;
}
.ritual-visual img{width:72%;border-radius:4px;box-shadow:0 24px 48px -16px rgba(0,0,0,0.5);}

/* ---------- BALANCE METER ---------- */
.meter-block{display:grid;grid-template-columns:0.95fr 1.05fr;gap:60px;align-items:center;}
.meter-card{background:var(--cream);border:1px solid var(--line);border-radius:8px;padding:32px;}
.meter-label{display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:12px;color:#8A9690;margin-bottom:10px;}
.meter-track{display:flex;gap:4px;height:34px;margin-bottom:6px;}
.meter-dot{flex:1;border-radius:3px;background:#D97A6C;opacity:0.35;transition:background 1.1s ease, opacity 1.1s ease;}
.meter-track.balanced .meter-dot{background:var(--sage);opacity:1;}
.meter-track.balanced .meter-dot:nth-child(odd){background:#6E9C82;}
.meter-caption{font-size:13px;color:#8A9690;margin-top:14px;}
.meter-toggle-row{display:flex;gap:10px;margin-top:22px;}
.meter-toggle{flex:1;padding:10px;border:1px solid var(--line);background:var(--cream);font-family:'IBM Plex Mono',monospace;font-size:12px;border-radius:100px;cursor:pointer;color:var(--forest);transition:all 0.15s ease;}
.meter-toggle.active{background:var(--forest);color:var(--cream);border-color:var(--forest);}
.meter-copy h3{font-size:22px;margin-bottom:14px;}
.meter-copy p{color:#4A5B50;margin-bottom:14px;}
.meter-copy ul{list-style:none;margin-top:16px;}
.meter-copy li{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--line);font-size:14px;color:#4A5B50;}
.meter-copy li .num{font-family:'IBM Plex Mono',monospace;color:var(--rose-deep);font-size:12px;flex:none;padding-top:2px;}

/* ---------- STRAINS ---------- */
.strain-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden;}
.strain-cell{background:var(--cream);padding:26px 18px;}
.strain-cell .code{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--sage);margin-bottom:10px;}
.strain-cell h4{font-family:'Fraunces',serif;font-size:16px;font-weight:500;margin-bottom:8px;}
.strain-cell p{font-size:13px;color:#6B7A70;}

/* ---------- SUPPLEMENT FACTS ---------- */
.facts-panel{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.facts-label{border:2px solid var(--ink);font-family:'IBM Plex Mono',monospace;border-radius:4px;overflow:hidden;}
.facts-label .head{padding:14px 18px;border-bottom:8px solid var(--ink);}
.facts-label .head h3{font-size:22px;font-family:'IBM Plex Mono',monospace;font-weight:700;}
.facts-label .head .serving{font-size:11px;margin-top:4px;color:#4A5B50;line-height:1.5;}
.facts-row{padding:9px 18px;border-bottom:1px solid var(--line);font-size:12.5px;}
.facts-row.bold{font-weight:600;border-bottom:4px solid var(--ink);display:flex;justify-content:space-between;}
.facts-foot{padding:12px 18px;font-size:10.5px;color:#6B7A70;line-height:1.5;}
.facts-copy h3{font-size:22px;margin-bottom:14px;}
.facts-copy p{color:#4A5B50;margin-bottom:16px;font-size:15px;}
.disclaimer-box{background:var(--paper);border-left:3px solid var(--rose);padding:14px 16px;font-size:12px;color:#6B7A70;margin-top:18px;border-radius:0 4px 4px 0;}

/* ---------- REVIEWS ---------- */
.reviews-note{max-width:640px;margin:0 auto 32px;text-align:center;background:#FCF3E9;border:1px solid #EAD9BE;color:#7A5B23;font-size:12.5px;padding:12px 18px;border-radius:8px;}
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.testi-card{background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:24px;}
.testi-card .stars{display:block;margin-bottom:12px;color:var(--rose);font-size:14px;}
.testi-card h4{font-size:16px;margin-bottom:8px;}
.testi-card p{font-size:13.5px;color:#4A5B50;margin-bottom:16px;}
.testi-who{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:14px;}
.testi-avatar{width:30px;height:30px;border-radius:50%;background:var(--sage-pale);color:#3D6B4F;display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;}
.testi-name{font-size:13px;font-weight:600;}
.testi-tag{font-size:11px;color:#8A9690;}

/* ---------- FAQ ---------- */
.faq-wrap{max-width:760px;margin:0 auto;}
.faq-item{border-top:1px solid var(--line);}
.faq-item:last-child{border-bottom:1px solid var(--line);}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:22px 0;display:flex;justify-content:space-between;align-items:center;font-family:'Fraunces',serif;font-size:17px;color:var(--ink);gap:20px;}
.faq-q .icon{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);flex:none;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--rose);transition:transform 0.2s ease;}
.faq-item.open .faq-q .icon{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height 0.25s ease;}
.faq-a p{padding-bottom:22px;color:#4A5B50;font-size:14.5px;max-width:64ch;}
.faq-item.open .faq-a{max-height:260px;}

/* ---------- FINAL CTA ---------- */
.final-cta{text-align:center;}
.final-cta h2{font-size:clamp(24px,3.2vw,36px);max-width:18ch;margin:0 auto 16px;}
.final-cta p{color:#4A5B50;max-width:50ch;margin:0 auto 28px;}

/* ---------- FOOTER ---------- */
footer.dark{padding:64px 0 28px;}
.footer-grid{display:grid;grid-template-columns:1.3fr 0.8fr 0.8fr 1.1fr;gap:40px;padding-bottom:40px;}
.footer-brand h3{font-size:20px;margin-bottom:12px;}
.footer-brand p{color:#B7C4BC;font-size:13.5px;max-width:32ch;margin-bottom:16px;}
.footer-social{display:flex;gap:14px;}
.footer-social span{width:30px;height:30px;border:1px solid rgba(255,255,255,0.25);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;}
.footer-col h4{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:#8FA096;margin-bottom:14px;}
.footer-col a{display:block;font-size:14px;color:#D8E0DA;margin-bottom:10px;text-decoration:none;}
.footer-newsletter p{color:#B7C4BC;font-size:13.5px;margin-bottom:14px;}
.footer-form{display:flex;gap:8px;}
/* min-width:0 is required: a flex item defaults to min-width:auto, and an
   <input>'s intrinsic width (~202px) would otherwise refuse to shrink and
   force the whole footer grid wider than the viewport. */
.footer-form input{flex:1;min-width:0;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.2);border-radius:100px;padding:10px 16px;color:var(--cream);font-size:13px;}
.footer-form input::placeholder{color:#8FA096;}
.footer-form button{background:var(--rose);color:#fff;border:none;border-radius:100px;padding:10px 18px;font-size:13px;font-weight:600;cursor:pointer;}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;padding-top:24px;border-top:1px solid rgba(255,255,255,0.12);font-size:12px;color:#8FA096;}
.footer-bottom a{margin-left:18px;color:#8FA096;text-decoration:none;}
.footer-fine{margin-top:16px;font-size:11px;color:#6E8078;line-height:1.6;max-width:900px;}

/* ---------- STICKY BAR (site-wide, like reference) ---------- */
.sticky-bar{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:70;
  background:var(--cream);border:1px solid var(--line);border-radius:100px;
  padding:8px 10px 8px 10px;display:flex;align-items:center;justify-content:space-between;gap:14px;
  box-shadow:0 12px 32px rgba(14,33,27,0.18);max-width:520px;margin:0 auto;
}
.sticky-bar .thumb{width:40px;height:40px;border-radius:50%;overflow:hidden;flex:none;background:var(--paper);}
.sticky-bar .thumb img{width:100%;height:100%;object-fit:cover;}
.sticky-bar .info{flex:1;min-width:0;}
.sticky-bar .info .name{font-size:13px;font-weight:600;}
.sticky-bar .info .plan{font-size:11px;color:#8A9690;}
.sticky-bar .price{font-family:'Fraunces',serif;font-size:15px;white-space:nowrap;}
.sticky-bar button{background:var(--forest);color:var(--cream);border:none;border-radius:100px;padding:10px 18px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;}

/* ---------- CHECKOUT MODAL ---------- */
.checkout-overlay{
  position:fixed;inset:0;background:rgba(14,33,27,0.55);z-index:90;
  display:none;align-items:center;justify-content:center;padding:20px;
}
.checkout-overlay.open{display:flex;}
.checkout-modal{
  background:var(--cream);border-radius:14px;max-width:960px;width:100%;max-height:88vh;overflow-y:auto;
  display:grid;grid-template-columns:1fr 1fr;position:relative;
}
.checkout-close{
  position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;
  background:var(--paper);border:none;cursor:pointer;font-size:16px;color:var(--ink);z-index:2;
}
.checkout-side{background:var(--paper);padding:36px;}
.checkout-side h3{font-size:20px;margin-bottom:20px;}
.checkout-item{display:flex;gap:14px;margin-bottom:20px;}
.checkout-item img{width:64px;height:64px;border-radius:6px;object-fit:cover;flex:none;}
.checkout-item .name{font-weight:600;font-size:14px;}
.checkout-item .meta{font-size:12px;color:#8A9690;margin-top:2px;}
.checkout-line{display:flex;justify-content:space-between;font-size:13.5px;color:#4A5B50;padding:8px 0;border-top:1px solid var(--line);}
.checkout-line.total{font-weight:700;color:var(--ink);font-size:16px;border-top:2px solid var(--ink);padding-top:14px;margin-top:6px;}
.checkout-main{padding:36px;}
.checkout-main h3{font-size:18px;margin-bottom:16px;}
.checkout-step{margin-bottom:28px;}
.checkout-field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;}
.checkout-field{margin-bottom:10px;}
.checkout-field label{display:block;font-size:11.5px;color:#5A6B60;margin-bottom:5px;}
.checkout-field input,.checkout-field select{
  width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:6px;
  font-size:13.5px;font-family:'IBM Plex Sans',sans-serif;background:#fff;color:var(--ink);
}
.checkout-field input:focus,.checkout-field select:focus{outline:none;border-color:var(--forest);}
/* ---------- CHECKOUT: branded review step ---------- */
.checkout-brand{
  font-family:'Fraunces',serif;font-size:19px;font-weight:500;color:var(--ink);
  margin-bottom:18px;
}
.checkout-brand .accent{color:var(--rose);}

.checkout-steps{
  list-style:none;display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 22px;padding:0;
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.06em;
  text-transform:uppercase;color:#A8B2AC;
}
.checkout-steps li{display:flex;align-items:center;gap:6px;white-space:nowrap;}
.checkout-steps .dot{
  width:7px;height:7px;border-radius:50%;background:#D6DCD8;flex:none;
}
.checkout-steps li.done{color:#7C8A82;}
.checkout-steps li.done .dot{background:var(--sage);}
.checkout-steps li.current{color:var(--rose);font-weight:500;}
.checkout-steps li.current .dot{background:var(--rose);box-shadow:0 0 0 3px rgba(184,74,70,0.18);}

.express-label{
  display:flex;align-items:center;gap:12px;margin-bottom:14px;
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.12em;
  text-transform:uppercase;color:#8A9690;
}
.express-label::before,.express-label::after{
  content:'';flex:1;height:1px;background:var(--line);
}

/* PayPal's own button colours — this is a real PayPal integration. */
.btn-paypal{
  width:100%;display:flex;align-items:center;justify-content:center;gap:10px;
  background:#FFC439;border:1px solid #E8B02F;border-radius:100px;
  padding:14px 20px;cursor:pointer;font-family:'IBM Plex Sans',sans-serif;
  transition:background 0.15s ease,box-shadow 0.15s ease;
}
.btn-paypal:hover{background:#F0B72F;box-shadow:0 4px 14px rgba(0,0,0,0.12);}
.btn-paypal .pp-mark{font-size:17px;font-weight:700;font-style:italic;letter-spacing:-0.02em;}
.btn-paypal .pp-pay{color:#253B80;}
.btn-paypal .pp-pal{color:#179BD7;}
.btn-paypal .pp-amount{
  font-size:14px;font-weight:600;color:#1C2B27;
  border-left:1px solid rgba(0,0,0,0.18);padding-left:10px;
}
.btn-paypal:disabled,.btn-paypal.is-disabled{
  background:#E4E7E5;border-color:#D6DCD8;cursor:not-allowed;box-shadow:none;
}
.btn-paypal:disabled .pp-pay,.btn-paypal.is-disabled .pp-pay,
.btn-paypal:disabled .pp-pal,.btn-paypal.is-disabled .pp-pal{color:#9AA6A0;}
.btn-paypal:disabled .pp-amount,.btn-paypal.is-disabled .pp-amount{color:#9AA6A0;}

.checkout-legal{
  margin-top:16px;padding-top:14px;border-top:1px solid var(--line);
  font-size:11.5px;color:#8A9690;line-height:1.6;
}
.checkout-legal a{color:#5A6B60;}

.checkout-lede{font-size:13px;color:#4A5B50;line-height:1.6;margin-bottom:18px;max-width:46ch;}
.pay-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin-bottom:14px;}
.pay-method{
  border:1.5px solid var(--line);border-radius:6px;padding:10px;text-align:center;
  font-size:12.5px;font-weight:600;cursor:pointer;color:#5A6B60;
  font-family:'IBM Plex Sans',sans-serif;background:var(--cream);
  transition:border-color 0.15s ease,background 0.15s ease;
}
.pay-method:hover{border-color:var(--sage);}
.pay-method.active{border-color:var(--forest);background:var(--sage-pale);color:var(--forest);}

/* Neutral by default; .warn only when something is actually wrong. */
.checkout-notice{
  background:var(--sage-pale);border:1px solid #C8DED2;color:#2F4A3E;font-size:12px;
  padding:12px 14px;border-radius:8px;margin-top:18px;line-height:1.5;
}
.checkout-notice.warn{background:#FCF3E9;border-color:#EAD9BE;color:#7A5B23;}

.checkout-place-btn{
  background:var(--forest);color:var(--cream);width:100%;padding:15px;border-radius:100px;
  border:none;cursor:pointer;font-weight:600;font-size:14.5px;margin-top:18px;
  font-family:'IBM Plex Sans',sans-serif;transition:background 0.15s ease;
}
.checkout-place-btn:hover{background:var(--forest-deep);}
.checkout-place-btn:disabled,.checkout-place-btn.is-disabled{
  background:#C3CCC7;color:#F2F5F3;cursor:not-allowed;
}
.checkout-place-btn:disabled:hover,.checkout-place-btn.is-disabled:hover{background:#C3CCC7;}

.checkout-trust{list-style:none;margin:16px 0 0;padding:0;}
.checkout-trust li{
  position:relative;padding-left:20px;font-size:12px;color:#5A6B60;
  line-height:1.5;margin-bottom:7px;
}
.checkout-trust li::before{
  content:'✓';position:absolute;left:0;top:0;color:var(--sage);font-weight:600;
}
@media (max-width:760px){
  .checkout-modal{grid-template-columns:1fr;}
  .checkout-side{order:2;}
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  #reviews > .wrap > div:first-child{grid-template-columns:1fr !important;}
  .hero-grid{grid-template-columns:1fr;gap:32px;}
  .eco-grid{grid-template-columns:1fr;gap:32px;}
  .pdp-grid{grid-template-columns:1fr;gap:28px;}
  .ritual-grid{grid-template-columns:1fr;gap:32px;}
  .ritual-visual{width:100%;max-width:320px;margin:0 auto;}
  .meter-block{grid-template-columns:1fr;gap:32px;}
  .meter-block .meter-copy{order:2;}
  .facts-panel{grid-template-columns:1fr;gap:32px;}
  .strain-grid{grid-template-columns:1fr 1fr;}
  .testi-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  section{padding:60px 0;}
  .sticky-bar{left:10px;right:10px;bottom:10px;}
}

@media (max-width:560px){
  .wrap{padding:0 20px;}
  .footer-grid{grid-template-columns:1fr;gap:28px;}
  .strain-grid{grid-template-columns:1fr;}
  .plan-perks{grid-template-columns:1fr;}
  .trustbar .wrap{flex-direction:column;align-items:flex-start;gap:10px;}
  /* the price already reads in the plan cards above; drop it here so the
     bar stays on one line on small phones */
  .sticky-bar .price{display:none;}
  .legal-toc{padding:16px 18px;}
}

/* ---------- LEGAL PAGES ---------- */
.legal-hero{padding:56px 0 24px;border-bottom:1px solid var(--line);}
.legal-hero h1{font-size:clamp(30px,4vw,44px);margin:14px 0 10px;}
.legal-hero .updated{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#8A9690;}
.legal-body{max-width:74ch;padding:44px 0 88px;}
.legal-body h2{font-size:22px;margin:38px 0 12px;}
.legal-body h2:first-child{margin-top:0;}
.legal-body h3{font-size:16px;margin:26px 0 8px;}
.legal-body p{color:#4A5B50;font-size:15px;margin-bottom:14px;}
.legal-body ul{margin:0 0 16px 20px;color:#4A5B50;font-size:15px;}
.legal-body li{margin-bottom:8px;}
.legal-body a{color:var(--rose);}
.legal-body strong{color:var(--ink);}
.legal-toc{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:20px 24px;margin-bottom:36px;}
.legal-toc h4{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:#8A9690;margin-bottom:10px;}
.legal-toc ol{margin:0 0 0 18px;font-size:14px;}
.legal-toc li{margin-bottom:5px;}
.legal-toc a{color:#4A5B50;text-decoration:none;}
.legal-toc a:hover{color:var(--rose);text-decoration:underline;}
.legal-callout{background:var(--sage-pale);border:1px solid #C8DED2;border-radius:8px;padding:16px 18px;margin:20px 0;font-size:14px;color:#2F4A3E;}
.legal-callout strong{color:#1E3A2E;}

/* Unfilled placeholder — deliberately loud so it cannot ship unnoticed. */
.todo{background:#FFE8E2;color:#B3341B;border:1px dashed #B84A46;border-radius:4px;
  padding:1px 6px;font-family:'IBM Plex Mono',monospace;font-size:0.88em;font-weight:500;}

/* ---------- THANK YOU / POST-PURCHASE ---------- */
.ty-wrap{max-width:70ch;padding:64px 32px 88px;}
.ty-mark{
  width:52px;height:52px;border-radius:50%;background:var(--sage-pale);
  color:#2F6B4F;display:flex;align-items:center;justify-content:center;
  font-size:24px;margin-bottom:22px;border:1px solid #C8DED2;
}
.ty-wrap h1{font-size:clamp(32px,4.4vw,48px);margin:12px 0 18px;}
.ty-lede{font-size:16.5px;color:#4A5B50;max-width:56ch;margin-bottom:36px;}
.ty-steps{list-style:none;margin:0 0 32px;padding:0;border-top:1px solid var(--line);}
.ty-steps li{
  display:flex;gap:18px;padding:22px 0;border-bottom:1px solid var(--line);
}
.ty-steps .n{
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--rose);
  flex:none;padding-top:3px;letter-spacing:0.06em;
}
.ty-steps h3{font-size:16px;margin-bottom:5px;}
.ty-steps p{font-size:14.5px;color:#4A5B50;margin:0;}
.ty-help{font-size:14px;color:#4A5B50;margin:18px 0 0;max-width:60ch;}
.ty-help a{color:var(--rose);}
@media (max-width:560px){
  .ty-wrap{padding:44px 20px 64px;}
  .ty-steps li{gap:12px;}
}

/* ---------- SHARED FORM BITS ---------- */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.form-status{font-size:13.5px;line-height:1.55;margin:14px 0 0;}
.form-status.ok{
  background:var(--sage-pale);border:1px solid #C8DED2;color:#23503C;
  padding:12px 14px;border-radius:8px;
}
.form-status.err{
  background:#FCF3E9;border:1px solid #EAD9BE;color:#7A5B23;
  padding:12px 14px;border-radius:8px;
}
.form-status.err a,.form-status.ok a{color:inherit;}
.form-fallback{
  background:var(--paper);border:1px solid var(--line);border-radius:10px;
  padding:26px 28px;max-width:52ch;
}
.form-fallback h3{font-size:19px;margin-bottom:8px;}
.form-fallback p{font-size:14.5px;color:#4A5B50;margin:0;}
.form-fallback a{color:var(--rose);}

/* ---------- CONTACT PAGE ---------- */
.contact-hero{
  text-align:center;padding:64px 0 8px;
  background:
    radial-gradient(ellipse at 12% 18%, rgba(229,133,131,0.16), transparent 46%),
    radial-gradient(ellipse at 88% 78%, rgba(127,169,143,0.16), transparent 46%),
    var(--cream);
}
.contact-hero h1{font-size:clamp(30px,5vw,54px);}
.contact-rule{display:flex;align-items:center;justify-content:center;gap:14px;margin:16px 0 18px;}
.contact-rule span{width:74px;height:1px;background:var(--line);}
.contact-rule em{color:var(--blush);font-style:normal;font-size:15px;}
.contact-lede{color:#4A5B50;font-size:16px;max-width:52ch;margin:0 auto 22px;}
.contact-email{
  display:inline-flex;align-items:center;gap:10px;font-size:15px;color:var(--ink);
  text-decoration:none;padding:9px 18px 9px 9px;border-radius:100px;
  background:rgba(255,255,255,0.6);border:1px solid var(--line);
}
.contact-email:hover{border-color:var(--rose);}
.contact-email .ico{
  width:30px;height:30px;border-radius:50%;background:var(--sage-pale);
  display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--rose);
}

.contact-wrap{padding:38px 32px 88px;}
.contact-form{max-width:980px;margin:0 auto;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;}
.contact-form textarea,.cf-field input{
  width:100%;background:var(--paper);border:1px solid var(--line);border-radius:10px;
  padding:16px 18px;font-family:'IBM Plex Sans',sans-serif;font-size:15px;color:var(--ink);
  transition:border-color 0.15s ease,background 0.15s ease;
}
.contact-form textarea{resize:vertical;min-height:210px;}
.contact-form textarea:focus,.cf-field input:focus{
  outline:none;border-color:var(--rose);background:#fff;
}
.contact-form ::placeholder{color:#8A9690;}
.cf-fields{display:flex;flex-direction:column;gap:20px;}
.cf-field{position:relative;}
.cf-field .ico{
  position:absolute;left:16px;top:50%;transform:translateY(-50%);
  font-size:14px;color:var(--rose);pointer-events:none;
}
.cf-field input{padding-left:44px;}
.cf-agree{display:flex;align-items:flex-start;gap:10px;margin-top:20px;font-size:14px;color:#4A5B50;}
.cf-agree input{width:18px;height:18px;accent-color:var(--rose);flex:none;margin-top:2px;}
.cf-agree a{color:var(--rose);}
.contact-submit{margin-top:22px;padding:15px 40px;font-size:15px;}
.cf-note{margin-top:16px;font-size:12.5px;color:#8A9690;max-width:60ch;line-height:1.6;}
@media (max-width:760px){
  .contact-grid{grid-template-columns:1fr;}
  .contact-wrap{padding:28px 20px 64px;}
  .contact-form textarea{min-height:160px;}
}

/* ---------- ORDER INTAKE (inside checkout modal) ---------- */
.intake{border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:20px;}
.intake-h{font-size:17px;margin-bottom:4px;}
.intake-lede{font-size:13px;color:#8A9690;margin-bottom:16px;}
.intake-field{margin-bottom:12px;}
.intake-field label{
  display:block;font-size:11.5px;color:#5A6B60;margin-bottom:5px;font-weight:500;
}
.intake-field label em{font-style:normal;color:#8A9690;font-weight:400;}
.intake-field .req{color:var(--rose);}
.intake-field input,.intake-field select,.intake-field textarea{
  width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:6px;
  font-size:13.5px;font-family:'IBM Plex Sans',sans-serif;background:#fff;color:var(--ink);
}
.intake-field textarea{resize:vertical;}
.intake-field input:focus,.intake-field select:focus,.intake-field textarea:focus{
  outline:none;border-color:var(--rose);
}
.intake-field input:invalid:not(:placeholder-shown){border-color:#D89A94;}
.intake-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.btn-paypal.has-intake .pp-mark::after{content:'';}
.link-btn{
  background:none;border:none;padding:0;font:inherit;color:inherit;
  text-decoration:underline;cursor:pointer;
}
@media (max-width:560px){ .intake-row{grid-template-columns:1fr;} }

/* ---------- FREE SHIPPING INCENTIVE ---------- */
.ship-pill{
  display:inline-flex;align-items:center;gap:9px;margin-top:20px;
  background:var(--sage-pale);border:1px solid #C8DED2;border-radius:100px;
  padding:9px 18px 9px 14px;font-size:13px;color:#2F4A3E;
}
.ship-pill .ico{font-size:14px;filter:grayscale(1) opacity(0.75);}
.ship-pill strong{color:#1E3A2E;}
/* Shipping shows as a saving, not as a zero. */
.checkout-line #checkoutShipping.is-free{
  color:#2F6B4F;font-weight:600;letter-spacing:0.01em;
}
@media (max-width:560px){
  .ship-pill{font-size:12px;padding:8px 14px 8px 12px;}
}

/* ---------- SHIPPING NUDGE ---------- */
.ship-nudge{
  background:#FBEFEE;border:1px solid #EBD3D1;border-radius:8px;
  padding:11px 14px;margin-bottom:14px;font-size:12.5px;color:#7A3F3C;line-height:1.55;
}
.ship-nudge strong{color:var(--rose-deep);}
.ship-nudge .link-btn{color:var(--rose);font-weight:600;}

/* ---------- BRAND LOGO ----------
   Nav pairs the emblem with the live text wordmark; the lockup's own type is
   unreadable at nav size. The footer uses the full lockup instead. */
.brand a{display:inline-flex;align-items:center;gap:11px;}
.brand-logo{height:36px;width:auto;display:block;flex:none;}
.footer-logo{height:96px;width:auto;margin-bottom:16px;}
@media (max-width:560px){
  .brand a{gap:8px;}
  .brand-logo{height:30px;}
  .footer-logo{height:78px;}
}
