
/* ---------- 1. Tokens (map to Elementor Global Colors / Fonts) ---------- */
:root{
  --c-brand:#2834a4;         /* CURE logo blue — primary brand colour */
  --c-brand-ink:#ffffff;     /* text on brand blue (logo white) */
  --c-graphite:#0a0d26;      /* base: deep navy derived from the logo blue */
  --c-graphite-2:#10153a;    /* raised surfaces */
  --c-graphite-3:#1a2052;
  --c-steel:#9399c2;         /* muted text on dark */
  --c-steel-2:#c5c9e6;       /* secondary text on dark */
  --c-chrome:#f3f4fa;        /* primary text on dark (logo white) */
  --c-paper:#f3f4fa;         /* light-section base */
  --c-paper-2:#e3e6f3;
  --c-paper-ink:#0a0d26;
  --c-paper-muted:#4a5078;
  --c-accent:#9aa3ff;        /* light tint of the brand blue — data & highlights on dark */
  --c-accent-ink:#2834a4;
  --c-accent-deep:#2834a4;   /* accent on light sections = logo blue */
  --c-error:#b23a26;
  --c-line-dark:rgba(243,244,250,.13);
  --c-line-light:rgba(10,13,38,.14);

  --f-display:"Instrument Serif","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --f-body:"Inter Tight","Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-logo:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --fs-body:clamp(1rem,.96rem + .18vw,1.0625rem);
  --fs-small:.875rem;
  --fs-micro:.75rem;
  --fs-h3:clamp(1.75rem,1.25rem + 1.8vw,2.75rem);
  --fs-h2:clamp(2.75rem,1.4rem + 5.2vw,7rem);
  --fs-display:clamp(3.5rem,.8rem + 10.6vw,12.5rem);

  --max:1640px;
  --gutter:clamp(1.25rem,4vw,4rem);
  --colgap:clamp(1rem,2vw,2rem);
  --sec-pad:clamp(6rem,11vw,11rem);
  --nav-h:4.5rem;
  --r-sm:4px; --r-md:10px; --r-pill:999px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.76,0,.24,1);

  color-scheme:dark;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
/* The brand is dark by design; dark mode only softens the light sections so they don't glare */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){ --c-paper:#dfe2f0; --c-paper-2:#d1d5ea; }
}
:root[data-theme="dark"]{ --c-paper:#dfe2f0; --c-paper-2:#d1d5ea; }

/* ---------- 2. Base ---------- */
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{
  --bg:var(--c-graphite);--fg:var(--c-chrome);--muted:var(--c-steel);--line:var(--c-line-dark);--acc:var(--c-accent);--surface:var(--c-graphite-2);
  margin:0;background:var(--c-graphite);color:var(--fg);
  font-family:var(--f-body);font-size:var(--fs-body);line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;
}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit}
p{margin:0 0 1em}
h1,h2,h3,h4{margin:0;font-weight:400}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:2px}
::selection{background:var(--c-brand);color:#fff}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:1rem;top:-4rem;z-index:300;background:var(--c-brand);color:#fff;padding:.75rem 1rem;border-radius:var(--r-sm);text-decoration:none;font-weight:500}
.skip:focus{top:calc(1rem + env(safe-area-inset-top,0px))}

/* Section theming — every <section> is one Elementor container */
.sec{position:relative;background:var(--bg);color:var(--fg);padding-block:var(--sec-pad)}
.is-light{--bg:var(--c-paper);--fg:var(--c-paper-ink);--muted:var(--c-paper-muted);--line:var(--c-line-light);--acc:var(--c-accent-deep);--surface:var(--c-paper-2);background:var(--bg);color:var(--fg)}
.con{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter);position:relative}
.grid12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap)}

/* ---------- 3. Type ---------- */
.display{font-family:var(--f-display);font-weight:400;line-height:.92;letter-spacing:-.022em}
.h2{font-size:var(--fs-h2)}
.h3{font-family:var(--f-display);font-size:var(--fs-h3);line-height:1;letter-spacing:-.01em}
.lede{font-size:clamp(1.125rem,1rem + .45vw,1.375rem);line-height:1.45;color:var(--muted);max-width:38ch}
.kicker{display:flex;align-items:center;gap:.85rem;font-size:var(--fs-small);font-weight:500;color:var(--muted);margin:0 0 1.75rem}
/* kicker tick = a dimension-line end mark, the site's recurring drawing motif */
.kicker::before{content:"";width:2.25rem;height:9px;flex:none;background:
  linear-gradient(currentColor,currentColor) left center/100% 1px no-repeat,
  linear-gradient(currentColor,currentColor) left center/1px 100% no-repeat,
  linear-gradient(currentColor,currentColor) right center/1px 100% no-repeat;opacity:.7}
.spec{font-family:var(--f-mono);font-size:var(--fs-micro);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.tol{font-family:var(--f-mono);font-size:.16em;letter-spacing:0;vertical-align:super;color:var(--acc);margin-left:.4em;font-weight:400;white-space:nowrap}
.steel-text,.steel-text .wi{background:linear-gradient(180deg,#ffffff 0%,#c9cfd5 42%,#7f878f 58%,#e3e7ea 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hover-track{transition:letter-spacing .7s var(--ease-out)}
.hover-track:hover{letter-spacing:.006em}

/* Split-text masks (created by JS from data-reveal) */
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .06em .12em 0;margin:0 -.06em -.12em 0}
.wi{display:inline-block;will-change:transform}
.js-anim [data-reveal]{visibility:hidden}

/* ---------- 4. Buttons ---------- */
.btn{--h:3.5rem;position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.7rem;height:var(--h);padding:0 1.6rem;border-radius:var(--r-pill);border:1px solid transparent;font:500 .9375rem/1 var(--f-body);letter-spacing:.005em;text-decoration:none;cursor:pointer;white-space:nowrap;transition:color .5s var(--ease-out),border-color .5s var(--ease-out)}
.btn::before{content:"";position:absolute;inset:-1px;z-index:-1;border-radius:inherit;transform:translateY(102%);transition:transform .6s var(--ease-out)}
.btn:hover::before{transform:none}
.btn--accent{background:var(--c-chrome);color:var(--c-brand)}
.btn--accent::before{background:var(--c-brand)}
.btn--accent:hover{color:#fff}
.is-light .btn--accent{background:var(--c-brand);color:#fff}
.is-light .btn--accent::before{background:var(--c-paper-ink)}
.btn--ghost{border-color:var(--line);color:var(--fg)}
.btn--ghost::before{background:var(--fg)}
.btn--ghost:hover{color:var(--bg);border-color:var(--fg)}
.btn--sm{--h:2.75rem;padding:0 1.15rem;font-size:.875rem}
.btn svg{width:1em;height:1em;flex:none}
.link-u{text-decoration:none;background:linear-gradient(currentColor,currentColor) left bottom/100% 1px no-repeat;padding-bottom:2px;transition:background-size .5s var(--ease-out)}
.link-u:hover{background-size:0 1px;background-position:right bottom}

/* ---------- 5. Image placeholders ---------- */
.ph{position:relative;overflow:hidden;background:var(--c-graphite-3);border-radius:var(--r-sm);margin:0}
.ph__img{position:absolute;inset:-9%;background:
  repeating-linear-gradient(90deg,rgba(255,255,255,.028) 0 1px,transparent 1px 3px),
  linear-gradient(115deg,transparent 38%,rgba(255,255,255,.10) 47%,transparent 56%),
  radial-gradient(110% 80% at 28% 18%,#3a438f 0%,#1a2052 46%,#0a0d26 100%);will-change:transform}
.ph::after{content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.07);pointer-events:none}
.ph__label{position:absolute;left:1.25rem;right:1.25rem;bottom:1.1rem;z-index:2;font-family:var(--f-mono);font-size:.6875rem;line-height:1.5;color:rgba(238,241,243,.62);border-top:1px dashed rgba(238,241,243,.24);padding-top:.6rem}
.tbd{display:inline-block;font-family:var(--f-mono);font-size:.625rem;letter-spacing:.04em;line-height:1;color:var(--acc);border:1px dashed currentColor;border-radius:2px;padding:.3rem .45rem;vertical-align:middle}

/* ---------- 6. Preloader (HTML widget) ---------- */
.preloader{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:var(--c-graphite);clip-path:inset(0 0 0 0);transition:clip-path 1s var(--ease-io);animation:pl-fallback 0s linear 4.5s forwards}
.preloader.is-done{clip-path:inset(0 0 100% 0)}
.preloader.is-gone{display:none}
@keyframes pl-fallback{to{visibility:hidden}}
.preloader__inner{display:flex;flex-direction:column;align-items:center}
.preloader__mark{width:88px;height:88px}
.preloader__mark path{fill:none;stroke:var(--c-chrome);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.preloader__meta{display:flex;justify-content:space-between;width:min(18rem,70vw);margin-top:2.25rem;font-size:var(--fs-small);color:var(--c-steel)}
.preloader__pct{color:var(--c-chrome)}
.preloader__bar{width:min(18rem,70vw);height:1px;margin-top:.75rem;background:var(--c-line-dark);overflow:hidden}
.preloader__bar span{display:block;height:100%;background:var(--c-accent);transform:scaleX(0);transform-origin:left}

/* ---------- 7. Cursor & grain (HTML widget) ---------- */
.cursor{display:none;position:fixed;inset:0;z-index:150;pointer-events:none}
.has-cursor .cursor{display:block}
.has-cursor body,.has-cursor a,.has-cursor button,.has-cursor label,.has-cursor [data-cursor]{cursor:none}
.cursor__dot,.cursor__ring{position:fixed;top:0;left:0;will-change:transform}
.cursor__dot span{display:block;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#fff;mix-blend-mode:difference}
.cursor__ring-in{display:grid;place-items:center;width:42px;height:42px;margin:-21px 0 0 -21px;border:1px solid rgba(238,241,243,.5);border-radius:50%;transition:width .5s var(--ease-out),height .5s var(--ease-out),margin .5s var(--ease-out),background-color .4s,border-color .4s}
.cursor.is-hover .cursor__ring-in{width:64px;height:64px;margin:-32px 0 0 -32px;border-color:var(--c-accent)}
.cursor.has-label .cursor__ring-in{width:92px;height:92px;margin:-46px 0 0 -46px;background:var(--c-brand);border-color:rgba(255,255,255,.4)}
.cursor__label{font-size:.75rem;font-weight:600;color:#fff;opacity:0;transition:opacity .3s}
.cursor.has-label .cursor__label{opacity:1}
.cursor.is-hidden{opacity:0}
.grain{position:fixed;inset:-50%;z-index:140;pointer-events:none;opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%,100%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}}

/* ---------- 8. Navigation ---------- */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:transform .7s var(--ease-out),background-color .5s,border-color .5s;border-bottom:1px solid transparent}
.site-nav.is-scrolled{background:rgba(10,13,38,.66);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border-bottom-color:var(--c-line-dark)}
.site-nav.is-hidden{transform:translateY(-101%)}
.site-nav__con{height:var(--nav-h);display:flex;align-items:center;gap:3rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--c-chrome);flex:none}
.brand svg{width:28px;height:28px}
.brand svg path{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round}
.brand__name{font-family:var(--f-display);font-size:1.5rem;letter-spacing:-.01em;line-height:1}
.site-nav__links ul{display:flex;gap:1.6rem;list-style:none;margin:0;padding:0}
.site-nav__links a{font-size:.875rem;color:var(--c-steel-2);text-decoration:none;position:relative;transition:color .3s}
.site-nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out)}
.site-nav__links a:hover{color:var(--c-chrome)}
.site-nav__links a:hover::after{transform:scaleX(1);transform-origin:left}
/* Always-visible actions live outside the hiding bar */
.nav-actions{position:fixed;z-index:61;top:env(safe-area-inset-top,0px);right:max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter)));height:var(--nav-h);display:flex;align-items:center;gap:.6rem}
.burger{display:none;width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--c-line-dark);background:rgba(10,13,38,.6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;padding:0}
.burger span{display:block;width:16px;height:1.5px;background:var(--c-chrome);transition:transform .5s var(--ease-out)}
.burger span+span{margin-top:5px}
.burger[aria-expanded="true"] span:first-child{transform:translateY(3.25px) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-3.25px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:60;background:var(--c-graphite);display:flex;flex-direction:column;justify-content:space-between;padding:calc(var(--nav-h) + env(safe-area-inset-top,0px) + 2rem) var(--gutter) calc(2rem + env(safe-area-inset-bottom,0px));clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .8s var(--ease-io),visibility 0s linear .8s}
.menu.is-open{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .8s var(--ease-io)}
.menu__links{list-style:none;margin:0;padding:0}
.menu__links li{overflow:hidden;border-bottom:1px solid var(--c-line-dark)}
.menu__links a{display:block;padding:.35rem 0;font-family:var(--f-display);font-size:clamp(2.5rem,11vw,4.5rem);line-height:1.05;text-decoration:none;transform:translateY(105%);transition:transform .8s var(--ease-out)}
.menu.is-open .menu__links a{transform:none;transition-delay:calc(.25s + var(--i)*.05s)}
.menu__foot{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;font-size:var(--fs-small);color:var(--c-steel)}
.menu__foot a{color:var(--c-chrome)}

