/* ═══════════════════════════════════════════════════════════
   KARAKI — design system
   Self-hosted type: Inter Tight (OFL) + IBM Plex Mono (OFL)
   ═══════════════════════════════════════════════════════════ */
@font-face{font-family:'Inter Tight';font-style:normal;font-display:swap;font-weight:100 900;
  src:url('../vendor/fonts/inter-tight-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('../vendor/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('../vendor/fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2')}

:root{
  --ink:#08090A; --ink-2:#0B0D0E; --surface:#101315; --surface-2:#15191B;
  --line:rgba(255,255,255,.08); --line-2:rgba(255,255,255,.15); --line-3:rgba(255,255,255,.24);
  --fg:#F4F6F7; --fg-2:#9BA2A7; --fg-3:#646C71;
  --teal:#157895; --teal-2:#1E9DBE; --teal-3:#3FC4E2;
  --r:3px; --r-md:14px; --r-lg:20px;

  /* one spacing scale — every gap in the site comes from here */
  --s1:8px; --s2:14px; --s3:22px; --s4:34px; --s5:52px; --s6:76px;
  --pad:clamp(20px,4.4vw,64px);
  --maxw:1440px;
  --navh:clamp(58px,6.4vh,74px);
  --navgap:clamp(10px,1.4vh,18px);
  --headroom:calc(var(--navh) + var(--navgap) * 2);

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,.02,.2,1);
}

*,*::before,*::after{box-sizing:border-box;min-width:0}
html{-webkit-text-size-adjust:100%}
html,body{margin:0;padding:0}
body{
  background:var(--ink);color:var(--fg);
  font-family:'Inter Tight','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  font-size:16px;line-height:1.55;font-weight:400;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,video,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--teal-2);color:#04191F}
:focus-visible{outline:2px solid var(--teal-3);outline-offset:3px;border-radius:2px}

/* anchors clear the floating header */
section[id]{scroll-margin-top:calc(var(--headroom) + 12px)}

/* ─── TEXT MASKS ───────────────────────────────────────────
   Any overflow:hidden wrapper around type MUST carry descender
   room, or g/y/q/p get sliced. Never mask text without .mask. */
.mask{overflow:hidden;padding-bottom:.18em;margin-bottom:-.18em}
.mask>*{display:block;will-change:transform}

/* ─── TYPE SCALE ─────────────────────────────────────────── */
.h-hero{font-size:clamp(2.35rem,6.6vw,6.6rem);line-height:1.04;letter-spacing:-.042em;font-weight:400;margin:0}
.h-1{font-size:clamp(1.95rem,4.4vw,4.1rem);line-height:1.08;letter-spacing:-.034em;font-weight:400;margin:0}
.h-2{font-size:clamp(1.55rem,2.85vw,2.7rem);line-height:1.12;letter-spacing:-.028em;font-weight:400;margin:0}
.h-3{font-size:clamp(1.15rem,1.65vw,1.5rem);line-height:1.22;letter-spacing:-.018em;font-weight:500;margin:0}
.h-bold{font-weight:600;letter-spacing:-.032em}
.lead{font-size:clamp(1rem,1.25vw,1.22rem);line-height:1.6;color:var(--fg-2);margin:0}
.body{font-size:clamp(.94rem,1vw,1.04rem);line-height:1.7;color:var(--fg-2);margin:0}
.small{font-size:.86rem;line-height:1.55;color:var(--fg-2);margin:0}
.mono{font-family:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;font-variant-numeric:tabular-nums;
  line-height:1.5}
.tnum{font-variant-numeric:tabular-nums}
.dim{color:var(--fg-3)}

/* eyebrow — a filled pill, exactly as in the reference. Never a dash or rule. */
.eyebrow{display:inline-flex;align-items:center;padding:.62em 1.15em;border-radius:100px;
  background:rgba(255,255,255,.075);color:var(--fg-2);white-space:nowrap}

/* ─── LAYOUT ─────────────────────────────────────────────── */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
section{position:relative}
.sect{padding-block:clamp(76px,10.5vh,150px)}
.sect-sm{padding-block:clamp(52px,7vh,96px)}
.rule{height:1px;background:var(--line);border:0;margin:0}

/* section header: eyebrow / title left, support right — one shared rhythm */
.s-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s3) clamp(24px,4vw,72px);
  align-items:end;margin-bottom:clamp(32px,5vh,68px)}
.s-head-c{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s3);
  margin-bottom:clamp(32px,5vh,68px)}
