/* ==========================================================================
   The Longevity Cell Bank: layout, colour and components.
   One token block (below) owns every colour, space and radius. The other two
   stylesheets build on it:
     experience.css  motion and interaction (transform/opacity only)
     typography.css  type scale and font roles
   Rule of thumb: this file never sets a font; typography.css never sets a
   colour or a spacing value.
   ========================================================================== */

:root{
  /* brand (brand guide) */
  --ink:#201E1C;          /* text, logos, filled buttons */
  --ink-soft:#463F39;     /* body copy and leads */
  --bronze:#6E6153;       /* labels, captions, metadata */
  --gold:#AE8E5A;         /* hairline rules, borders, lens ring ONLY: never text, never a fill */
  --vellum:#F3EFE7;
  --cream:#F5EFDF;        /* the client's warm cream */
  --bone:#E8E6E1;
  --vault:#0B0B0B;        /* inside the cell lens only */

  /* grounds: the Preservation Line, warm at the top and cool at the bottom */
  --ground-1:var(--cream);                                   /* hero */
  --ground-2:var(--vellum);                                  /* trust, descent */
  --ground-3:#EEEBE4;                                        /* fallback for the next line */
  --ground-3:color-mix(in srgb,var(--vellum),var(--bone));   /* vault, ownership, FAQ */
  --ground-4:var(--bone);                                    /* brochure, consult, facility, footer, articles */
  --nav-bg:rgba(245,239,223,.92);
  --panel-bg:rgba(232,230,225,.94);

  /* lines and washes */
  --hair:rgba(32,30,28,.13);
  --hair-strong:rgba(32,30,28,.30);
  --wash:rgba(32,30,28,.045);
  --focus:var(--ink);     /* 2px ink outline, 3px offset: at least 3:1 on every ground */

  /* the temperature line (counter, rail and stage temperatures only) */
  --temp-warm:#5E4A25;
  --temp-cool:#3B5238;
  --temp-deep:#2B5B61;
  --temp-cold:#1E4E56;

  /* spacing, 4px base */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:64px; --s-9:96px;
  --gutter:clamp(16px,5vw,72px);
  --section-y:clamp(72px,10vw,128px);
  --section-y-tight:clamp(48px,6vw,80px);
  --wrap:1180px;
  --measure:68ch;
  --nav-h:68px;

  /* radius */
  --r-0:0;
  --r-1:4px;
  --r-2:8px;
  --r-round:50%;

  --ease-out:cubic-bezier(.2,.75,.25,1);
}

/* ===== Self-hosted fonts (subset to the Latin and Arabic ranges in use) ===== */
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/bodoni-moda-400.woff2') format('woff2')}
@font-face{font-family:'Bodoni Moda';font-style:italic;font-weight:400 700;font-display:swap;src:url('fonts/bodoni-moda-400-italic.woff2') format('woff2')}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:300 600;font-display:swap;src:url('fonts/hanken-grotesk-variable.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/ibm-plex-mono-400.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/ibm-plex-mono-500.woff2') format('woff2')}
@font-face{font-family:'Noto Naskh Arabic';font-style:normal;font-weight:500 600;font-display:swap;src:url('fonts/noto-naskh-arabic-500.woff2') format('woff2')}

/* ===== Base ===== */
*,*::before,*::after{box-sizing:border-box}
html{color-scheme:light;scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground-1);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
p{margin:0}
h1,h2,h3,h4{margin:0}
ul,ol,dl,dd{margin:0;padding:0}
[hidden]{display:none!important}
section[id]{scroll-margin-top:var(--s-4)}
button,a,input,select,textarea{touch-action:manipulation;-webkit-tap-highlight-color:rgba(32,30,28,.12)}
main:focus{outline:none}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.faqq:focus-visible,.stagehead:focus-visible{outline-offset:-2px}
.ar{direction:rtl;text-align:left}
.ctaband .ar,.consentnote .ar{text-align:center}
.wrap{width:min(100% - 2*var(--gutter),var(--wrap));margin-inline:auto}
.wrap.narrow{width:min(100% - 2*var(--gutter),760px)}
.emblem{display:inline-block;object-fit:contain}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link{position:fixed;top:var(--s-3);left:var(--s-3);z-index:100;padding:var(--s-4) var(--s-5);background:var(--ink);color:var(--vellum);border-radius:var(--r-1);transform:translateY(-200%)}
.skip-link:focus{transform:none}