/* ---------- 9. Hero ---------- */
.sec-hero{padding:0;min-height:100vh;min-height:100svh;display:flex;overflow:hidden;background:radial-gradient(70% 70% at 72% 42%,#1d2570 0%,#10153a 38%,var(--c-graphite) 68%)}
.hero__canvas{position:absolute;inset:0;z-index:0;opacity:0;transition:opacity 1.8s var(--ease-out)}
.hero__canvas.is-ready{opacity:1}
.hero__canvas canvas{width:100%!important;height:100%!important}
.hero__canvas.is-fallback{opacity:1}
.hero__canvas.is-fallback::before{content:"";position:absolute;right:22%;top:14%;width:6px;height:68%;border-radius:6px;transform:rotate(32deg);background:linear-gradient(180deg,#f4f6f8,#7c848b 45%,#e9edf0 60%,#5b6268)}
.hero__rules{position:absolute;inset:0;z-index:1;pointer-events:none;max-width:var(--max);margin-inline:auto;left:0;right:0;border-inline:1px solid var(--c-line-dark);margin-inline:max(0px,calc((100vw - var(--max))/2))}
.hero__rules::before,.hero__rules::after{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--c-line-dark)}
.hero__rules::before{left:var(--gutter)}
.hero__rules::after{right:var(--gutter)}
.hero__con{z-index:2;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto 1fr auto auto;column-gap:var(--colgap);min-height:100vh;min-height:100svh;padding-top:calc(var(--nav-h) + 2.5rem);padding-bottom:2.25rem}
.hero__top{grid-column:1/-1;display:flex;justify-content:space-between;gap:1rem;font-size:var(--fs-small);color:var(--c-steel)}
.hero__top p{margin:0}
.hero__specs{grid-column:10/-1;grid-row:2;align-self:center;justify-self:end;width:min(100%,15.5rem);margin:0}
.hero__specs div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-top:1px solid var(--c-line-dark)}
.hero__specs div:last-child{border-bottom:1px solid var(--c-line-dark)}
.hero__specs dt{font-size:var(--fs-small);color:var(--c-steel)}
.hero__specs dd{margin:0;font-family:var(--f-mono);font-size:.8125rem;color:var(--c-chrome)}
.hero__title{grid-column:1/span 10;grid-row:3;font-size:var(--fs-display);pointer-events:none}
.hero__title .ln{display:block}
.hero__title .ln--in{padding-left:12%}
.hero__bottom{grid-column:1/-1;grid-row:4;display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-top:2.25rem;padding-top:1.5rem;border-top:1px solid var(--c-line-dark)}
.hero__lede{margin:0;max-width:42ch;color:var(--c-steel-2)}
.hero__ctas{display:flex;flex-wrap:wrap;gap:.75rem}
.scroll-ind{display:flex;align-items:center;gap:.75rem;font-size:var(--fs-small);color:var(--c-steel);text-decoration:none}
.scroll-ind__line{position:relative;width:1px;height:3rem;background:var(--c-line-dark);overflow:hidden}
.scroll-ind__line::after{content:"";position:absolute;left:0;top:0;width:1px;height:40%;background:var(--c-accent);animation:scroll-ind 2.2s var(--ease-io) infinite}
@keyframes scroll-ind{0%{transform:translateY(-100%)}100%{transform:translateY(260%)}}

/* ---------- 10. Trust marquee ---------- */
.sec-trust{padding-block:clamp(3rem,6vw,5rem);border-block:1px solid var(--line)}
.trust__head{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.75rem}
.trust__head .kicker{margin:0}
.trust__note{font-size:var(--fs-small);color:var(--muted);margin:0}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee__track{display:flex;width:max-content;will-change:transform}
.marquee__group{display:flex;align-items:center;gap:clamp(1.5rem,4vw,4rem);padding:0 clamp(1.5rem,4vw,4rem) 0 0;margin:0;list-style:none;flex:none}
.marquee__item{font-family:var(--f-display);font-size:clamp(2.75rem,1.5rem + 5vw,6.5rem);line-height:1.05;white-space:nowrap;color:var(--c-chrome)}
.marquee__sep{width:clamp(1.25rem,2vw,2rem);height:clamp(1.25rem,2vw,2rem);flex:none;color:var(--acc)}
.marquee.is-static .marquee__track{flex-wrap:wrap;width:auto}
.marquee.is-static .marquee__group[aria-hidden]{display:none}

/* ---------- Shared section heads ---------- */
.sec-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);margin-bottom:clamp(3.5rem,7vw,7rem)}
.sec-head .kicker{grid-column:1/-1}
.sec-head h2{grid-column:1/span 9}
.sec-head .lede{grid-column:7/-1;margin-top:2.25rem}

/* ---------- 11. Metrics ---------- */
.metrics{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));border-top:1px solid var(--line)}
.metric{position:relative;grid-column:span 3;padding:1.75rem 1.25rem 2.25rem;border-left:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column}
.metric--lead{grid-column:1/span 6;grid-row:1/span 3;border-left:0;padding-left:0;justify-content:space-between}
.metric__num{display:flex;align-items:flex-start;font-family:var(--f-display);font-size:clamp(3.25rem,1.8rem + 4.2vw,6.25rem);line-height:.9;letter-spacing:-.03em;margin:0 0 1rem;font-variant-numeric:tabular-nums}
.metric--lead .metric__num{font-size:clamp(8rem,3rem + 16vw,21rem);letter-spacing:-.05em;margin:0}
.metric__num sup{font-size:.42em;line-height:1;margin:.12em 0 0 .06em;color:var(--acc)}
.metric__cap{margin:0;max-width:24ch;color:var(--muted);font-size:var(--fs-small)}
.metric--lead .metric__cap{font-size:clamp(1.125rem,1rem + .5vw,1.5rem);color:var(--fg);max-width:20ch}
.metric .tbd{position:absolute;top:1.25rem;right:1rem}

/* ---------- 12. About ---------- */
.sec-about{overflow:hidden}
.about__con{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);align-items:start}
.about__media{grid-column:1/span 5}
.about__pin{position:sticky;top:calc(var(--nav-h) + 4vh)}
.about__pin .ph{aspect-ratio:4/5}
.about__cap{margin-top:1rem;font-size:var(--fs-small);color:var(--muted)}
.about__text{grid-column:7/-1;padding-top:clamp(0rem,8vh,6rem)}
.about__lead{font-size:clamp(1.375rem,1.05rem + 1.1vw,2rem);line-height:1.32;font-weight:300;margin-bottom:2.5rem;max-width:30ch}
.about__cols{columns:2 16rem;column-gap:var(--colgap);color:var(--muted)}
.pull{margin:clamp(4rem,8vw,7rem) 0;padding-top:2rem;border-top:1px solid var(--line)}
.pull p{font-family:var(--f-display);font-size:clamp(2.1rem,1.2rem + 3vw,4.25rem);line-height:1.02;letter-spacing:-.015em;margin:0 0 1.25rem}
.pull cite{font-style:normal;font-size:var(--fs-small);color:var(--muted)}
.milestones{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;border-top:1px solid var(--line)}
.milestones div{padding:1.25rem 1rem 0 0}
.milestones dt{font-family:var(--f-mono);font-size:.8125rem;color:var(--acc)}
.milestones dd{margin:.35rem 0 0;font-size:var(--fs-small);color:var(--muted)}
.about__deco{position:absolute;right:-4vw;top:8%;z-index:0;pointer-events:none;font-family:var(--f-display);font-size:42vw;line-height:.8;color:transparent;-webkit-text-stroke:1px var(--line);user-select:none}
.about__con{z-index:1}

