/* ============================================================
   Mariposa Exports — design system (rev. 18 Oct 2026)
   Forest green · warm cream · muted gold · restrained terracotta
   Fraunces (headings) + Inter (text)
   Layout: calm editorial pages, one accent per view, data in tables not cards
   ============================================================ */

:root {
  --forest:#2D5A3D; --forest-deep:#1E3F2A; --forest-ink:#16301F;
  --sage:#87A878; --sage-wash:#E9EFE3;
  --cream:#F3EEE3; --cream-lt:#FAF8F2; --paper:#FFFFFF;
  --terra:#C75B39; --terra-ink:#A34526; --terra-deep:#8C3A1F;
  --gold:#C9A43A; --gold-soft:#E5CE84; --gold-ink:#8A6D1A;
  --ink:#1C2A1E; --body-c:#435042; --muted:#5F6A5B;
  --line:rgba(30,63,42,.13); --line-strong:rgba(30,63,42,.24);

  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

  --container:1200px; --gutter:clamp(16px,4vw,40px);
  --r-sm:6px; --r:10px; --r-lg:14px;
  --shadow-sm:0 1px 2px rgba(22,48,31,.06);
  --shadow:0 10px 30px rgba(22,48,31,.08);
  --ease:cubic-bezier(.22,.61,.36,1);
  --sec:clamp(64px,8vw,104px);
  --measure:62ch;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--cream-lt);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