/* ===== Navigation ===== */
nav.top{position:fixed;inset:0 0 auto 0;z-index:60;height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);padding-inline:var(--gutter);background:var(--nav-bg);backdrop-filter:blur(14px);border-bottom:1px solid var(--hair)}
.brandmark{display:flex;align-items:center;gap:var(--s-3);min-height:44px}
.brandmark .emblem{width:32px;height:auto}
.wordmark{color:var(--ink)}
.navlinks{display:flex;align-items:center;gap:var(--s-5)}
.navlinks a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);border-bottom:1px solid transparent}
.navlinks a:not(.book):hover,.navlinks a[aria-current]{border-bottom-color:var(--gold)}
.book{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--s-5);border:1px solid var(--ink);border-radius:var(--r-1);background:none;color:var(--ink)}
.navlinks a.book{border-bottom-color:var(--ink)}
.navlinks a.book:hover{background:var(--ink);color:var(--vellum)}
.navtoggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:var(--s-3);background:none;border:0;cursor:pointer}
.navtoggle span{display:block;width:100%;height:1.5px;background:var(--ink)}
.navtoggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.navtoggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.navtoggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ===== The Preservation Line: counter and rail (protected) ===== */
.counter{position:fixed;right:var(--s-4);bottom:var(--s-4);z-index:60;--tc:var(--temp-warm);min-width:140px;padding:var(--s-3) var(--s-4);background:var(--bone);border:1px solid color-mix(in srgb,var(--tc) 55%,transparent);border-radius:var(--r-1);box-shadow:0 6px 20px rgba(32,30,28,.14);pointer-events:none}
.counter .cval{color:var(--tc)}
.counter .clab,.counter .ctitle{color:var(--bronze)}
.counter .clab{margin-top:var(--s-1)}
.counter .ctitle{margin-bottom:var(--s-2)}
.counter:has(~ main :focus-visible){opacity:0}
.rail{position:fixed;left:28px;top:0;bottom:0;width:1px;z-index:55;background:var(--hair)}
.railfill{position:absolute;inset:0 auto 0 0;width:1px;background:linear-gradient(var(--temp-warm),var(--temp-cold));transform:scaleY(0);transform-origin:top}
.railmark{position:absolute;left:-3px;top:0;width:7px;height:7px;border-radius:var(--r-round);background:var(--temp-warm);transform:translateY(-50%)}

/* ===== Buttons ===== */
.btnfill,.btnghost,.tiercta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 var(--s-5);border-radius:var(--r-1);border:1px solid var(--ink);cursor:pointer;text-align:center}
.btnfill{background:var(--ink);color:var(--vellum)}
.btnfill:hover{background:var(--ink-soft);border-color:var(--ink-soft)}
.btnghost,.tiercta{background:transparent;color:var(--ink)}
.btnghost:hover,.tiercta:hover{background:var(--wash)}
button:disabled{opacity:.65;cursor:wait}

/* ===== Section shell ===== */
.sec{position:relative;padding-block:var(--section-y);background:var(--ground-3);border-top:1px solid var(--hair)}
.sechead{max-width:720px}
.sechead .h2,.eyebrow+.h2{margin-top:var(--s-4)}
.sechead .leadsub{margin-top:var(--s-5);max-width:60ch}
.leadsub{color:var(--ink-soft)}

/* ===== Home hero ===== */
.hero{position:relative;display:grid;align-content:center;min-height:max(720px,100svh);padding:calc(var(--nav-h) + var(--s-8)) 0 var(--s-9);background:var(--ground-1);isolation:isolate}
.hero-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:var(--s-8);align-items:center}
.heroinner{min-width:0}
.heroinner .h1 em{color:var(--bronze)}
.heroinner .subhead{margin-top:var(--s-5);max-width:46ch;color:var(--ink-soft)}
.ctas{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-6)}
.hero .artag{margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid var(--gold);max-width:420px;color:var(--ink)}
.hero-visual{width:100%;max-width:540px;margin-inline:auto;pointer-events:none}
.cell-lens{position:relative;aspect-ratio:1;border-radius:var(--r-round);overflow:hidden;background:var(--vault);box-shadow:0 0 0 1px var(--gold)}
.cell-lens .cell-image{width:112%;height:112%;max-width:none;margin:-6%;object-fit:contain}
.cell-caption{margin-top:var(--s-4);text-align:center;color:var(--bronze)}
.hero-bottom{position:absolute;left:var(--gutter);bottom:var(--s-5);z-index:3}
.motion-toggle{min-height:44px;padding:var(--s-2) var(--s-4);border:1px solid var(--hair-strong);background:transparent;color:var(--bronze);cursor:pointer;border-radius:var(--r-1)}
.motion-toggle:hover{color:var(--ink)}