/* ---------- 13. Products (horizontal pinned) ---------- */
.sec-products{padding:0;overflow:hidden}
.products__pin{display:flex;flex-direction:column;justify-content:center;padding-block:var(--sec-pad)}
.products__head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:clamp(2rem,4vw,3.5rem)}
.products__head h2{font-size:clamp(2.75rem,1.4rem + 4.4vw,6.5rem)}
.products__aside{display:flex;flex-direction:column;align-items:flex-end;gap:1.25rem;text-align:right;flex:none}
.products__aside .lede{font-size:1rem;max-width:30ch}
.products__progress{display:none;width:12rem;height:1px;background:var(--line)}
.products__progress span{display:block;height:100%;background:var(--acc);transform:scaleX(0);transform-origin:left}
.products__viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;padding-inline:var(--gutter);scroll-padding-inline:var(--gutter)}
.products__viewport::-webkit-scrollbar{display:none}
.products__track{display:flex;gap:clamp(1rem,2vw,2rem);list-style:none;margin:0;padding:0 var(--gutter) 0 0;width:max-content}
.pcard{flex:none;width:clamp(16.5rem,27vw,29rem);scroll-snap-align:start}
.pcard__link{display:block;text-decoration:none;color:inherit;transform-style:preserve-3d;transition:transform .6s var(--ease-out)}
.pcard__media{aspect-ratio:4/5}
.pcard__media::before{content:"";position:absolute;inset:0;z-index:3;background:radial-gradient(45% 45% at var(--gx,50%) var(--gy,30%),rgba(255,255,255,.16),transparent 70%);opacity:0;transition:opacity .5s}
.pcard:hover .pcard__media::before{opacity:1}
.pcard__body{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:.25rem 1rem;padding:1.1rem 0 1rem;border-bottom:1px solid var(--line)}
.pcard__title{font-family:var(--f-display);font-size:clamp(1.75rem,1.25rem + 1.5vw,2.75rem);line-height:1}
.pcard__count{margin:0;font-family:var(--f-mono);font-size:.75rem;color:var(--muted)}
.pcard__cta{grid-column:1/-1;display:inline-flex;align-items:center;gap:.5rem;font-size:var(--fs-small);color:var(--muted);transition:color .3s,gap .5s var(--ease-out)}
.pcard__cta svg{width:14px;height:14px}
.pcard:hover .pcard__cta{color:var(--acc);gap:.8rem}
.pcard--oem .pcard__media{background:var(--c-brand);display:flex;flex-direction:column;justify-content:space-between;padding:1.5rem;color:#fff}
.pcard--oem .pcard__media::after{border-color:rgba(255,255,255,.22)}
.pcard--oem .pcard__big{font-family:var(--f-display);font-size:clamp(2.25rem,1.6rem + 2vw,3.5rem);line-height:.98;position:relative;z-index:2}
.pcard--oem .pcard__small{position:relative;z-index:2;font-size:var(--fs-small);max-width:24ch;margin:0}
.is-horizontal .products__pin{height:100vh;height:100svh;padding-block:calc(var(--nav-h) + 1.5rem) 2rem}
.is-horizontal .products__viewport{overflow:visible;scroll-snap-type:none}
.is-horizontal .pcard{width:auto}
.is-horizontal .pcard__media{aspect-ratio:auto;height:min(52vh,40rem);width:calc(min(52vh,40rem)*.8)}
.is-horizontal .products__progress{display:block}

/* ---------- 14. Process (pinned timeline) ---------- */
.sec-process{padding:0}
.process__pin{padding-block:var(--sec-pad)}
.process__head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:clamp(3rem,6vw,5rem)}
.process__head h2{font-size:clamp(2.75rem,1.4rem + 4.4vw,6.5rem)}
.process__steps{list-style:none;margin:0;padding:0;display:grid;gap:clamp(4rem,8vw,6rem)}
.step{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);align-items:center}
.step__text{grid-column:1/span 5}
.step__num{font-family:var(--f-mono);font-size:.8125rem;color:var(--acc)}
.step__title{font-family:var(--f-display);font-size:clamp(2.5rem,1.4rem + 4vw,6rem);line-height:.95;letter-spacing:-.02em;margin:.75rem 0 1.25rem;overflow:hidden;padding-bottom:.1em}
.step__title span{display:block}
.step__desc{color:var(--muted);max-width:40ch}
.step__spec{display:flex;justify-content:space-between;gap:1rem;max-width:26rem;margin:2rem 0 0;padding-top:1rem;border-top:1px solid var(--line)}
.step__spec dt{font-size:var(--fs-small);color:var(--muted)}
.step__spec dd{margin:0;font-family:var(--f-mono);font-size:.875rem}
.step__visual{grid-column:7/-1;aspect-ratio:16/10}
.step__big{position:absolute;z-index:2;top:1.25rem;right:1.5rem;font-family:var(--f-display);font-size:clamp(3rem,2rem + 3.4vw,6.5rem);line-height:1;color:var(--c-chrome);letter-spacing:-.03em}
.process__ruler{display:none;margin-top:2rem}
.ruler__track{position:relative;height:14px;background:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px calc(100%/42)) bottom/100% 6px no-repeat;border-bottom:1px solid var(--line)}
.ruler__fill{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--acc);transform:scaleX(0);transform-origin:left}
.ruler__labels{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));list-style:none;margin:.75rem 0 0;padding:0}
.ruler__labels li{font-size:.8125rem;color:var(--muted);transition:color .4s}
.ruler__labels li.is-on{color:var(--fg)}
.is-pinned .process__pin{height:100vh;height:100svh;display:flex;flex-direction:column;padding-block:calc(var(--nav-h) + 1.5rem) 2rem}
.is-pinned .process__con{flex:1;display:flex;flex-direction:column;min-height:0}
.is-pinned .process__head{margin-bottom:2rem}
.is-pinned .process__stage{flex:1;display:flex;flex-direction:column;min-height:0}
.is-pinned .process__steps{flex:1;position:relative;display:block}
.is-pinned .step{position:absolute;inset:0;pointer-events:none}
.is-pinned .step.is-active{pointer-events:auto}
.is-pinned .step__visual{aspect-ratio:auto;height:100%;clip-path:inset(100% 0 0 0);transition:clip-path 1.1s var(--ease-io)}
.is-pinned .step.is-active .step__visual,.is-pinned .step.is-past .step__visual{clip-path:inset(0 0 0 0)}
.is-pinned .step__title span{transform:translateY(105%);transition:transform .9s var(--ease-out)}
.is-pinned .step.is-past .step__title span{transform:translateY(-105%)}
.is-pinned .step.is-active .step__title span{transform:none;transition-delay:.1s}
.is-pinned .step__num,.is-pinned .step__desc,.is-pinned .step__spec{opacity:0;transform:translateY(14px);transition:opacity .45s,transform .8s var(--ease-out)}
.is-pinned .step.is-active .step__num,.is-pinned .step.is-active .step__desc,.is-pinned .step.is-active .step__spec{opacity:1;transform:none;transition-delay:.2s}
.is-pinned .process__ruler{display:block}

/* ---------- 15. Quality ---------- */
.quality__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);align-items:center;margin-bottom:clamp(4rem,8vw,7rem)}
.drawing{grid-column:1/span 7;margin:0;padding:clamp(1rem,2.5vw,2rem);border:1px solid var(--line);border-radius:var(--r-sm);background:
  linear-gradient(var(--line) 1px,transparent 1px) 0 0/24px 24px,
  linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/24px 24px;background-color:rgba(255,255,255,.012)}
.drawing svg{width:100%;height:auto;overflow:visible}
.drawing .d-outline{fill:none;stroke:var(--c-steel-2);stroke-width:1.2}
.drawing .d-thin{fill:none;stroke:var(--c-steel);stroke-width:.7}
.drawing .d-center{fill:none;stroke:var(--c-steel);stroke-width:.6;stroke-dasharray:14 4 2 4}
.drawing .d-dim{fill:none;stroke:var(--c-accent);stroke-width:.8}
.drawing text{font-family:var(--f-mono);font-size:10px;fill:var(--c-steel-2)}
.drawing .d-acc{fill:var(--c-accent)}
.drawing figcaption{margin-top:1rem;font-size:var(--fs-small);color:var(--muted)}
.stats{grid-column:9/-1;margin:0}
.stat{padding:1.4rem 0;border-top:1px solid var(--line)}
.stat:last-child{border-bottom:1px solid var(--line)}
.stat dd{margin:0;font-family:var(--f-mono);font-size:clamp(1.9rem,1.3rem + 1.9vw,3.1rem);letter-spacing:-.04em;line-height:1.1;color:var(--fg)}
.stat dt{margin-top:.35rem;font-size:var(--fs-small);color:var(--muted)}
.grades-wrap{overflow-x:auto;margin-bottom:clamp(3rem,6vw,5rem)}
.grades{width:100%;min-width:44rem;border-collapse:collapse}
.grades caption{text-align:left;margin-bottom:1.25rem;font-family:var(--f-display);font-size:var(--fs-h3);line-height:1}
.grades th{text-align:left;font-size:.8125rem;font-weight:500;color:var(--muted);padding:0 1rem .9rem 0}
.grades td{padding:1.15rem 1rem 1.15rem 0;border-top:1px solid var(--line);vertical-align:baseline;color:var(--c-steel-2)}
.grades td:first-child{font-family:var(--f-display);font-size:1.75rem;color:var(--fg);white-space:nowrap}
.grades td.mono{font-family:var(--f-mono);font-size:.875rem}
.grades tr{transition:background-color .3s}
.grades tbody tr:hover{background:rgba(255,255,255,.025)}
.stages__title{font-family:var(--f-display);font-size:var(--fs-h3);line-height:1;margin-bottom:1.5rem}
.stages{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0;counter-reset:st}
.stages li{counter-increment:st;display:flex;gap:.6rem;align-items:center;padding:.6rem 1rem;border:1px solid var(--line);border-radius:var(--r-pill);font-size:var(--fs-small)}
.stages li::before{content:counter(st);font-family:var(--f-mono);font-size:.75rem;color:var(--acc)}

/* ---------- 16. Global map ---------- */
.sec-global{--bg:var(--c-graphite-2)}
.map{position:relative;margin:0 0 clamp(2.5rem,5vw,4rem)}
.map svg{width:100%;height:auto}
.map__dots circle{fill:rgba(184,190,196,.26)}
.mk__core{fill:var(--c-accent)}
.mk__pulse{fill:none;stroke:var(--c-accent);stroke-width:.8;transform-box:fill-box;transform-origin:center;animation:pulse 2.6s var(--ease-out) infinite}
.mk__label{font-family:var(--f-mono);font-size:7.5px;fill:var(--c-chrome)}
.mk__arc{fill:none;stroke:var(--c-accent);stroke-width:.6;opacity:.6}
@keyframes pulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(4.5);opacity:0}}
.regions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.regions li{padding:1.25rem 1rem 0 0}
.regions b{display:block;font-family:var(--f-display);font-weight:400;font-size:clamp(2rem,1.5rem + 1.5vw,3rem);line-height:1}
.regions span{font-size:var(--fs-small);color:var(--muted)}

/* ---------- 17. OEM ---------- */
.oem__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);align-items:start}
.benefits{grid-column:1/span 5;list-style:none;margin:0;padding:0}
.benefit{padding:1.5rem 0;border-top:1px solid var(--line)}
.benefit:last-child{border-bottom:1px solid var(--line)}
.benefit h3{font-family:var(--f-body);font-size:1.125rem;font-weight:500;margin-bottom:.35rem}
.benefit p{margin:0;color:var(--muted);font-size:.9375rem;max-width:44ch}
.osteps{grid-column:7/-1;list-style:none;margin:0;padding:0}
.ostep{position:relative;display:grid;grid-template-columns:4.5rem 1fr;padding-bottom:2.75rem}
.ostep::after{content:"";position:absolute;left:1.5rem;top:3.25rem;bottom:.25rem;width:1px;background:var(--line)}
.ostep:last-child::after{display:none}
.ostep__n{width:3rem;height:3rem;border-radius:50%;border:1px solid var(--fg);display:grid;place-items:center;font-family:var(--f-mono);font-size:.8125rem}
.ostep h3{font-family:var(--f-display);font-size:clamp(1.75rem,1.3rem + 1.5vw,2.5rem);line-height:1;margin:.35rem 0 .6rem}
.ostep p{margin:0;color:var(--muted);max-width:44ch}
.oem__cta{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;margin-top:1rem;padding-left:4.5rem}
.oem__cta p{margin:0;font-size:var(--fs-small);color:var(--muted)}

/* ---------- 18. Clients & testimonials ---------- */
.logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.logos li{aspect-ratio:2/1;display:grid;place-items:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--f-mono);font-size:.75rem;color:var(--muted);transition:background-color .4s,color .4s}
.logos li:hover{background:rgba(255,255,255,.03);color:var(--fg)}
.tslider{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);margin-top:clamp(5rem,9vw,8rem)}
.tslider__meta{grid-column:1/span 3;display:flex;flex-direction:column;justify-content:space-between;gap:2rem}
.tslider__count{font-family:var(--f-display);font-size:clamp(3rem,2rem + 3vw,5rem);line-height:1}
.tslider__count small{font-size:.4em;color:var(--muted)}
.tslider__ctrl{display:flex;gap:.5rem}
.icon-btn{width:3.25rem;height:3.25rem;border-radius:50%;border:1px solid var(--line);background:none;display:grid;place-items:center;cursor:pointer;transition:background-color .4s,color .4s,border-color .4s}
.icon-btn:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.icon-btn svg{width:16px;height:16px}
.tslider__stage{grid-column:5/-1;display:grid}
.tslide{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .6s,visibility 0s linear .6s}
.tslide.is-active{opacity:1;visibility:visible;transition:opacity .6s}
.tslide blockquote{margin:0}
.tslide__quote{font-family:var(--f-display);font-size:clamp(1.9rem,1.15rem + 2.6vw,3.75rem);line-height:1.08;letter-spacing:-.012em;margin:0 0 2.5rem;max-width:26ch}
.tslide__who{display:flex;align-items:center;gap:1rem}
.avatar{width:3.25rem;height:3.25rem;border-radius:50%;background:var(--c-graphite-3);display:grid;place-items:center;font-family:var(--f-mono);font-size:.75rem;color:var(--muted);flex:none}
.tslide__name{font-weight:500;margin:0}
.tslide__role{margin:0;font-size:var(--fs-small);color:var(--muted)}