ul,ol{margin:0;padding:0;list-style:none}
a{color:var(--forest);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--terra-ink)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
h1,h2,h3,h4{margin:0 0 .45em;font-family:var(--serif);font-weight:500;font-optical-sizing:auto;color:var(--ink);line-height:1.12;letter-spacing:-.012em;text-wrap:balance}
h1{font-size:clamp(2.2rem,4.4vw,3.5rem);letter-spacing:-.02em}
h2{font-size:clamp(1.7rem,2.9vw,2.4rem)}
h3{font-size:1.22rem;line-height:1.25}
h1 em,h2 em{font-style:italic;font-weight:400}
p{margin:0 0 1em;color:var(--body-c);text-wrap:pretty}
.i{width:1em;height:1em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.125em}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--forest);color:#fff;padding:10px 16px;border-radius:var(--r-sm);font-weight:600}
.skip:focus{top:12px;color:#fff}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.container{width:100%;max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.section{padding-block:var(--sec)}
.section--tight{padding-block:calc(var(--sec)*.6)}
.section--alt{background:var(--cream)}
.section--dark{background:var(--forest-ink);color:#fff}
.section--dark h2,.section--dark h3{color:#fff}
.section--dark p{color:rgba(255,255,255,.78)}
.eyebrow{display:block;margin-bottom:12px;font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--terra-ink)}
.section--dark .eyebrow{color:var(--gold-soft)}
.lead{font-size:clamp(1.05rem,1.3vw,1.18rem);line-height:1.65;max-width:var(--measure)}
.measure{max-width:var(--measure)}
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 48px;flex-wrap:wrap;margin-bottom:40px}
.head > div{max-width:640px}
.head h2{margin:0}
.head p{margin:8px 0 0;max-width:var(--measure)}
.muted{color:var(--muted)}
.small{font-size:.9rem}

/* ---------- buttons & links ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:var(--r-sm);border:1.5px solid transparent;font:600 15px/1.2 var(--sans);text-decoration:none;cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}
.btn .i{font-size:1.05em;transition:transform .2s var(--ease)}
.btn:hover .i{transform:translateX(2px)}
.btn-primary{background:var(--forest);color:#fff}
.btn-primary:hover{background:var(--forest-deep);color:#fff}
.btn-accent{background:var(--terra-ink);color:#fff}
.btn-accent:hover{background:var(--terra-deep);color:#fff}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-outline:hover{border-color:var(--forest);color:var(--forest);background:var(--paper)}
.section--dark .btn-outline{color:#fff;border-color:rgba(255,255,255,.4)}
.section--dark .btn-outline:hover{background:#fff;color:var(--forest-ink)}
.btn-sm{min-height:40px;padding:8px 16px;font-size:14px}
.btn[disabled]{opacity:.6;cursor:progress}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.link{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--forest);text-decoration:none}
.link:hover{text-decoration:underline}

/* ---------- header ---------- */
.topbar{background:var(--forest-ink);color:rgba(255,255,255,.8);font-size:13px}
.topbar .container{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:36px}
.topbar span,.topbar a{display:inline-flex;align-items:center;gap:8px;color:inherit;text-decoration:none}
.topbar a:hover{color:var(--gold-soft)}
.topbar__extra{display:inline-flex;gap:22px}
.site-header{position:sticky;top:0;z-index:60;background:rgba(250,248,242,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.site-header .container{max-width:1360px}
.nav{display:flex;align-items:center;gap:20px;height:72px}
.nav__logo{flex:0 0 auto;display:block}
.nav__actions,.nav__actions > *{flex-shrink:0}
.nav__actions .btn,.lang a{white-space:nowrap}
.nav__logo img{height:28px;width:auto}
.nav__menu{display:flex;align-items:center;gap:2px;margin-left:auto}
.nav__menu > li{position:relative}
.nav__menu > li > a{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;padding:10px 8px;border-radius:var(--r-sm);font-size:14.5px;font-weight:500;color:var(--body-c);text-decoration:none}
.nav__menu > li > a:hover{color:var(--ink);background:rgba(30,63,42,.05)}
.nav__menu > li > a[aria-current="page"]{color:var(--forest);font-weight:600;box-shadow:inset 0 -2px 0 var(--terra)}
.nav__menu .i{font-size:.85em;opacity:.6}
.nav__menu .nav__lang{display:none}
.nav__actions{display:flex;align-items:center;gap:12px}
.lang{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:var(--r-sm);overflow:hidden;font-size:12.5px;font-weight:600;letter-spacing:.04em}
.lang a{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;color:var(--muted);text-decoration:none;line-height:1}
.lang a[aria-current]{background:var(--forest);color:#fff}
.lang a:hover:not([aria-current]){color:var(--forest);background:var(--paper)}
.nav__toggle{display:none;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:transparent;cursor:pointer;place-items:center}
.nav__toggle span{display:block;width:18px;height:1.6px;background:var(--ink);border-radius:2px;transition:transform .25s var(--ease),opacity .2s}
.nav__toggle span+span{margin-top:5px}
.nav__toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.6px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav__toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.6px) rotate(-45deg)}
.mega{position:absolute;top:calc(100% + 8px);left:50%;width:min(620px,90vw);transform:translate(-50%,4px);background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:2px;opacity:0;visibility:hidden;transition:opacity .18s var(--ease),transform .18s var(--ease),visibility .18s}
.mega::before{content:"";position:absolute;inset:-10px 0 auto;height:10px}
.nav__menu li:hover > .mega,.nav__menu li:focus-within > .mega{opacity:1;visibility:visible;transform:translate(-50%,0)}
.mega a{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;border-radius:var(--r-sm);color:var(--ink);font-weight:500;font-size:14.5px;text-decoration:none}
.mega a:hover{background:var(--cream-lt);color:var(--forest)}
.mega small{color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums}
.mega a.mega__all{grid-column:1/-1;border-top:1px solid var(--line);margin-top:4px;border-radius:0;font-weight:600;color:var(--forest)}

/* ---------- page head (inner pages) ---------- */
.page-head{padding-block:clamp(40px,6vw,72px) clamp(28px,4vw,48px);border-bottom:1px solid var(--line)}
.page-head h1{max-width:18em;margin-bottom:.3em}
.page-head .lead{margin:0}
.crumbs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px;font-size:13.5px;color:var(--muted)}
.crumbs a{color:var(--muted)}

/* ---------- home hero ---------- */
.hero{padding-block:clamp(40px,6vw,80px)}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,64px);align-items:center}
.hero h1{margin-bottom:.35em}
.hero__sub{font-size:clamp(1.05rem,1.35vw,1.2rem);max-width:34em;margin-bottom:28px}
.hero__media{margin:0}
.hero__media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-lg)}
.hero__media figcaption{margin-top:10px;font-size:13px;color:var(--muted)}