/* ===== Trust band (licence, facts, stats) ===== */
.trustband{background:var(--ground-2);border-top:0}
.trustsplit{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:var(--s-8);align-items:stretch}
.trustmain{min-width:0}
.trustmain .leadsub.ar{margin-top:var(--s-4)}
.facts{list-style:none;margin-top:var(--s-7);border-top:1px solid var(--hair-strong)}
.fact{padding:var(--s-5) 0;border-bottom:1px solid var(--hair)}
.factdesc{margin-top:var(--s-2);color:var(--ink-soft);max-width:56ch}
.factdesc .ar{display:block;margin-top:var(--s-2);color:var(--bronze)}
.trustphoto{margin:0;min-height:420px;border-radius:var(--r-2);overflow:hidden}
.trustphoto img{width:100%;height:100%;object-fit:cover;object-position:65% center}
.licnote{margin-top:var(--s-5);color:var(--bronze);max-width:60ch}
.trustproof{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:var(--s-8);margin-top:var(--s-9);padding-top:var(--s-7);border-top:1px solid var(--hair-strong)}
.trustproof .leadsub{margin-top:var(--s-4);max-width:46ch}
.statrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-6)}
.stat{border-top:1px solid var(--gold);padding-top:var(--s-4)}
.statnum{color:var(--ink)}
.statlbl{margin-top:var(--s-2);color:var(--bronze)}
.statnote{margin-top:var(--s-5);color:var(--bronze);max-width:70ch}

/* ===== The Descent (protected chain of custody) ===== */
.descent{background:var(--ground-2)}
.descent>.wrap{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--s-8);align-items:start}
.descent .sechead{position:sticky;top:calc(var(--nav-h) + var(--s-7))}
.stages{list-style:none;position:relative}
.stages::before,.stages::after{content:"";position:absolute;left:104px;top:0;bottom:0;width:1px}
.stages::before{background:var(--hair-strong)}
.stages::after{background:linear-gradient(var(--temp-warm),var(--temp-cold));transform:scaleY(var(--sp,0));transform-origin:top}
.stage{border-top:1px solid var(--hair)}
.stage:first-child{border-top:0}
.stagehead{display:grid;grid-template-columns:104px minmax(0,1fr) 28px;align-items:center;width:100%;min-height:64px;padding:var(--s-5) 0;background:none;border:0;text-align:left;color:inherit;cursor:pointer}
.stagehead:hover{background:var(--wash)}
.stagetemp{position:relative;display:block;padding-right:var(--s-5);text-align:right}
.stagetemp::after{content:"";position:absolute;right:-4.5px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:var(--r-round);background:currentColor}
.stage[data-temp="37"] .stagetemp{color:var(--temp-warm)}
.stage[data-temp="4"] .stagetemp{color:var(--temp-cool)}
.stage[data-temp="-80"] .stagetemp{color:var(--temp-deep)}
.stage[data-temp="-196"] .stagetemp{color:var(--temp-cold)}
.stagebody{display:block;min-width:0;padding-left:var(--s-6)}
.stagelbl,.stagetitle{display:block}
.stagetitle{margin-top:var(--s-1);overflow-wrap:anywhere}
.stagelbl{color:var(--bronze)}
.stagechev{width:9px;height:9px;justify-self:end;border-right:1.5px solid var(--bronze);border-bottom:1.5px solid var(--bronze);transform:rotate(45deg);transform-origin:70% 70%}
.stagehead[aria-expanded="true"] .stagechev{transform:rotate(225deg);border-color:var(--ink)}
.stage.active{box-shadow:inset 2px 0 0 var(--gold)}
.stagepanel{display:grid;grid-template-rows:0fr}
.stagehead[aria-expanded="true"]+.stagepanel{grid-template-rows:1fr}
.stagepanelin{min-height:0;overflow:hidden}
.stagedesc{margin:0 0 var(--s-4);padding-left:calc(104px + var(--s-6));max-width:calc(60ch + 104px + var(--s-6));color:var(--ink-soft)}
.stagefig{margin:0 0 var(--s-6);padding-left:calc(104px + var(--s-6));max-width:calc(560px + 104px + var(--s-6))}
.stagefig img{display:block;width:100%;max-width:none;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r-2);border:1px solid var(--hair)}
html:not(.enhanced) .stagepanel{grid-template-rows:1fr}