/* ---------- 19. Case studies ---------- */
.case{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);row-gap:2rem;padding:clamp(2.5rem,4vw,3.5rem) 0;border-top:1px solid var(--line)}
.case:last-child{border-bottom:1px solid var(--line)}
.case__head{grid-column:1/span 4}
.case__n{font-family:var(--f-mono);font-size:.8125rem;color:var(--acc)}
.case__title{font-family:var(--f-display);font-size:clamp(1.9rem,1.4rem + 1.6vw,2.9rem);line-height:1;margin:.75rem 0 .75rem}
.case__tag{display:inline-block;font-size:.8125rem;padding:.35rem .8rem;border:1px solid var(--line);border-radius:var(--r-pill);color:var(--muted)}
.case__cols{grid-column:5/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--colgap)}
.case__cols h4{font-size:.8125rem;font-weight:500;color:var(--muted);margin-bottom:.6rem}
.case__cols p{margin:0;font-size:.9375rem}
.case__result b{display:block;font-family:var(--f-display);font-weight:400;font-size:clamp(2.75rem,2rem + 2.4vw,4.5rem);line-height:.95;color:var(--acc);margin-bottom:.4rem}

/* ---------- 20. Compliance ---------- */
.compl__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);align-items:start}
.compl__intro{grid-column:1/span 5;position:sticky;top:calc(var(--nav-h) + 3rem)}
.compl__intro h2{font-size:clamp(2.75rem,1.4rem + 4.2vw,6rem);margin-bottom:2rem}
.compl__intro .lede{margin-bottom:2.25rem}
.docs{grid-column:7/-1;list-style:none;margin:0;padding:0}
.doc{position:relative;isolation:isolate;display:grid;grid-template-columns:auto 1fr auto;gap:1.25rem;align-items:center;padding:1.5rem .25rem;border-top:1px solid var(--line);text-decoration:none;color:inherit}
.docs li:last-child .doc{border-bottom:1px solid var(--line)}
.doc::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--c-graphite-3);transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease-out)}
.doc:hover::before{transform:scaleY(1)}
.doc__type{font-family:var(--f-mono);font-size:.6875rem;padding:.35rem .5rem;border:1px solid var(--acc);color:var(--acc);border-radius:2px}
.doc__title{font-size:1.125rem;font-weight:500;display:block}
.doc__meta{font-size:var(--fs-small);color:var(--muted)}
.doc__icon{width:2.75rem;height:2.75rem;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:background-color .4s,color .4s,transform .5s var(--ease-out)}
.doc__icon svg{width:14px;height:14px}
.doc:hover .doc__icon{background:var(--c-brand);color:#fff;border-color:var(--c-brand);transform:translateY(3px)}

/* ---------- 21. FAQ ---------- */
.faq__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);align-items:start}
.faq__intro{grid-column:1/span 4;position:sticky;top:calc(var(--nav-h) + 3rem)}
.faq__intro h2{font-size:clamp(2.5rem,1.4rem + 3.6vw,5.25rem);margin-bottom:1.75rem}
.faq__list{grid-column:6/-1;margin:0;padding:0;list-style:none}
.faq__item{border-top:1px solid var(--line)}
.faq__item:last-child{border-bottom:1px solid var(--line)}
.faq__q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.6rem 0;margin:0;background:none;border:0;text-align:left;cursor:pointer;font-family:var(--f-display);font-size:clamp(1.4rem,1.1rem + .9vw,2rem);line-height:1.15;color:inherit}
.faq__icon{position:relative;width:2.5rem;height:2.5rem;flex:none;border:1px solid var(--line);border-radius:50%;transition:background-color .4s,border-color .4s}
.faq__icon::before,.faq__icon::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;margin:-.75px 0 0 -6px;background:currentColor;transition:transform .5s var(--ease-out)}
.faq__icon::after{transform:rotate(90deg)}
.faq__q:hover .faq__icon{border-color:var(--fg)}
.faq__item.is-open .faq__icon{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.faq__item.is-open .faq__icon::after{transform:rotate(0)}
.faq__a{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .6s var(--ease-out),visibility 0s linear .6s}
.faq__item.is-open .faq__a{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .6s var(--ease-out)}
.faq__a>div{overflow:hidden}
.faq__a p{margin:0 0 1.75rem;color:var(--muted);max-width:60ch;padding-right:3rem}

/* ---------- 22. Final CTA ---------- */
.sec-cta{--bg:var(--c-brand);--fg:#fff;--muted:rgba(255,255,255,.78);--line:rgba(255,255,255,.28);--acc:#fff;padding-block:clamp(8rem,16vw,15rem);overflow:hidden;background:var(--c-brand)}
.cta__con{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);align-items:end}
.cta__title{grid-column:1/span 10;font-size:clamp(3.5rem,.8rem + 9.6vw,12rem)}
.cta__side{grid-column:10/-1;grid-row:2;display:flex;flex-direction:column;align-items:flex-start;gap:1.5rem;margin-top:-2rem}
.cta__btn{width:clamp(9.5rem,13vw,12.5rem);aspect-ratio:1;border-radius:50%;background:#fff;color:var(--c-brand);transition:color .5s var(--ease-out);display:grid;place-items:center;text-align:center;text-decoration:none;font-weight:500;font-size:1.0625rem;line-height:1.2;padding:1rem;position:relative;overflow:hidden;isolation:isolate}
.cta__btn:hover{color:#fff}
.cta__btn::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--c-graphite);transform:scale(0);transition:transform .6s var(--ease-out);z-index:-1}
.cta__btn:hover::before{transform:scale(1)}
.cta__note{margin:0;font-size:var(--fs-small);color:var(--muted);max-width:22ch}

/* ---------- 23. Contact ---------- */
.contact__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);align-items:start}
.contact__info{grid-column:1/span 4}
.contact__info h2{font-size:clamp(2.75rem,1.4rem + 4vw,5.5rem);margin-bottom:1.5rem}
.contact__quick{display:flex;flex-wrap:wrap;gap:.6rem;margin:2rem 0 2.5rem}
.contact__dl{margin:0;display:grid;gap:1.25rem}
.contact__dl dt{font-size:.8125rem;color:var(--muted)}
.contact__dl dd{margin:.2rem 0 0}
.form-wrap{grid-column:6/-1;position:relative}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem 1.5rem}
.field{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.field--full{grid-column:1/-1}
.field label,.field legend{font-size:.875rem;font-weight:500;padding:0}
.req{color:var(--acc)}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:1rem;color:var(--fg);background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:.9rem 1rem;min-height:3.25rem;transition:border-color .3s,box-shadow .3s,background-color .3s;-webkit-appearance:none;appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%234a5078' stroke-width='1.5'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}
.field textarea{min-height:8.5rem;resize:vertical}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(10,13,38,.35)}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:none;border-color:var(--acc);background:rgba(255,255,255,.85);box-shadow:0 0 0 3px rgba(40,52,164,.22)}
.field__hint{font-size:.8125rem;color:var(--muted)}
.field__err{display:none;font-size:.8125rem;color:var(--c-error)}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-color:var(--c-error)}
.field.is-invalid .field__err{display:block}
fieldset.field{border:0;margin:0;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.15rem}
.chip{position:relative}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-flex;align-items:center;min-height:2.5rem;padding:0 1rem;border:1px solid var(--line);border-radius:var(--r-pill);font-size:.875rem;cursor:pointer;transition:background-color .3s,color .3s,border-color .3s;user-select:none}
.chip span:hover{border-color:var(--fg)}
.chip input:checked+span{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.chip input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}
.form__foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;margin-top:.5rem}
.form__foot p{margin:0;font-size:.8125rem;color:var(--muted);max-width:36ch}
.form__success{display:none;padding:2.5rem;border:1px solid var(--line);border-radius:var(--r-md)}
.form__success h3{font-family:var(--f-display);font-size:var(--fs-h3);line-height:1;margin-bottom:.75rem}
.form__success p{margin:0;color:var(--muted)}
.form-wrap.is-sent .form{display:none}
.form-wrap.is-sent .form__success{display:block}

/* ---------- 24. Footer ---------- */
.site-footer{background:var(--c-graphite);color:var(--c-chrome);padding:clamp(5rem,8vw,7rem) 0 2rem;overflow:hidden;border-top:1px solid var(--c-line-dark)}
.foot__cols{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);row-gap:2.5rem}
.foot__col{grid-column:span 2}
.foot__col--lead{grid-column:1/span 4}
.foot__col--lead p{color:var(--c-steel);max-width:32ch;margin-bottom:1.5rem}
.foot__col h3{font-size:.8125rem;font-weight:500;color:var(--c-steel);margin-bottom:1rem}
.foot__col ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.foot__col a{text-decoration:none;font-size:.9375rem;color:var(--c-steel-2);transition:color .3s}
.foot__col a:hover{color:var(--c-chrome)}
.wordmark{font-family:var(--f-display);font-size:clamp(4.5rem,20.5vw,26rem);line-height:.82;letter-spacing:-.045em;white-space:nowrap;margin:clamp(4rem,8vw,7rem) 0 2rem;user-select:none}
.foot__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--c-line-dark);font-size:.8125rem;color:var(--c-steel)}
.foot__legal ul{display:flex;gap:1.5rem;list-style:none;margin:0;padding:0}
.foot__legal a{color:inherit;text-decoration:none}
.foot__legal a:hover{color:var(--c-chrome)}

/* ---------- 25. Responsive (Elementor breakpoints) ---------- */
@media (max-width:1180px){
  .site-nav__links{display:none}
  .burger{display:inline-flex}
}
@media (max-width:1024px){
  .hero__specs{grid-column:8/-1}
  .hero__title{grid-column:1/-1}
  .hero__bottom{flex-wrap:wrap}
  .scroll-ind{display:none}
  .sec-head h2{grid-column:1/-1}
  .sec-head .lede{grid-column:4/-1}
  .metric--lead{grid-column:1/-1;grid-row:auto;padding:0 0 2rem;border-bottom:1px solid var(--line)}
  .metric{grid-column:span 4}
  .metric:nth-child(3n+2){border-left:0;padding-left:0}
  .about__media{grid-column:1/span 5}
  .about__text{grid-column:6/-1;padding-top:0}
  .milestones{grid-template-columns:repeat(2,minmax(0,1fr))}
  .products__head{flex-direction:column;align-items:flex-start}
  .products__aside{align-items:flex-start;text-align:left}
  .process__head{flex-direction:column;align-items:flex-start}
  .step__text{grid-column:1/span 6}
  .step__visual{grid-column:7/-1}
  .drawing{grid-column:1/-1}
  .stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--colgap);margin-top:2.5rem}
  .stat:nth-last-child(2){border-bottom:1px solid var(--line)}
  .regions{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:1.5rem}
  .benefits,.osteps{grid-column:1/-1}
  .osteps{margin-top:3.5rem}
  .tslider__meta{grid-column:1/-1;flex-direction:row;align-items:flex-end;margin-bottom:2.5rem}
  .tslider__stage{grid-column:1/-1}
  .case__head{grid-column:1/-1}
  .case__cols{grid-column:1/-1}
  .compl__intro,.faq__intro{grid-column:1/-1;position:static;margin-bottom:3rem}
  .docs,.faq__list{grid-column:1/-1}
  .cta__title{grid-column:1/-1}
  .cta__side{grid-column:1/-1;flex-direction:row;align-items:center;margin-top:2.5rem}
  .contact__info{grid-column:1/-1;margin-bottom:3rem}
  .form-wrap{grid-column:1/-1}
  .foot__col--lead{grid-column:1/-1}
  .foot__col{grid-column:span 3}
}
@media (max-width:767px){
  :root{--nav-h:4rem}
  .brand__name{font-size:1.25rem}
  .nav-actions .btn{--h:2.5rem;padding:0 .95rem;font-size:.8125rem}
  .hero__con{grid-template-rows:auto 1fr auto auto auto;padding-top:calc(var(--nav-h) + 1.5rem)}
  .hero__top{flex-direction:column;gap:.25rem}
  .hero__specs{grid-column:1/-1;grid-row:4;width:100%;display:grid;grid-template-columns:1fr 1fr;column-gap:1.25rem;margin-top:2rem}
  .hero__specs div:nth-last-child(2){border-bottom:1px solid var(--c-line-dark)}
  .hero__title{grid-row:3}
  .hero__title .ln--in{padding-left:0}
  .hero__bottom{grid-row:5;flex-direction:column;align-items:stretch}
  .hero__ctas .btn{flex:1 1 12rem}
  .hero__rules{display:none}
  .sec-head .lede{grid-column:1/-1}
  .metric{grid-column:span 6;padding:1.5rem 1rem 1.75rem}
  .metric:nth-child(3n+2){border-left:1px solid var(--line);padding-left:1rem}
  .metric:nth-child(2n){border-left:0;padding-left:0}
  .metric--lead{grid-column:1/-1;padding:0 0 2rem}
  .metric .tbd{position:static;align-self:flex-start;margin-bottom:.9rem}
  .about__media,.about__text{grid-column:1/-1}
  .about__pin{position:static;margin-bottom:3rem}
  .about__deco{display:none}
  .step{row-gap:1.75rem}
  .step__text,.step__visual{grid-column:1/-1}
  .step__visual{grid-row:1}
  .stats{grid-template-columns:1fr}
  .stat:nth-last-child(2){border-bottom:0}
  .regions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .logos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .case__cols{grid-template-columns:1fr;row-gap:1.5rem}
  .oem__cta{padding-left:0}
  .doc{grid-template-columns:1fr auto;row-gap:.5rem}
  .doc__type{justify-self:start}
  .doc>span:nth-child(2){grid-column:1/2}
  .doc__icon{grid-column:2;grid-row:1/span 2}
  .faq__a p{padding-right:0}
  .cta__side{flex-direction:column;align-items:flex-start}
  .form{grid-template-columns:1fr}
  .foot__col{grid-column:span 6}
}