/* trust strip */
.trust{border-block:1px solid var(--line);background:var(--paper)}
.trust .container{display:flex;align-items:center;gap:20px 32px;flex-wrap:wrap;padding-block:18px}
.trust__logos{display:flex;align-items:center;gap:20px}
.trust__logos img{height:34px;width:auto}
.trust p{margin:0;font-size:14.5px;color:var(--body-c);flex:1 1 320px}
.trust a{white-space:nowrap}

/* product family grid */
.families{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.fam{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;color:inherit;text-decoration:none;transition:border-color .2s var(--ease)}
.fam:hover{border-color:var(--line-strong);color:inherit}
.fam picture,.split__media picture{display:block}
.fam img{width:100%;aspect-ratio:3/2;object-fit:cover}
.fam__body{padding:14px 16px 16px}
.fam h3{font-size:1.1rem;margin:0 0 4px}
.fam span{font-size:13.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.fam:hover h3{color:var(--forest)}
.fam--feature{grid-column:1/-1;flex-direction:row;border-color:var(--gold)}
.fam--feature picture{flex:0 0 46%}
.fam--feature img{height:100%;aspect-ratio:3/2}
.fam--feature .fam__body{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:clamp(18px,3vw,36px)}
.fam--feature h3{font-size:clamp(1.4rem,2.4vw,1.9rem)}
.fam--feature p{margin:0;max-width:40ch;color:var(--ink-soft,inherit);font-size:15.5px}
.fam .fam__label{align-self:flex-start;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--terra-ink)}
.hero__new{display:flex;align-items:center;gap:8px;margin:20px 0 0;font-size:15px}
.hero__new .i{color:var(--forest);font-size:18px;flex-shrink:0}
.hero__video{position:relative}
.hero__vid{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-lg);background:var(--cream-lt)}
.hero__pause{position:absolute;right:12px;bottom:12px;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(22,48,31,.72);color:#fff;cursor:pointer}
.hero__pause:hover{background:rgba(22,48,31,.9)}
.hero__pause:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.hero__pause .i{width:18px;height:18px;fill:currentColor;stroke:none}
.hero__pause .i-play,.hero__pause[aria-pressed="true"] .i-pause{display:none}
.hero__pause[aria-pressed="true"] .i-play{display:block}

/* priority products */
.picks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}

/* ---------- product cards (catalogue + picks) ---------- */
.pcard{display:flex;flex-direction:column;gap:6px;padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.pcard h3{font-family:var(--sans);font-size:1rem;font-weight:600;margin:0;line-height:1.3;letter-spacing:0}
.pcard .bot{font-style:italic;font-size:.9rem;color:var(--muted)}
.pcard .fam-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--terra-ink)}
.pcard__actions{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:auto;padding-top:8px;font-size:14px}
.pcard__actions a{font-weight:600;text-decoration:none}
.pcard__actions a:hover{text-decoration:underline}
.pcard--pick{text-decoration:none;color:inherit}
.pcard--pick:hover{border-color:var(--forest)}