/* ===== The Vault ===== */
.vault{background:var(--ground-3)}
.vaultphoto{position:relative;margin-top:var(--s-8);height:clamp(260px,38vw,480px);overflow:hidden;border-block:1px solid var(--hair-strong)}
.vaultphoto img{width:100%;height:100%;object-fit:cover}
.specgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s-8)}
.spec{display:flex;flex-direction:column;align-items:flex-start;padding:var(--s-5) 0 var(--s-6);border-top:1px solid var(--hair-strong)}
.spec .spectitle,.spec .specdesc{margin-top:var(--s-3)}
.spec .specdesc{color:var(--ink-soft);flex:1}
.speccite{display:inline-flex;align-items:center;min-height:44px;margin-top:var(--s-2);color:var(--ink);border-bottom:1px solid var(--gold)}
.speccite:hover{background:var(--wash)}
.specid{color:var(--bronze)}
.vaultbody{margin-top:var(--s-8)}

.usesbox{margin-top:var(--s-8);padding-top:var(--s-7);border-top:1px solid var(--hair-strong)}
.usesgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-8);margin-top:var(--s-6)}
.usescolnote{margin-top:var(--s-2);color:var(--ink-soft)}
.usescolnote-warn{padding-left:var(--s-3);border-left:2px solid var(--gold);color:var(--ink)}
.useslist,.usesresearch{list-style:none;margin-top:var(--s-4)}
.useslist li{padding:var(--s-3) 0;border-top:1px solid var(--hair)}
.useslist li:last-child,.usesresearch li:last-child{border-bottom:1px solid var(--hair)}
.useslist .ar,.usesrf .ar,.usescolhead .ar{display:block;margin-top:var(--s-1);color:var(--bronze)}
.usesresearch li{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4);padding:var(--s-3) 0;border-top:1px solid var(--hair)}
.usessrc{margin-top:var(--s-4);color:var(--bronze)}
.usesdoi,.usessrc a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);border-bottom:1px solid var(--gold)}
.usesdoi{white-space:nowrap}
.usesdoi:hover,.usessrc a:hover{background:var(--wash)}
.extlink{margin-left:var(--s-1)}
.refdrawer{margin-top:var(--s-7);border-top:1px solid var(--hair-strong)}
.refdrawer summary{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);min-height:56px;cursor:pointer;list-style:none}
.refdrawer summary::-webkit-details-marker{display:none}
.refsummary::before{content:"+ "}
.refdrawer[open] .refsummary::before{content:"- "}
.refcount{color:var(--bronze)}
.reflist{list-style:none;margin-top:var(--s-2)}
.reflist li{border-top:1px solid var(--hair)}
.reflist a{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--s-3);min-height:44px;padding:var(--s-3) 0;color:var(--ink)}
.reflist a:hover{background:var(--wash)}
.refjrnl{margin-left:auto;color:var(--bronze);white-space:nowrap}
.refnote{margin-top:var(--s-4);color:var(--bronze)}

/* ===== Ownership ===== */
.own{background:var(--ground-3)}
.deflist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s-8);margin-top:var(--s-8)}
.def{padding:var(--s-5) 0 var(--s-6);border-top:1px solid var(--hair-strong)}
.def dd{margin-top:var(--s-3);color:var(--ink-soft);max-width:52ch}
.pricingask{display:flex;align-items:center;justify-content:space-between;gap:var(--s-6);margin-top:var(--s-8);padding:var(--s-6) 0;border-block:1px solid var(--gold)}
.pricingask p{margin-top:var(--s-2);max-width:52ch;color:var(--ink-soft)}
.pricingask .btnfill{flex:none}

/* ===== FAQ ===== */
#faq{background:var(--ground-3)}
.faqs{margin-top:var(--s-7);border-top:1px solid var(--hair-strong)}
.faq{border-bottom:1px solid var(--hair-strong)}
.faqq{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);width:100%;min-height:64px;padding:var(--s-5) var(--s-1);background:none;border:0;color:var(--ink);text-align:left;cursor:pointer}
.faqq:hover{background:var(--wash)}
.faqx{flex:none;display:inline-block;color:var(--bronze)}
.faqa{display:grid;grid-template-rows:0fr;visibility:hidden}
.faq.open .faqa{grid-template-rows:1fr;visibility:visible}
.faqa>p{min-height:0;overflow:hidden;color:var(--ink-soft);max-width:var(--measure);padding-right:var(--s-7)}
.faq.open .faqa>p{padding-bottom:var(--s-5)}
html:not(.enhanced) .faqa{grid-template-rows:1fr;visibility:visible}
html:not(.enhanced) .faqa>p{padding-bottom:var(--s-5)}
.faqmore{margin-top:var(--s-6)}
.faqmore a{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid var(--gold)}
.faqmore a:hover{background:var(--wash)}