/* ---------- Photos (dummy images — swap src) ---------- */
.ph__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08) brightness(.88);transition:filter .9s var(--ease-out),transform 1.2s var(--ease-out)}
.ph.has-photo .ph__img{background:#1a2052}
.ph.has-photo .ph__img::before{content:"";position:absolute;inset:0;z-index:1;background:var(--c-brand);mix-blend-mode:color;opacity:.55;pointer-events:none;transition:opacity .9s var(--ease-out)}
.pcard:hover .ph.has-photo .ph__img::before{opacity:0}
.ph.has-photo .ph__img::after{z-index:1;content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,13,38,.05) 40%,rgba(10,13,38,.55));pointer-events:none}
.ph.has-photo .ph__label{display:none}
.pcard:hover .ph__photo{filter:grayscale(.15) contrast(1.05) brightness(.95);transform:scale(1.04)}
.step__visual .ph__photo{filter:grayscale(.9) contrast(1.1) brightness(.75)}
.about__media{position:relative}
.about__inset{position:absolute;width:46%;aspect-ratio:1/1;right:-18%;bottom:12%;z-index:2;border:6px solid var(--c-graphite);box-sizing:content-box}
.oem__band{aspect-ratio:21/8;margin-bottom:clamp(3rem,6vw,5rem)}
.oem__band-cap{position:absolute;left:1.25rem;bottom:1.1rem;z-index:2;font-size:.8125rem;color:rgba(238,241,243,.8)}
.case__img{aspect-ratio:4/3;margin-top:1.5rem;max-width:22rem}
.cta__bg{position:absolute;inset:0;border-radius:0;z-index:0;opacity:.28;mix-blend-mode:luminosity}
.cta__bg::after{display:none}
.cta__bg .ph__img::after{background:linear-gradient(90deg,var(--c-brand) 15%,transparent 75%)}
.cta__con{z-index:1}
.avatar{overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.brand__name small{display:block;font-family:var(--f-body);font-size:.625rem;letter-spacing:.02em;color:var(--c-steel);margin-top:.2rem}
.logo{display:flex;align-items:center;gap:.55rem;color:var(--muted);transition:color .4s}
.logo svg{width:24px;height:24px}
.logo b{font-family:var(--f-display);font-weight:400;font-size:1.5rem;letter-spacing:-.01em;color:inherit}
.logo small{font-size:.75rem;align-self:flex-end;margin-bottom:.2rem}
.logos li:hover .logo{color:var(--fg)}
@media (max-width:1024px){.about__inset{right:-8%}}
@media (max-width:767px){.about__inset{display:none}.oem__band{aspect-ratio:4/3}.case__img{max-width:none}.logo b{font-size:1.2rem}}

/* ---------- CURE logo (vector rebuild of the supplied logo) ---------- */
.cure-logo{--s:44px;display:inline-grid;place-items:center;flex:none;width:var(--s);height:var(--s);background:var(--c-brand);color:#fff;font-family:var(--f-logo);font-weight:700;font-size:calc(var(--s)*.25);letter-spacing:.01em;line-height:1;text-decoration:none;user-select:none}
.brand .cure-logo{--s:46px}
.brand__name{font-family:var(--f-body);font-size:.8125rem;line-height:1.25;color:var(--c-steel-2)}
.wordmark{font-family:var(--f-logo)!important;font-weight:700;letter-spacing:-.01em!important;color:var(--c-chrome)}
.preloader{background:var(--c-brand)}
.preloader__mark{width:120px;height:120px}
.preloader__mark text{font-family:var(--f-logo);font-weight:700;font-size:30px;fill:#fff;opacity:0}
.preloader__meta{color:rgba(255,255,255,.7)}
.preloader__pct{color:#fff}
.preloader__bar{background:rgba(255,255,255,.25)}
.preloader__bar span{background:#fff}
@media (max-width:767px){.brand__name{display:none}.brand .cure-logo{--s:40px}}

/* ---------- 26. Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .grain,.mk__pulse,.scroll-ind__line::after{animation:none!important}
}

/* =====================================================================
   MULTI-PAGE COMPONENTS
   ===================================================================== */

/* ---------- Page transition + first-visit preloader ---------- */
.preloader{display:none}
.first-visit .preloader{display:grid}
.pt{position:fixed;inset:0;z-index:250;background:var(--c-brand);pointer-events:none;transform:translateY(101%);display:grid;place-items:center}
.pt .cure-logo{--s:72px;background:transparent;border:1.5px solid rgba(255,255,255,.6)}
.pt-enter .pt{transform:none}
.pt.is-out{transform:translateY(-101%);transition:transform .9s var(--ease-io)}
.pt.is-in{transform:none;transition:transform .6s var(--ease-io)}

/* ---------- Nav: active state, dropdown, quote count ---------- */
.site-nav__links a[aria-current="page"]{color:var(--c-chrome)}
.site-nav__links a[aria-current="page"]::after{transform:scaleX(1)}
.site-nav__links li{position:relative}
.has-sub>a{display:inline-flex;align-items:center;gap:.35rem}
.has-sub>a svg{width:9px;height:9px;transition:transform .4s var(--ease-out)}
.has-sub:hover>a svg,.has-sub:focus-within>a svg{transform:rotate(180deg)}
.sub{position:absolute;top:calc(100% + 1.4rem);left:-1rem;min-width:18rem;padding:.6rem;margin:0;list-style:none;display:block!important;background:rgba(10,13,38,.97);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--c-line-dark);border-radius:var(--r-md);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .35s,transform .5s var(--ease-out),visibility 0s linear .35s;box-shadow:0 24px 48px rgba(0,0,0,.35)}
.sub::before{content:"";position:absolute;left:0;right:0;top:-1.4rem;height:1.4rem}
.has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible;transform:none;transition:opacity .35s,transform .5s var(--ease-out)}
.sub a{display:flex!important;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem .75rem;border-radius:6px;color:var(--c-steel-2)}
.sub a::after{display:none}
.sub a:hover{background:var(--c-graphite-3);color:var(--c-chrome)}
.sub small{font-family:var(--f-mono);font-size:.6875rem;color:var(--c-steel)}
.sub li.sub__all{border-top:1px solid var(--c-line-dark);margin-top:.4rem;padding-top:.4rem}
.q-count{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:var(--r-pill);background:var(--c-brand);color:#fff;font:600 .6875rem/1 var(--f-body)}
.q-count[hidden]{display:none}
.btn .q-count{position:relative;z-index:1}
.btn--accent:hover .q-count{background:#fff;color:var(--c-brand)}
.menu__sub{display:flex;flex-wrap:wrap;gap:.4rem .9rem;padding:.25rem 0 1rem;font-size:.9375rem}
.menu__sub a{color:var(--c-steel-2);text-decoration:none}

/* ---------- Page hero (inner pages) ---------- */
.sec-pagehero{padding-top:calc(var(--nav-h) + clamp(3.5rem,8vw,7rem));padding-bottom:clamp(3rem,6vw,5rem);overflow:hidden;background:radial-gradient(55% 70% at 88% 0%,#1d2570 0%,transparent 62%),var(--c-graphite)}
.crumbs ol{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0 0 clamp(2rem,4vw,3rem);padding:0;font-size:.8125rem;color:var(--c-steel)}
.crumbs li+li::before{content:"/";margin-right:.5rem;opacity:.5}
.crumbs a{color:var(--c-steel-2);text-decoration:none}
.crumbs a:hover{color:var(--c-chrome)}
.crumbs [aria-current]{color:var(--c-chrome)}
.is-light .crumbs ol{color:var(--muted)}
.is-light .crumbs a{color:var(--muted)}
.is-light .crumbs a:hover,.is-light .crumbs [aria-current]{color:var(--fg)}
.pagehero__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);row-gap:2rem;align-items:end}
.pagehero__title{grid-column:1/span 10;font-size:clamp(3.25rem,1rem + 8vw,10rem)}
.pagehero__side{grid-column:7/-1;display:flex;flex-direction:column;gap:1.75rem}
.pagehero__side .lede{max-width:44ch;color:var(--c-steel-2)}
.pagehero__actions{display:flex;flex-wrap:wrap;gap:.75rem}
.pagehero__media{margin-top:clamp(3rem,6vw,5rem);aspect-ratio:21/8}
.pagehero__meta{grid-column:1/span 5;display:flex;gap:2rem;flex-wrap:wrap;font-size:var(--fs-small);color:var(--c-steel)}
.pagehero__meta b{display:block;font-family:var(--f-display);font-weight:400;font-size:2.25rem;line-height:1;color:var(--c-chrome)}

/* ---------- Generic blocks ---------- */
.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);row-gap:2.5rem;align-items:start}
.split__a{grid-column:1/span 5}
.split__b{grid-column:7/-1}
.split__sticky{position:sticky;top:calc(var(--nav-h) + 3rem)}
.prose-lg{font-size:clamp(1.25rem,1.05rem + .7vw,1.75rem);line-height:1.35;font-weight:300;max-width:36ch;margin-bottom:2rem}
.muted{color:var(--muted)}
.cols-2{columns:2 16rem;column-gap:var(--colgap);color:var(--muted)}
.input{width:100%;font:inherit;font-size:1rem;color:var(--fg);background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:.85rem 1rem;min-height:3rem;-webkit-appearance:none;appearance:none;transition:border-color .3s,box-shadow .3s}
.input:focus-visible{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px rgba(40,52,164,.22)}
select.input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%234a5078' stroke-width='1.5'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}
.sec:not(.is-light) .input{background:rgba(255,255,255,.04);color:var(--fg)}
.sec:not(.is-light) select.input{background-color:var(--c-graphite-2)}

/* ---------- Filters (catalogue) ---------- */
.filters{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center;justify-content:space-between;padding:1.25rem 0;border-block:1px solid var(--line);margin-bottom:clamp(2rem,4vw,3rem)}
.search{position:relative;flex:1 1 16rem;max-width:24rem}
.search svg{position:absolute;left:1rem;top:50%;width:16px;height:16px;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.search .input{padding-left:2.75rem}
.chipbar{display:flex;flex-wrap:wrap;gap:.4rem}
.chipbtn{display:inline-flex;align-items:center;gap:.4rem;height:2.5rem;padding:0 1rem;border:1px solid var(--line);border-radius:var(--r-pill);background:none;color:var(--fg);font-size:.875rem;cursor:pointer;transition:background-color .3s,color .3s,border-color .3s;text-decoration:none}
.chipbtn:hover{border-color:var(--fg)}
.chipbtn[aria-pressed="true"],.chipbtn[aria-current="page"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.chipbtn small{font-family:var(--f-mono);font-size:.6875rem;opacity:.7}
.filters__right{display:flex;align-items:center;gap:1rem}
.filters__right .input{min-height:2.5rem;padding-block:.5rem;width:auto}
.count{font-size:var(--fs-small);color:var(--muted);white-space:nowrap}
.empty{padding:4rem 1rem;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r-md)}
.empty h3{font-family:var(--f-display);font-size:2rem;color:var(--fg);margin-bottom:.5rem}

/* ---------- Product cards ---------- */
.prod-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(2rem,3vw,3rem) var(--colgap)}
.prod{position:relative;display:flex;flex-direction:column;min-width:0}
.prod__media{display:block;aspect-ratio:1/1}
.prod__media:hover .ph__photo{filter:grayscale(.15) contrast(1.05) brightness(.95);transform:scale(1.05)}
.prod__media:hover .ph__img::before{opacity:0}
.prod__body{padding:1rem 0 .9rem;flex:1}
.prod__code{font-family:var(--f-mono);font-size:.75rem;color:var(--acc);margin:0 0 .35rem}
.prod__name{font-family:var(--f-display);font-size:clamp(1.4rem,1.2rem + .5vw,1.75rem);line-height:1.05}
.prod__name a{text-decoration:none;background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size .5s var(--ease-out)}
.prod__name a:hover{background-size:100% 1px}
.prod__meta{margin:.45rem 0 0;font-size:.8125rem;color:var(--muted)}
.prod__add{align-self:flex-start;display:inline-flex;align-items:center;gap:.5rem;height:2.5rem;padding:0 1rem;border:1px solid var(--line);border-radius:var(--r-pill);background:none;color:var(--fg);font:500 .8125rem/1 var(--f-body);cursor:pointer;transition:background-color .3s,color .3s,border-color .3s}
.prod__add:hover{border-color:var(--fg)}
.prod__add.is-added{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.prod__add svg{width:14px;height:14px}
.prod__add .i-check{display:none}
.prod__add.is-added .i-check{display:block}
.prod__add.is-added .i-plus{display:none}

/* ---------- Category cards ---------- */
.cat-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,3vw,3rem) var(--colgap)}
.catcard a{display:block;text-decoration:none;color:inherit}
.catcard .ph{aspect-ratio:4/3}
.catcard a:hover .ph__photo{filter:grayscale(.15) contrast(1.05) brightness(.95);transform:scale(1.05)}
.catcard a:hover .ph__img::before{opacity:0}
.catcard__body{display:grid;grid-template-columns:1fr auto;gap:.35rem 1rem;align-items:baseline;padding:1.1rem 0 1rem;border-bottom:1px solid var(--line)}
.catcard h3{font-family:var(--f-display);font-size:clamp(1.9rem,1.4rem + 1.3vw,2.75rem);line-height:1}
.catcard .count{font-family:var(--f-mono);font-size:.75rem}
.catcard p{grid-column:1/-1;margin:0;font-size:.9375rem;color:var(--muted);max-width:40ch}

/* ---------- Product detail ---------- */
.sec-pd{padding-top:calc(var(--nav-h) + 3rem)}
.pd{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap);row-gap:3rem;align-items:start}
.pd__gallery{grid-column:1/span 7}
.pd__main{aspect-ratio:1/1;cursor:zoom-in}
.pd__main .ph__photo{transition:transform .5s var(--ease-out),filter .6s}
.pd__main.is-zoom .ph__photo{transform:scale(1.9)}
.pd__thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:.75rem}
.thumb{position:relative;aspect-ratio:1/1;padding:0;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--c-graphite-3);cursor:pointer;opacity:.6;transition:opacity .3s,border-color .3s}
.thumb img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.thumb[aria-current="true"],.thumb:hover{opacity:1;border-color:var(--fg)}
.pd__info{grid-column:9/-1;position:sticky;top:calc(var(--nav-h) + 2rem)}
.pd__info .crumbs ol{margin-bottom:1.75rem}
.pd__code{font-family:var(--f-mono);font-size:.8125rem;color:var(--acc);margin-bottom:.75rem}
.pd__title{font-size:clamp(2.5rem,1.5rem + 3vw,4.5rem);margin-bottom:1.25rem}
.pd__desc{color:var(--c-steel-2);max-width:44ch}
.opt{margin:1.75rem 0 0;padding:0;border:0}
.opt legend,.opt__label{display:block;font-size:.8125rem;font-weight:500;color:var(--muted);margin-bottom:.6rem;padding:0}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-pill);height:3rem}
.qty button{width:3rem;height:100%;background:none;border:0;color:var(--fg);font-size:1.25rem;cursor:pointer;border-radius:var(--r-pill)}
.qty button:hover{background:rgba(255,255,255,.06)}
.qty input{width:3.5rem;height:100%;border:0;background:none;color:var(--fg);text-align:center;font:500 1rem var(--f-body);-moz-appearance:textfield}
.qty input::-webkit-inner-spin-button{-webkit-appearance:none}
.pd__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.pd__assure{list-style:none;margin:2rem 0 0;padding:1.25rem 0 0;border-top:1px solid var(--line);display:grid;gap:.6rem;font-size:.875rem;color:var(--c-steel-2)}
.pd__assure li{display:flex;gap:.6rem;align-items:center}
.pd__assure svg{width:16px;height:16px;color:var(--acc);flex:none}
.tabs [role="tablist"]{display:flex;gap:2rem;border-bottom:1px solid var(--line);margin-bottom:2.5rem;overflow-x:auto}
.tabs [role="tab"]{position:relative;background:none;border:0;padding:1rem 0;font:500 1rem var(--f-body);color:var(--muted);cursor:pointer;white-space:nowrap}
.tabs [role="tab"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--acc);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}
.tabs [role="tab"][aria-selected="true"]{color:var(--fg)}
.tabs [role="tab"][aria-selected="true"]::after{transform:scaleX(1)}
.tabs [role="tabpanel"][hidden]{display:none}
.spec-table{width:100%;border-collapse:collapse;max-width:56rem}
.spec-table th,.spec-table td{text-align:left;padding:1rem 1rem 1rem 0;border-top:1px solid var(--line);vertical-align:top}
.spec-table th{width:38%;font-weight:500;color:var(--muted);font-size:.9375rem}
.spec-table td{font-family:var(--f-mono);font-size:.875rem}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:.85rem;max-width:56rem}
.ticks li{display:flex;gap:.75rem}
.ticks li::before{content:"";flex:none;width:.5rem;height:.5rem;margin-top:.55rem;background:var(--acc);border-radius:50%}