/* ---------- catalogue ---------- */
.toolbar{position:sticky;top:72px;z-index:20;background:rgba(250,248,242,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.toolbar .container{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;padding-block:14px}
.search{position:relative;flex:1 1 280px;max-width:420px}
.search .i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:18px}
.search input{width:100%;min-height:46px;padding:10px 14px 10px 42px;border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper);font:inherit;font-size:15.5px;color:var(--ink)}
.search input:focus{outline:0;border-color:var(--forest);box-shadow:0 0 0 3px rgba(45,90,61,.15)}
.filters{display:flex;flex-wrap:wrap;gap:6px}
.filters button{min-height:38px;padding:7px 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper);font:500 14px/1.2 var(--sans);color:var(--body-c);cursor:pointer}
.filters button:hover{border-color:var(--forest);color:var(--forest)}
.filters button[aria-pressed="true"]{background:var(--forest);border-color:var(--forest);color:#fff}
.result-count{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}
.notice{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:var(--r-sm);background:var(--paper);font-size:14.5px;color:var(--body-c)}
.notice .i{margin-top:3px;color:var(--gold-ink);font-size:18px}
.notice p{margin:0}
.catfam{padding-block:40px 8px;scroll-margin-top:150px}
.catfam__head{display:flex;justify-content:space-between;align-items:baseline;gap:8px 24px;flex-wrap:wrap;margin-bottom:16px}
.catfam__head h2{font-size:clamp(1.4rem,2.2vw,1.8rem);margin:0}
.catfam__head p{margin:0;max-width:56ch;font-size:15px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.empty{padding:40px 24px;text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r);background:var(--paper)}
.empty h2{font-size:1.4rem}
[hidden]{display:none!important}

/* ---------- product detail ---------- */
.pd{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,64px);align-items:start}
.pd__aside{display:grid;gap:16px;position:sticky;top:96px;order:-1}
.specimen{position:relative;padding:28px 24px;background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--r);background-image:linear-gradient(var(--cream-lt),var(--cream-lt));}
.specimen__title{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.1rem);line-height:1.1;margin:0 0 4px}
.specimen__bot{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:var(--body-c);margin:0 0 18px}
.specimen dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0;padding-top:14px;border-top:1px solid var(--line);font-size:14px}
.specimen dt{color:var(--muted)}
.specimen dd{margin:0;font-weight:600}
.specimen__note{margin:16px 0 0;font-size:13px;color:var(--muted)}
.panel{padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.panel h2,.panel h3{font-family:var(--sans);font-size:1rem;font-weight:600;letter-spacing:0;margin:0 0 8px}
.panel p{font-size:15px;margin:0}
.panel ul{display:grid;gap:8px;font-size:15px}
.panel li{display:flex;gap:10px;align-items:flex-start}
.panel li .i{margin-top:4px;color:var(--muted)}
.facts{width:100%;border-collapse:collapse;margin:8px 0 28px;font-size:15.5px}
.facts th,.facts td{text-align:left;vertical-align:top;padding:12px 0;border-bottom:1px solid var(--line)}
.facts th{width:36%;padding-right:16px;font-weight:600;color:var(--ink)}
.facts td{color:var(--body-c)}
.pd h2{font-size:1.35rem;margin-top:8px}
.params{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 24px}
.params li{padding:5px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--paper);font-size:14px}

/* ---------- generic layouts ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.split__media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
.cols-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.cols-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.card{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.card h3{margin:0 0 8px}
.card p{margin:0;font-size:15.5px}
.section--dark .card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14)}

/* numbered steps (real sequences only) */
.steps{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:0;counter-reset:step;border-top:1px solid var(--line)}
.steps li{position:relative;padding:20px 20px 4px 0;counter-increment:step}
.steps li::before{content:counter(step);display:inline-grid;place-items:center;width:30px;height:30px;margin-bottom:12px;border:1.5px solid var(--forest);border-radius:50%;font:600 14px/1 var(--sans);color:var(--forest)}
.steps h3{font-size:1.08rem;margin:0 0 6px}
.steps p{margin:0;font-size:15px}
.section--dark .steps{border-color:rgba(255,255,255,.16)}
.section--dark .steps li::before{border-color:var(--gold-soft);color:var(--gold-soft)}

/* check list */
.checks li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line);color:var(--body-c)}
.checks li:last-child{border-bottom:0}
.checks .i{margin-top:5px;color:var(--forest);font-size:17px;stroke-width:2.2}

/* rows (services) */
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,1fr);gap:20px 40px;padding-block:28px;border-bottom:1px solid var(--line)}
.row h3{font-size:1.35rem;margin:0}
.row p{margin:0}
.row__need{font-size:15px}
.row__need strong{display:block;margin-bottom:4px;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--terra-ink)}