.s-head .eyebrow{margin-bottom:var(--s3)}
.stack{display:flex;flex-direction:column;align-items:flex-start}
.split{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(28px,4.6vw,88px);align-items:start}

/* ─── LIQUID GLASS HEADER ────────────────────────────────── */
.nav{position:fixed;top:0;left:0;right:0;z-index:90;padding:var(--navgap) var(--pad);pointer-events:none}
.nav-in{
  pointer-events:auto;
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;
  gap:clamp(14px,2vw,32px);
  width:100%;max-width:var(--maxw);margin-inline:auto;
  height:var(--navh);padding-inline:clamp(14px,1.5vw,22px);
  border-radius:100px;
  background:rgba(16,19,21,.5);
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 1px 0 rgba(255,255,255,.07) inset, 0 12px 40px -12px rgba(0,0,0,.7);
  backdrop-filter:blur(22px) saturate(180%);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  transition:background .5s var(--ease),border-color .5s var(--ease),box-shadow .5s var(--ease);
}
.nav.is-stuck .nav-in{background:rgba(12,14,16,.72);border-color:rgba(255,255,255,.14)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .nav-in{background:rgba(10,12,13,.94)}
}
.brand{display:flex;align-items:center;height:100%}
.brand img{height:clamp(19px,1.5vw,24px);width:auto}
.nav-links{display:flex;align-items:center;justify-content:center;gap:clamp(12px,1.9vw,34px)}
.nav-links a{position:relative;color:var(--fg-2);font-size:.845rem;white-space:nowrap;transition:color .3s}
.nav-links a::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--teal-3);
  transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav-links a:hover,.nav-links a.on{color:var(--fg)}
.nav-links a:hover::after,.nav-links a.on::after{transform:scaleX(1);transform-origin:left}
.nav-cta{display:flex;align-items:center;gap:var(--s2);justify-self:end}
.burger{display:none;width:38px;height:38px;border:1px solid var(--line-2);border-radius:100px;background:none;
  align-items:center;justify-content:center;flex-direction:column;gap:4px;cursor:pointer;padding:0;flex:0 0 auto}
.burger i{display:block;width:14px;height:1px;background:var(--fg);transition:transform .4s var(--ease),opacity .25s}
.burger.open i:nth-child(1){transform:translateY(2.5px) rotate(45deg)}
.burger.open i:nth-child(2){opacity:0}
.burger.open i:nth-child(3){transform:translateY(-2.5px) rotate(-45deg)}

.drawer{position:fixed;inset:0;z-index:85;background:rgba(8,9,10,.82);
  backdrop-filter:blur(26px) saturate(150%);-webkit-backdrop-filter:blur(26px) saturate(150%);
  display:flex;flex-direction:column;justify-content:center;
  padding:calc(var(--headroom) + var(--s4)) var(--pad) var(--s5);
  opacity:0;pointer-events:none;transition:opacity .4s var(--ease);overflow-y:auto}
.drawer.open{opacity:1;pointer-events:auto}
.drawer a{font-size:clamp(1.5rem,6.4vw,2.4rem);letter-spacing:-.03em;line-height:1.5;color:var(--fg-2);
  padding-block:.2em;border-bottom:1px solid var(--line);transition:color .3s}
.drawer a:hover{color:var(--fg)}

/* ─── BUTTONS (GSAP-driven) ──────────────────────────────── */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.62em;
  padding:.92em 1.5em;border-radius:100px;border:1px solid var(--line-2);
  background:transparent;cursor:pointer;overflow:hidden;isolation:isolate;
  font-size:.86rem;line-height:1.4;color:var(--fg);white-space:nowrap;will-change:transform;
  -webkit-tap-highlight-color:transparent}
.btn .btn-fill{position:absolute;inset:0;z-index:-1;background:var(--fg);border-radius:inherit;
  transform:scale(0);will-change:transform}
