/* ============ tokens ============ */
:root{
  --canvas:#10281D;
  --canvas-2:#1C4534;
  --ivory:#F6F1E7;
  --ivory-2:#EFE7D8;
  --gold:#C09A5C;
  --gold-soft:#D4B98C;
  --gold-dim:rgba(192,154,92,.35);
  --leaf:#8FAE9B;
  --ink:#22302A;
  --ink-soft:#5A6B61;
  --td:#F2EDE2;
  --td-soft:#B9C7BD;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-soft:cubic-bezier(.33,1,.68,1);
  --navh:139px; /* header height, used to centre against the visible hero */
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Poppins',-apple-system,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:hidden;overflow-x:clip}
body{
  font-family:var(--sans);font-size:16px;line-height:1.75;color:var(--ink);
  background:var(--canvas);
  -webkit-font-smoothing:antialiased;
  opacity:0;transition:opacity .8s var(--ease-soft);
}
body.lit{opacity:1}
/* fixed environment layer */
.env{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 90% 70% at 30% 20%,rgba(43,84,62,.35) 0%,rgba(16,40,29,0) 60%);
  animation:envdrift 90s ease-in-out infinite alternate}
@keyframes envdrift{from{transform:translate3d(-2%,-1%,0) scale(1)}to{transform:translate3d(2%,2%,0) scale(1.06)}}
main{position:relative;z-index:1}
/* height:auto stops a width/height attribute pair from stretching an image when
   CSS sets only the width. Components that need a fixed box override it. */
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.22;letter-spacing:.005em}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--gold);color:var(--canvas);padding:10px 18px;border-radius:0 0 8px 0;font-weight:700;text-decoration:none}
.skip:focus{left:0}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.kicker{font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.on-ivory .kicker{color:#83652F}

/* ============ welcome veil ============ */
#veil{position:fixed;inset:0;z-index:200;background:radial-gradient(ellipse 120% 90% at 50% 40%,#1C4534 0%,#0E241A 70%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;cursor:pointer;
  transition:transform 1s cubic-bezier(.65,0,.35,1),opacity .6s ease .5s}
#veil.lift{transform:translateY(-100%);opacity:.4;pointer-events:none}
#veil.gone{display:none}
html.no-veil #veil{display:none}
#veil img{width:min(360px,64vw);height:auto;opacity:0;transform:scale(.92);animation:veilLogo 1.4s cubic-bezier(.33,1,.68,1) .25s forwards}
@keyframes veilLogo{to{opacity:1;transform:scale(1)}}
#veil .vline{font-family:var(--serif);font-style:italic;font-size:clamp(17px,2.2vw,23px);color:var(--td);text-align:center;max-width:34ch;padding:0 24px;line-height:1.5;
  opacity:0;transform:translateY(14px);animation:veilLine 1s cubic-bezier(.33,1,.68,1) 1.3s forwards}
#veil .vline em{font-style:italic;color:var(--gold-soft)}
@keyframes veilLine{to{opacity:1;transform:none}}
#veil .vhint{position:absolute;bottom:30px;font:400 11px/1 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:rgba(212,185,140,.55);
  opacity:0;animation:veilHint 1s ease 2.2s forwards}
@keyframes veilHint{to{opacity:1}}
body.veiled{overflow:hidden}
@media (prefers-reduced-motion:reduce){#veil{display:none}}

/* ============ nav ============ */
#nav{position:fixed;top:0;left:0;right:0;z-index:50;
  background:rgba(246,241,231,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(160,124,63,.22);
  transition:background .5s var(--ease-soft),box-shadow .5s var(--ease-soft)}
#nav.solid{background:rgba(246,241,231,.99);box-shadow:0 10px 30px rgba(34,48,42,.08)}
/* Two strips beside a tall logo: contact details and social on top, the main
   navigation underneath. The logo spans both, which is what lets it be large. */
.nav-shell{max-width:1240px;margin:0 auto;padding:0 clamp(16px,3vw,32px);display:flex;align-items:stretch;gap:clamp(16px,2.5vw,34px)}
.nav-logo{display:flex;align-items:center;text-decoration:none;line-height:0;flex:none;padding:10px 0;
  transition:padding .4s var(--ease-soft)}
.nav-logo img{height:118px;width:auto;max-width:none;transition:height .4s var(--ease-soft)}
.nav-stack{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}

/* top strip */
.nav-top{display:flex;align-items:center;gap:clamp(12px,1.8vw,22px);flex-wrap:wrap;
  padding:9px 0;border-bottom:1px solid rgba(160,124,63,.2);
  transition:padding .4s var(--ease-soft),opacity .3s var(--ease-soft)}
.nt-social{list-style:none;display:flex;align-items:center;gap:8px}
.nt-social a,.nt-social .pending{width:27px;height:27px;display:grid;place-items:center;border:1px solid rgba(160,124,63,.32);border-radius:50%;color:#83652F;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.nt-social a:hover{background:var(--canvas-2);border-color:var(--canvas-2);color:var(--td)}
.nt-social .pending{cursor:default}
.nt-social svg{width:13px;height:13px;fill:currentColor}

/* main navigation strip */
.nav-in{display:flex;align-items:center;padding:11px 0;
  transition:padding .4s var(--ease-soft)}
.nav-top .nav-cta{padding:10px 17px;font-size:11.5px}
.nt-item{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font:500 12.5px/1 var(--sans);color:var(--ink);text-decoration:none;white-space:nowrap;transition:color .3s var(--ease)}
.nt-item svg{width:16px;height:16px;fill:#1FA855;flex:none}
.nt-item:hover{color:#83652F}
.nav-cta{white-space:nowrap}

/* condensed on scroll: the contact strip folds away and the logo shrinks */
#nav.solid .nav-logo img{height:76px}
#nav.solid .nav-top{padding:0;height:0;overflow:hidden;opacity:0;border-bottom-color:transparent}
#nav.solid .nav-in{padding:8px 0}

/* Spread across the row rather than bunched at the right: even spacing, and no
   dead gap between the logo and the first link. The gap acts as a floor so the
   items never touch once the row gets tight. */
.nav-links{display:flex;flex:1;justify-content:space-between;gap:clamp(12px,1.5vw,22px);list-style:none;align-items:center}
.nav-links a{padding:8px 0}
.nav-links a{white-space:nowrap;font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:6px 2px;border-bottom:1px solid transparent;transition:color .35s var(--ease),border-color .35s var(--ease)}
.nav-links a:hover{color:#83652F;border-color:rgba(160,124,63,.45)}
.btn{display:inline-block;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;text-align:center;
  padding:15px 28px;border-radius:3px;cursor:pointer;border:1px solid transparent;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .4s var(--ease),color .4s var(--ease)}
.btn-gold{background:var(--gold);color:#14231B}
.btn-gold:hover{background:var(--gold-soft);transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.35)}
.btn-line{border-color:var(--gold-dim);color:var(--gold-soft)}
.btn-line:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}
.btn-ink{background:var(--canvas-2);color:var(--td)}
.btn-ink:hover{background:var(--canvas);transform:translateY(-2px);box-shadow:0 12px 26px rgba(28,69,52,.35)}
.nav-cta{padding:13px 22px;white-space:nowrap}
.menu-btn{display:none;background:none;border:1px solid rgba(160,124,63,.5);color:#83652F;border-radius:3px;padding:10px 14px;font:700 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.m-menu{display:none}
@media (max-width:900px){
  :root{--navh:83px}
  .nav-links{display:none}
  #nav .nav-cta{display:none!important}
  .menu-btn{display:block;align-self:center;flex:none;margin-left:auto}
  /* Small screens: logo left, menu button right, everything else in the drawer. */
  .nav-shell{align-items:center;gap:14px}
  .nav-stack{display:none}
  .nav-logo{padding:8px 0}
  .nav-logo img{height:66px}
  #nav.solid .nav-logo img{height:54px}
  /* The drawer is taller than a phone screen once every link and sub link is in it,
   so it has to scroll on its own. */
.m-menu{position:fixed;inset:83px 0 auto 0;max-height:calc(100svh - 83px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;z-index:49;background:rgba(246,241,231,.98);backdrop-filter:blur(16px);border-bottom:1px solid rgba(160,124,63,.25);padding:14px 24px 26px;display:block;transform:translateY(-110%);transition:transform .5s var(--ease)}
  .m-menu.open{transform:none}
  .m-menu a{display:block;padding:13px 4px;color:var(--ink);text-decoration:none;font:600 14px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid rgba(160,124,63,.18)}
  .m-menu a:last-child{border:none;color:#83652F}
}

/* ============ hero slider ============ */
.hero{position:relative;min-height:max(700px,calc(100svh - 150px));overflow:hidden;display:grid}
@media (max-width:760px){.hero{min-height:max(640px,96svh)}}
.slide{grid-area:1/1;position:relative;opacity:0;visibility:hidden;transition:opacity 1.3s var(--ease-soft),visibility 0s 1.3s;display:flex;align-items:center}
.slide.is-on{opacity:1;visibility:visible;transition:opacity 1.3s var(--ease-soft);z-index:1}
.slide .bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1)}
.slide.is-on .bg{animation:kenburns 9s var(--ease-soft) forwards}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.07)}}
.slide .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(11,26,19,.93) 0%,rgba(11,26,19,.82) 42%,rgba(11,26,19,.45) 75%,rgba(11,26,19,.35) 100%)}
.slide .sc{position:relative;z-index:2;max-width:1180px;width:100%;margin:0 auto;padding:138px clamp(20px,4vw,48px) 92px}
@media (max-height:820px){.slide .sc{padding:118px clamp(20px,4vw,48px) 62px}}
.slide .inner{max-width:640px}
.slide .kicker{margin-bottom:18px}
.slide h1{font-size:clamp(30px,4vw,52px);color:var(--td)}
.slide h1 em{font-style:italic;color:var(--gold-soft)}
.slide .sub{font-size:clamp(15px,1.35vw,17px);color:var(--td-soft);max-width:56ch;margin:18px 0 0;font-weight:300}
.slide .cta-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px}
.slide .micro{font-size:13px;letter-spacing:.06em;color:var(--td-soft);margin-top:16px;opacity:.85;font-weight:300}
/* per-slide content choreography */
.slide .inner>*{opacity:0;transform:translateY(26px)}
.slide.is-on .inner>*{opacity:1;transform:none;transition:opacity .9s var(--ease-soft),transform .9s var(--ease-soft)}
.slide.is-on .inner>*:nth-child(2){transition-delay:.15s}
.slide.is-on .inner>*:nth-child(3){transition-delay:.3s}
.slide.is-on .inner>*:nth-child(4){transition-delay:.45s}
.slide.is-on .inner>*:nth-child(5){transition-delay:.6s}
/* arrows */
/* The top of the hero sits behind the fixed header, so centre on the part
   the reader can actually see rather than on the element. */
.h-arrow{position:absolute;top:calc(50% + var(--navh) / 2);transform:translateY(-50%);z-index:5;background:rgba(14,34,25,.35);border:1px solid rgba(192,154,92,.35);color:var(--gold-soft);width:52px;height:52px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .4s var(--ease),border-color .4s var(--ease)}
.h-arrow:hover{background:rgba(14,34,25,.7);border-color:var(--gold)}
.h-arrow svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.h-prev{left:clamp(10px,2vw,30px)}
.h-next{right:clamp(10px,2vw,30px)}
/* dots */
.h-dots{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);z-index:5;display:flex;gap:12px}
.h-dot{width:34px;height:4px;border-radius:2px;background:rgba(192,154,92,.28);border:none;cursor:pointer;padding:0;position:relative;overflow:hidden;transition:background .4s var(--ease)}
.h-dot .fill{position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:left}
.h-dot.on .fill{transform:scaleX(1);transition:transform 7s linear}
.h-dot:hover{background:rgba(192,154,92,.5)}
@media (max-width:760px){
  .h-arrow{display:none}
  .slide .sc{padding:120px 24px 92px}
}
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}