/* definition table */
.dtable{width:100%;border-collapse:collapse;font-size:15.5px}
.dtable caption{text-align:left;font-weight:600;margin-bottom:10px}
.dtable th,.dtable td{text-align:left;vertical-align:top;padding:14px 16px 14px 0;border-bottom:1px solid var(--line)}
.dtable thead th{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.dtable td:first-child{font-weight:600;color:var(--ink)}
.table-wrap{overflow-x:auto}

/* registrations */
.regs{display:grid;gap:12px}
.reg{display:grid;grid-template-columns:72px minmax(0,1fr) minmax(0,.8fr);gap:16px 28px;align-items:center;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.reg img{width:72px;height:56px;object-fit:contain}
.reg h3{margin:0 0 4px;font-size:1.15rem}
.reg p{margin:0;font-size:15px}
.reg dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:14px}
.reg dt{color:var(--muted)}
.reg dd{margin:0;font-weight:600;overflow-wrap:anywhere}

/* people */
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.person{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;align-items:start;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.person img{width:120px;height:120px;object-fit:cover;border-radius:var(--r-sm)}
.person h3{margin:0 0 2px}
.person__role{margin:0 0 10px!important;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--terra-ink)}
.person p{font-size:15px;margin:0}

/* guide layout with section nav */
.with-toc{display:grid;grid-template-columns:220px minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:start}
.toc{position:sticky;top:96px;font-size:14.5px}
.toc strong{display:block;margin-bottom:10px;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.toc a{display:block;padding:7px 0 7px 12px;border-left:2px solid var(--line);color:var(--body-c);text-decoration:none}
.toc a:hover{border-left-color:var(--forest);color:var(--forest)}
.prose > section{padding-bottom:48px;margin-bottom:48px;border-bottom:1px solid var(--line);scroll-margin-top:96px}
.prose > section:last-child{border-bottom:0;margin-bottom:0}
.prose h2{font-size:clamp(1.5rem,2.4vw,1.9rem)}

/* CTA panel */
.cta-panel{display:grid;grid-template-columns:minmax(0,1.3fr) auto;gap:24px 48px;align-items:center;padding:clamp(28px,4vw,44px);background:var(--forest-ink);border-radius:var(--r-lg);color:#fff}
.cta-panel h2{color:#fff;margin:0 0 8px}
.cta-panel p{color:rgba(255,255,255,.78);margin:0}
.cta-panel .btn-outline{color:#fff;border-color:rgba(255,255,255,.4)}
.cta-panel .btn-outline:hover{background:#fff;color:var(--forest-ink)}
.cta-panel__contact{margin-top:14px!important;font-size:14.5px}
.cta-panel__contact a{color:#fff}

/* FAQ */
.faq{max-width:820px}
.acc{border-bottom:1px solid var(--line)}
.acc:first-child{border-top:1px solid var(--line)}
.acc summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;cursor:pointer;list-style:none;font-weight:600;font-size:1.02rem;color:var(--ink)}
.acc summary::-webkit-details-marker{display:none}
.acc summary .i{flex:0 0 auto;font-size:18px;color:var(--terra-ink);transition:transform .2s var(--ease)}
.acc[open] summary .i{transform:rotate(45deg)}
.acc__body{padding:0 0 18px;max-width:70ch}
.acc__body p{margin:0}

/* ---------- forms ---------- */
.contact{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,64px);align-items:start}
.channels li{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}
.channels .i{margin-top:4px;font-size:20px;color:var(--forest)}
.channels b{display:block;font-weight:600}
.channels div > span{display:block;color:var(--body-c)}
.channels .link{margin-top:4px;font-size:14px}
.map{margin-top:20px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:var(--cream)}
.map iframe{display:block;width:100%;height:280px;border:0}
.form{padding:clamp(20px,3.5vw,32px);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg)}
.form h2{font-size:1.5rem}
.field{margin-bottom:18px}
.field label,.field legend{display:block;margin-bottom:6px;font-size:14.5px;font-weight:600;color:var(--ink)}
.field .hint{display:block;margin:-2px 0 6px;font-size:13.5px;font-weight:400;color:var(--muted)}
.opt{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:11px 14px;border:1.5px solid var(--line-strong);border-radius:var(--r-sm);background:var(--paper);font:inherit;font-size:16px;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--forest);box-shadow:0 0 0 3px rgba(45,90,61,.15)}
.field textarea{min-height:110px;resize:vertical}
.field [aria-invalid="true"]{border-color:var(--terra-ink)}
.field .err{display:none;margin-top:6px;font-size:13.5px;font-weight:600;color:var(--terra-ink)}
.field.has-error .err{display:block}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.qty{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:8px}
.form__note{margin:12px 0 0;font-size:13.5px;color:var(--muted)}
.status{display:none;gap:12px;align-items:flex-start;margin-bottom:18px;padding:14px 16px;border-radius:var(--r-sm);font-weight:500}
.status.show{display:flex}
.status .i{margin-top:3px;font-size:18px}
.status--ok{background:var(--sage-wash);color:var(--forest-deep)}
.status--err{background:#FBEDE7;color:var(--terra-deep)}
.hp{display:none}

/* static world map (buyer's guide) */
.worldmap{position:relative;max-width:1000px;aspect-ratio:1000/383.3;background:var(--forest-ink);border-radius:var(--r);overflow:hidden}
.worldmap > img,.worldmap__fx{position:absolute;inset:0;width:100%;height:100%}
.worldmap .routes path{fill:none;stroke:var(--gold);stroke-width:1.2;opacity:.7}
.worldmap .dest circle{fill:var(--gold-soft)}
.worldmap text{font:500 12px/1 var(--sans);fill:rgba(255,255,255,.82)}
.worldmap .origin circle{fill:var(--terra)}
.worldmap .origin text{font-weight:700;fill:#fff}
.worldmap .routes path.main{stroke:var(--terra);stroke-width:2.2;opacity:1}
.worldmap .dest.main circle{fill:#fff}
.worldmap .dest.main text{font-weight:700;fill:#fff;font-size:14px}
.map-legend{margin-top:12px;font-size:14px;color:var(--muted)}
.worldmap .ship{fill:#fff}
.worldmap .pulse{fill:var(--terra)}
.worldmap--live{max-width:none}
.worldmap--live .routes path{stroke-dasharray:5 6;animation:route-flow 1.8s linear infinite}
@keyframes route-flow{to{stroke-dashoffset:-22}}
@media (prefers-reduced-motion:reduce){
  .worldmap--live .routes path{animation:none;stroke-dasharray:none}
  .worldmap .ship,.worldmap .pulse{display:none}
}

/* ---------- footer ---------- */
.site-footer{background:var(--forest-ink);color:rgba(255,255,255,.72);font-size:15px}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:40px;padding-block:64px 48px}
.site-footer img.flogo{height:26px;width:auto;margin-bottom:18px}
.site-footer p{color:rgba(255,255,255,.66);font-size:14.5px;max-width:36ch}
.site-footer h4{margin:0 0 14px;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft)}
.site-footer li{margin-bottom:9px}
.site-footer a{color:rgba(255,255,255,.85);text-decoration:none}
.site-footer a:hover{color:var(--gold-soft);text-decoration:underline}
.footer-contact li{display:flex;gap:10px;align-items:flex-start}
.footer-contact .i{margin-top:5px;color:var(--gold-soft)}
.footer-regs{margin-top:16px;font-size:13px;line-height:1.7;color:rgba(255,255,255,.6)}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-block:20px 28px;border-top:1px solid rgba(255,255,255,.12);font-size:13px;color:rgba(255,255,255,.55)}

/* ---------- reveal (content stays visible without JS) ---------- */
@media (prefers-reduced-motion:no-preference){
  .js .reveal{opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
  .js .reveal.in{opacity:1;transform:none}
}

/* ---------- responsive ---------- */
@media (max-width:1239px){
  .nav__menu{position:absolute;top:100%;left:0;right:0;margin:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:6px var(--gutter) 18px;background:var(--cream-lt);border-bottom:1px solid var(--line);box-shadow:var(--shadow);max-height:calc(100vh - 72px);overflow-y:auto}
  .nav__menu.open{display:flex}
  .nav__menu > li > a{display:flex;justify-content:space-between;padding:14px 2px;border-radius:0;border-bottom:1px solid var(--line);font-size:16px}
  .nav__menu > li > a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--terra);padding-left:12px}
  .mega{display:none}
  .nav__toggle{display:grid}
  .nav__actions{margin-left:auto}
}
@media (max-width:1024px){
  .hero__grid,.split,.contact,.pd,.with-toc,.cta-panel{grid-template-columns:1fr}
  .pd__aside,.toc{position:static}
  .pd__aside{order:0}
  .toc{display:none}
  .picks{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .row{grid-template-columns:1fr 1fr}
  .row h3{grid-column:1/-1}
  .reg{grid-template-columns:64px minmax(0,1fr)}
  .reg dl{grid-column:2}
  .people{grid-template-columns:1fr}
  .footer-top{grid-template-columns:1fr 1fr}
  .toolbar{top:72px}
}
@media (max-width:680px){
  body{font-size:16px}
  .topbar{display:none}
  .nav{height:64px;gap:12px}
  .nav__logo img{height:26px}
  .nav__actions .btn{display:none}
  .toolbar{position:static}
  .families,.cols-2,.cols-3,.steps,.row,.field-row{grid-template-columns:1fr}
  .families{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fam--feature{flex-direction:column}
  .fam--feature picture{flex:none}
  .fam--feature img{height:auto}
  .families .fam--wide-phone{grid-column:1/-1}
  .families .fam--wide-phone img{aspect-ratio:3/1}
  .picks{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reg{grid-template-columns:1fr}
  .reg dl{grid-column:auto}
  .person{grid-template-columns:88px minmax(0,1fr)}
  .person img{width:88px;height:88px}
  .footer-top{grid-template-columns:1fr;gap:32px;padding-block:48px 32px}
  .trust__logos img{height:28px}
  .result-count{margin-left:0;width:100%}
  .qty{grid-template-columns:minmax(0,1fr) 120px}
}
@media (max-width:480px){
  .nav__actions .lang{display:none}
  .nav__menu .nav__lang{display:block;padding-top:14px}
  .nav__menu .nav__lang .lang{display:inline-flex}
  .fam h3{font-size:1rem}
  .fam__body{padding:10px 12px 12px}
  .btn-row .btn{flex:1 1 100%}
}
@media (max-width:360px){
  .nav__logo img{height:22px}
}
@media (max-width:680px){
  .worldmap .dest text{display:none}
}
.pd .panel h2{font-family:var(--sans);font-size:1rem;margin:0 0 10px}
@media (max-width:600px){
  .dtable--stack thead{display:none}
  .dtable--stack tr{display:block;padding:12px 0;border-bottom:1px solid var(--line)}
  .dtable--stack td{display:block;padding:3px 0;border:0}
  .dtable--stack td:not(:first-child)::before{content:attr(data-label) ": ";font-weight:600;color:var(--muted)}
}

/* ---------- product detail: text-led summary + quotation-dependent list ---------- */
.pd__bot{margin:-4px 0 14px;font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--body-c)}
.glance h2{font-family:var(--sans);font-size:1rem;font-weight:600;letter-spacing:0;margin:0 0 12px}
.glance dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0 0 18px;font-size:14.5px}
.glance dt{color:var(--muted)}
.glance dd{margin:0;font-weight:600}
.btn-col{display:grid;gap:8px}
.btn-col .btn{width:100%}
.glance .small{margin:10px 0 0}
.qlist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:4px 0 28px;border-top:1px solid var(--line)}
.qlist li{padding:12px 0;border-bottom:1px solid var(--line);font-size:15.5px}
.qlist b{display:block;font-weight:600;color:var(--ink)}
.qlist span{display:block;color:var(--body-c);font-size:14.5px}
@media (max-width:680px){.qlist{grid-template-columns:1fr}}