/* ---------- Toast ---------- */
.toast{position:fixed;left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));z-index:120;display:flex;gap:1.25rem;align-items:center;padding:.9rem 1.25rem;border-radius:var(--r-pill);background:var(--c-chrome);color:var(--c-paper-ink);font-size:.9375rem;box-shadow:0 18px 40px rgba(0,0,0,.3);transform:translate(-50%,160%);transition:transform .6s var(--ease-out);max-width:calc(100vw - 2rem)}
.toast.is-on{transform:translate(-50%,0)}
.toast a{color:var(--c-brand);font-weight:600;white-space:nowrap}

/* ---------- Cookie banner ---------- */
.cookie{position:fixed;left:var(--gutter);bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));z-index:110;width:min(26rem,calc(100vw - 2*var(--gutter)));padding:1.5rem;background:var(--c-graphite-2);color:var(--c-chrome);border:1px solid var(--c-line-dark);border-radius:var(--r-md);box-shadow:0 24px 50px rgba(0,0,0,.35);transform:translateY(130%);opacity:0;transition:transform .7s var(--ease-out),opacity .4s;visibility:hidden}
.cookie.is-on{transform:none;opacity:1;visibility:visible}
.cookie h2{font-family:var(--f-display);font-size:1.6rem;line-height:1;margin-bottom:.6rem}
.cookie p{font-size:.875rem;color:var(--c-steel-2);margin-bottom:1.1rem}
.cookie__actions{display:flex;flex-wrap:wrap;gap:.5rem}

/* ---------- About ---------- */
.values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--colgap);border-top:1px solid var(--line)}
.value{padding:2rem 0 2.5rem;border-bottom:1px solid var(--line)}
.value h3{font-family:var(--f-display);font-size:clamp(1.9rem,1.4rem + 1.4vw,2.75rem);line-height:1;margin-bottom:.75rem}
.value p{margin:0;color:var(--muted);max-width:44ch}
.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--colgap);border-top:1px solid var(--line)}
.timeline li{position:relative;padding-top:2rem}
.timeline li::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--acc)}
.timeline b{display:block;font-family:var(--f-mono);font-weight:400;font-size:.875rem;color:var(--acc);margin-bottom:.6rem}
.timeline h3{font-family:var(--f-display);font-size:1.6rem;line-height:1.05;margin-bottom:.5rem}
.timeline p{margin:0;font-size:.9375rem;color:var(--muted)}
.team{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.5rem var(--colgap)}
.team .ph{aspect-ratio:3/4}
.team h3{font-family:var(--f-display);font-size:1.6rem;line-height:1;margin:1rem 0 .3rem}
.team p{margin:0;font-size:.875rem;color:var(--muted)}
.gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--colgap)}
.gallery .ph{aspect-ratio:4/3}
.gallery .g1{grid-column:1/span 7;aspect-ratio:16/10}
.gallery .g2{grid-column:8/-1;aspect-ratio:auto}
.gallery .g3{grid-column:1/span 4}
.gallery .g4{grid-column:5/span 4}
.gallery .g5{grid-column:9/-1}

/* ---------- Capabilities, certificates, options ---------- */
.capgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}
.cap{padding:1.75rem 1.25rem 2rem;border-left:1px solid var(--line);border-bottom:1px solid var(--line)}
.cap:first-child{border-left:0;padding-left:0}
.cap b{display:block;font-family:var(--f-display);font-weight:400;font-size:clamp(2.5rem,1.8rem + 2vw,4rem);line-height:1;margin-bottom:.6rem}
.cap span{font-size:.875rem;color:var(--muted)}
.certs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--colgap)}
.cert{display:flex;flex-direction:column;gap:1rem;padding:1.75rem;border:1px solid var(--line);border-radius:var(--r-md);background:rgba(255,255,255,.02);height:100%}
.is-light .cert{background:#fff}
.cert__seal{width:3.5rem;height:3.5rem;border-radius:50%;border:1px solid var(--acc);color:var(--acc);display:grid;place-items:center;font-family:var(--f-mono);font-size:.6875rem}
.cert h3{font-family:var(--f-display);font-size:2rem;line-height:1}
.cert dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;font-size:.875rem}
.cert dt{color:var(--muted)}
.cert dd{margin:0;font-family:var(--f-mono);font-size:.8125rem}
.cert .btn{margin-top:auto;align-self:flex-start}
.options{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--colgap)}
.option .ph{aspect-ratio:4/3;margin-bottom:1.25rem}
.option h3{font-family:var(--f-display);font-size:2rem;line-height:1;margin-bottom:.6rem}
.option p{color:var(--muted);font-size:.9375rem}
.option ul{margin:0;padding-left:1.1rem;color:var(--muted);font-size:.9375rem;display:grid;gap:.3rem}
.table-wrap{overflow-x:auto}
.table{width:100%;min-width:36rem;border-collapse:collapse}
.table th{text-align:left;font-size:.8125rem;font-weight:500;color:var(--muted);padding:0 1rem .9rem 0}
.table td{padding:1.1rem 1rem 1.1rem 0;border-top:1px solid var(--line);vertical-align:baseline}
.table td:first-child{font-family:var(--f-display);font-size:1.5rem}
.table td.mono{font-family:var(--f-mono);font-size:.875rem}