/* ===== Brochure ===== */
.brochure{padding-block:var(--section-y-tight);background:var(--ground-4);border-top:1px solid var(--hair)}
.brochuresplit{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--s-8);align-items:center}
.brochurefig{margin:0}
.brochurefig img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r-2)}
.brochurefig figcaption{margin-top:var(--s-3);color:var(--bronze)}
.brochurebody .leadsub{margin-top:var(--s-4);max-width:50ch}
.brochureform{display:flex;gap:var(--s-3);margin-top:var(--s-6);max-width:520px}
.brochureform input[type=email]{flex:1;min-width:0;min-height:48px;padding:0 var(--s-4);background:var(--vellum);border:1px solid var(--bronze);border-radius:var(--r-1);color:var(--ink)}
.brochureform input[type=email]::placeholder{color:var(--bronze);opacity:1}
.brochureform .btnfill{white-space:nowrap}
.brochurenote{margin-top:var(--s-4);color:var(--bronze);max-width:52ch}
.brochurenote.cferror{color:var(--ink)}

/* ===== Closing block and forms ===== */
.ctaband{background:var(--ground-4);text-align:center;isolation:isolate;overflow:hidden}
.ctaband::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('assets/mark-tree-only-ink.svg') left center/min(560px,70%) no-repeat;opacity:.04}
.ctaband .h2{max-width:20ch;margin-inline:auto}
.ctaband .artag{margin-top:var(--s-5)}
.cfintro{max-width:52ch;margin:var(--s-4) auto 0}
.consultform{max-width:680px;margin:var(--s-7) auto 0;padding:var(--s-6);text-align:left;background:var(--vellum);border:1px solid var(--hair-strong);border-radius:var(--r-2)}
.cfrow{display:flex;gap:var(--s-5)}
.cffield{flex:1;min-width:0;display:flex;flex-direction:column;margin-bottom:var(--s-5)}
.cffield label{margin-bottom:var(--s-2);color:var(--bronze)}
.cffield input,.cffield select,.cffield textarea{width:100%;min-height:48px;padding:var(--s-3) var(--s-4);background:var(--cream);border:1px solid var(--bronze);border-radius:var(--r-1);color:var(--ink)}
.cffield textarea{min-height:120px;resize:vertical}
.cffield input::placeholder,.cffield textarea::placeholder{color:var(--bronze);opacity:1}
.selwrap{position:relative}
.cfsubmit{width:100%;margin-top:var(--s-1)}
.cfnote{margin-top:var(--s-4);color:var(--bronze)}
.cfnote.cferror{color:var(--ink)}
.consentnote{max-width:560px;margin:var(--s-6) auto 0;color:var(--bronze)}
.consentnote .ar{display:block;margin-top:var(--s-2)}

/* ===== Facility ===== */
.location{padding-block:var(--section-y-tight);background:var(--ground-4);border-top:1px solid var(--hair)}
.locgrid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s-8);align-items:center}
.locphoto{margin:0}
.locphoto img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r-2)}
.locaddr{margin-top:var(--s-3);color:var(--bronze)}
.loctagline{margin-top:var(--s-3);color:var(--ink-soft)}
.loctagline.ar{margin-top:var(--s-5)}
.visit-card{margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--gold)}
.visit-card p{margin:var(--s-3) 0 var(--s-5);max-width:42ch;color:var(--ink-soft)}

/* ===== Footer ===== */
footer{position:relative;padding:var(--section-y-tight) var(--gutter) 96px;background:var(--ground-4);border-top:1px solid var(--hair-strong)}
.footgrid{max-width:var(--wrap);margin-inline:auto;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:var(--s-6);align-items:start}
.footlogo{width:200px;height:auto;margin-bottom:var(--s-2)}
.footnote{margin-top:var(--s-4);max-width:280px;color:var(--bronze)}
.footcol a,.footstatic{display:flex;align-items:center;min-height:44px;overflow-wrap:anywhere}
.footcol a{color:var(--ink)}
.footcol a:hover{background:var(--wash)}
.footstatic{color:var(--bronze)}
.footcol .ct{margin-bottom:var(--s-2);color:var(--bronze)}
.disc{max-width:760px;margin:var(--s-8) auto 0;padding-top:var(--s-5);border-top:1px solid var(--hair-strong);color:var(--bronze)}