/* label mask is 1.5em tall for a 1.4 line-height — descenders clear */
.btn .btn-label{position:relative;display:block;overflow:hidden;height:1.5em;flex:0 0 auto}
.btn .btn-label span{display:block;height:1.5em;line-height:1.5em;will-change:transform}
.btn .btn-label span+span{position:absolute;inset:0}
.btn .btn-arrow{display:grid;place-items:center;width:.95em;height:.95em;flex:0 0 auto;overflow:hidden}
.btn .btn-arrow svg{width:100%;height:100%;will-change:transform}
.btn--solid{background:var(--fg);color:var(--ink);border-color:var(--fg)}
.btn--solid .btn-fill{background:var(--teal-2)}
.btn--teal{background:var(--teal);border-color:var(--teal);color:#fff}
.btn--teal .btn-fill{background:var(--teal-3)}
.btn--glass{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.btn--glass .btn-fill{background:rgba(255,255,255,.96)}
.btn--glass:hover{color:var(--ink)}
.btn--sm{padding:.66em 1.15em;font-size:.79rem}

.link-u{display:inline-flex;align-items:center;gap:.5em;width:fit-content;
  border-bottom:1px solid var(--line-2);padding-bottom:.22em;line-height:1.5;
  font-size:.88rem;transition:border-color .35s,color .35s}
.link-u:hover{border-color:var(--teal-3);color:var(--teal-3)}
.link-u svg{flex:0 0 auto;width:.72em;height:.72em;transition:transform .4s var(--ease)}
.link-u:hover svg{transform:translate(2px,-2px)}

/* ═══════════════════ HERO ═══════════════════
   Reference layout: full-bleed motion, headline low-left,
   scroll pill directly beneath it, support copy + actions
   low-right. No rules, no bars.                              */
.hero{position:relative;height:100svh;min-height:540px;max-height:1200px;
  display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media video,.hero-media img{width:100%;height:100%;object-fit:cover;will-change:transform}
.hero-veil{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(to top,rgba(8,9,10,.92) 0%,rgba(8,9,10,.52) 24%,rgba(8,9,10,.10) 52%,rgba(8,9,10,.46) 100%),
    radial-gradient(130% 88% at 12% 100%,rgba(8,9,10,.78) 0%,transparent 60%)}
.hero-in{position:relative;z-index:2;width:100%;padding-bottom:clamp(28px,6.2vh,76px)}
.hero-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(24px,4vw,64px);align-items:end}
.hero-h{max-width:none}
.hero-h .ln{display:block}
.hero-right{display:flex;flex-direction:column;align-items:flex-end;gap:clamp(18px,2.6vh,28px);
  text-align:right;max-width:34ch}
.hero-sub{font-size:clamp(.96rem,1.15vw,1.16rem);line-height:1.55;color:rgba(244,246,247,.9);margin:0;text-wrap:balance}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--s2);justify-content:flex-end}

/* scroll pill — capsule, dot, chevron; sits under the headline */
.scroll-pill{display:inline-flex;align-self:flex-start;width:fit-content;align-items:center;gap:.7em;
  margin-top:clamp(20px,3.4vh,38px);padding:.62em 1.1em .62em .85em;
  border-radius:100px;border:1px solid rgba(255,255,255,.17);
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);
  color:var(--fg);transition:background .4s var(--ease),border-color .4s var(--ease)}
.scroll-pill:hover{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.3)}
.scroll-pill .dot{width:6px;height:6px;border-radius:100px;background:var(--teal-3);flex:0 0 auto}
.scroll-pill .chev{width:11px;height:11px;flex:0 0 auto}

/* ═══════════════════ STATEMENT ═══════════════════ */
.stmt p{font-size:clamp(1.2rem,2.25vw,2.2rem);line-height:1.34;letter-spacing:-.026em;font-weight:400;
  margin:0;max-width:30ch}
.stmt .w{color:rgba(244,246,247,.15);will-change:color}
.stmt-meta{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s3);
  position:sticky;top:calc(var(--headroom) + 24px)}

/* ═══════════════════ CAPABILITIES ═══════════════════ */
.offers{border-top:1px solid var(--line)}
.offer{position:relative;display:grid;
  grid-template-columns:4.4rem minmax(0,1fr) minmax(0,1.08fr) 2.6rem;
  gap:clamp(14px,2.2vw,40px);align-items:center;
  padding-block:clamp(20px,2.7vw,36px);border-bottom:1px solid var(--line);isolation:isolate}
.offer::before{content:'';position:absolute;inset:0 calc(var(--pad) * -1);z-index:-1;
  background:linear-gradient(90deg,rgba(21,120,149,.14),transparent 58%);opacity:0;transition:opacity .5s var(--ease)}
.offer:hover::before{opacity:1}
.offer-n{color:var(--fg-3);transition:color .4s;align-self:center}
.offer:hover .offer-n{color:var(--teal-3)}
.offer-t{font-size:clamp(1.1rem,1.95vw,1.85rem);letter-spacing:-.026em;line-height:1.2;will-change:transform}
.offer-d{color:var(--fg-2);font-size:clamp(.86rem,.97vw,.98rem);line-height:1.6}
.offer-go{justify-self:end;display:grid;place-items:center;width:2.3rem;height:2.3rem;border-radius:100px;
  border:1px solid var(--line-2);color:var(--fg-2);flex:0 0 auto;
  transition:background .4s,color .4s,border-color .4s}
