/* PRAXTERRA website — layout concept: "field ledger": a calm editorial column with a mono requirement-ID margin, full-bleed landscape bands between sections. */
@font-face{font-family:"Archivo PX";src:url(../fonts/archivo-var.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Public Sans PX";src:url(../fonts/public-sans-var.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Public Sans PX";src:url(../fonts/public-sans-var-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Plex Mono PX";src:url(../fonts/plex-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --bg:#F4F0E6;          /* ivory ground */
  --surface:#FBF9F3;     /* raised paper */
  --sunk:#ECE7DA;        /* recessed band */
  --ink:#292E2B;         /* graphite text */
  --muted:#5B635D;       /* secondary text */
  --brand:#214E3B;       /* forest: headings, primary */
  --brand-ink:#F4F0E6;   /* text on brand */
  --accent:#BC6949;      /* clay copper: marks, focus */
  --accent-ink:#9A4F33;  /* copper for small text */
  --line:#D8D4C7;
  --sage:#E3E6DD;
  --overlay:rgba(244,240,230,.92);
  --display:"Archivo PX","Arial Narrow",Arial,sans-serif;
  --body:"Public Sans PX","Segoe UI",Arial,sans-serif;
  --mono:"Plex Mono PX",ui-monospace,Menlo,Consolas,monospace;
  --step--1:.875rem;--step-0:1.0625rem;--step-1:1.25rem;--step-2:1.6rem;--step-3:2.2rem;--step-4:clamp(2.4rem,5.2vw,4.1rem);
  --radius:6px;--wrap:72rem;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#13271E;--surface:#1A3328;--sunk:#0F2019;--ink:#ECE8DD;--muted:#AEBDB2;--brand:#D7E7DB;--brand-ink:#13271E;
  --accent:#D98A68;--accent-ink:#E6A487;--line:#2D4A3C;--sage:#21402F;--overlay:rgba(19,39,30,.9);color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#13271E;--surface:#1A3328;--sunk:#0F2019;--ink:#ECE8DD;--muted:#AEBDB2;--brand:#D7E7DB;--brand-ink:#13271E;
  --accent:#D98A68;--accent-ink:#E6A487;--line:#2D4A3C;--sage:#21402F;--overlay:rgba(19,39,30,.9);color-scheme:dark}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--brand);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--accent-ink)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:2px}
h1,h2,h3{font-family:var(--display);color:var(--brand);line-height:1.08;text-wrap:balance;margin:0;font-stretch:112%;letter-spacing:-.01em}
h1{font-size:var(--step-4);font-weight:800}
h2{font-size:var(--step-3);font-weight:800}
h3{font-size:var(--step-1);font-weight:700;font-stretch:105%}
p{margin:0}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.prose{max-width:40rem}
.prose>*+*{margin-top:1em}
.eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}
.lede{font-size:var(--step-1);color:var(--ink);max-width:36rem}
.muted{color:var(--muted)}
.mono{font-family:var(--mono);font-size:.85em}
.small{font-size:var(--step--1)}
.section{padding-block:clamp(3rem,7vw,5.5rem)}
.section-head{display:flex;flex-direction:column;gap:.6rem;margin-bottom:2rem;max-width:44rem}
.sunk{background:var(--sunk)}
.stack{display:flex;flex-direction:column;gap:1rem}

/* header */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;gap:1.5rem;min-height:4.25rem;flex-wrap:wrap;padding-block:.5rem}
.brand{display:flex;align-items:center;gap:.55rem;text-decoration:none}
.brand img.leaf{height:30px;width:auto}
.brand img.word{height:18px;width:auto}
.logo-dark{display:none!important}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .logo-light{display:none!important}:root:not([data-theme="light"]) .logo-dark{display:block!important}}
:root[data-theme="dark"] .logo-light{display:none!important}
:root[data-theme="dark"] .logo-dark{display:block!important}
.nav{display:flex;gap:1.25rem;margin-left:auto;flex-wrap:wrap;align-items:center}
.nav a{text-decoration:none;color:var(--ink);font-weight:500;font-size:.95rem}
.nav a[aria-current="page"]{color:var(--brand);box-shadow:inset 0 -2px 0 var(--accent)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:600 .98rem/1 var(--body);padding:.9rem 1.25rem;border-radius:var(--radius);border:1.5px solid var(--brand);background:var(--brand);color:var(--brand-ink);text-decoration:none;cursor:pointer;transition:background .15s,color .15s}
.btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.ghost{background:transparent;color:var(--brand)}
.btn.ghost:hover{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.btn.small{padding:.6rem .9rem;font-size:.9rem}
@media (max-width:820px){.nav{order:3;width:100%;margin-left:0;gap:1rem;overflow-x:auto;padding-bottom:.2rem}.site-header .btn{margin-left:auto}}

/* hero */
.hero{position:relative;min-height:min(78vh,44rem);display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--line)}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--overlay) 0%,var(--overlay) 38%,transparent 72%)}
.hero .wrap{position:relative;z-index:1;width:100%;padding-block:4rem}
.hero-copy{max-width:36rem;display:flex;flex-direction:column;gap:1.2rem}
@media (max-width:760px){.hero .wrap{padding-bottom:14rem}.hero>img{object-position:80% 100%}.hero::after{background:linear-gradient(180deg,var(--overlay) 0%,var(--overlay) 70%,rgba(0,0,0,0) 100%)}.hero{align-items:flex-start}}
.page-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.page-hero .wrap{position:relative;z-index:1;padding-block:clamp(3rem,7vw,5rem);display:flex;flex-direction:column;gap:1rem}
.page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--overlay) 0%,var(--overlay) 45%,rgba(0,0,0,0) 85%)}