/* ---------- Resources ---------- */
.res-group+.res-group{margin-top:clamp(4rem,7vw,6rem)}
.res-group h2{font-family:var(--f-display);font-size:clamp(2.25rem,1.6rem + 2vw,3.5rem);line-height:1;margin-bottom:1.5rem}

/* ---------- FAQ page ---------- */
.faq-tools{display:flex;flex-direction:column;gap:1.25rem;margin-top:2rem}
.faq__item[hidden]{display:none}
.faq-group{margin:2.5rem 0 .75rem;font-family:var(--f-mono);font-size:.75rem;color:var(--acc);text-transform:none}
.faq-group:first-child{margin-top:0}

/* ---------- Contact ---------- */
.qlist{list-style:none;margin:0 0 2rem;padding:0;border-top:1px solid var(--line)}
.qrow{display:grid;grid-template-columns:4rem 1fr auto auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--line)}
.qrow .ph{aspect-ratio:1/1}
.qrow b{display:block;font-weight:500;line-height:1.3}
.qrow small{font-family:var(--f-mono);font-size:.75rem;color:var(--muted)}
.qrow .qty{height:2.5rem}
.qrow .qty button{width:2.25rem}
.qrow .qty input{width:2.75rem}
.qrow__rm{width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--line);background:none;color:var(--fg);cursor:pointer;display:grid;place-items:center}
.qrow__rm:hover{border-color:var(--c-error);color:var(--c-error)}
.qrow__rm svg{width:14px;height:14px}
.qempty{padding:1.5rem;border:1px dashed var(--line);border-radius:var(--r-md);color:var(--muted);font-size:.9375rem;margin-bottom:2rem}
.qhead{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem}
.qhead h3{font-family:var(--f-display);font-size:2rem;line-height:1}
.qhead button{background:none;border:0;color:var(--muted);font-size:.875rem;cursor:pointer;text-decoration:underline}
.mapbox{position:relative;aspect-ratio:16/10;border-radius:var(--r-md);overflow:hidden;background:
  radial-gradient(circle at 1px 1px,rgba(10,13,38,.18) 1px,transparent 1.5px) 0 0/16px 16px,var(--c-paper-2);margin-top:2rem}
.mapbox__pin{position:absolute;left:50%;top:46%;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:.4rem}
.mapbox__pin .cure-logo{--s:42px;box-shadow:0 10px 24px rgba(40,52,164,.35)}
.mapbox__pin span:not(.cure-logo){font-size:.8125rem;background:#fff;padding:.3rem .6rem;border-radius:var(--r-pill);box-shadow:0 4px 12px rgba(0,0,0,.08)}
.mapbox a{position:absolute;right:1rem;bottom:1rem}
.offices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--colgap);border-top:1px solid var(--line)}
.office{padding-top:1.5rem}
.office h3{font-family:var(--f-display);font-size:1.75rem;line-height:1;margin-bottom:.6rem}
.office p{margin:0;color:var(--muted);font-size:.9375rem}

/* ---------- Legal ---------- */
.legal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--colgap)}
.legal__toc{grid-column:1/span 3;position:sticky;top:calc(var(--nav-h) + 3rem);align-self:start}
.legal__toc h2{font-size:.8125rem;font-weight:500;color:var(--muted);margin-bottom:1rem}
.legal__toc ol{margin:0;padding-left:1.1rem;display:grid;gap:.5rem;font-size:.875rem}
.legal__toc a{color:var(--fg);text-decoration:none}
.legal__toc a:hover{text-decoration:underline}
.prose{grid-column:5/span 7;max-width:68ch}
.prose h2{font-family:var(--f-display);font-size:clamp(1.9rem,1.5rem + 1.2vw,2.5rem);line-height:1.05;margin:3rem 0 1rem;scroll-margin-top:calc(var(--nav-h) + 2rem)}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{color:var(--muted)}
.prose ul{padding-left:1.2rem;display:grid;gap:.4rem;margin:0 0 1em}
.prose a{color:var(--acc)}
.notice{padding:1.1rem 1.25rem;border-left:3px solid var(--acc);background:rgba(40,52,164,.06);font-size:.9375rem;margin-bottom:2.5rem}