.offer:hover .offer-go{background:var(--fg);color:var(--ink);border-color:var(--fg)}
.offer-go svg{width:.78rem;height:.78rem}

/* ═══════════════════ EQUIPMENT RAIL ═══════════════════ */
.showcase{background:var(--ink-2)}
.sc-pin{height:100svh;min-height:520px;display:flex;flex-direction:column;justify-content:center;
  gap:clamp(20px,3.4vh,42px);overflow:hidden;padding-block:var(--headroom) clamp(20px,3vh,36px)}
.sc-track{display:flex;gap:clamp(12px,1.3vw,22px);align-items:stretch;
  padding-inline:var(--pad);will-change:transform}
.sc-foot{display:flex;align-items:center;gap:clamp(16px,2.4vw,36px)}
.sc-prog{position:relative;flex:1;height:2px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden}
.sc-prog i{position:absolute;inset:0;background:var(--teal-2);transform:scaleX(0);transform-origin:left;border-radius:2px}
.sc-count{flex:0 0 auto;color:var(--fg-3)}

/* card — shared by the rail and the catalogue grid.
   No line clamps anywhere: nothing may ever be cut off. */
.card{position:relative;display:flex;flex-direction:column;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
  transition:border-color .5s var(--ease),transform .5s var(--ease)}
.card:hover{border-color:var(--line-3)}
.card-media{position:relative;flex:0 0 auto;aspect-ratio:1/.8;background:#fff;overflow:hidden}
.card-media img{width:100%;height:100%;object-fit:contain;padding:8%;
  transition:transform .85s var(--ease);will-change:transform}
.card:hover .card-media img{transform:scale(1.05)}
.card-body{display:flex;flex-direction:column;gap:var(--s1);flex:1;
  padding:clamp(15px,1.25vw,21px);border-top:1px solid var(--line)}
.card-cat{color:var(--teal-3)}
.card-t{font-size:clamp(.96rem,1.1vw,1.1rem);line-height:1.3;letter-spacing:-.016em;font-weight:500;
  margin:0;overflow-wrap:anywhere;text-wrap:balance}
.card-d{color:var(--fg-2);font-size:.85rem;line-height:1.6;margin:0}
.card-go{display:inline-flex;align-items:center;gap:.45em;margin-top:auto;padding-top:var(--s2);
  color:var(--fg-2);font-size:.78rem;line-height:1.5;white-space:nowrap;transition:color .35s,gap .35s}
.card-go svg{flex:0 0 auto;width:.7em;height:.7em}
.card:hover .card-go{color:var(--teal-3);gap:.75em}
/* rail cards are name-only so their height is uniform and nothing truncates */
.sc-track .card{flex:0 0 auto;width:clamp(178px,min(20vw,30vh),300px)}
.sc-track .card-media{aspect-ratio:1/.86}

/* ═══════════════════ HERITAGE ═══════════════════ */
.tl-rail{position:relative;height:1px;background:var(--line);margin-bottom:clamp(24px,3.6vh,46px)}
.tl-rail i{position:absolute;inset:0;background:var(--teal-2);transform:scaleX(0);transform-origin:left}
.tl-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(12px,1.7vw,28px)}
.tl-item{position:relative;padding-top:var(--s3)}
.tl-item::before{content:'';position:absolute;top:calc(clamp(24px,3.6vh,46px) * -1 - 1px);left:0;
  width:7px;height:7px;border-radius:100px;background:var(--ink);border:1px solid var(--line-2);
  transform:translateY(-50%);transition:background .45s,border-color .45s,box-shadow .45s}
.tl-item.on::before{background:var(--teal-3);border-color:var(--teal-3);box-shadow:0 0 0 5px rgba(63,196,226,.14)}
.tl-y{font-size:clamp(1.45rem,2.35vw,2.2rem);letter-spacing:-.03em;line-height:1.2;
  font-variant-numeric:tabular-nums;color:var(--fg-3);transition:color .5s var(--ease)}
.tl-item.on .tl-y{color:var(--fg)}
.tl-t{margin:.45em 0 0;font-size:.98rem;line-height:1.4;font-weight:500;letter-spacing:-.012em}
.tl-d{margin:.3em 0 0;color:var(--fg-2);font-size:.85rem;line-height:1.6}