/* gold dust (final call) */
.dust{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.mote{position:absolute;bottom:-8px;width:4px;height:4px;border-radius:50%;background:var(--gold);opacity:0;
  animation:float var(--t,14s) linear infinite;animation-delay:var(--d,0s)}
@keyframes float{0%{transform:translate3d(0,0,0);opacity:0}12%{opacity:var(--o,.35)}88%{opacity:var(--o,.35)}100%{transform:translate3d(var(--x,20px),-108vh,0);opacity:0}}

/* ============ sections shared ============ */
section{position:relative}
.sec-head{max-width:760px;margin:0 auto 40px;text-align:center}
.sec-head h2{font-size:clamp(30px,3.8vw,46px)}
.sec-head .lede{margin-top:16px;font-size:17px}
.divider{display:flex;justify-content:center;padding:0 0 34px}
.divider svg{width:220px;height:22px}
/* count-up for the 500+ */
var countEl = document.getElementById('count500');
var counted = false;
function runCount(){
  if (counted || !countEl) return;
  counted = true;
  if (reduceMQ.matches){ countEl.textContent = '500'; return; }
  var t0 = null;
  function step(now){
    if (!t0) t0 = now;
    var p = Math.min(1, (now - t0) / 1400);
    var eased = 1 - Math.pow(1 - p, 3);
    var v = Math.round(500 * eased);
    if (countEl.textContent !== String(v)) countEl.textContent = v;
    if (p < 1) requestAnimationFrame(step);
  }
  countEl.textContent = '0';
  requestAnimationFrame(step);
}

/* entrances */
.io .part{opacity:0;transform:translateY(30px)}
.io.in .part{opacity:1;transform:none;transition:opacity .9s var(--ease-soft),transform .9s var(--ease-soft)}
.io.in .part:nth-child(2){transition-delay:.12s}
.io.in .part:nth-child(3){transition-delay:.24s}
.io.in .part:nth-child(4){transition-delay:.36s}
.io.in .part:nth-child(5){transition-delay:.48s}
.io.in .part:nth-child(6){transition-delay:.6s}
.io.done .part,.io.done .part:nth-child(2),.io.done .part:nth-child(3),.io.done .part:nth-child(4),.io.done .part:nth-child(5),.io.done .part:nth-child(6){transition-delay:0s}

/* ============ trust strip ============ */
.trust{background:var(--canvas-2);border-top:1px solid rgba(192,154,92,.16);border-bottom:1px solid rgba(192,154,92,.16);padding:24px 0 20px}
.trust ul{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.trust li{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;padding:0 12px;border-right:1px solid rgba(192,154,92,.22)}
.trust li:last-child{border-right:none}
.trust svg{width:24px;height:24px;stroke:var(--gold);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:2px}
.trust .tv{font-family:var(--serif);font-weight:600;font-size:19px;line-height:1.25;color:var(--td);white-space:nowrap}
.trust .tv em{font-style:italic;color:var(--gold-soft)}
.trust .tc{font-size:12px;font-weight:400;letter-spacing:.04em;color:var(--td-soft)}
@media (max-width:900px){.trust ul{grid-template-columns:1fr 1fr;row-gap:34px}.trust li:nth-child(2){border-right:none}}
@media (max-width:560px){.trust ul{grid-template-columns:1fr 1fr;gap:16px}.trust li{border-right:none!important;padding:0 4px}.trust .tv{font-size:15.5px;white-space:normal}}

/* ============ conditions ============ */
.conditions{background:var(--ivory);padding:64px 0 68px}
.cond-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cond-cta{margin-top:34px;text-align:center}
.cond-cta p{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--ink);max-width:58ch;margin:0 auto 18px}
.tile{background:#FCF9F2;border:1px solid #E4D9C4;border-radius:6px;padding:22px 24px 20px;text-decoration:none;display:flex;flex-direction:column;gap:7px;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease)}
.tile:hover{transform:translateY(-6px);box-shadow:0 24px 44px rgba(34,48,42,.12);border-color:var(--gold)}
.tile svg{width:30px;height:30px;stroke:#A07C3F;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tile h3{font-size:20px;color:var(--ink)}
.tile p{font-size:13.5px;line-height:1.6;color:var(--ink-soft)}
@media (max-width:900px){.cond-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.cond-grid{grid-template-columns:1fr}}

/* ============ meet jinal ============ */
.meet{background:var(--ivory-2);padding:70px 0 72px}
.meet-grid{display:grid;grid-template-columns:0.78fr 1.22fr;gap:clamp(32px,5vw,64px);align-items:start}
.meet-left{position:sticky;top:120px;justify-self:center;text-align:center}
.portrait-wrap{position:relative;display:inline-block}
.portrait{width:min(250px,60vw);height:min(250px,60vw);border-radius:50%;object-fit:cover;position:relative;z-index:1}
.portrait-ring{position:absolute;inset:-12px;border:1px solid var(--gold);border-radius:50%;z-index:0}
.portrait-ring::after{content:"";position:absolute;inset:-11px;border:1px solid rgba(192,154,92,.3);border-radius:50%}
.meet-creds{margin-top:26px;display:flex;flex-direction:column;gap:9px;align-items:center}
.cred{font:500 12px/1.4 var(--sans);letter-spacing:.08em;color:var(--ink);background:#FCF9F2;border:1px solid #E0D3BA;border-radius:20px;padding:8px 16px}
.meet h2{font-size:clamp(26px,2.8vw,36px);max-width:24ch}
.meet .body{margin-top:16px;color:var(--ink);max-width:60ch}
.meet .body p{font-size:15px;line-height:1.7}
.meet .body p+p{margin-top:12px}
.books{margin-top:28px}
.books-kicker{font-size:11.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#83652F;margin-bottom:14px}
.books-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bookcard{display:flex;gap:16px;align-items:stretch;background:var(--canvas-2);border-radius:6px;padding:16px;text-decoration:none;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.bookcard:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(28,69,52,.28)}
.bookcard img{width:74px;height:106px;object-fit:cover;border-radius:3px;flex:none;box-shadow:4px 6px 14px rgba(0,0,0,.35)}
.bookcard .bt{display:flex;flex-direction:column;gap:4px;min-width:0}
.bookcard h3{font-size:17.5px;line-height:1.25;color:var(--td)}
.bookcard p{font-size:12.5px;line-height:1.5;color:var(--td-soft)}
.bookcard .buy{margin-top:auto;font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft);display:flex;align-items:center;gap:6px}
.bookcard .buy::after{content:"→";transition:transform .4s var(--ease)}
.bookcard:hover .buy::after{transform:translateX(5px)}
@media (max-width:980px){.books-row{grid-template-columns:1fr}}
@media (max-width:860px){.meet-grid{grid-template-columns:1fr}.meet-left{position:static;margin-bottom:6px}.meet-creds{flex-direction:row;flex-wrap:wrap;justify-content:center}}

/* ============ programs ============ */
.programs{background:var(--canvas);padding:100px 0}
.prog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.pcard{background:var(--canvas-2);border:1px solid rgba(192,154,92,.16);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease)}
.pcard:hover{transform:translateY(-8px);border-color:var(--gold-dim);box-shadow:0 30px 50px rgba(0,0,0,.4)}
.pcard .ph{aspect-ratio:4/3;overflow:hidden;position:relative}
.pcard .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.9);transition:transform 1.2s var(--ease-soft)}
.pcard:hover .ph img{transform:scale(1.06)}
.pcard .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,40,29,.05),rgba(16,40,29,.4))}
.pcard .tx{padding:24px 22px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.pcard h3{font-size:23px;color:var(--td);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.badge{font:700 10px/1 var(--sans);letter-spacing:.14em;color:#14231B;background:var(--gold);padding:5px 8px;border-radius:2px}
.pcard p{font-size:14.5px;color:var(--td-soft)}
.pcard .go{margin-top:auto;padding-top:12px;font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);display:flex;gap:8px;align-items:center}
.pcard .go::after{content:"→";transition:transform .4s var(--ease)}
.pcard:hover .go::after{transform:translateX(6px)}
@media (max-width:1020px){.prog-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.prog-grid{grid-template-columns:1fr}}

/* ============ journey ============ */
.journey{background:linear-gradient(180deg,var(--canvas) 0%,#0C2016 100%);padding:110px 0 90px}
.j-line-wrap{position:relative;max-width:820px;margin:0 auto}
.j-line{position:absolute;left:50%;top:0;bottom:0;transform:translateX(-50%);width:2px}
.j-line svg{height:100%;width:60px;transform:translateX(-29px)}
.j-line path{fill:none;stroke:var(--gold);stroke-width:1.6;opacity:.85}
.stage{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center;padding:44px 0;position:relative}
.stage .num{font-family:var(--serif);font-size:64px;color:var(--gold-dim);line-height:1}
.stage .st-tx h3{font-size:27px;color:var(--td)}
.stage .st-tx .dur{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin:6px 0 12px}
.stage .st-tx p{font-size:15px;color:var(--td-soft);max-width:44ch}
.stage:nth-child(odd) .st-a{order:2}
.stage:nth-child(odd) .st-b{order:1;text-align:right}
.stage:nth-child(odd) .st-b p{margin-left:auto}
.stage .dot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:11px;height:11px;border-radius:50%;background:var(--canvas);border:2px solid var(--gold);z-index:2}
@media (max-width:760px){
  .j-line{left:14px;transform:none}
  .j-line svg{transform:translateX(-29px)}
  .stage{grid-template-columns:1fr;gap:8px;padding-left:48px}
  .stage:nth-child(odd) .st-a{order:1}
  .stage:nth-child(odd) .st-b{order:2;text-align:left}
  .stage:nth-child(odd) .st-b p{margin-left:0}
  .stage .dot{left:14px}
  .stage .num{font-size:44px}
  .stage .st-a{text-align:left!important}
}
/* hold to bloom */
.bloom{margin:70px auto 0;max-width:560px;text-align:center}
.bloom p.hint{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--td-soft);margin-bottom:22px}
.seed{position:relative;width:120px;height:120px;margin:0 auto;border-radius:50%;background:none;border:1px solid var(--gold-dim);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:border-color .4s var(--ease);touch-action:none}
.seed:hover{border-color:var(--gold)}
.seed svg{width:64px;height:64px}
.seed .ghost{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.seed .ghost *{fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;opacity:.22;stroke-dasharray:none!important;stroke-dashoffset:0!important}
.seed svg *{fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;
  stroke-dasharray:var(--len) var(--len);stroke-dashoffset:calc(var(--len)*(1 - var(--bp,0)))}
.seed .ring{position:absolute;inset:-1px;border-radius:50%;pointer-events:none}
.seed .ring circle{fill:none;stroke:var(--gold);stroke-width:2;stroke-dasharray:377;stroke-dashoffset:calc(377*(1 - var(--bp,0)));transform:rotate(-90deg);transform-origin:center}
.bloom .reveal{margin-top:26px;font-family:var(--serif);font-size:26px;font-style:italic;color:var(--gold-soft);opacity:calc(var(--bp,0)*var(--bp,0));transform:translateY(calc(14px*(1 - var(--bp,0))))}
.bloom.done .reveal{opacity:1;transform:none;transition:opacity .8s var(--ease-soft),transform .8s var(--ease-soft)}

/* ============ stories ============ */
.stories{background:var(--ivory);padding:100px 0}
.story-slider{overflow:hidden}
.story-track{display:flex;gap:20px;transition:transform .7s var(--ease)}
.story-track .scard{flex:0 0 calc(50% - 10px)}
@media (max-width:860px){.story-track .scard{flex:0 0 100%}}
.story-nav{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:30px}
.s-arrow{width:46px;height:46px;border-radius:50%;background:none;border:1px solid rgba(160,124,63,.45);color:#83652F;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .4s var(--ease),border-color .4s var(--ease),opacity .4s var(--ease)}
.s-arrow:hover{background:#FCF9F2;border-color:#83652F}
.s-arrow[disabled]{opacity:.32;cursor:default;pointer-events:none}
.s-arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.s-dots{display:flex;gap:10px}
.s-dot{width:8px;height:8px;border-radius:50%;border:none;padding:0;background:rgba(160,124,63,.3);cursor:pointer;transition:background .4s var(--ease),transform .4s var(--ease)}
.s-dot.on{background:#83652F;transform:scale(1.25)}
.scard{position:relative;background:#FCF9F2;border:1px solid #E4D9C4;border-radius:6px;padding:34px 32px 28px;display:flex;flex-direction:column;gap:13px;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.scard:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(34,48,42,.1)}
.scard::before{content:"\201C";position:absolute;top:6px;right:24px;font-family:var(--serif);font-size:110px;line-height:1;color:rgba(192,154,92,.22);pointer-events:none}
.scard .tag{align-self:flex-start;font:700 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#83652F;border:1px solid var(--gold-dim);padding:6px 10px;border-radius:20px}
.scard .result{font-family:var(--serif);font-size:22.5px;color:var(--ink);line-height:1.3}
.scard q{font-size:15px;color:var(--ink-soft);quotes:"\201C" "\201D"}
.scard .who{margin-top:auto;padding-top:8px;font-size:13.5px;font-weight:700;color:var(--ink);letter-spacing:.04em}
.scard .who span{display:block;font-weight:500;color:var(--ink-soft);font-size:12.5px;letter-spacing:.02em}
.stories .close-line{margin-top:44px;text-align:center}
.stories .close-line p{font-family:var(--serif);font-size:23px;font-style:italic;color:var(--ink);margin-bottom:22px}


/* ============ business ============ */
.biz{position:relative;padding:110px 0;overflow:hidden}
.biz .bg{position:absolute;inset:0;background:url('business.jpg') center/cover;filter:saturate(.65)}
.biz .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(12,30,21,.96) 0%,rgba(12,30,21,.88) 55%,rgba(12,30,21,.72) 100%)}
.biz .wrap{position:relative;z-index:1}
.biz-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:8px}
.route{background:rgba(28,69,52,.5);backdrop-filter:blur(6px);border:1px solid rgba(192,154,92,.18);border-radius:6px;padding:28px 28px 24px;text-decoration:none;display:flex;flex-direction:column;gap:8px;transition:transform .5s var(--ease),border-color .5s var(--ease),background .5s var(--ease)}
.route:hover{transform:translateY(-5px);border-color:var(--gold-dim);background:rgba(28,69,52,.72)}
.route h3{font-size:22px;color:var(--td)}
.route p{font-size:14.5px;color:var(--td-soft)}
.route .go{margin-top:6px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft)}
@media (max-width:760px){.biz-grid{grid-template-columns:1fr}}

/* ============ journal ============ */
.journal{background:var(--ivory-2);padding:70px 0 74px}
.jr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.jcard{background:#FCF9F2;border:1px solid #E4D9C4;border-radius:6px;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease)}
.jcard:hover{transform:translateY(-5px);box-shadow:0 20px 38px rgba(34,48,42,.12);border-color:var(--gold)}
.jcard .jph{aspect-ratio:16/10;overflow:hidden;position:relative}
.jcard .jph img{width:100%;height:100%;object-fit:cover;filter:saturate(.92);transition:transform 1.1s var(--ease-soft)}
.jcard:hover .jph img{transform:scale(1.06)}
.jcard .jph .jtag{position:absolute;left:12px;bottom:12px;font:600 10.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#F6F1E7;background:rgba(16,40,29,.78);backdrop-filter:blur(6px);padding:6px 10px;border-radius:20px}
.jcard .jbody{padding:18px 20px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.jcard h3{font-size:18.5px;line-height:1.3;color:var(--ink)}
.jcard p{font-size:13px;line-height:1.6;color:var(--ink-soft)}
.jcard .jfoot{margin-top:auto;padding-top:10px;display:flex;justify-content:space-between;align-items:baseline}
.jcard .jmeta{font:600 10.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#9AA69D}
.jcard .read-more{font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#83652F;display:flex;align-items:center;gap:6px;border-bottom:1px solid transparent;transition:border-color .4s var(--ease)}
.jcard .read-more::after{content:"→";transition:transform .4s var(--ease)}
.jcard:hover .read-more::after{transform:translateX(5px)}
.jcard:hover .read-more{border-color:rgba(160,124,63,.5)}
.jr-note{margin-top:26px;text-align:center;font-size:13.5px;color:var(--ink-soft)}
@media (max-width:1020px){.jr-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.jr-grid{grid-template-columns:1fr}}

/* ============ newsletter ============ */
.newsband{background:var(--canvas-2);border-top:1px solid rgba(192,154,92,.16);padding:52px 0;transition:box-shadow .6s var(--ease)}
.newsband.flash{box-shadow:inset 0 0 0 3px var(--gold)}
.news-grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:clamp(28px,4vw,60px);align-items:center}
.newsband h3{font-family:var(--serif);font-size:clamp(23px,2.4vw,30px);font-weight:600;color:var(--td)}
.newsband .nsub{margin-top:10px;font-size:14.5px;color:var(--td-soft);font-weight:300}
/* Named areas, not auto-placement: password managers and other extensions inject
   their own elements into forms, and an auto-placed grid shunts every real field
   into the next cell when they do. Named items hold their position regardless. */
.nform{display:grid;grid-template-columns:1fr 1fr;gap:12px;
  grid-template-areas:"nm em" "cs cs" "sb sb"}
.nform:has(.form-alert){grid-template-areas:"al al" "nm em" "cs cs" "sb sb"}
.nform .form-alert{grid-area:al}
.nform input[type=text]{grid-area:nm}
.nform input[type=email]{grid-area:em}
.nform .consent{grid-area:cs;display:flex;gap:10px;align-items:flex-start;font-size:12.5px;line-height:1.5;color:var(--td-soft);cursor:pointer}
.nform .consent input{accent-color:var(--gold);width:17px;height:17px;margin-top:1px;flex:none;cursor:pointer}
.nform .consent a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid rgba(212,185,140,.4)}
.nform .consent a:hover{border-color:var(--gold-soft)}
.nform button{grid-area:sb;justify-self:start}
.nform input[type=text],.nform input[type=email]{font:400 15px/1.4 var(--sans);color:var(--td);background:rgba(16,40,29,.55);border:1px solid rgba(192,154,92,.35);border-radius:3px;padding:14px 16px;min-width:0;transition:border-color .35s var(--ease)}
.nform input::placeholder{color:rgba(185,199,189,.52)}
.nform input:focus{outline:none;border-color:var(--gold)}
.nform .ok{display:none;background:rgba(16,40,29,.55);border:1px solid rgba(192,154,92,.35);color:var(--td);border-radius:4px;padding:16px 18px;font-size:14.5px;grid-column:1/-1}
.nform.sent input,.nform.sent button,.nform.sent .consent{display:none}
.nform.sent .ok{display:block}
@media (max-width:860px){.news-grid{grid-template-columns:1fr}
  .nform{grid-template-columns:1fr;grid-template-areas:"nm" "em" "cs" "sb"}
  .nform:has(.form-alert){grid-template-areas:"al" "nm" "em" "cs" "sb"}}

/* ============ guide ============ */
.guide{background:var(--ivory);padding:100px 0}
.guide-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:clamp(34px,5vw,70px);align-items:center}
/* The guide, shown as a book: an inside page behind the cover so it reads as
   something with contents rather than a flat graphic. */
.guide .ph{position:relative;display:flex;align-items:center;justify-content:center;
  background:var(--ivory-2);border:1px solid rgba(160,124,63,.22);border-radius:8px;padding:44px 30px;overflow:hidden}
.guide .ph::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:78%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(192,154,92,.16) 0%,rgba(192,154,92,0) 70%)}
.gbook{position:relative;display:block;width:min(268px,74%)}
.gbook img{display:block;border-radius:4px}
.gb-inside{position:absolute;left:16%;top:-14px;width:88%;transform:rotate(6deg);
  box-shadow:0 14px 30px rgba(34,48,42,.20);opacity:.96}
.gb-cover{position:relative;width:100%;transform:rotate(-3deg);
  box-shadow:0 26px 50px rgba(34,48,42,.32)}
.gb-badge{position:absolute;right:-14px;bottom:14px;z-index:2;
  font:600 10.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;
  color:#14231B;background:var(--gold);padding:8px 13px;border-radius:20px;
  box-shadow:0 8px 18px rgba(34,48,42,.22)}
@media (max-width:860px){.guide .ph{padding:36px 24px}.gbook{width:min(230px,70%)}}
.guide h2{font-size:clamp(28px,3.4vw,42px)}
.guide .lede{margin:16px 0 26px;max-width:52ch}
.gform{display:grid;grid-template-columns:1fr 1fr;gap:12px;
  grid-template-areas:"nm em" "tel tel" "sb sb" "mi mi"}
.gform:has(.form-alert){grid-template-areas:"al al" "nm em" "tel tel" "sb sb" "mi mi"}
.gform .form-alert{grid-area:al}
.gform input[type=text]{grid-area:nm}
.gform input[type=email]{grid-area:em}
.gform button{grid-area:sb;justify-self:start}
.gform .fmicro{grid-area:mi}
.gform input{grid-column:span 1;font:500 15px/1.4 var(--sans);color:var(--ink);background:#FCF9F2;border:1px solid #D8CBB0;border-radius:3px;padding:14px 16px;width:100%;transition:border-color .35s var(--ease)}
.gform input:focus{outline:none;border-color:#A07C3F}
.gform input::placeholder{color:#97A29A}
.gform .telrow{grid-area:tel;display:flex;gap:10px}
.gform select{font:500 15px/1.4 var(--sans);color:var(--ink);background:#FCF9F2;border:1px solid #D8CBB0;border-radius:3px;padding:14px 10px;width:112px;flex:none;cursor:pointer}
.gform select:focus{outline:none;border-color:#A07C3F}
.gform .telrow input{flex:1;min-width:0}
.gform .full{grid-column:1/-1}
.gform button{grid-column:1/-1;justify-self:start}
.gform .fmicro{grid-column:1/-1;font-size:12.5px;color:var(--ink-soft)}
.gform .ok{grid-column:1/-1;display:none;background:var(--canvas-2);color:var(--td);border-radius:4px;padding:18px 20px;font-size:15px}
.gform.sent input,.gform.sent button,.gform.sent .fmicro{display:none}
.gform.sent .ok{display:block}
@media (max-width:860px){.guide-grid{grid-template-columns:1fr}
  .gform{grid-template-columns:1fr;grid-template-areas:"nm" "em" "tel" "sb" "mi"}
  .gform:has(.form-alert){grid-template-areas:"al" "nm" "em" "tel" "sb" "mi"}}

/* ============ final call ============ */
.final{position:relative;background:var(--canvas);padding:88px 0 84px;text-align:center;overflow:hidden}
.final h2{font-size:clamp(30px,3.8vw,46px);color:var(--td);max-width:20ch;margin:0 auto}
.final .lede{color:var(--td-soft);max-width:52ch;margin:18px auto 28px}
.final .alt{margin-top:22px;font-size:14.5px;color:var(--td-soft)}
.final .alt a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid var(--gold-dim)}
.final .alt a:hover{border-color:var(--gold)}

/* ============ footer ============ */
footer{background:#0B1D14;border-top:1px solid rgba(192,154,92,.14);padding:70px 0 34px;color:var(--td-soft)}
.f-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:clamp(22px,2.6vw,40px)}
.f-brand img{height:120px;width:auto;margin-bottom:16px}
.f-brand p{font-size:13.5px;max-width:30ch}
footer h4{font:700 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:16px}
footer ul{list-style:none}
footer li{margin-bottom:10px}
footer li a{font-size:14px;color:var(--td-soft);text-decoration:none;transition:color .35s var(--ease)}
footer li a:hover{color:var(--gold-soft)}
.f-legal{margin-top:54px;padding-top:22px;border-top:1px solid rgba(192,154,92,.1);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12.5px}
.f-legal a{color:var(--td-soft);text-decoration:none}
.f-legal a:hover{color:var(--gold-soft)}
@media (max-width:1100px){.f-grid{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:860px){.f-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.f-grid{grid-template-columns:1fr}}

/* ============ whatsapp float ============ */
.wa{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;align-items:center;gap:0;text-decoration:none}
.wa .lbl{max-width:0;visibility:hidden;opacity:0;overflow:hidden;white-space:nowrap;font:600 13px/1 var(--sans);color:var(--td);background:rgba(14,34,25,.92);border:1px solid rgba(192,154,92,.25);border-radius:22px;padding:11px 0;border-width:0;transition:max-width .6s var(--ease),padding .6s var(--ease),margin .6s var(--ease),opacity .4s var(--ease),visibility 0s .6s}
.wa:hover .lbl{max-width:240px;visibility:visible;opacity:1;border-width:1px;padding:11px 16px;margin-right:10px}
.wa .bub{width:56px;height:56px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,0,0,.4);transition:transform .4s var(--ease)}
.wa:hover .bub{transform:scale(1.07)}
.wa svg{width:28px;height:28px;fill:#14231B}

/* sections padding on mobile */
@media (max-width:560px){
  .conditions,.meet,.programs,.stories,.guide{padding:70px 0}
  .journey{padding:80px 0 70px}
  .final{padding:90px 0}
}
@media (pointer:coarse){
  .btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
  .nav-links a,.tile .go,.pcard .go{padding-top:8px;padding-bottom:8px}
}

/* ============ reduced motion ============ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important}
  body{opacity:1}
  .io .part{opacity:1;transform:none}
  .slide .inner>*{opacity:1;transform:none}
  .slide .bg{animation:none}
  .mote{display:none}
  .seed svg *{stroke-dashoffset:0}
  .seed .ring circle{stroke-dashoffset:0}
  .bloom .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ============ nav dropdown ============ */
.nav-links .has-sub{position:relative}
.nav-links .has-sub>a::after{content:"";display:inline-block;width:7px;height:7px;margin-left:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .3s var(--ease)}
.nav-links .has-sub:hover>a::after{transform:rotate(225deg) translateY(-1px)}
.has-sub .sub{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(12px);opacity:0;visibility:hidden;width:440px;padding:12px;background:#FBF7EE;border:1px solid rgba(160,124,63,.25);border-radius:8px;box-shadow:0 28px 56px rgba(34,48,42,.18);transition:opacity .4s var(--ease),transform .4s var(--ease),visibility 0s .4s;z-index:60;list-style:none}
.has-sub .sub::before{content:"";position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(45deg);width:12px;height:12px;background:#FBF7EE;border-left:1px solid rgba(160,124,63,.25);border-top:1px solid rgba(160,124,63,.25)}
.has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible;transform:translateX(-50%) translateY(6px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.has-sub .sub li{margin:0;opacity:0;transform:translateY(10px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.has-sub:hover .sub li,.has-sub:focus-within .sub li{opacity:1;transform:none}
.has-sub:hover .sub li:nth-child(1){transition-delay:.05s}
.has-sub:hover .sub li:nth-child(2){transition-delay:.11s}
.has-sub:hover .sub li:nth-child(3){transition-delay:.17s}
.has-sub:hover .sub li:nth-child(4){transition-delay:.23s}
.has-sub:hover .sub li:nth-child(5){transition-delay:.29s}
.has-sub .sub .sub-item{display:flex!important;gap:14px;align-items:center;padding:10px 12px!important;border-radius:6px;border-bottom:none!important;transition:background .35s var(--ease)}
.has-sub .sub .sub-item:hover{background:rgba(192,154,92,.13)}
.has-sub .sub .sub-item img{width:52px;height:52px;border-radius:6px;object-fit:cover;flex:none;transition:transform .45s var(--ease)}
.has-sub .sub .sub-item:hover img{transform:scale(1.08) rotate(-1deg)}
.has-sub .sub .si{display:flex;flex-direction:column;gap:2px;min-width:0}
.has-sub .sub .si-name{font:600 13.5px/1.3 var(--sans);letter-spacing:.02em;text-transform:none;color:var(--ink);display:flex;align-items:center;gap:8px}
.has-sub .sub .si-name::after{content:"→";opacity:0;transform:translateX(-6px);transition:opacity .35s var(--ease),transform .35s var(--ease);color:#83652F}
.has-sub .sub .sub-item:hover .si-name::after{opacity:1;transform:none}
.has-sub .sub .si-cap{font:400 12px/1.45 var(--sans);letter-spacing:.01em;text-transform:none;color:var(--ink-soft);white-space:normal}
.sub .sub-foot{margin-top:8px;padding:12px 12px 6px;border-top:1px solid rgba(160,124,63,.2);display:block!important;border-bottom:none!important;font:600 11.5px/1 var(--sans);letter-spacing:.14em;color:#83652F}
.sub .sub-foot:hover{background:none;text-decoration:none;color:#5f4a23}
.m-menu .m-sub{padding-left:18px;font-size:12.5px!important;opacity:.85}

/* ============ program pages ============ */
.phero{position:relative;padding:200px 0 110px;overflow:hidden}
.phero .bg{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.85)}
.phero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(11,26,19,.94) 0%,rgba(11,26,19,.82) 45%,rgba(11,26,19,.5) 100%)}
.phero .wrap{position:relative;z-index:1}
.phero .crumb{font:600 11.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:16px}
.phero .crumb a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid rgba(212,185,140,.35)}
.phero h1{font-size:clamp(34px,4.4vw,56px);color:var(--td);max-width:20ch}
.phero .lede{margin-top:18px;font-size:16.5px;color:var(--td-soft);max-width:56ch;font-weight:300}
.phero .cta-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:30px}
.phero .pbadge{display:inline-block;font:600 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#14231B;background:var(--gold);padding:7px 12px;border-radius:3px;margin-bottom:18px}
@media (max-width:760px){.phero{padding:170px 0 80px}}

.psec{padding:78px 0}
.psec.ivory{background:var(--ivory)}
.psec.ivory2{background:var(--ivory-2)}
.psec.dark{background:var(--canvas)}
.psec.darker{background:linear-gradient(180deg,var(--canvas) 0%,#0C2016 100%)}

.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;max-width:900px;margin:0 auto}
.check-grid li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.6;list-style:none}
.check-grid.on-dark li{color:var(--td-soft)}
.check-grid li::before{content:"";flex:none;width:19px;height:19px;margin-top:3px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='9' fill='none' stroke='%23C09A5C' stroke-width='1.4'/%3E%3Cpath d='M6 10.5 L9 13 L14 7' fill='none' stroke='%23C09A5C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
@media (max-width:760px){.check-grid{grid-template-columns:1fr}}

.faq{max-width:820px;margin:0 auto}
.faq details{border-bottom:1px solid #E0D3BA;padding:6px 0}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:16px 0;font-family:var(--serif);font-size:20px;font-weight:600;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--serif);font-size:26px;color:#A07C3F;transition:transform .35s var(--ease);flex:none}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .fa{padding:0 0 18px;font-size:14.5px;line-height:1.7;color:var(--ink-soft);max-width:64ch}

.pdisclaimer{margin-top:40px;text-align:center}
.pdisclaimer p{display:inline-block;font-size:12.5px;line-height:1.6;color:var(--ink-soft);background:#FCF9F2;border:1px solid #E4D9C4;border-radius:4px;padding:12px 20px;max-width:70ch}
.psec.dark .pdisclaimer p,.psec.darker .pdisclaimer p{background:rgba(28,69,52,.5);border-color:rgba(192,154,92,.2);color:var(--td-soft)}

.stage-milestones{margin-top:10px;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:5px}
.stage-milestones li{font-size:13px;color:var(--td-soft);display:flex;gap:8px;align-items:baseline}
.stage-milestones li::before{content:"·";color:var(--gold-soft);font-weight:700}

@media (max-width:1160px){.nav-links{gap:16px}.nav-links a{font-size:12px;letter-spacing:.09em}.nav-cta{padding:11px 16px;font-size:11.5px;letter-spacing:.1em}}

/* ============ program enquiry (WhatsApp bridge) ============ */
.enq{background:linear-gradient(180deg,var(--canvas) 0%,#0C2016 100%);padding:84px 0}
.enq .wrap{max-width:880px}
.enq-card{background:rgba(28,69,52,.45);border:1px solid rgba(192,154,92,.22);border-radius:8px;padding:clamp(24px,4vw,44px)}
.enq-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.enq-form .full{grid-column:1/-1}
/* Same guard for the enquiry forms: an injected node is taken out of the grid
   flow rather than shunting every field into the next cell. */
.enq-form > :not(label):not(button):not(.enq-note):not(.ok):not(.form-alert){position:absolute}
.enq-form input,.enq-form select,.enq-form textarea{width:100%;font:400 15px/1.45 var(--sans);color:var(--td);background:rgba(16,40,29,.6);border:1px solid rgba(192,154,92,.32);border-radius:3px;padding:13px 15px;transition:border-color .35s var(--ease)}
.enq-form textarea{resize:vertical;min-height:88px}
.enq-form input::placeholder,.enq-form textarea::placeholder{color:rgba(185,199,189,.52)}
.enq-form input:focus,.enq-form select:focus,.enq-form textarea:focus{outline:none;border-color:var(--gold)}
.enq-form select{cursor:pointer}
.enq-form label{display:flex;flex-direction:column;gap:7px;font:500 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-soft)}
.enq-form button{grid-column:1/-1;justify-self:start;margin-top:6px}
.enq-note{grid-column:1/-1;font-size:12.5px;color:var(--td-soft);display:flex;gap:8px;align-items:center}
.enq-note svg{width:16px;height:16px;color:var(--gold-soft);flex:none}
@media (max-width:720px){.enq-form{grid-template-columns:1fr}}

/* numbered editorial list (one-to-one) */
.numlist{display:grid;grid-template-columns:1fr 1fr;gap:8px 48px;max-width:980px;margin:0 auto}
.numrow{display:flex;gap:20px;align-items:baseline;padding:18px 0;border-bottom:1px solid #E0D3BA}
.numrow .nn{font-family:var(--serif);font-size:30px;color:rgba(160,124,63,.55);flex:none;width:44px}
.numrow h3{font-size:19px;color:var(--ink);display:inline;margin-right:8px}
.numrow p{font-size:13.5px;color:var(--ink-soft);line-height:1.6}
@media (max-width:860px){.numlist{grid-template-columns:1fr}}

/* plan structure cards */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:980px;margin:0 auto}
.plan{background:#FCF9F2;border:1px solid #E4D9C4;border-radius:6px;padding:28px 26px;display:flex;flex-direction:column;gap:10px;text-align:center;transition:transform .5s var(--ease),border-color .5s var(--ease),box-shadow .5s var(--ease)}
.plan:hover{transform:translateY(-5px);border-color:var(--gold);box-shadow:0 22px 40px rgba(34,48,42,.1)}
.plan .pm{font-family:var(--serif);font-size:44px;line-height:1;color:var(--ink)}
.plan .pm span{font-size:16px;color:#83652F;font-style:italic}
.plan h3{font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#83652F}
.plan p{font-size:13.5px;line-height:1.6;color:var(--ink-soft)}
@media (max-width:760px){.plans{grid-template-columns:1fr}}

/* breathing circle (calm) */
.breath{position:relative;width:230px;height:230px;margin:0 auto;display:flex;align-items:center;justify-content:center}
.breath .b-ring{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--gold);opacity:.85;animation:breathe 8s ease-in-out infinite}
.breath .b-ring.r2{animation-delay:-.35s;opacity:.35}
.breath .b-ring.r3{animation-delay:-.7s;opacity:.15}
.breath .b-word{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--gold-soft)}
@keyframes breathe{0%,100%{transform:scale(.62)}45%,55%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.breath .b-ring{animation:none;transform:scale(.8)}}
.sign-lines{max-width:700px;margin:0 auto;display:flex;flex-direction:column;gap:26px;text-align:center}
.sign-lines p{font-family:var(--serif);font-style:italic;font-size:clamp(19px,2.2vw,25px);line-height:1.45;color:var(--td)}
.sign-lines p span{color:var(--gold-soft)}
.big12{text-align:center;margin:0 auto}
.big12 .n{font-family:var(--serif);font-size:clamp(90px,12vw,150px);line-height:1;color:var(--gold)}
.big12 .c{font:600 13px/1.6 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--td-soft)}

/* pillar tiles (home) */
/* Seven tiles across four columns leaves three stranded at the left of the second
   row. Flex wrapping centres the remainder instead. */
.ptiles{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.ptile{flex:0 1 calc(25% - 11px);min-width:0}
.ptile{background:rgba(28,69,52,.5);border:1px solid rgba(192,154,92,.18);border-radius:6px;padding:22px 18px;display:flex;flex-direction:column;gap:6px;transition:transform .5s var(--ease),border-color .5s var(--ease)}
.ptile:hover{transform:translateY(-4px);border-color:var(--gold-dim)}
.ptile .pl{font-family:var(--serif);font-size:34px;line-height:1;color:var(--gold)}
.ptile h3{font-size:16px;color:var(--td)}
.ptile p{font-size:12.5px;line-height:1.55;color:var(--td-soft)}
@media (max-width:1020px){.ptile{flex-basis:calc(50% - 7px)}}
@media (max-width:560px){.ptile{flex-basis:100%}}
.quoteband{background:var(--canvas-2);padding:64px 0;text-align:center}
.quoteband p{font-family:var(--serif);font-style:italic;font-size:clamp(23px,3vw,34px);color:var(--td);max-width:26ch;margin:0 auto}
.outrow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:oc}
.outcard{background:#FCF9F2;border:1px solid #E4D9C4;border-radius:6px;padding:24px 22px}
.outcard::before{counter-increment:oc;content:counter(oc,decimal-leading-zero);font-family:var(--serif);font-size:30px;color:rgba(160,124,63,.55);display:block;margin-bottom:8px}
.outcard p{font-size:13.5px;line-height:1.65;color:var(--ink)}
@media (max-width:1020px){.outrow{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.outrow{grid-template-columns:1fr}}

/* launch steps (group) */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;max-width:980px;margin:0 auto}
.step{position:relative;text-align:center;padding:0 26px}
.step:not(:last-child)::after{content:"";position:absolute;right:0;top:16px;bottom:16px;width:1px;background:rgba(160,124,63,.28)}
.step .sn{font-family:var(--serif);font-size:44px;line-height:1;color:rgba(160,124,63,.55)}
.step h3{font-size:19px;color:var(--ink);margin:10px 0 8px}
.step p{font-size:13.5px;line-height:1.6;color:var(--ink-soft)}
@media (max-width:760px){.steps{grid-template-columns:1fr}.step{padding:22px 0}.step:not(:last-child)::after{right:auto;left:50%;top:auto;bottom:0;width:60px;height:1px;transform:translateX(-50%)}}

/* menu card (corporate) */
.menucard{max-width:880px;margin:0 auto;background:#FCF9F2;border:1px solid #E4D9C4;border-radius:8px;padding:clamp(28px,5vw,58px);box-shadow:0 30px 60px rgba(34,48,42,.1)}
.menucard .mc-rule{display:flex;justify-content:center;margin-bottom:8px}
.menucard .mc-rule svg{width:180px;height:20px}
.mitem{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;padding:15px 0;border-bottom:1px dashed rgba(160,124,63,.35);align-items:baseline}
.mitem:last-child{border-bottom:none}
.mitem h3{font-size:19.5px;color:var(--ink)}
.mitem p{font-size:13px;line-height:1.55;color:var(--ink-soft);grid-column:2;text-align:right}
.mitem .mnum{font-family:var(--serif);font-style:italic;font-size:15px;color:#A07C3F}
@media (max-width:640px){.mitem p{grid-column:1/-1;text-align:left}}

/* photo bands (hotels) */
.hband{display:grid;grid-template-columns:1fr 1fr;border-radius:8px;overflow:hidden;margin-bottom:20px;background:#FCF9F2;border:1px solid #E4D9C4}
.hband .hb-img{min-height:300px;background-size:cover;background-position:center}
.hband .hb-tx{padding:clamp(26px,4vw,50px);display:flex;flex-direction:column;justify-content:center;gap:10px}
.hband.rev .hb-img{order:2}
.hband .hb-n{font-family:var(--serif);font-style:italic;font-size:15px;letter-spacing:.14em;color:#83652F}
.hband h3{font-size:24px;color:var(--ink)}
.hband p{font-size:14px;line-height:1.65;color:var(--ink-soft)}
.hband .hb-meta{font:600 11px/1.6 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#A07C3F}
@media (max-width:760px){.hband{grid-template-columns:1fr}.hband.rev .hb-img{order:0}.hband .hb-img{min-height:200px}}

/* vertical timeline (healthcare) */
.vline{max-width:660px;margin:0 auto}
.vstep{position:relative;padding:0 0 36px 60px}
.vstep::before{content:"";position:absolute;left:18px;top:40px;bottom:4px;width:1px;background:rgba(160,124,63,.35)}
.vstep:last-child::before{display:none}
.vstep .vn{position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;border:1px solid #A07C3F;color:#83652F;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:17px;background:#FCF9F2}
.vstep h3{font-size:21px;color:var(--ink);margin-bottom:6px}
.vstep p{font-size:14px;line-height:1.65;color:var(--ink-soft)}

/* equation band (fitness) */
.equation .eq-row{display:flex;align-items:baseline;justify-content:center;gap:clamp(10px,3vw,26px);flex-wrap:wrap;font-family:var(--serif)}
.equation .eq-word{font-size:clamp(30px,4.6vw,54px);font-weight:600;color:var(--td)}
.equation .eq-op{font-size:clamp(26px,3.6vw,40px);color:var(--gold);font-style:italic}
.equation .eq-res{color:var(--gold-soft);font-style:italic}
.equation .eq-cap{text-align:center;margin-top:16px;font:300 14.5px/1.7 var(--sans);color:var(--td-soft)}

/* philosophy quote band (shared) */
.aphil{background:var(--ivory);padding:90px 0;text-align:center}
.aphil blockquote{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.6vw,30px);line-height:1.5;color:var(--ink);max-width:34ch;margin:0 auto}
.aphil .attr{margin-top:22px;font:600 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#83652F}
.acta{background:#0C2016;padding:80px 0;text-align:center}
.acta h2{font-size:clamp(28px,3.4vw,42px);color:var(--td);max-width:22ch;margin:0 auto 14px}
.acta p{color:var(--td-soft);max-width:52ch;margin:0 auto 30px}

/* filter chips (shared: success stories + gallery) */
.ss-chip{font:600 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#83652F;background:none;border:1px solid rgba(160,124,63,.4);border-radius:20px;padding:10px 18px;cursor:pointer;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease)}
.ss-chip:hover{border-color:#83652F}
.ss-chip.on{background:var(--canvas-2);color:var(--td);border-color:var(--canvas-2)}

/* ============ jain nutrition band ============ */
.jain{position:relative;background:linear-gradient(160deg,#123123 0%,#0B1D14 100%);padding:88px 0;overflow:hidden}
.jain::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:radial-gradient(ellipse 60% 50% at 82% 30%,rgba(192,154,92,.13) 0%,rgba(192,154,92,0) 70%)}
.jain .wrap{position:relative;z-index:1}
.jain-grid{display:grid;grid-template-columns:1.02fr 0.98fr;gap:clamp(34px,5vw,72px);align-items:center}
.jain h2{font-size:clamp(28px,3.5vw,44px);color:var(--td);max-width:16ch}
.jain h2 em{font-style:italic;color:var(--gold-soft)}
.jain .jl{margin-top:20px;font-size:16px;line-height:1.75;color:var(--td-soft);max-width:52ch;font-weight:300}
.jain .jl+.jl{margin-top:14px}
.jain .jl b{color:var(--td);font-weight:500}
.jain .cta-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:30px}
.jain-card{background:rgba(28,69,52,.5);border:1px solid rgba(192,154,92,.22);border-radius:8px;padding:clamp(24px,3vw,34px)}
.jain-card h3{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:20px}
.jain-list{list-style:none;display:flex;flex-direction:column;gap:15px}
.jain-list li{display:flex;gap:14px;align-items:flex-start}
.jain-list .ji{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--gold-dim);display:flex;align-items:center;justify-content:center;margin-top:2px}
.jain-list .ji svg{width:13px;height:13px;fill:none;stroke:var(--gold);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.jain-list b{display:block;font-size:14.5px;font-weight:600;color:var(--td);margin-bottom:2px}
.jain-list span{font-size:13.5px;line-height:1.6;color:var(--td-soft)}
.jain-quote{margin-top:26px;padding-top:22px;border-top:1px solid rgba(192,154,92,.2)}
.jain-quote q{font-family:var(--serif);font-style:italic;font-size:17px;line-height:1.5;color:var(--td);quotes:"\201C" "\201D"}
.jain-quote .qw{margin-top:10px;font-size:12.5px;color:var(--gold-soft);letter-spacing:.04em}
@media (max-width:900px){.jain-grid{grid-template-columns:1fr}.jain{padding:70px 0}}

/* server-side form validation feedback */
.form-alert{grid-column:1/-1;background:rgba(176,83,59,.14);border:1px solid rgba(228,167,147,.5);border-radius:5px;padding:14px 16px;margin-bottom:4px;color:#E4A793;font-size:13.5px;line-height:1.6}
.form-alert strong{display:block;margin-bottom:5px;color:#F0C9BC}
.form-alert ul{margin:0;padding-left:18px}
.on-ivory .form-alert,.gform .form-alert{background:#FBF0ED;border-color:#E3C9C1;color:#8E3D28}
.on-ivory .form-alert strong,.gform .form-alert strong{color:#7A3220}

/* ============ journal: listing ============ */
.jhero{position:relative;padding:170px 0 62px;background:linear-gradient(180deg,var(--canvas) 0%,#0C2016 100%);overflow:hidden}
.jhero::after{content:"";position:absolute;right:-140px;top:-120px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(192,154,92,.14) 0%,rgba(192,154,92,0) 70%);pointer-events:none}
.jhero .wrap{position:relative;z-index:1}
.jhero .crumb{font:600 11.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:16px}
.jhero .crumb a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid rgba(212,185,140,.35)}
.jhero h1{font-size:clamp(32px,4.4vw,54px);color:var(--td);max-width:19ch}
.jhero .lede{margin-top:16px;font-size:16.5px;line-height:1.8;color:var(--td-soft);max-width:60ch;font-weight:300}
.jstats{display:flex;gap:26px;flex-wrap:wrap;margin-top:26px;font:600 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--td-soft)}
.jstats b{color:var(--gold-soft);font-weight:600}
.jsearch{margin-top:30px;display:flex;gap:10px;max-width:520px;flex-wrap:wrap}
.jsearch input{flex:1;min-width:220px;background:rgba(246,241,231,.07);border:1px solid rgba(212,185,140,.3);border-radius:4px;padding:14px 16px;font:400 14.5px/1.2 var(--sans);color:var(--td)}
.jsearch input::placeholder{color:rgba(185,199,189,.52)}
.jsearch input:focus{outline:none;border-color:var(--gold);background:rgba(246,241,231,.11)}
.jsearch button{border:0;cursor:pointer}
.jsearch .clear{align-self:center;font:600 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--td-soft);text-decoration:none;border-bottom:1px solid rgba(185,199,189,.35)}

.jfilter{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:40px}
.jfilter .ss-chip{text-decoration:none}
.jfilter .ss-chip .n{opacity:.6;font-size:11px;margin-left:5px}

.jresult{max-width:1180px;margin:0 auto 26px;padding:0 clamp(20px,4vw,48px);font-size:14.5px;color:var(--ink-soft)}
.jresult b{color:var(--ink)}

/* lead article */
.jlead{display:grid;grid-template-columns:1.15fr 1fr;gap:0;background:#FCF9F2;border:1px solid #E4D9C4;border-radius:8px;overflow:hidden;margin-bottom:46px;position:relative;transition:box-shadow .5s var(--ease),border-color .5s var(--ease)}
.jlead:hover{box-shadow:0 26px 52px rgba(34,48,42,.14);border-color:var(--gold)}
.jlead .ph{position:relative;overflow:hidden;min-height:340px}
.jlead .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.92);transition:transform 1.2s var(--ease-soft)}
.jlead:hover .ph img{transform:scale(1.05)}
.jlead .ph .flag{position:absolute;left:16px;top:16px;font:600 10.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#14231B;background:var(--gold);padding:7px 12px;border-radius:20px}
.jlead .bd{padding:clamp(26px,3vw,44px);display:flex;flex-direction:column;justify-content:center;gap:14px}
.jlead .bd h2{font-size:clamp(24px,2.8vw,34px);line-height:1.24;color:var(--ink)}
.jlead .bd h2 a{text-decoration:none;color:inherit}
.jlead .bd h2 a::after{content:"";position:absolute;inset:0;z-index:2}
.jlead .bd p{font-size:15px;line-height:1.75;color:var(--ink-soft)}
.jlead .bd .btn{align-self:flex-start;margin-top:6px;position:relative;z-index:3}

/* shared meta line */
.jmetaline{display:flex;gap:9px;align-items:center;flex-wrap:wrap;font:600 10.5px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#9AA69D}
.jmetaline .cat{color:#83652F}
.jmetaline .sep{color:var(--gold)}

/* cards, richer than the homepage strip */
.jr-grid.wide{grid-template-columns:repeat(3,1fr);gap:24px}
.jcard{position:relative}
.jcard h3 a{text-decoration:none;color:inherit}
.jcard h3 a::after{content:"";position:absolute;inset:0;z-index:2}
.jcard .jfoot .read-more{position:relative;z-index:3}
.jcard .jmetaline{margin-bottom:2px}


@media (max-width:1020px){
  .jr-grid.wide{grid-template-columns:1fr 1fr}
  .jlead{grid-template-columns:1fr}
  .jlead .ph{width:100%;min-height:230px;aspect-ratio:16/9}
}
@media (max-width:560px){
  .jhero{padding:140px 0 48px}
  .jr-grid.wide{grid-template-columns:1fr}
}

/* ============ journal: article ============ */
.art{background:var(--ivory);padding:0 0 76px}
.art-hero{position:relative;background:linear-gradient(180deg,var(--canvas) 0%,#0C2016 100%);padding:158px 0 58px;overflow:hidden}
.art-hero::after{content:"";position:absolute;left:-160px;bottom:-200px;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(143,174,155,.12) 0%,rgba(143,174,155,0) 70%);pointer-events:none}
.art-hero .wrap{position:relative;z-index:1}
.art-hero .crumb{font:600 11.5px/1.6 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:16px}
.art-hero .crumb a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid rgba(212,185,140,.35)}
.art-hero h1{font-size:clamp(30px,4vw,50px);color:var(--td);max-width:22ch}
.art-hero .standfirst{margin-top:18px;font-size:17px;line-height:1.75;color:var(--td-soft);max-width:60ch;font-weight:300}
.art-meta{margin-top:24px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;font:600 11.5px/1.6 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--td-soft)}
.art-meta .dot{color:var(--gold)}
.art-meta .who{display:flex;align-items:center;gap:9px}
.art-meta .who img{width:30px;height:30px;border-radius:50%;object-fit:cover;border:1px solid rgba(212,185,140,.4)}

/* reading progress */
.readbar{position:fixed;left:0;top:0;height:3px;width:100%;background:transparent;z-index:60;pointer-events:none}
.readbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-soft),var(--gold));transition:width .1s linear}

.art-fig{max-width:1060px;margin:-40px auto 0;padding:0 clamp(20px,4vw,48px)}
.art-fig img{width:100%;height:auto;border-radius:8px;display:block;box-shadow:0 30px 60px rgba(34,48,42,.18)}
.art-fig figcaption{margin-top:12px;font-size:12.5px;color:var(--ink-soft);text-align:center;font-style:italic}

/* two column shell: sticky rail + body */
.art-shell{max-width:1180px;margin:46px auto 0;padding:0 clamp(20px,4vw,48px);display:grid;grid-template-columns:230px minmax(0,1fr);gap:clamp(28px,4vw,60px);align-items:start}
.art-rail{position:sticky;top:100px}
.toc{border-left:2px solid rgba(160,124,63,.25);padding-left:16px}
.toc .lbl{font:600 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#83652F;margin-bottom:14px;display:block}
.toc a{display:block;font-size:13.5px;line-height:1.5;color:var(--ink-soft);text-decoration:none;padding:6px 0;transition:color .3s var(--ease)}
.toc a.l3{padding-left:14px;font-size:12.5px}
.toc a:hover,.toc a.on{color:#83652F}
.toc a.on{font-weight:600}
.share{margin-top:28px;padding-top:22px;border-top:1px solid #E0D3BA}
.share .lbl{font:600 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#83652F;margin-bottom:12px;display:block}
.share .row{display:flex;gap:8px;flex-wrap:wrap}
.share a,.share button{width:36px;height:36px;display:grid;place-items:center;border:1px solid #DDCFB6;border-radius:50%;background:#FCF9F2;color:var(--ink-soft);cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.share a:hover,.share button:hover{background:var(--canvas-2);color:var(--td);border-color:var(--canvas-2)}
.share svg{width:15px;height:15px;fill:currentColor}
.share .copied{font-size:11.5px;color:#83652F;margin-top:8px;display:none}
.share .copied.on{display:block}

.art-body{max-width:720px}
.art-body>p:first-child{font-size:19px;line-height:1.8;color:var(--ink-soft)}
.art-body p{font-size:17px;line-height:1.85;color:var(--ink);margin-bottom:20px}
.art-body h2{font-size:clamp(23px,2.6vw,31px);color:var(--ink);margin:40px 0 14px;scroll-margin-top:110px}
.art-body h3{font-size:20px;color:var(--ink);margin:30px 0 12px;scroll-margin-top:110px}
.art-body ul,.art-body ol{margin:0 0 20px 22px}
.art-body li{font-size:16.5px;line-height:1.8;color:var(--ink);margin-bottom:8px}
.art-body blockquote{margin:28px 0;padding:4px 0 4px 24px;border-left:2px solid var(--gold);font-family:var(--serif);font-style:italic;font-size:21px;line-height:1.5;color:var(--ink)}
.art-body a{color:#83652F}
.art-body strong{font-weight:600}
.art-body table{width:100%;border-collapse:collapse;margin:0 0 24px;font-size:15px}
.art-body th,.art-body td{border:1px solid #E0D3BA;padding:10px 12px;text-align:left}
.art-body th{background:#F0E7D6;font-weight:600}

/* takeaways */
.takeaway{background:#FCF9F2;border:1px solid #E4D9C4;border-left:3px solid var(--gold);border-radius:6px;padding:24px 26px;margin:0 0 34px}
.takeaway .lbl{font:600 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#83652F;display:block;margin-bottom:14px}
.takeaway ul{margin:0;list-style:none}
.takeaway li{position:relative;padding-left:22px;font-size:15.5px;line-height:1.7;color:var(--ink);margin-bottom:9px}
.takeaway li:last-child{margin-bottom:0}
.takeaway li::before{content:"";position:absolute;left:0;top:10px;width:7px;height:7px;border-radius:50%;background:var(--gold)}

/* recipe card */
.recipe{background:#FCF9F2;border:1px solid #E4D9C4;border-radius:8px;overflow:hidden;margin:34px 0}
.recipe .rhd{background:var(--canvas-2);padding:20px 26px;color:var(--td)}
.recipe .rhd .lbl{font:600 10.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft)}
.recipe .rhd h2{font-size:23px;color:var(--td);margin:8px 0 0}
.recipe .rfacts{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #E4D9C4}
.recipe .rfacts div{padding:16px 14px;text-align:center;border-right:1px solid #E4D9C4}
.recipe .rfacts div:last-child{border-right:0}
.recipe .rfacts span{display:block;font:600 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#9AA69D;margin-bottom:7px}
.recipe .rfacts b{font-size:15px;color:var(--ink);font-weight:600}
.recipe .rbd{padding:26px}
.recipe .rbd h3{font-size:17px;color:var(--ink);margin:0 0 14px}
.recipe .rbd h3:not(:first-child){margin-top:28px}
.recipe .rbd ul,.recipe .rbd ol{margin:0 0 0 20px}
.recipe .rbd li{font-size:15.5px;line-height:1.75;color:var(--ink);margin-bottom:8px}
.recipe .rnote{margin-top:24px;padding:16px 18px;background:#F0E7D6;border-radius:5px;font-size:14.5px;line-height:1.7;color:var(--ink-soft)}
.recipe .rnote b{color:var(--ink)}

/* faq accordion */
.art-faq{margin:44px 0 0}
.art-faq h2{font-size:clamp(23px,2.6vw,31px);color:var(--ink);margin-bottom:18px;scroll-margin-top:110px}
.art-faq details{border-bottom:1px solid #E0D3BA}
.art-faq summary{list-style:none;cursor:pointer;padding:17px 34px 17px 0;position:relative;font-size:16.5px;line-height:1.5;font-weight:500;color:var(--ink)}
.art-faq summary::-webkit-details-marker{display:none}
.art-faq summary::after{content:"+";position:absolute;right:4px;top:15px;font-size:21px;color:var(--gold);transition:transform .3s var(--ease)}
.art-faq details[open] summary::after{transform:rotate(45deg)}
.art-faq details[open] summary{color:#83652F}
.art-faq .ans{padding:0 0 18px}
.art-faq .ans p{font-size:16px;line-height:1.8;color:var(--ink-soft);margin-bottom:12px}
.art-faq .ans p:last-child{margin-bottom:0}

/* author box */
.author{display:flex;gap:20px;align-items:flex-start;margin:44px 0 0;padding:26px;background:#FCF9F2;border:1px solid #E4D9C4;border-radius:8px}
.author img{width:76px;height:76px;border-radius:50%;object-fit:cover;flex:none}
.author .lbl{font:600 10.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#83652F;display:block;margin-bottom:8px}
.author h3{font-size:19px;color:var(--ink);margin-bottom:8px}
.author p{font-size:14.5px;line-height:1.75;color:var(--ink-soft);margin-bottom:12px}
.author .btn{font-size:11.5px;padding:11px 20px}

/* inline cta */
.art-cta{margin:44px 0 0;padding:34px;background:var(--canvas-2);border-radius:8px;text-align:center}
.art-cta h3{font-size:23px;color:var(--td);margin-bottom:10px;max-width:24ch;margin-inline:auto}
.art-cta p{font-size:14.5px;color:var(--td-soft);margin-bottom:20px;max-width:48ch;margin-inline:auto}

/* prev / next */
.artnav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:40px 0 0}
.artnav a{position:relative;display:block;padding:22px 24px;background:#FCF9F2;border:1px solid #E4D9C4;border-radius:6px;text-decoration:none;transition:border-color .4s var(--ease),transform .4s var(--ease)}
.artnav a:hover{border-color:var(--gold);transform:translateY(-3px)}
.artnav .dir{font:600 10.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#83652F;display:block;margin-bottom:10px}
.artnav strong{font-family:var(--serif);font-size:17px;line-height:1.35;color:var(--ink);font-weight:600;display:block}
.artnav .nx{text-align:right}
.artnav .only{grid-column:1 / -1}

.rel{background:var(--ivory-2);padding:70px 0}

@media (max-width:1000px){
  .art-shell{grid-template-columns:1fr;max-width:820px}
  /* Rail moves above the article, so the contents list is a jump menu rather than a footnote. */
  .art-rail{position:static;order:1;margin-bottom:6px}
  .art-body{order:2;max-width:none}
  .toc{border-left:0;border-top:1px solid #E0D3BA;border-bottom:1px solid #E0D3BA;padding:18px 0;max-height:200px;overflow-y:auto}
  .share{border-top:0;padding-top:0;margin-top:20px}
  .share .row{gap:10px}
}
@media (max-width:640px){
  .art-hero{padding:140px 0 48px}
  .art-fig{margin-top:-24px}
  .recipe .rfacts{grid-template-columns:1fr 1fr}
  .recipe .rfacts div:nth-child(2){border-right:0}
  .recipe .rfacts div:nth-child(1),.recipe .rfacts div:nth-child(2){border-bottom:1px solid #E4D9C4}
  .author{flex-direction:column}
  .artnav{grid-template-columns:1fr}
  .artnav .nx{text-align:left}
}
.art-disc{margin:40px 0 0;padding:18px 20px;background:#F0E7D6;border-radius:6px;font-size:13.5px;line-height:1.75;color:var(--ink-soft)}

/* footer: social icons and build credit */
.f-social{list-style:none;display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.f-social li{margin:0}
.f-social a,.f-social .pending{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(192,154,92,.3);border-radius:50%;color:var(--td-soft);transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease)}
.f-social a:hover{background:var(--gold);border-color:var(--gold);color:#14231B;transform:translateY(-3px)}
/* Awaiting a URL: looks identical to a live icon, just not clickable yet. */
.f-social .pending{cursor:default}
.f-social svg{width:17px;height:17px;fill:currentColor}
.f-credit a{color:var(--gold-soft);border-bottom:1px solid rgba(212,185,140,.35)}
.f-credit a:hover{color:var(--gold);border-color:var(--gold)}
@media (max-width:760px){.f-legal{justify-content:flex-start;gap:10px;flex-direction:column}}

/* ============ legal pages ============ */
.legal{background:var(--ivory);padding:0 0 80px}
.legal-body{max-width:760px;margin:0 auto;padding:44px clamp(20px,4vw,48px) 0}
.legal-body .updated{font:600 11.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#83652F;margin-bottom:28px}
.legal-body .intro{font-size:18px;line-height:1.8;color:var(--ink-soft);margin-bottom:26px}
.legal-body h2{font-size:clamp(21px,2.4vw,27px);color:var(--ink);margin:38px 0 12px;scroll-margin-top:110px}
.legal-body h3{font-size:18px;color:var(--ink);margin:26px 0 10px}
.legal-body p{font-size:16px;line-height:1.85;color:var(--ink);margin-bottom:16px}
.legal-body ul,.legal-body ol{margin:0 0 18px 22px}
.legal-body li{font-size:16px;line-height:1.8;color:var(--ink);margin-bottom:8px}
.legal-body a{color:#83652F}
.legal-body strong{font-weight:600}
.legal-note{margin:28px 0;padding:20px 22px;background:#FCF9F2;border:1px solid #E4D9C4;border-left:3px solid var(--gold);border-radius:6px}
.legal-note p{font-size:15.5px;margin-bottom:0;color:var(--ink)}
.legal-contact{margin-top:34px;padding:24px 26px;background:var(--canvas-2);border-radius:8px}
.legal-contact h3{color:var(--td);font-size:19px;margin:0 0 12px}
.legal-contact p{color:var(--td-soft);font-size:15px;margin-bottom:6px}
.legal-contact a{color:var(--gold-soft)}
.legal-toc{margin:0 0 30px;padding:20px 22px;background:#FCF9F2;border:1px solid #E4D9C4;border-radius:6px}
.legal-toc span{display:block;font:600 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#83652F;margin-bottom:12px}
.legal-toc ol{margin:0 0 0 18px;columns:2;column-gap:26px}
.legal-toc li{font-size:14px;line-height:1.6;margin-bottom:6px}
.legal-toc a{text-decoration:none}
.legal-toc a:hover{text-decoration:underline}
@media (max-width:620px){.legal-toc ol{columns:1}}

/* A field must never move under the cursor. The reveal animation slides .part
   blocks up by 30px, which shifted the newsletter fields as readers reached for
   them. Forms fade in without sliding, and anything else settles on interaction. */
.io form.part{transform:none}
.io .part:focus-within{opacity:1;transform:none;transition:none}

/* ============ recipes ============ */
.rhero{position:relative;padding:calc(var(--navh) + 44px) 0 60px;background:linear-gradient(180deg,var(--canvas) 0%,#0C2016 100%);overflow:hidden}
.rhero::after{content:"";position:absolute;right:-160px;top:-140px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(143,174,155,.16) 0%,rgba(143,174,155,0) 70%);pointer-events:none}
.rhero .wrap{position:relative;z-index:1}
.rhero .crumb{font:600 11.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:16px}
.rhero .crumb a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid rgba(212,185,140,.35)}
.rhero h1{font-size:clamp(32px,4.4vw,54px);color:var(--td);max-width:18ch}
.rhero .lede{margin-top:16px;font-size:16.5px;line-height:1.8;color:var(--td-soft);max-width:58ch;font-weight:300}
.rsearch{margin-top:28px;display:flex;gap:10px;max-width:520px;flex-wrap:wrap}
.rsearch input{flex:1;min-width:220px;background:rgba(246,241,231,.07);border:1px solid rgba(212,185,140,.3);border-radius:4px;padding:14px 16px;font:400 14.5px/1.2 var(--sans);color:var(--td)}
.rsearch input::placeholder{color:rgba(185,199,189,.52)}
.rsearch input:focus{outline:none;border-color:var(--gold);background:rgba(246,241,231,.11)}
.rsearch button{border:0;cursor:pointer}
.rsearch .clear{align-self:center;font:600 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--td-soft);text-decoration:none;border-bottom:1px solid rgba(185,199,189,.35)}

/* listing cards: the numbers lead, not the prose */
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.rcard{position:relative;background:#FCF9F2;border:1px solid #E4D9C4;border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease)}
.rcard:hover{transform:translateY(-5px);box-shadow:0 20px 38px rgba(34,48,42,.12);border-color:var(--gold)}
.rcard .rph{aspect-ratio:4/3;overflow:hidden;position:relative}
.rcard .rph img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease-soft)}
.rcard:hover .rph img{transform:scale(1.06)}
.rcard .rtag{position:absolute;left:12px;bottom:12px;font:600 10.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#14231B;background:var(--gold);padding:6px 11px;border-radius:20px}
.rcard .rbody{padding:18px 20px 20px;display:flex;flex-direction:column;gap:12px;flex:1}
.rcard h2{font-size:20px;line-height:1.28;color:var(--ink)}
.rcard h2 a{text-decoration:none;color:inherit}
.rcard h2 a::after{content:"";position:absolute;inset:0;z-index:2}
.rfacts-mini{list-style:none;display:flex;flex-wrap:wrap;gap:0;border-top:1px solid #E8DDC7;border-bottom:1px solid #E8DDC7;margin:0}
.rfacts-mini li{flex:1;min-width:0;padding:9px 6px;text-align:center;border-right:1px solid #E8DDC7}
.rfacts-mini li:last-child{border-right:0}
.rfacts-mini span{display:block;font:600 9.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#9AA69D;margin-bottom:5px}
.rfacts-mini b{font-size:12.5px;color:var(--ink);font-weight:600}
.rnutri{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0}
.rnutri li{font:600 11px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:#83652F;background:rgba(192,154,92,.14);border-radius:20px;padding:6px 11px}
.rdiet{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.rdiet span{font:500 11px/1 var(--sans);color:var(--ink-soft);border:1px solid #E0D3BA;border-radius:20px;padding:5px 10px}
.rcard .read-more{margin-top:auto;position:relative;z-index:3;font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#83652F;display:flex;align-items:center;gap:6px;text-decoration:none}
.rcard .read-more::after{content:"→";transition:transform .4s var(--ease)}
.rcard:hover .read-more::after{transform:translateX(5px)}

/* detail */
.rdetail-hero{background:linear-gradient(180deg,var(--canvas) 0%,#0C2016 100%);padding:calc(var(--navh) + 34px) 0 40px}
/* Photo left, text right. Done with order rather than markup so the h1 stays
   first in the document for screen readers and crawlers. */
.rd-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,60px);align-items:center}
.rd-intro{order:2}
.rd-photo{order:1}
.rd-intro .crumb{font:600 11.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:14px}
.rd-intro .crumb a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid rgba(212,185,140,.35)}
.rd-intro h1{font-size:clamp(30px,3.9vw,48px);color:var(--td)}
.rd-intro .standfirst{margin-top:16px;font-size:16.5px;line-height:1.75;color:var(--td-soft);font-weight:300;max-width:46ch}
.rd-meta{margin-top:20px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;font:600 11.5px/1.6 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--td-soft)}
.rd-meta .who{display:flex;align-items:center;gap:9px}
.rd-meta .who img{width:30px;height:30px;border-radius:50%;object-fit:cover;border:1px solid rgba(212,185,140,.4)}
.rd-meta .dot{color:var(--gold)}
.rd-diet{margin-top:16px;display:flex;flex-wrap:wrap;gap:7px}
.rd-diet span{font:500 11px/1 var(--sans);color:var(--gold-soft);border:1px solid rgba(212,185,140,.35);border-radius:20px;padding:6px 12px}
/* Fill the column so the photo squares up with the text beside it, instead of
   floating short with dead space above and below. */
/* Flush with the hero's bottom edge: overlapping the facts bar hid two of the figures. */
.rd-photo{margin:0;align-self:stretch;min-height:360px}
.rd-photo img{width:100%;height:100%;object-fit:cover;border-radius:12px;display:block;box-shadow:0 26px 52px rgba(0,0,0,.32)}

.rd-facts{background:var(--canvas-2)}
.rd-facts ul{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:0}
.rd-facts li{padding:22px 14px;text-align:center;border-right:1px solid rgba(246,241,231,.13)}
.rd-facts li:last-child{border-right:0}
.rd-facts span{display:block;font:600 10px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:8px}
.rd-facts b{font-size:16px;color:var(--td);font-weight:600}

.rd-cook{background:var(--ivory);padding:64px 0}
.rd-cols{display:grid;grid-template-columns:340px minmax(0,1fr);gap:clamp(30px,4vw,60px);align-items:start}
.rd-ing{position:sticky;top:calc(var(--navh) - 30px);background:#FCF9F2;border:1px solid #E4D9C4;border-radius:8px;padding:26px}
.rd-ing h2{font-size:22px;color:var(--ink);margin-bottom:16px}
.rd-ing h3{font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:#83652F;margin:26px 0 12px;font-family:var(--sans);font-weight:600}
.rd-ing ul{list-style:none;margin:0}
/* Bullets belong to the ingredients only. The nutrition table is also a direct
   child ul, so it was picking up dots and an indent meant for ingredients. */
.rd-ing>ul:not(.rd-nutri) li{position:relative;padding-left:20px;font-size:15px;line-height:1.65;color:var(--ink);margin-bottom:10px}
.rd-ing>ul:not(.rd-nutri) li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.rd-nutri{border-top:1px solid #E8DDC7}
.rd-nutri li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;margin:0;border-bottom:1px solid #E8DDC7;font-size:14px}
.rd-nutri span{color:var(--ink-soft)}
.rd-nutri b{color:var(--ink);font-weight:600}
.rd-ing .btn{margin-top:22px;width:100%;font-size:11.5px;padding:13px 16px}

.rd-method h2{font-size:26px;color:var(--ink);margin-bottom:20px}
.rd-method ol{list-style:none;counter-reset:step;margin:0}
.rd-method ol li{counter-increment:step;position:relative;padding:0 0 22px 54px;margin-bottom:6px}
.rd-method ol li::before{content:counter(step);position:absolute;left:0;top:-2px;width:36px;height:36px;border-radius:50%;background:var(--canvas-2);color:var(--td);font:600 14px/36px var(--sans);text-align:center}
.rd-method ol li::after{content:"";position:absolute;left:17.5px;top:38px;bottom:0;width:1px;background:#E0D3BA}
.rd-method ol li:last-child::after{display:none}
.rd-method ol li strong{display:block;font-size:15px;color:#83652F;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}
.rd-method ol li span{font-size:16.5px;line-height:1.8;color:var(--ink)}
.rd-note{margin-top:10px;padding:18px 20px;background:#F0E7D6;border-radius:6px;font-size:14.5px;line-height:1.75;color:var(--ink-soft)}
.rd-note b{color:var(--ink)}

.rd-why{background:var(--ivory-2);padding:66px 0}
.rd-why-in{max-width:720px;margin:0 auto}
.rd-why-in .kicker{margin-bottom:10px}
.rd-why-in h2{font-size:clamp(22px,2.5vw,30px);color:var(--ink);margin:34px 0 14px}
.rd-why-in h3{font-size:19px;color:var(--ink);margin:26px 0 10px}
.rd-why-in p{font-size:16.5px;line-height:1.85;color:var(--ink);margin-bottom:18px}
.rd-why-in ul,.rd-why-in ol{margin:0 0 18px 22px}
.rd-why-in li{font-size:16px;line-height:1.8;color:var(--ink);margin-bottom:8px}
.rd-why-in a{color:#83652F}

@media (max-width:1020px){
  .rgrid{grid-template-columns:1fr 1fr}
  .rd-grid{grid-template-columns:1fr;gap:26px}
  /* Stacked: lead with the title so there is context before a tall photo. */
  .rd-intro{order:1}
  .rd-photo{order:2;margin:6px 0 0;align-self:auto;min-height:0}
  .rd-photo img{height:auto;object-fit:fill;border-radius:10px}
  .rd-photo img{border-radius:10px}
  .rdetail-hero{padding-bottom:32px}
  .rd-cols{grid-template-columns:1fr}
  .rd-ing{position:static}
}
@media (max-width:560px){
  .rgrid{grid-template-columns:1fr}
  .rd-method ol li{padding-left:44px}
  .rd-method ol li::before{width:30px;height:30px;line-height:30px;font-size:13px}
  .rd-method ol li::after{left:14.5px;top:32px}
}

/* ============ 30 day challenge ============ */
.ch-hero{background:linear-gradient(180deg,var(--canvas) 0%,#0C2016 100%);padding:calc(var(--navh) + 40px) 0 56px;position:relative;overflow:hidden}
.ch-hero::after{content:"";position:absolute;left:-160px;bottom:-180px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(192,154,92,.14) 0%,rgba(192,154,92,0) 70%);pointer-events:none}
.ch-hero .wrap{position:relative;z-index:1}
.ch-grid{display:grid;grid-template-columns:0.8fr 1.2fr;gap:clamp(30px,5vw,64px);align-items:center}
.ch-cover{margin:0}
.ch-cover img{width:100%;max-width:330px;border-radius:6px;display:block;box-shadow:0 30px 60px rgba(0,0,0,.45)}
.ch-intro .crumb{font:600 11.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:14px}
.ch-intro .crumb a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid rgba(212,185,140,.35)}
.ch-intro h1{font-size:clamp(30px,3.9vw,48px);color:var(--td);max-width:18ch;margin-top:6px}
.ch-intro .standfirst{margin-top:18px;font-size:16.5px;line-height:1.8;color:var(--td-soft);max-width:52ch;font-weight:300}
.ch-cta{margin-top:28px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ch-meta{font:600 11.5px/1.6 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--td-soft)}

.ch-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ch-card{background:#FCF9F2;border:1px solid #E4D9C4;border-left:3px solid var(--gold);border-radius:6px;padding:26px 24px}
.ch-card h3{font-size:20px;color:var(--ink);margin-bottom:10px}
.ch-card p{font-size:14.5px;line-height:1.7;color:var(--ink-soft)}

.ch-quote{max-width:760px;margin:44px auto 0;text-align:center}
.ch-quote p{font-family:var(--serif);font-style:italic;font-size:clamp(19px,2.2vw,24px);line-height:1.55;color:var(--ink)}
.ch-quote .attr{font-family:var(--sans);font-style:normal;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#83652F;margin-top:16px}

.ch-peek{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:1000px;margin:0 auto}
.ch-peek li{background:#FCF9F2;border:1px solid #E4D9C4;border-radius:6px;padding:18px 18px 20px;font-size:14.5px;line-height:1.5;color:var(--ink)}
.ch-peek span{display:block;font:600 10.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#83652F;margin-bottom:8px}
.ch-more{text-align:center;margin-top:24px;font-size:14.5px;color:var(--ink-soft)}

@media (max-width:980px){
  .ch-grid{grid-template-columns:1fr;gap:30px}
  .ch-cover{order:2;justify-self:center}
  .ch-cover img{max-width:260px}
  .ch-intro{order:1}
  .ch-cards{grid-template-columns:1fr}
  .ch-peek{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){.ch-peek{grid-template-columns:1fr}}

/* ============ free e-books ============ */
.eb-hero{position:relative;padding:calc(var(--navh) + 44px) 0 58px;background:linear-gradient(180deg,var(--canvas) 0%,#0C2016 100%);overflow:hidden}
.eb-hero::after{content:"";position:absolute;right:-150px;top:-130px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(192,154,92,.15) 0%,rgba(192,154,92,0) 70%);pointer-events:none}
.eb-hero .wrap{position:relative;z-index:1}
.eb-hero .crumb{font:600 11.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:16px}
.eb-hero .crumb a{color:var(--gold-soft);text-decoration:none;border-bottom:1px solid rgba(212,185,140,.35)}
.eb-hero h1{font-size:clamp(32px,4.3vw,52px);color:var(--td);max-width:17ch}
.eb-hero .lede{margin-top:16px;font-size:16.5px;line-height:1.8;color:var(--td-soft);max-width:58ch;font-weight:300}

.eb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.eb-card{display:flex;flex-direction:column;background:#FCF9F2;border:1px solid #E4D9C4;border-radius:8px;
  overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease)}
.eb-card:hover{transform:translateY(-5px);box-shadow:0 22px 42px rgba(34,48,42,.14);border-color:var(--gold)}
.eb-shot{height:250px;position:relative;background:var(--ivory-2);border-bottom:1px solid #E4D9C4}
.eb-shot::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:75%;aspect-ratio:1;
  border-radius:50%;background:radial-gradient(circle,rgba(192,154,92,.16) 0%,rgba(192,154,92,0) 70%)}
/* Absolutely positioned against a panel of known height, so the box is definite and
   object-fit can letterbox any cover ratio. Percentage sizing on a centred grid item
   resolved against its own content instead, and the cover spilled over the text. */
.eb-shot img{position:absolute;inset:0;width:100%;height:100%;padding:26px;object-fit:contain;
  filter:drop-shadow(0 14px 24px rgba(34,48,42,.30));transition:transform .5s var(--ease-soft)}
.eb-card:hover .eb-shot img{transform:translateY(-3px) scale(1.02)}
.eb-body{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.eb-body h2{font-size:21px;line-height:1.28;color:var(--ink)}
.eb-author{margin-top:12px;display:flex;align-items:center;gap:9px}
.eb-author img{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:none;border:1px solid rgba(160,124,63,.45)}
.eb-author span{font-size:13px;color:var(--ink-soft)}
.eb-author b{font-weight:600;color:var(--ink)}
.eb-blurb{margin-top:14px;font-size:14px;line-height:1.7;color:var(--ink-soft)}
.eb-foot{margin-top:auto;padding-top:20px}
.eb-meta{font:600 10.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#83652F;margin-bottom:14px}
/* Stacked with reserved height, so the button sits at the same line across a row
   whether or not that book has a "what is inside" link. */
.eb-actions{display:flex;flex-direction:column;align-items:flex-start;gap:11px;min-height:74px}
.eb-actions .btn{font-size:11.5px;padding:13px 20px}
.eb-more{font:600 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#83652F;text-decoration:none;
  border-bottom:1px solid rgba(160,124,63,.4);padding-bottom:3px}
.eb-more:hover{border-color:#83652F}

@media (max-width:1020px){.eb-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.eb-grid{grid-template-columns:1fr}.eb-shot{height:220px}}

  .eb-author{justify-content:center}
}

/* ============ meet Jinal: pull quote and closing line ============ */
.meet-quote{margin:26px 0 22px;padding:4px 0 4px 22px;border-left:2px solid var(--gold);
  font-family:var(--serif);font-style:italic;font-size:clamp(18px,2vw,21px);line-height:1.55;color:var(--ink)}
.meet-close{font-weight:600;color:#83652F}

/* ============ the name ============ */
.brand{background:linear-gradient(180deg,var(--canvas) 0%,#0C2016 100%);padding:78px 0;position:relative;overflow:hidden;text-align:center}
.brand::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle,rgba(192,154,92,.13) 0%,rgba(192,154,92,0) 70%);pointer-events:none}
.brand .wrap{position:relative;z-index:1}
.brand .kicker{color:var(--gold-soft);margin-bottom:22px}
.brand-mark{display:flex;align-items:flex-start;justify-content:center;gap:clamp(18px,4vw,46px);flex-wrap:wrap;margin-bottom:30px}
.bm-part{display:flex;flex-direction:column;align-items:center;gap:8px}
.bm-part b{font-family:var(--serif);font-size:clamp(34px,5vw,54px);font-weight:600;color:var(--td);line-height:1}
.bm-part em{font-style:normal;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft)}
.bm-plus{font-family:var(--serif);font-size:clamp(26px,3.4vw,38px);color:var(--gold);line-height:1.1;margin-top:6px}
.brand-copy{max-width:64ch;margin:0 auto;font-size:16px;line-height:1.85;color:var(--td-soft);font-weight:300}
@media (max-width:560px){.brand{padding:60px 0}.brand-mark{gap:14px}}

/* ============ grid variants ============
   These replace inline grid-template-columns on the markup. An inline style beats
   every media query in this file, so those grids kept their desktop column count
   on a phone and the content was clipped off the side of the screen. */
.cond-grid.g-4{grid-template-columns:repeat(4,1fr)}
.steps.s-4{grid-template-columns:repeat(4,1fr)}
/* Fits however many related items exist, and collapses on its own. */
.jr-grid.g-auto,.rgrid.g-auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}

@media (max-width:900px){.cond-grid.g-4{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.steps.s-4{grid-template-columns:1fr}}
@media (max-width:560px){.cond-grid.g-4{grid-template-columns:1fr}}

/* ============ touch targets: carousel dots ============
   The dots stay visually small, but each one carries a 44px-tall invisible
   hit area so it can actually be tapped on a phone. The hit area is the width
   of the dot plus one gap, so neighbouring dots tile rather than overlap and
   a tap never lands on the wrong slide. .h-dot drops overflow:hidden (which
   would clip the hit area) and its .fill does its own rounding instead. */
.h-dot{overflow:visible}
.h-dot .fill{border-radius:2px}
.h-dot::after,.s-dot::after{content:"";position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%);height:44px;border-radius:inherit}
.h-dot::after{width:calc(100% + 12px)}
.s-dot{position:relative}
.s-dot::after{width:calc(100% + 10px)}