/* download form */
.dl{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem;display:flex;flex-direction:column;gap:.8rem;box-shadow:0 10px 30px -18px rgba(33,78,59,.45)}
.dl .row{display:flex;gap:.5rem;flex-wrap:wrap}
.dl input[type=email]{flex:1 1 14rem;min-width:0;font:inherit;padding:.85rem .9rem;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--bg);color:var(--ink)}
.dl input[type=email]:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}
.dl label.check{display:flex;gap:.55rem;align-items:flex-start;font-size:.86rem;color:var(--muted);line-height:1.45}
.dl label.check input{margin-top:.2rem;accent-color:var(--brand);width:1rem;height:1rem;flex:none}
.dl .meta{font-family:var(--mono);font-size:.74rem;color:var(--muted);letter-spacing:.02em}
.dl .err{color:var(--accent-ink);font-size:.88rem}
.dl .done{display:flex;flex-direction:column;gap:.7rem}
.dl .done h3{font-size:1.15rem}
.dl .files{display:flex;flex-direction:column;gap:.5rem}
.dl .files a{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.75rem .9rem;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);background:var(--bg)}
.dl .files a:hover{border-color:var(--brand)}
.dl .files b{color:var(--brand)}

/* figures strip */
.figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.figures div{padding:1.4rem 1rem;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:.2rem}
.figures div:first-child{border-left:0}
.figures b{font-family:var(--display);font-stretch:118%;font-weight:800;font-size:2.4rem;color:var(--brand);line-height:1;font-variant-numeric:tabular-nums}
.figures span{color:var(--muted);font-size:.92rem}
@media (max-width:680px){.figures{grid-template-columns:repeat(2,minmax(0,1fr))}.figures div:nth-child(3){border-left:0}.figures div:nth-child(n+3){border-top:1px solid var(--line)}}

/* reasons */
.reasons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 3rem}
.reason{display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;align-items:start}
.reason .mk{font-family:var(--mono);color:var(--accent-ink);font-size:.8rem;border-top:2px solid var(--accent);padding-top:.4rem}
.reason h3{margin-bottom:.35rem}
@media (max-width:760px){.reasons{grid-template-columns:1fr}}

/* levels ladder */
.ladder{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;align-items:end}
.ladder.full{margin-top:2.5rem}
.rung{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.4rem;min-width:0}
.rung .n{font-family:var(--mono);color:var(--accent-ink);font-size:.8rem}
.rung h3{font-size:1.1rem}
.rung p{font-size:.9rem;color:var(--muted)}
.rung:nth-child(1){min-height:9rem}.rung:nth-child(2){min-height:10.5rem}.rung:nth-child(3){min-height:12rem}.rung:nth-child(4){min-height:13.5rem}
.rung:nth-child(5){min-height:15rem;background:var(--brand);border-color:var(--brand)}
.rung:nth-child(5) h3,.rung:nth-child(5) p,.rung:nth-child(5) .n{color:var(--brand-ink)}
@media (max-width:760px){.ladder{grid-template-columns:1fr}.rung{min-height:0!important}}
.split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:3rem;align-items:center}
.split.rev{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
@media (max-width:860px){.split,.split.rev{grid-template-columns:1fr;gap:2rem}}
.photo{border-radius:var(--radius);overflow:hidden;background:var(--sunk);aspect-ratio:4/3;max-width:100%}
.photo img{width:100%;height:100%;object-fit:cover}
.photo.tall{aspect-ratio:3/4}
.photo.wide{aspect-ratio:16/9}
figure{margin:0}
figcaption{font-size:.8rem;color:var(--muted);margin-top:.5rem}

/* sectors */
.sectors{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}
.sector{display:flex;flex-direction:column;gap:.6rem;min-width:0}
.sector .photo{aspect-ratio:4/5}
.sector b{font-family:var(--display);color:var(--brand);font-stretch:108%}
.sector span{font-size:.88rem;color:var(--muted)}
@media (max-width:980px){.sectors{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:620px){.sectors{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* topics ledger */
.ledger{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3rem;border-top:1px solid var(--line)}
.ledger div{display:grid;grid-template-columns:5.5rem 1fr;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line);min-width:0}
.ledger .ids{font-family:var(--mono);font-size:.8rem;color:var(--accent-ink);padding-top:.15rem}
.ledger b{color:var(--brand);font-weight:600}
.ledger span{display:block;color:var(--muted);font-size:.9rem}
@media (max-width:760px){.ledger{grid-template-columns:1fr}}

/* products */
.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:stretch}
@media (max-width:1000px){.products{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.products{grid-template-columns:1fr}}
.product{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;gap:.8rem;min-width:0}
.product.featured{border:2px solid var(--brand)}
.product .tag{align-self:flex-start;font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;background:var(--brand);color:var(--brand-ink);padding:.25rem .5rem;border-radius:3px}
.product .price{font-family:var(--display);font-stretch:115%;font-weight:800;font-size:2.2rem;color:var(--brand);line-height:1}
.product .price small{font-family:var(--body);font-size:.85rem;font-weight:500;color:var(--muted);margin-left:.2rem}
.product ul{margin:0;padding-left:1.1rem;font-size:.92rem;display:flex;flex-direction:column;gap:.3rem}
.product .btn{margin-top:auto}
.product.soon{background:transparent;border-style:dashed}
.product.soon .price{color:var(--muted)}

/* compare table */
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:36rem;font-size:.94rem}
th,td{text-align:left;padding:.75rem .9rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-family:var(--display);font-stretch:105%;color:var(--brand);background:var(--sunk);font-weight:700}
td.c{text-align:center;font-weight:600;color:var(--brand)}
tr:last-child td{border-bottom:0}

/* steps */
.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 3rem}
.steps li{counter-increment:s;display:grid;grid-template-columns:2.6rem 1fr;gap:.9rem}
.steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--mono);color:var(--accent-ink);border-top:2px solid var(--accent);padding-top:.35rem;font-size:.85rem}
.steps b{display:block;color:var(--brand);font-family:var(--display);font-stretch:105%;font-size:1.08rem}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