/* ═══════════════════ IMPACT RINGS ═══════════════════
   Reference: bold headline + link on the left, a row of rings
   on the right with the lead metric highlighted.              */
.stats-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);
  padding:clamp(26px,3.4vw,58px);
  display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.18fr);
  gap:clamp(30px,4.4vw,76px);align-items:center}
.stats-copy{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(14px,2vh,22px)}
.rings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.8vw,30px);align-items:start}
.ring{display:flex;flex-direction:column;align-items:center;gap:clamp(12px,1.6vh,20px);text-align:center}
.ring-wrap{position:relative;display:grid;place-items:center;
  width:clamp(104px,10.6vw,176px);height:clamp(104px,10.6vw,176px)}
.ring-svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.ring-svg circle{fill:none;stroke-width:2.4}
.ring-track{stroke:rgba(255,255,255,.11)}
.ring-arc{stroke:var(--teal-3);stroke-linecap:round}
.ring-val{position:relative;font-size:clamp(1.4rem,2.55vw,2.5rem);letter-spacing:-.038em;
  line-height:1.25;font-weight:600;font-variant-numeric:tabular-nums}
.ring--muted .ring-arc{stroke:rgba(255,255,255,.2)}
.ring--muted .ring-val{color:var(--fg-2);font-weight:500}
.ring-l{font-size:.82rem;line-height:1.45;color:var(--fg-2);max-width:15ch;text-wrap:balance}
.ring--muted .ring-l{color:var(--fg-3)}

/* ═══════════════════ SERVICES ═══════════════════ */
.svc-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(18px,2.4vw,44px);
  list-style:none;margin:0;padding:0}
.svc-list li{display:grid;grid-template-columns:1.9rem minmax(0,1fr);align-items:baseline;gap:.4em;
  padding-block:.85em;border-bottom:1px solid var(--line);font-size:.95rem;line-height:1.5}
.svc-list .ix{color:var(--fg-3);font-family:'IBM Plex Mono',monospace;font-size:.66rem}
.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3.4vw,58px);
  margin-top:clamp(28px,3.8vh,50px)}
.metric-v{font-size:clamp(2rem,4vw,3.6rem);letter-spacing:-.04em;line-height:1.15;font-variant-numeric:tabular-nums;
  font-weight:500}
.metric-v sup{font-size:.4em;vertical-align:super;color:var(--teal-3);letter-spacing:0;font-weight:400}
.metric-bar{position:relative;height:2px;background:rgba(255,255,255,.1);border-radius:2px;
  margin-block:.85em .75em;overflow:hidden}
.metric-bar i{position:absolute;inset:0;background:var(--teal-2);transform:scaleX(0);transform-origin:left;border-radius:2px}
.metric-l{color:var(--fg-2);font-size:.86rem;line-height:1.5}

/* ═══════════════════ PARTNERS ═══════════════════
   Reference: filled eyebrow, centred heading + two-line support
   copy, then two rows of soft rounded cards drifting in opposite
   directions, the second row offset by half a card, both fading
   out at the edges.                                           */
.partners{overflow:hidden;padding-bottom:clamp(50px,7vh,96px)}
.mq{position:relative;display:flex;flex-direction:column;gap:clamp(10px,1.1vw,18px);
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 14%,#000 86%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 14%,#000 86%,transparent 100%)}
.mq-shift{overflow:visible}
.mq-shift--offset{padding-left:calc((clamp(178px,16.5vw,258px) + clamp(10px,1.1vw,18px)) / 2)}
.mq-row{display:flex;gap:clamp(10px,1.1vw,18px);width:max-content;will-change:transform}
.plogo{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:center;
  gap:.72em;flex:0 0 auto;
  width:clamp(178px,16.5vw,258px);height:clamp(66px,6.2vw,88px);
  border:1px solid var(--line);border-radius:var(--r-md);
  background:rgba(255,255,255,.018);color:var(--fg-2);
  font-size:clamp(.84rem,.95vw,1rem);line-height:1.3;
  transition:color .45s,border-color .45s,background .45s}
.plogo:hover{color:var(--fg);border-color:var(--line-3);background:rgba(255,255,255,.05)}
.plogo img{height:clamp(17px,1.5vw,23px);width:auto;max-width:62px;object-fit:contain;
  filter:grayscale(1) brightness(0) invert(.6);transition:filter .45s}
.plogo:hover img{filter:grayscale(1) brightness(0) invert(1)}
.plogo span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ═══════════════════ FAQ ═══════════════════ */
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(16px,2vw,32px);
  padding-block:clamp(17px,2vw,26px);background:none;border:0;text-align:left;cursor:pointer;
  font-size:clamp(.99rem,1.32vw,1.26rem);letter-spacing:-.018em;line-height:1.4;transition:color .35s}