/* ===== Page hero (packages, journal) ===== */
.page-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:var(--s-8);align-items:center;min-height:560px;padding:calc(var(--nav-h) + var(--s-8)) max(var(--gutter),calc((100vw - var(--wrap))/2)) var(--s-8);background:var(--ground-1)}
.page-hero .heroinner .subhead{margin-top:var(--s-5);max-width:48ch;color:var(--ink-soft)}
.page-hero .heroinner .h1 em{color:var(--bronze)}
.page-hero-art{margin:0;min-width:0}
.page-hero-art img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r-2)}
.page-hero-art figcaption{margin-top:var(--s-3);color:var(--bronze)}
.editorial-link{display:inline-flex;align-items:center;gap:var(--s-3);min-height:44px;margin-top:var(--s-6);border-bottom:1px solid var(--gold)}
.journal-hero .page-hero-art{max-width:400px;justify-self:end}
.section-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2) var(--s-7);padding:var(--s-2) var(--gutter);background:var(--ground-1);border-block:1px solid var(--hair-strong)}
.section-nav a{display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid transparent}
.section-nav a:hover{border-bottom-color:var(--gold)}

/* ===== Packages ladder ===== */
.ladder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:var(--s-8);border-top:1px solid var(--hair-strong)}
.rung{display:grid;grid-row:span 4;grid-template-rows:subgrid;padding:0 var(--s-5);border-left:1px solid var(--hair)}
.rung:first-child{padding-left:0;border-left:0}
.rung>.rung-head{grid-row:1;padding-top:var(--s-5)}
.rung>.rung-layers{grid-row:2;padding-top:var(--s-4)}
.rung>.rung-extras{grid-row:3;padding-top:var(--s-3)}
.rung>.rung-cta{grid-row:4;padding:var(--s-5) 0 var(--s-6)}
.rung.feat,.rung.feat:first-child{border:1px solid var(--gold);padding-inline:var(--s-5)}
.rung.feat+.rung{border-left:0}
.tierflag{color:var(--bronze)}
.rung-layers{list-style:none}
.rung-layers li{padding:var(--s-2) 0 var(--s-2) var(--s-3);border-left:1px solid var(--hair-strong);color:var(--ink-soft)}
.rung-layers li.adds{border-left:2px solid var(--gold);color:var(--ink)}
.rung-extras{list-style:none;color:var(--ink-soft)}
.rung-extras li{padding:var(--s-1) 0}
.rung-cta .tiercta{width:100%}
.includes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:var(--s-6);padding:var(--s-6) 0;border-block:1px solid var(--hair-strong)}
.includes ul{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3) var(--s-6)}
.includes li{padding-left:var(--s-3);border-left:1px solid var(--gold);color:var(--ink-soft)}

/* ===== Journal index ===== */
.journal-list{background:var(--ground-3)}
.journal-list-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-5)}
.journal-list-head span{color:var(--bronze)}
.postgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-7) var(--s-6);margin-top:var(--s-7)}
.postcard{display:flex;flex-direction:column;min-width:0}
.postcard-frame{overflow:hidden;border-radius:var(--r-2)}
.postcard-frame img{width:100%;aspect-ratio:16/10;object-fit:cover}
.postcardbadge{display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;background:var(--vellum);border:1px solid var(--hair-strong);border-radius:var(--r-2)}
.postcardbadge img{width:auto;height:auto;max-width:50%;max-height:40%}
.postbody{display:flex;flex-direction:column;flex:1;padding-top:var(--s-5)}
.posttitle{margin-top:var(--s-2);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:6px;text-decoration-thickness:1px}
.postcard:hover .posttitle{text-decoration-color:var(--gold)}
.postdesc{margin-top:var(--s-3);color:var(--ink-soft);flex:1}
.postread{margin-top:var(--s-4);display:inline-flex;align-items:center;min-height:32px}
.postcard.lead{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s-7);align-items:center;padding-bottom:var(--s-7);border-bottom:1px solid var(--hair-strong)}
.postcard.lead .postbody{padding-top:0}