/* gates */
.gates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.gates div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.7rem .9rem;display:flex;gap:.8rem;font-size:.94rem}
.gates b{font-family:var(--mono);color:var(--accent-ink);font-weight:500}
@media (max-width:620px){.gates{grid-template-columns:1fr}}
.formula{font-family:var(--mono);background:var(--brand);color:var(--brand-ink);padding:1rem 1.2rem;border-radius:var(--radius);font-size:.95rem;overflow-x:auto}
.example{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem}
.example .big{font-family:var(--display);font-stretch:118%;font-weight:800;font-size:3.6rem;color:var(--brand);line-height:1;font-variant-numeric:tabular-nums}
.example .verdict{font-family:var(--mono);color:var(--accent-ink);font-size:.85rem;margin-top:.3rem}
@media (max-width:560px){.example{grid-template-columns:1fr}}

/* callout + band */
.callout{border-left:3px solid var(--accent);background:var(--surface);padding:1rem 1.2rem;border-radius:0 var(--radius) var(--radius) 0;font-size:.95rem}
.band{position:relative;overflow:hidden;background:var(--brand);color:var(--brand-ink)}
.band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.18}
.band .wrap{position:relative;z-index:1;padding-block:clamp(3rem,7vw,5rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.5rem;align-items:center}
.band h2{color:var(--brand-ink)}
.band p{color:var(--brand-ink);opacity:.9}
.band .dl{color:var(--ink)}
@media (max-width:860px){.band .wrap{grid-template-columns:1fr}}

/* faq */
.faq{display:flex;flex-direction:column;border-top:1px solid var(--line);max-width:48rem}
.faq details{border-bottom:1px solid var(--line);padding:1rem 0}
.faq summary{cursor:pointer;font-weight:600;color:var(--brand);list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--accent-ink)}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:.6rem;color:var(--ink)}

/* two-col doc */
.doc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,22rem);gap:3rem;align-items:start}
.doc aside{position:sticky;top:6rem}
@media (max-width:900px){.doc{grid-template-columns:1fr}.doc aside{position:static}}
.toc{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.toc li{display:grid;grid-template-columns:4rem 1fr;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--line)}
.toc li span:first-child{font-family:var(--mono);font-size:.8rem;color:var(--accent-ink);padding-top:.15rem}
.legal h2{font-size:1.5rem;margin-top:2rem}
.legal .todo{background:var(--sage);padding:.05rem .35rem;border-radius:3px;font-family:var(--mono);font-size:.8em}
.copyline{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
.copyline code{font-family:var(--mono);font-size:1.05rem;background:var(--surface);border:1px solid var(--line);padding:.6rem .8rem;border-radius:var(--radius);user-select:all}

/* footer */
.site-footer{background:var(--sunk);border-top:1px solid var(--line);padding-block:3rem 2rem;margin-top:0}
.site-footer .wrap{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:2rem}
.site-footer h4{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 .7rem;font-weight:500}
.site-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;font-size:.92rem}
.site-footer a{color:var(--ink);text-decoration:none}
.site-footer a:hover{color:var(--accent-ink)}
.site-footer .fine{grid-column:1/-1;border-top:1px solid var(--line);padding-top:1.2rem;font-size:.8rem;color:var(--muted);display:flex;flex-direction:column;gap:.4rem}
@media (max-width:760px){.site-footer .wrap{grid-template-columns:1fr 1fr}.site-footer .wrap>div:first-child{grid-column:1/-1}}