.faq-q:hover{color:var(--teal-3)}
.faq-ic{position:relative;width:1.55rem;height:1.55rem;border:1px solid var(--line-2);border-radius:100px;flex:0 0 auto}
.faq-ic::before,.faq-ic::after{content:'';position:absolute;top:50%;left:50%;background:var(--fg);
  width:.56rem;height:1px;margin:-.5px 0 0 -.28rem;transition:transform .45s var(--ease),opacity .3s}
.faq-ic::after{transform:rotate(90deg)}
.faq-item.open .faq-ic::after{transform:rotate(0);opacity:0}
.faq-a{height:0;overflow:hidden}
.faq-a p{margin:0;padding-bottom:clamp(17px,2vw,26px);max-width:64ch;
  color:var(--fg-2);font-size:.95rem;line-height:1.7}

/* ═══════════════════ CONTACT ═══════════════════ */
.contact{background:var(--ink-2);border-top:1px solid var(--line)}
.cinfo{display:grid;gap:clamp(18px,2.4vw,30px);align-content:start}
.cinfo-b{padding-top:1em;border-top:1px solid var(--line)}
.cinfo-b h4{margin:0 0 .6em;color:var(--fg-3)}
.cinfo-b a,.cinfo-b p{display:block;margin:0 0 .3em;font-size:.97rem;line-height:1.6;color:var(--fg);width:fit-content}
.cinfo-b a{transition:color .3s}
.cinfo-b a:hover{color:var(--teal-3)}
.form{display:grid;gap:clamp(12px,1.25vw,17px);align-content:start}
.f-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:inherit}
.field{display:flex;flex-direction:column;gap:.5em;min-width:0}
.field label{color:var(--fg-3);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;
  font-family:'IBM Plex Mono',monospace;line-height:1.5}
.field input,.field select,.field textarea{
  width:100%;padding:.92em 1.05em;background:rgba(255,255,255,.03);border:1px solid var(--line);
  border-radius:var(--r);color:var(--fg);font-size:.95rem;line-height:1.5;outline:none;
  transition:border-color .35s,background-color .35s}
.field textarea{resize:vertical;min-height:124px}
.field select{appearance:none;padding-right:2.8em;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%239BA2A7' stroke-width='1.3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1.05em center;background-size:12px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal-2);background-color:rgba(30,157,190,.07)}
.field.err input,.field.err select,.field.err textarea{border-color:#C4544E}
.field .msg{color:#E0847E;font-size:.74rem;line-height:1.5;min-height:1.5em}
.form-foot{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between}
.form-note{color:var(--fg-3);font-size:.79rem;line-height:1.6;margin:0;max-width:32ch}
.form-ok{padding:1.05em 1.2em;border:1px solid rgba(63,196,226,.42);background:rgba(30,157,190,.1);
  border-radius:var(--r);color:var(--fg);font-size:.92rem;line-height:1.65}
.map{aspect-ratio:21/7;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
  background:var(--surface);margin-top:clamp(30px,4.2vh,60px)}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(1) invert(.9) contrast(.86) hue-rotate(180deg)}

/* ═══════════════════ FOOTER ═══════════════════ */
.foot{border-top:1px solid var(--line);padding-block:clamp(40px,5.4vh,72px) clamp(22px,3vh,32px)}
.foot-top{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px)}
.foot h5{margin:0 0 1.1em;color:var(--fg-3)}
.foot-nav a{display:block;width:fit-content;color:var(--fg-2);font-size:.9rem;line-height:1.6;
  padding-block:.3em;transition:color .3s}
.foot-nav a:hover{color:var(--fg)}
.foot img.fl{height:clamp(30px,3vw,38px);width:auto;margin-bottom:1.1em}
.foot-bot{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);align-items:center;justify-content:space-between;
  margin-top:clamp(32px,4.4vh,60px);padding-top:clamp(18px,2.4vh,28px);
  border-top:1px solid var(--line);color:var(--fg-3);line-height:1.6}
.foot-bot nav{display:flex;gap:var(--s3)}

/* ═══════════════════ CATALOGUE ═══════════════════ */
.page-head{padding-top:calc(var(--headroom) + clamp(28px,5vh,72px));
  padding-bottom:clamp(28px,4.6vh,60px);border-bottom:1px solid var(--line)}
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:.5em;color:var(--fg-3);
  margin-bottom:clamp(16px,2.4vh,26px);line-height:1.8}