/* ===== Journal article ===== */
body.article-page{background:var(--ground-4)}
.article-header{max-width:calc(var(--wrap) + 2*var(--gutter));margin-inline:auto;padding:calc(var(--nav-h) + var(--s-8)) var(--gutter) var(--s-8)}
.postback{display:inline-flex;align-items:center;min-height:44px;margin-bottom:var(--s-5);border-bottom:1px solid var(--gold)}
.article-opening{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:var(--s-8);align-items:center}
.article-opening>div{min-width:0}
.article-header h1{margin:var(--s-4) 0;overflow-wrap:anywhere}
.article-header .postlead{color:var(--ink-soft);max-width:var(--measure)}
.article-header .reading-time{margin-top:var(--s-5);color:var(--bronze)}
.article-image{margin:0;min-width:0}
.article-image img{width:100%;height:390px;object-fit:cover;border-radius:var(--r-2)}
.article-image-badge{display:flex;align-items:center;justify-content:center;padding:var(--s-8) var(--s-6);background:var(--vellum);border:1px solid var(--hair-strong);border-radius:var(--r-2)}
.article-image-badge img{width:auto;max-width:100%;height:120px;object-fit:contain}
.posthero-contain img{object-fit:contain;background:var(--vellum)}
.article-layout{display:grid;grid-template-columns:240px minmax(0,var(--measure));gap:var(--s-8);width:min(100% - 2*var(--gutter),var(--wrap));margin:0 auto var(--s-9);padding-top:var(--s-7);border-top:1px solid var(--hair-strong);align-items:start}
.reading-nav{position:sticky;top:calc(var(--nav-h) + var(--s-5));display:flex;flex-direction:column;padding-left:var(--s-5);border-left:1px solid var(--hair-strong)}
.reading-nav .eyebrow{margin-bottom:var(--s-3)}
.reading-nav a{display:flex;align-items:center;min-height:44px;padding:var(--s-2) 0;color:var(--ink-soft)}
.reading-nav a:hover,.reading-nav a[aria-current]{color:var(--ink)}
.reading-nav a[aria-current]{box-shadow:-21px 0 0 -19px var(--ink)}
.reading-nav .reading-consult{margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--hair-strong);color:var(--ink)}
.postarticle{min-width:0}
.postarticle h2{margin-top:var(--s-7)}
.postarticle h2:first-child{margin-top:0}
.postarticle p{margin:var(--s-4) 0 0;color:var(--ink)}
.postarticle .postrefs,.postarticle .postdisc{margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid var(--hair-strong);color:var(--bronze)}
.postarticle .postdisc{margin-top:var(--s-5)}
.next-note{padding:var(--s-7) 0;background:var(--bone);border-block:1px solid var(--hair-strong)}
.next-note a{display:flex;align-items:center;justify-content:space-between;gap:var(--s-6);margin-top:var(--s-4);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:8px;text-decoration-thickness:1px}
.next-note a:hover{text-decoration-color:var(--gold)}