/* ---------- Utility pages ---------- */
.sec-center{min-height:100vh;min-height:100svh;display:grid;place-items:center;text-align:center;padding-top:calc(var(--nav-h) + 3rem)}
.big404{font-family:var(--f-logo);font-weight:700;font-size:clamp(8rem,30vw,22rem);line-height:.85;letter-spacing:-.04em;background:linear-gradient(180deg,#fff 0%,#c5c9e6 45%,#5a63b8 60%,#e6e8f5 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.center-stack{display:flex;flex-direction:column;align-items:center;gap:1.5rem;max-width:40rem;margin-inline:auto}
.center-stack .lede{margin-inline:auto;text-align:center}
.okmark{width:5rem;height:5rem;border-radius:50%;background:var(--c-brand);display:grid;place-items:center}
.okmark svg{width:2rem;height:2rem;color:#fff}
.summary{width:100%;text-align:left;border:1px solid var(--line);border-radius:var(--r-md);padding:1.5rem}
.summary h3{font-size:.8125rem;font-weight:500;color:var(--muted);margin-bottom:.75rem}
.summary ul{margin:0;padding-left:1.1rem;display:grid;gap:.35rem;font-size:.9375rem}

/* ---------- CTA band (inner pages) ---------- */
.cta--band{padding-block:clamp(6rem,11vw,10rem)}
.cta--band .cta__title{font-size:clamp(3rem,1rem + 7vw,8.5rem)}

/* ---------- Responsive: new components ---------- */
@media (max-width:1180px){.prod-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1024px){
  .pagehero__title{grid-column:1/-1}
  .pagehero__side{grid-column:1/-1}
  .split__a,.split__b{grid-column:1/-1}
  .split__sticky{position:static}
  .cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pd__gallery,.pd__info{grid-column:1/-1}
  .pd__info{position:static}
  .timeline{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:2.5rem}
  .team{grid-template-columns:repeat(3,minmax(0,1fr))}
  .capgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cap:nth-child(3){border-left:0;padding-left:0}
  .certs,.options{grid-template-columns:repeat(2,minmax(0,1fr))}
  .legal__toc{grid-column:1/-1;position:static;margin-bottom:3rem}
  .prose{grid-column:1/-1}
  .offices{grid-template-columns:1fr 1fr}
}
@media (max-width:767px){
  .prod-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1rem}
  .prod__name{font-size:1.25rem}
  .prod__add span{display:none}
  .prod__add{width:2.5rem;padding:0;justify-content:center}
  .cat-grid,.certs,.options,.values,.offices{grid-template-columns:1fr}
  .timeline,.team{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery .g1,.gallery .g2,.gallery .g3,.gallery .g4,.gallery .g5{grid-column:1/-1;aspect-ratio:4/3}
  .capgrid{grid-template-columns:1fr 1fr}
  .cap{padding:1.25rem .75rem 1.5rem}
  .cap:nth-child(odd){border-left:0;padding-left:0}
  .filters{flex-direction:column;align-items:stretch}
  .search{max-width:none}
  .chipbar{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:none}
  .chipbtn{flex:none}
  .filters__right{justify-content:space-between}
  .qrow{grid-template-columns:3.25rem 1fr auto;row-gap:.6rem}
  .qrow .qty{grid-column:2}
  .qrow__rm{grid-column:3;grid-row:1}
  .cookie{left:1rem;right:1rem;width:auto}
}
.link-btn{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}
.link-btn:hover{color:var(--c-chrome)}
.faq__main{grid-column:6/-1}
@media (max-width:1024px){.faq__main{grid-column:1/-1}}
.pt-enter .pt{animation:pt-fallback 0s linear 3s forwards}
@keyframes pt-fallback{to{transform:translateY(-101%)}}
.pt{visibility:hidden}
.pt-enter .pt,.pt.is-in,.pt.is-out{visibility:visible}
.chip--text span{display:inline-block;padding:.6rem 1rem;line-height:1.4;border-radius:var(--r-md)}
@media (max-width:767px){.pagehero__media{aspect-ratio:4/3}}

/* ---------- Real product photography (supplied CURE images) ---------- */
/* Shown in true colour on white, never tinted, cropped or upscaled */
.ph--real{background:#fff}
.ph--real::after{display:none}
.ph.ph--real .ph__img{inset:0;background:#fff}
.ph.ph--real .ph__img::before,.ph.ph--real .ph__img::after{display:none}
.ph--real .ph__photo,.prod__media.ph--real:hover .ph__photo{filter:none!important;object-fit:scale-down;transform:none!important}
.ph--real picture{position:absolute;inset:0;display:block}
.pd--real .pd__main{cursor:default;border-radius:var(--r-md)}
.pd__sub{display:inline-block;margin-left:.6rem;padding:.2rem .55rem;border:1px solid var(--line);border-radius:var(--r-pill);font-family:var(--f-body);font-size:.75rem;color:var(--c-steel-2)}
.pd-copy{max-width:56rem}
.pd-copy h2{font-family:var(--f-display);font-size:clamp(1.6rem,1.3rem + .9vw,2.1rem);line-height:1.05;margin:2.5rem 0 1rem}
.pd-copy h2:first-child{margin-top:0}
.pd-copy p{color:var(--muted);max-width:68ch}
.steps-list{margin:0;padding-left:1.25rem;display:grid;gap:.7rem;color:var(--fg)}
.steps-list li::marker{font-family:var(--f-mono);color:var(--acc)}
.ticks--warn li::before{background:var(--c-error);border-radius:2px}
#sub-bar{margin-top:-.25rem}
/* supplied images are 320px: keep the stage close to native size so nothing is upscaled */
.pd--real .pd__main{max-width:28rem;margin-inline:auto}
.pd--real .pd__gallery{align-self:center}

/* ---------- Products mega menu (all products) ---------- */
.sub.mega{left:50%;transform:translate(-50%,8px);display:grid!important;grid-template-columns:repeat(5,minmax(9.5rem,auto));gap:1.25rem 1.5rem;padding:1.5rem;width:max-content;max-width:calc(100vw - 2rem)}
.has-sub:hover .sub.mega,.has-sub:focus-within .sub.mega{transform:translate(-50%,0)}
.mega__h{margin:0 0 .5rem;padding:0 .75rem;font-family:var(--f-mono);font-size:.6875rem;color:var(--c-accent)}
.mega ul{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}
.mega a{white-space:nowrap}
.menu__sub{flex-direction:column;gap:.35rem}
.site-nav__links li.has-sub{position:static}
.sub.mega{top:calc(100% - .5rem)}
.sub.mega::before{top:-1rem;height:1rem}

/* ---------- WhatsApp live chat (HTML widget, every page) ---------- */
.wa{position:fixed;right:max(1rem,env(safe-area-inset-right,0px));bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));z-index:58;display:flex;flex-direction:column;align-items:flex-end;gap:.85rem;font-family:var(--f-body);transition:opacity .4s}
.wa__btn{position:relative;width:3.75rem;height:3.75rem;border-radius:50%;border:0;background:#25d366;color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.28);transition:transform .5s var(--ease-out),background-color .3s}
.wa__btn:hover{transform:scale(1.06)}
.wa__btn svg{width:1.9rem;height:1.9rem}
.wa__btn .i-close{display:none;width:1.2rem;height:1.2rem}
.wa.is-open .wa__btn .i-wa{display:none}
.wa.is-open .wa__btn .i-close{display:block}
.wa__btn::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25d366;animation:wa-ring 2.6s var(--ease-out) infinite}
.wa.is-open .wa__btn::before{display:none}
@keyframes wa-ring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.6);opacity:0}}
.wa__dot{position:absolute;top:2px;right:2px;width:.85rem;height:.85rem;border-radius:50%;background:var(--c-brand);border:2px solid #fff}
.wa.is-open .wa__dot,.wa.seen .wa__dot{display:none}
.wa__panel{width:min(22rem,calc(100vw - 2rem));border-radius:var(--r-md);overflow:hidden;background:var(--c-paper);color:var(--c-paper-ink);box-shadow:0 30px 60px rgba(0,0,0,.35);transform-origin:bottom right;transform:translateY(12px) scale(.96);opacity:0;visibility:hidden;transition:transform .5s var(--ease-out),opacity .3s,visibility 0s linear .5s}
.wa.is-open .wa__panel{transform:none;opacity:1;visibility:visible;transition:transform .5s var(--ease-out),opacity .3s}
.wa__head{display:flex;align-items:center;gap:.8rem;padding:1rem 1.1rem;background:var(--c-brand);color:#fff}
.wa__head .cure-logo{--s:2.6rem;border:1px solid rgba(255,255,255,.5)}
.wa__head b{display:block;font-weight:600;font-size:.9375rem;line-height:1.2}
.wa__head small{display:flex;align-items:center;gap:.4rem;font-size:.75rem;opacity:.85}
.wa__head small::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:#25d366}
.wa__body{padding:1.1rem;background:radial-gradient(circle at 1px 1px,rgba(10,13,38,.07) 1px,transparent 1.5px) 0 0/14px 14px,var(--c-paper)}
.wa__msg{max-width:88%;padding:.7rem .9rem;border-radius:4px 14px 14px 14px;background:#fff;font-size:.9375rem;line-height:1.45;box-shadow:0 2px 6px rgba(10,13,38,.08);margin:0 0 .9rem}
.wa__msg small{display:block;margin-top:.3rem;font-size:.6875rem;color:var(--c-paper-muted)}
.wa__quick{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem}
.wa__quick button{border:1px solid var(--c-line-light);background:#fff;color:var(--c-paper-ink);border-radius:var(--r-pill);padding:.45rem .8rem;font:500 .8125rem var(--f-body);cursor:pointer;transition:border-color .3s,background-color .3s}
.wa__quick button:hover,.wa__quick button[aria-pressed="true"]{border-color:var(--c-brand);background:rgba(40,52,164,.08)}
.wa__form{display:flex;gap:.5rem;align-items:flex-end;padding:.75rem;border-top:1px solid var(--c-line-light);background:#fff}
.wa__form textarea{flex:1;resize:none;min-height:2.75rem;max-height:7rem;border:1px solid var(--c-line-light);border-radius:1.4rem;padding:.7rem 1rem;font:inherit;font-size:.9375rem;color:var(--c-paper-ink);background:var(--c-paper)}
.wa__form textarea:focus-visible{outline:none;border-color:#25d366;box-shadow:0 0 0 3px rgba(37,211,102,.2)}
.wa__send{flex:none;width:2.75rem;height:2.75rem;border-radius:50%;border:0;background:#25d366;color:#fff;display:grid;place-items:center;cursor:pointer}
.wa__send svg{width:1.1rem;height:1.1rem}
.wa__foot{margin:0;padding:.55rem 1rem .75rem;background:#fff;font-size:.6875rem;color:var(--c-paper-muted);text-align:center}
.has-cursor .wa button{cursor:pointer}
@media (max-width:767px){
  .wa__btn{width:3.4rem;height:3.4rem}
  .cookie.is-on ~ .wa{opacity:0;pointer-events:none}
}
@media (prefers-reduced-motion:reduce){.wa__btn::before{animation:none;display:none}}

/* ---------- Certificate thumbnails ---------- */
.cert__thumb{display:block;aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-sm);border:1px solid var(--line);background:#fff;margin-bottom:.25rem}
.cert__thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .8s var(--ease-out)}
.cert__thumb:hover img{transform:scale(1.04)}
.certs+.certs,.res-group .certs{margin-top:0}

/* ---------- Paint-stroke cursor (desktop / mouse only, added by JS) ---------- */
html.paint-cursor,html.paint-cursor body{cursor:url("../img/cursor/arrow.svg") 2 1,url("../img/cursor/arrow.png") 2 1,auto}
html.paint-cursor :is(a,button,[role="button"],[role="tab"],label,select,summary,[data-cursor],[data-tilt],.thumb,.faq__q,.burger){cursor:url("../img/cursor/hand.svg") 4 3,url("../img/cursor/hand.png") 4 3,pointer}
html.paint-cursor :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea,[contenteditable="true"]){cursor:text}
html.paint-cursor :is(button:disabled,[aria-disabled="true"]){cursor:not-allowed}
.paint-trail{position:fixed;inset:0;z-index:150;pointer-events:none;overflow:hidden;contain:strict}
.paint-drop{position:absolute;left:0;top:0;border-radius:50%;opacity:0;will-change:transform,opacity;box-shadow:0 0 0 1.5px rgba(255,255,255,.85)}
.paint-label{position:fixed;left:0;top:0;z-index:151;pointer-events:none;padding:.35rem .7rem;border-radius:var(--r-pill);background:var(--c-brand);color:#fff;font:600 .75rem/1 var(--f-body);box-shadow:0 0 0 1.5px rgba(255,255,255,.85),0 8px 18px rgba(10,13,38,.25);opacity:0;transform:translate3d(-100px,-100px,0) scale(.6);transition:opacity .25s,scale .35s var(--ease-out)}
.paint-label.is-on{opacity:1}

/* ---------- Product photos: always natural colour ---------- */
/* No tint, duotone, blend, gradient or glare over real CURE product images */
.ph--real,.ph--real .ph__img{background:#fff!important}
.ph--real .ph__photo,.ph--real img{filter:none!important;mix-blend-mode:normal!important;opacity:1}
.ph--real::before,.ph--real::after,.ph--real .ph__img::before,.ph--real .ph__img::after{display:none!important}
.thumb img{filter:none}

/* ---------- People photos (founder and leadership): natural colour, no overlay ---------- */
.ph--natural .ph__photo{filter:none!important;mix-blend-mode:normal!important}
.ph--natural .ph__img::before,.ph--natural .ph__img::after{display:none!important}
.ph--natural::after{display:none!important}

/* =====================================================================
   RESPONSIVE FIXES
   ===================================================================== */
/* WhatsApp widget: the empty (hidden) panel area must never block taps or swipes */
.wa{pointer-events:none}
.wa__btn,.wa.is-open .wa__panel{pointer-events:auto}
.wa__panel{max-height:calc(100vh - 7rem);max-height:calc(100svh - 7rem);display:flex;flex-direction:column}
.wa__body{overflow-y:auto;overscroll-behavior:contain}

/* Mobile / tablet menu: scrollable, compact product list */
.menu{justify-content:flex-start;gap:2rem;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.menu__links li.menu__sub{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.15rem 1rem;padding:.5rem 0 1rem;overflow:visible}
.menu__links .menu__sub a{font-family:var(--f-body);font-size:.875rem;line-height:1.35;padding:.45rem 0;color:var(--c-steel-2);transform:none;transition:color .3s}
.menu__links .menu__sub a:hover{color:var(--c-chrome)}
.menu__links a[aria-current="page"]{color:var(--c-accent)}
.menu__foot{margin-top:auto;padding-top:1rem}
.menu-open .cookie,.menu-open .wa,.menu-open .toast{visibility:hidden!important;opacity:0!important}

@media (max-width:767px){
  /* hero facts: label above value so nothing gets squeezed */
  .hero__specs div{flex-direction:column;justify-content:flex-start;gap:.15rem}
  .hero__specs dd{font-size:.8125rem;word-break:break-word}
  .menu__links a{font-size:clamp(2.1rem,10vw,3rem)}
  .menu{gap:1.5rem}
  /* product slider on phones: cards sized to the screen, next card peeks in */
  .pcard{width:min(78vw,20rem)}
  .pcard__body{grid-template-columns:1fr}
  .pcard__count{order:-1}
  .products__head h2{font-size:clamp(2.4rem,10vw,3.5rem)}
  .cta__btn{width:9rem}
  .wa{right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom,0px))}
  .toast{bottom:calc(5.5rem + env(safe-area-inset-bottom,0px))}
}
@media (max-width:380px){
  .menu__links li.menu__sub{grid-template-columns:1fr}
  .nav-actions .btn{padding:0 .8rem;font-size:.75rem}
}
/* touch devices: swipe the product slider freely */
.products__viewport{touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
@media (max-width:1024px){
  .metrics .metric.metric--lead{grid-column:1/-1;grid-row:auto}
  .about__inset{width:38%;right:-4%}
}
@media (max-width:767px){
  .pd__actions .btn{flex:1 1 100%}
  .form__foot{flex-direction:column;align-items:stretch}
  .form__foot .btn{width:100%;flex:none}
  .pagehero__actions .btn{flex:1 1 auto}
  .mapbox{aspect-ratio:4/3}
  .doc{padding-inline:0}
}

/* ---------- Products: sticky horizontal scroll on phones and tablets ---------- */
.sec-products.is-sticky-h{overflow:visible;overflow-x:clip}
.is-sticky-h .products__pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;justify-content:flex-start;padding-block:calc(var(--nav-h) + 1rem) 1.25rem}
.is-sticky-h .products__viewport{flex:1;min-height:0;display:flex;align-items:flex-start;overflow:visible;scroll-snap-type:none;touch-action:auto}
.is-sticky-h .products__track{will-change:transform}
.is-sticky-h .products__progress{display:block}
.is-sticky-h .pcard{width:min-content}
.is-sticky-h .pcard__media{width:auto;height:clamp(9.5rem,calc(100svh - 28rem),26rem);aspect-ratio:4/5}
.is-sticky-h .pcard__body{min-width:12rem}
@media (max-width:767px){
  .is-sticky-h .products__head{gap:.75rem;margin-bottom:1rem}
  .is-sticky-h .products__head .kicker{margin-bottom:.75rem}
  .is-sticky-h .products__head h2{font-size:clamp(2rem,9vw,2.75rem)}
  .is-sticky-h .products__aside{gap:.6rem}
  .is-sticky-h .products__aside .lede{font-size:.875rem;line-height:1.4}
  .is-sticky-h .products__progress{width:100%}
  .is-sticky-h .pcard__title{font-size:1.5rem}
  .is-sticky-h .pcard__body{padding-top:.75rem}
}
@media (min-width:768px) and (max-width:1024px){
  .is-sticky-h .pcard__media{height:clamp(12rem,calc(100svh - 26rem),30rem)}
}
/* mobile menu: always scrollable on touch */
.menu{touch-action:pan-y;max-height:100vh;max-height:100dvh}
.is-sticky-h .pcard__media{height:clamp(9rem,calc(100svh - 29rem),26rem)}
@media (min-width:768px) and (max-width:1024px){
  .is-sticky-h .products__head{flex-direction:row;align-items:flex-end;margin-bottom:1.5rem}
  .is-sticky-h .products__aside{align-items:flex-end;text-align:right}
  .is-sticky-h .pcard__media{height:clamp(11rem,calc(100svh - 29.5rem),30rem)}
}