.crumb a{transition:color .3s}
.crumb a:hover{color:var(--teal-3)}
.crumb b{color:var(--fg);font-weight:400}
.cat-layout{display:grid;grid-template-columns:clamp(200px,19vw,272px) minmax(0,1fr);
  gap:clamp(24px,3.4vw,64px);align-items:start;padding-block:clamp(30px,4.4vh,58px)}
.cat-side{position:sticky;top:calc(var(--headroom) + 16px);
  max-height:calc(100svh - var(--headroom) - 40px);overflow-y:auto;padding-right:8px;
  scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
.cat-side::-webkit-scrollbar{width:4px}
.cat-side::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:100px}
.cat-group{margin-bottom:1.8em}
.cat-group>a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:baseline;
  font-size:.94rem;line-height:1.5;font-weight:500;letter-spacing:-.012em;
  padding-bottom:.7em;border-bottom:1px solid var(--line);margin-bottom:.5em}
.cat-sub{list-style:none;margin:0;padding:0}
.cat-sub a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:baseline;
  padding:.4em 0 .4em .85em;color:var(--fg-2);font-size:.87rem;line-height:1.5;
  border-left:1px solid transparent;transition:color .3s,border-color .3s}
.cat-sub a:hover{color:var(--fg);border-left-color:var(--line-2)}
.cat-sub a.on{color:var(--teal-3);border-left-color:var(--teal-3)}
.cat-sub a.empty{color:var(--fg-3)}
.cat-sub .deep{padding-left:1.8em;font-size:.83rem}
.n{font-family:'IBM Plex Mono',monospace;font-size:.63rem;color:var(--fg-3);flex:0 0 auto}
.grid-p{display:grid;grid-template-columns:repeat(auto-fill,minmax(216px,1fr));gap:clamp(12px,1.3vw,20px)}
.cat-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3);
  padding-bottom:clamp(16px,2.2vh,26px);margin-bottom:clamp(16px,2.2vh,26px);border-bottom:1px solid var(--line)}
.cat-toggle{display:none;width:100%;align-items:center;justify-content:space-between;gap:12px;
  padding:.9em 1.1em;margin-bottom:1.1em;background:rgba(255,255,255,.03);border:1px solid var(--line);
  border-radius:100px;color:var(--fg);cursor:pointer;font-size:.88rem;line-height:1.5;text-align:left}
.cat-toggle .ic{position:relative;width:1.4rem;height:1.4rem;border:1px solid var(--line-2);border-radius:100px;flex:0 0 auto}
.cat-toggle .ic::before,.cat-toggle .ic::after{content:'';position:absolute;top:50%;left:50%;background:var(--fg);
  width:.5rem;height:1px;margin:-.5px 0 0 -.25rem;transition:transform .4s var(--ease),opacity .3s}
.cat-toggle .ic::after{transform:rotate(90deg)}
.cat-toggle[aria-expanded=true] .ic::after{transform:rotate(0);opacity:0}
.empty-state{grid-column:1/-1;padding:clamp(36px,6.5vh,84px) clamp(20px,4vw,48px);text-align:center;
  border:1px dashed var(--line-2);border-radius:var(--r-md)}
.empty-state p{max-width:48ch;margin:.8em auto 1.5em;color:var(--fg-2);line-height:1.7}