/* ===== Responsive ===== */
@media(max-width:1100px){
  .navlinks{gap:var(--s-4)}
  .ladder{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rung{border-top:1px solid var(--hair)}
  .rung:nth-child(odd){padding-left:0;border-left:0}
  .rung.feat,.rung.feat:first-child{padding-inline:var(--s-5);border:1px solid var(--gold)}
  .article-layout{grid-template-columns:200px minmax(0,1fr);gap:var(--s-6)}
}
@media(max-width:1023px){.rail{display:none}}
@media(max-width:900px){
  nav.top{--nav-h:64px}
  html.enhanced .navtoggle{display:flex}
  html.enhanced .navlinks{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;max-height:0;overflow:hidden;background:var(--ground-1);border-bottom:1px solid var(--hair-strong)}
  html.enhanced .navlinks:not(.open){visibility:hidden;pointer-events:none;opacity:0}
  html.enhanced .navlinks.open{visibility:visible;max-height:calc(100dvh - var(--nav-h));overflow:auto;opacity:1;overscroll-behavior:contain}
  html:not(.enhanced) nav.top{height:auto;min-height:var(--nav-h);flex-wrap:wrap;padding-block:var(--s-2)}
  html:not(.enhanced) .navlinks{flex-wrap:wrap;gap:0 var(--s-4)}
  html.enhanced .navlinks a,html.enhanced .navlinks a.book{min-height:52px;padding:0 var(--gutter);border:0;border-bottom:1px solid var(--hair);border-radius:0;text-align:left}
  .hero-grid,.trustsplit,.trustproof,.brochuresplit,.locgrid,.page-hero,.article-opening{grid-template-columns:1fr;gap:var(--s-7)}
  .hero{min-height:0}
  .hero-grid{gap:var(--s-5)}
  .hero-visual{order:1;max-width:min(64vw,340px)}
  .hero-bottom{order:2;position:static;display:flex;justify-content:center}
  .heroinner{order:3}
  .hero{padding-bottom:var(--s-8)}
  .trustphoto{min-height:0;aspect-ratio:4/3}
  .descent>.wrap{display:block}
  .descent .sechead{position:static}
  .stages{margin-top:var(--s-7)}
  .page-hero{min-height:0;padding-inline:var(--gutter)}
  .journal-hero .page-hero-art{justify-self:start}
  .specgrid,.deflist{grid-template-columns:1fr;gap:0}
  .usesgrid{grid-template-columns:1fr;gap:var(--s-7)}
  .footgrid{grid-template-columns:1fr 1fr}
  .article-layout{grid-template-columns:1fr;gap:var(--s-5)}
  .reading-nav{display:none}
  .article-image img{height:300px}
  .postcard.lead{grid-template-columns:1fr;gap:var(--s-5)}
}
@media(max-width:760px){
  .counter{top:auto;bottom:var(--s-3);right:var(--s-3);min-width:0;padding:var(--s-2) var(--s-3);border-radius:999px}
  .counter .ctitle,.counter .clab{display:none}
  .ctas>a{flex:1 1 100%}
  .hero,.page-hero{padding-top:calc(var(--nav-h) + var(--s-8))}
  .article-header{padding-top:calc(var(--nav-h) + var(--s-7))}
  .stages::before,.stages::after{display:none}
  .stagehead{grid-template-columns:minmax(0,1fr) 20px;align-items:start;padding:var(--s-4) 0}
  .stagehead .stagetemp{grid-column:1;grid-row:2;padding:var(--s-1) 0 0;text-align:left}
  .stagehead .stagetemp::after{display:none}
  .stagehead .stagebody{grid-column:1;grid-row:1;padding-left:0}
  .stagehead .stagechev{grid-column:2;grid-row:1;margin-top:var(--s-2)}
  .stagedesc,.stagefig{padding-left:0;max-width:none}
  .statrow{grid-template-columns:1fr;gap:var(--s-5)}
  .usesresearch li{flex-direction:column;align-items:flex-start;gap:var(--s-1)}
  .pricingask{flex-direction:column;align-items:flex-start;gap:var(--s-5)}
  .brochureform{flex-direction:column}
  .cfrow{flex-direction:column;gap:0}
  .consultform{padding:var(--s-5) var(--s-4)}
  .ladder{grid-template-columns:1fr}
  .rung,.rung:first-child,.rung:nth-child(odd){padding-inline:0;border-left:0;border-top:1px solid var(--hair-strong)}
  .rung.feat,.rung.feat:first-child{padding-inline:var(--s-4);border:1px solid var(--gold);margin-block:var(--s-3)}
  .includes,.includes ul{grid-template-columns:1fr}
  .journal-list-head{flex-direction:column;align-items:flex-start;gap:var(--s-2)}
  .postgrid{grid-template-columns:1fr}
  .article-layout{margin-bottom:var(--s-8)}
  .article-image img{height:240px}
  .article-image-badge img{height:96px}
  .faqa>p{padding-right:0}
  .section-nav{justify-content:flex-start;gap:0 var(--s-5)}
}
@media(max-width:480px){
  .footgrid{grid-template-columns:1fr}
}

/* Trust facts: one picture tile per fact (the media-object pattern), so every
   row has the same rhythm. Tile 1 is the Ministry of Health logo on its Vellum
   plate (a real credential); tiles 2-4 are illustrative AI images that support
   each claim without depicting our premises (see assets/image-credits.md). */
.fact{display:grid;grid-template-columns:132px minmax(0,1fr);gap:var(--s-5);align-items:start}
.factmedia{width:132px;aspect-ratio:4/3;border-radius:var(--r-1);overflow:hidden;
  border:1px solid var(--hair-strong);background:var(--vellum)}
.factmedia img{display:block;width:100%;height:100%;object-fit:cover}
.factmedia-logo{display:flex;align-items:center;justify-content:center;padding:10px}
.factmedia-logo img{height:auto;object-fit:contain}
.factbody{min-width:0}
.factbody .factname{margin-top:2px}
@media(max-width:600px){
  .fact{grid-template-columns:92px minmax(0,1fr);gap:var(--s-4)}
  .factmedia{width:92px}
  .factmedia-logo{padding:6px}
}