.pd{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(26px,4vw,72px);align-items:start;padding-block:clamp(28px,4.4vh,58px)}
.pd-main{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;aspect-ratio:1/.84}
.pd-main img{width:100%;height:100%;object-fit:contain;padding:6%}
.pd-thumbs{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
.pd-thumb{width:72px;height:62px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  background:#fff;cursor:pointer;padding:0;opacity:.55;transition:border-color .35s,opacity .35s;flex:0 0 auto}
.pd-thumb img{width:100%;height:100%;object-fit:contain;padding:9%}
.pd-thumb.on,.pd-thumb:hover{border-color:var(--teal-2);opacity:1}
.pd-copy{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(14px,2vh,20px)}
.pd-copy .body{max-width:62ch}
.pd-tags{display:flex;flex-wrap:wrap;gap:8px}
.pd-tags a{padding:.45em .85em;border:1px solid var(--line);border-radius:100px;color:var(--fg-2);
  font-size:.77rem;line-height:1.5;transition:color .3s,border-color .3s}
.pd-tags a:hover{color:var(--fg);border-color:var(--line-2)}
.pd-cta{display:flex;flex-wrap:wrap;gap:var(--s2)}
.rel{border-top:1px solid var(--line);padding-block:clamp(38px,5.6vh,80px)}

/* ═══════════════════ RESPONSIVE ═══════════════════ */
@media (max-width:1180px){
  .stats-card{grid-template-columns:1fr;gap:clamp(28px,4vh,44px)}
  .foot-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pd{grid-template-columns:1fr}
}
@media (max-width:980px){
  .nav-in{grid-template-columns:auto 1fr auto}
  .nav-links{display:none}
  .nav-cta .btn{display:none}
  .burger{display:flex}
  .split,.s-head{grid-template-columns:1fr}
  .s-head{align-items:start}
  .stmt-meta{position:static}
  .offer{grid-template-columns:3rem minmax(0,1fr) 2.3rem;row-gap:var(--s1)}
  .offer-d{grid-column:2 / -1}
  .tl-rail{display:none}
  .tl-row{grid-template-columns:1fr;gap:0}
  .tl-item{padding:var(--s3) 0 var(--s3) var(--s3);border-left:1px solid var(--line)}
  .tl-item::before{top:calc(var(--s3) + .35em);left:0;transform:translate(-50%,0)}
  .hero-row{grid-template-columns:1fr;gap:clamp(20px,3.4vh,32px)}
  .hero-right{align-items:flex-start;text-align:left;max-width:38ch}
  .hero-cta{justify-content:flex-start}
  .hero-h{max-width:none}
  .cat-layout{grid-template-columns:1fr}
  .cat-side{position:static;max-height:0;overflow:hidden;padding-right:0;
    border-bottom:1px solid var(--line);margin-bottom:1.2em}
  .cat-side.open{max-height:none;padding-bottom:1.2em}
  .cat-toggle{display:flex}
}
@media (max-width:680px){
  .f-row,.svc-list,.metrics{grid-template-columns:1fr}
  .foot-top{grid-template-columns:1fr}
  .map{aspect-ratio:4/3}
  .grid-p{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
  .ring-wrap{width:clamp(80px,26vw,120px);height:clamp(80px,26vw,120px)}
  .rings{gap:8px}
  .ring-l{font-size:.75rem}
  .stats-card{padding:clamp(22px,5vw,32px)}
  .form-foot{flex-direction:column;align-items:stretch}
  .form-foot .btn{width:100%}
  .form-note{max-width:none}
}
/* short / landscape viewports: the rail and hero must still breathe */
@media (max-height:640px) and (min-width:700px){
  .hero-in{padding-bottom:clamp(18px,3vh,28px)}
  .scroll-pill{margin-top:clamp(12px,2vh,20px)}
  .sc-pin{gap:clamp(12px,2vh,22px)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .mask>*,[data-rv]{transform:none!important;opacity:1!important;filter:none!important}
  .stmt .w{color:var(--fg)!important}
  .sc-track{overflow-x:auto}
}

/* ═══════════════════ 404 ═══════════════════ */
.err{min-height:100svh;display:flex;align-items:center;
  padding-block:calc(var(--headroom) + clamp(30px,6vh,72px)) clamp(40px,7vh,88px)}
.err-in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(34px,5vw,88px);align-items:center;width:100%}
.err-copy{gap:clamp(14px,2.2vh,22px)}
.err-code{margin:0;font-size:clamp(4.5rem,13vw,11rem);line-height:1;letter-spacing:-.05em;
  font-weight:500;color:transparent;
  background:linear-gradient(180deg,rgba(244,246,247,.22),rgba(244,246,247,.03));
  -webkit-background-clip:text;background-clip:text}
.err-cta{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2)}
.err-links{display:flex;flex-direction:column}
.err-links a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:baseline;
  padding:.95em 0;border-bottom:1px solid var(--line);color:var(--fg-2);
  font-size:clamp(.94rem,1.1vw,1.06rem);line-height:1.5;transition:color .3s,padding-left .4s var(--ease)}
.err-links a:first-of-type{border-top:1px solid var(--line)}
.err-links .ext{flex:0 0 auto;width:.66em;height:.66em;align-self:center;color:var(--fg-3);transition:color .3s}
.err-links a:hover .ext{color:var(--teal-3)}
.err-links a:hover{color:var(--fg);padding-left:.55em}
@media (max-width:980px){
  .err-in{grid-template-columns:1fr;gap:clamp(30px,5vh,48px)}
  .err{align-items:flex-start}
}
