/* =========================================================
   NEXT TRADE — Design System
   Pharmaceutical & medical-device wholesale distribution
   ---------------------------------------------------------
   Language: deep indigo planes, tight editorial sans with a
   serif italic accent, hairline rules instead of boxes,
   the DNA hero film as the signature.
   ========================================================= */
:root{
  /* Indigo family — dominant brand surface */
  --navy-900:#0B1046;
  --navy-850:#0F1655;
  --navy-800:#141B63;
  --navy-700:#1E2A80;

  /* Blues */
  --blue-600:#1C68B4;
  --blue-500:#2A79D0;
  --blue-400:#4C8DD9;
  --blue-300:#9FBCD8;
  --blue-100:#DCE8F4;

  /* Neutrals */
  --white:#FFFFFF;
  --paper:#F4F5F2;
  --ink:#101642;
  --ink-soft:#57667A;
  --rule-light:rgba(16,22,66,.14);
  --rule-dark:rgba(255,255,255,.11);

  /* Gold — used sparingly, as an accent not a fill */
  --gold:#E0A83A;
  --gold-bright:#F2C56A;
  --gold-deep:#8E6310;
  --strand:#E0A83A;
  --strand-soft:rgba(224,168,58,.34);

  /* Type */
  --font-display:"Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-serif:"Instrument Serif", Georgia, "Times New Roman", serif;
  --font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  /* Metrics */
  --container:1280px;
  --gutter:clamp(22px, 5vw, 64px);
  --header-h:84px;
  --pad-section:clamp(88px, 12vw, 190px);

  /* Motion */
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
}

/* =========================================================
   Reset & base
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
html:not(.lenis){ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--navy-900);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  font-weight:400;
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
p{ margin:0 0 1.15em; }
p:last-child{ margin-bottom:0; }
h1,h2,h3,h4{
  margin:0;
  font-family:var(--font-display);
  font-weight:400;
  line-height:1.02;
  letter-spacing:-.035em;
}
em{ font-style:normal; }
:focus-visible{ outline:1px solid var(--gold); outline-offset:4px; }

.skip-link{
  position:absolute; left:16px; top:-60px; z-index:400;
  background:var(--gold); color:var(--navy-900);
  padding:10px 18px; font-weight:500; font-size:.85rem;
  transition:top .25s var(--ease);
}
.skip-link:focus{ top:12px; }

/* Lenis smooth scroll */
html.lenis,html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-stopped{ overflow:hidden; }

/* =========================================================
   Page chrome — grain, progress, curtain, cursor
   ========================================================= */
.grain{
  position:fixed; inset:-50%; z-index:300;
  pointer-events:none; opacity:.035;
  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'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainShift 8s steps(6) infinite;
}
@keyframes grainShift{
  0%{ transform:translate(0,0); }      20%{ transform:translate(-3%,2%); }
  40%{ transform:translate(2%,-3%); }  60%{ transform:translate(-2%,-2%); }
  80%{ transform:translate(3%,1%); }   100%{ transform:translate(0,0); }
}

.scroll-progress{
  position:fixed; top:0; left:0; width:100%; height:2px; z-index:210;
  pointer-events:none;
}
.scroll-progress span{
  display:block; height:100%; width:100%;
  background:linear-gradient(90deg, var(--blue-500), var(--gold));
  transform:scaleX(0); transform-origin:left;
}

.curtain{
  position:fixed; inset:0; z-index:250;
  background:var(--navy-900);
  display:flex; align-items:center; justify-content:center;
  transform:translateY(100%);
  transition:transform .62s var(--ease);
  pointer-events:none;
}
.curtain.is-in{ transform:translateY(0); pointer-events:auto; }
.curtain.is-out{ transform:translateY(-100%); }
.curtain.no-anim{ transition:none; }
.curtain__mark{
  font-family:var(--font-display);
  font-size:clamp(1.4rem,3vw,2rem);
  letter-spacing:.4em; text-transform:uppercase;
  color:var(--gold);
  opacity:0; transition:opacity .3s var(--ease-soft);
}
.curtain.is-in .curtain__mark{ opacity:.5; }

.cursor{ display:none; }
@media (pointer:fine){
  .cursor{
    display:block; position:fixed; top:0; left:0;
    z-index:320; pointer-events:none;
    mix-blend-mode:difference;
  }
  .cursor__dot,.cursor__ring{
    position:absolute; border-radius:50%;
    transform:translate(-50%,-50%);
    will-change:transform,width,height;
  }
  .cursor__dot{ width:6px; height:6px; background:#fff; }
  .cursor__ring{
    width:34px; height:34px;
    border:1px solid rgba(255,255,255,.55);
    transition:width .3s var(--ease), height .3s var(--ease), border-color .3s var(--ease), opacity .3s var(--ease);
  }
  .cursor.is-hover .cursor__ring{ width:62px; height:62px; border-color:rgba(255,255,255,.9); }
  .cursor.is-hover .cursor__dot{ opacity:0; }
  body.has-cursor,body.has-cursor a,body.has-cursor button{ cursor:none; }
}

/* =========================================================
   Layout primitives
   ========================================================= */
.wrap{
  max-width:var(--container);
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
  position:relative;
}
.section{ padding-top:var(--pad-section); padding-bottom:var(--pad-section); position:relative; }

.s-dark{ background:var(--navy-900); color:var(--blue-100); }
.s-dark-2{ background:var(--navy-850); color:var(--blue-100); }
.s-paper{ background:var(--paper); color:var(--ink); }
.s-white{ background:var(--white); color:var(--ink); }
.s-dark h1,.s-dark h2,.s-dark h3,.s-dark h4,
.s-dark-2 h1,.s-dark-2 h2,.s-dark-2 h3,.s-dark-2 h4{ color:var(--white); }

/* =========================================================
   Typography
   ========================================================= */
.h-page{
  font-size:clamp(2.03rem, 5.4vw, 4.5rem);
  line-height:.98;
  font-weight:400;
  max-width:15ch;
}
.h-display{
  font-size:clamp(1.8rem, 4.5vw, 3.75rem);
  line-height:1;
  font-weight:400;
  max-width:17ch;
}
.h-section{
  font-size:clamp(1.5rem, 3.3vw, 2.63rem);
  line-height:1.02;
  font-weight:400;
  max-width:18ch;
}
h1 em,h2 em,h3 em{
  font-family:var(--font-serif);
  font-style:italic;
  font-weight:400;
  letter-spacing:-.01em;
  color:var(--gold);
}
.s-paper h2 em,.s-white h2 em,.s-paper h1 em,.s-white h1 em{ color:var(--blue-600); }

/* The company name always reads in brand gold; a deeper gold on light surfaces */
.nt{ color:var(--gold); font-weight:inherit; }
.s-paper .nt,.s-white .nt{ color:var(--gold-deep); }

.lead{
  font-size:1.06rem;
  line-height:1.72;
  color:var(--ink-soft);
  max-width:54ch;
  margin:0;
  font-weight:400;
}
.s-dark .lead,.s-dark-2 .lead,.page-head .lead,.cta .lead{ color:var(--blue-300); }

/* Eyebrow — mono label with a live pip */
.eyebrow{
  display:flex; align-items:center; gap:12px;
  font-family:var(--font-mono);
  font-size:.68rem; font-weight:400;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--blue-600);
  margin:0 0 30px;
}
.eyebrow::after{
  content:""; flex:1; max-width:90px; height:1px;
  align-self:center;
  background:currentColor; opacity:.32;
}
@media (max-width:620px){
  .eyebrow{ font-size:.62rem; letter-spacing:.16em; }
  .eyebrow::after{ display:none; }
}
.pip{
  width:6px; height:6px; flex:none; border-radius:50%;
  align-self:center;
  background:var(--gold);
  box-shadow:0 0 0 0 rgba(224,168,58,.6);
  animation:pip 2.8s var(--ease-soft) infinite;
}
@keyframes pip{
  0%{ box-shadow:0 0 0 0 rgba(224,168,58,.55); }
  70%{ box-shadow:0 0 0 9px rgba(224,168,58,0); }
  100%{ box-shadow:0 0 0 0 rgba(224,168,58,0); }
}
.s-dark .eyebrow,.s-dark-2 .eyebrow,.page-head .eyebrow,.cta .eyebrow,.hero .eyebrow{ color:var(--gold-bright); }

/* Shared block header */
.block-head{ margin-bottom:clamp(48px, 7vw, 96px); }
.block-head .h-section{ margin-bottom:26px; }
.block-head--split{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(28px, 6vw, 88px);
  align-items:end;
}
.block-head--split .h-section{ margin-bottom:0; }
@media (max-width:900px){
  .block-head--split{ grid-template-columns:1fr; gap:28px; }
}

/* =========================================================
   Buttons & links
   ========================================================= */
.btn{
  position:relative; overflow:hidden;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:17px 32px;
  font-family:var(--font-mono);
  font-size:.72rem; font-weight:400;
  letter-spacing:.14em; text-transform:uppercase;
  border:1px solid transparent;
  border-radius:100px;
  cursor:pointer;
  isolation:isolate;
  transition:color .4s var(--ease), border-color .4s var(--ease), transform .5s var(--ease);
  will-change:transform;
}
.btn::before{
  content:""; position:absolute; inset:0; z-index:-1;
  transform:translateY(101%);
  transition:transform .5s var(--ease);
}
.btn:hover::before{ transform:translateY(0); }
.btn__arrow{ transition:transform .4s var(--ease); }
.btn:hover .btn__arrow{ transform:translateX(5px); }

.btn--solid{ background:var(--blue-500); color:var(--white); }
.btn--solid::before{ background:var(--white); }
.btn--solid:hover{ color:var(--navy-900); }

.btn--line{ border-color:var(--rule-dark); color:var(--white); }
.btn--line::before{ background:var(--white); }
.btn--line:hover{ color:var(--navy-900); border-color:var(--white); }
.s-paper .btn--line,.s-white .btn--line{ border-color:var(--rule-light); color:var(--ink); }
.s-paper .btn--line::before,.s-white .btn--line::before{ background:var(--navy-900); }
.s-paper .btn--line:hover,.s-white .btn--line:hover{ color:var(--white); border-color:var(--navy-900); }

.btn--gold{ background:var(--gold); color:var(--navy-900); }
.btn--gold::before{ background:var(--white); }
.btn--gold:hover{ color:var(--navy-900); }

.link-more{
  position:relative;
  display:inline-flex; align-items:center; gap:11px;
  font-family:var(--font-mono);
  font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--blue-600);
  transition:gap .35s var(--ease), color .35s var(--ease);
  margin-top:44px;
  padding-bottom:7px;
}
.link-more::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:currentColor; opacity:.34;
  transform:scaleX(1); transform-origin:right;
  transition:transform .45s var(--ease);
}
.link-more:hover::after{ transform:scaleX(0); }
.link-more span{ color:var(--gold); }
.link-more:hover{ gap:18px; color:var(--ink); }
.link-more--light{ color:var(--blue-100); }
.link-more--light:hover{ color:var(--gold-bright); }
.link-more--light span{ color:var(--gold); }

/* =========================================================
   Reveal system
   ========================================================= */
.js .reveal{
  opacity:0; transform:translateY(26px);
  transition:opacity .95s var(--ease), transform .95s var(--ease);
  transition-delay:var(--d, 0ms);
}
.js .reveal.in-view{ opacity:1; transform:none; }

/* Word-mask reveal for split headings */
.js .w{
  display:inline-block; overflow:hidden; vertical-align:top;
  padding-bottom:.14em; margin-bottom:-.14em;
}
.js .w__i{
  display:inline-block;
  transform:translateY(115%);
  transition:transform 1.05s var(--ease);
  transition-delay:var(--d, 0ms);
}
.js [data-split].in-view .w__i{ transform:translateY(0); }

/* =========================================================
   Header
   ========================================================= */
.site-header{
  position:fixed; top:0; left:0; width:100%;
  z-index:200; height:var(--header-h);
  display:flex; align-items:center;
  background:transparent;
  transition:transform .5s var(--ease), background .45s var(--ease-soft), backdrop-filter .45s var(--ease-soft), height .45s var(--ease);
}
.site-header::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
  background:var(--rule-dark);
  transform:scaleX(0); transform-origin:left;
  transition:transform .6s var(--ease);
}
.site-header.scrolled{
  height:70px;
  background:rgba(11,16,70,.72);
  backdrop-filter:blur(16px) saturate(1.2);
}
.site-header.scrolled::after{ transform:scaleX(1); }
.site-header.hidden{ transform:translateY(-100%); }

.header__inner{
  width:100%;
  display:flex; align-items:center; justify-content:space-between;
}
.brand{ display:flex; align-items:center; cursor:pointer; }
.brand__word{
  font-family:var(--font-display);
  font-size:.94rem; font-weight:500;
  letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold); white-space:nowrap;
}

.main-nav{ display:flex; align-items:center; gap:6px; }
.main-nav ul{ display:flex; align-items:center; }
.nav-link{
  position:relative; display:block;
  padding:11px 17px;
  font-family:var(--font-mono);
  font-size:.7rem; line-height:1.15; letter-spacing:.13em; text-transform:uppercase;
  color:rgba(255,255,255,.6);
  transition:color .3s var(--ease);
}
.nav-link > span{
  display:block;
  transition:transform .45s var(--ease), opacity .35s var(--ease);
}
.nav-link > span:last-child{
  position:absolute; left:17px; top:11px;
  color:var(--white);
  transform:translateY(90%); opacity:0;
}
.nav-link:hover > span:first-child{ transform:translateY(-90%); opacity:0; }
.nav-link:hover > span:last-child{ transform:translateY(0); opacity:1; }
.nav-link.active{ color:var(--white); }
.nav-link.active::after{
  content:""; position:absolute; left:17px; bottom:4px;
  width:6px; height:1px; background:var(--gold);
}
.nav__cta{ margin-left:16px; padding:13px 24px; }

.btn-menu{
  display:none; position:relative;
  width:28px; height:12px;
  background:none; border:none; padding:0; cursor:pointer;
}
.btn-menu span{
  position:absolute; left:0; width:100%; height:1px;
  background:var(--white);
  transition:transform .4s var(--ease), opacity .25s var(--ease);
}
.btn-menu span:nth-child(1){ top:0; }
.btn-menu span:nth-child(2){ top:10px; width:70%; }
.btn-menu.active span:nth-child(1){ transform:translateY(5px) rotate(45deg); }
.btn-menu.active span:nth-child(2){ transform:translateY(-5px) rotate(-45deg); width:100%; }

@media (max-width:980px){
  .main-nav{
    position:fixed; inset:0 0 0 auto;
    width:min(400px, 90vw);
    background:var(--navy-850);
    border-left:1px solid var(--rule-dark);
    flex-direction:column;
    align-items:stretch;
    justify-content:center;
    gap:0; padding:0 var(--gutter);
    transform:translateX(calc(100% + 4px));
    transition:transform .65s var(--ease);
  }
  .main-nav.open{ transform:translateX(0); }
  .main-nav ul{ flex-direction:column; align-items:stretch; }
  .nav-link{
    padding:22px 0;
    font-size:.92rem; letter-spacing:.06em;
    border-bottom:1px solid var(--rule-dark);
  }
  .nav-link > span:last-child,.nav-link.active::after{ display:none; }
  .nav__cta{ margin:32px 0 0; justify-content:center; }
  .btn-menu{ display:block; z-index:210; }
}

/* =========================================================
   Pages (SPA)
   ========================================================= */
.page{ display:none; }
.page.is-active{ display:block; }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  overflow:hidden;
  min-height:100svh;
  display:flex; flex-direction:column; justify-content:center;
  padding-top:calc(var(--header-h) + 40px);
  padding-bottom:34px;
  background:var(--navy-900);
}
.hero__bg{ position:absolute; inset:0; z-index:0; pointer-events:none; background:var(--navy-900); }
.hero__glow{
  position:absolute; top:-18%; right:-8%;
  width:min(78vw, 900px); aspect-ratio:1/1;
  border-radius:50%;
  background:radial-gradient(circle, rgba(42,121,208,.30) 0%, rgba(42,121,208,.09) 42%, transparent 70%);
  filter:blur(10px);
  animation:glowDrift 16s ease-in-out infinite alternate;
}
@keyframes glowDrift{
  from{ transform:translate3d(0,0,0) scale(1); }
  to{ transform:translate3d(-4%,4%,0) scale(1.08); }
}
.hero__parallax{ position:absolute; inset:-36px; will-change:transform; mix-blend-mode:screen; }
.hero__bg::after{
  content:""; position:absolute; inset:0;
  /* navy-800 keeps the desktop hero at the same brightness as the phone layout */
  background:linear-gradient(100deg, var(--navy-800) 6%, rgba(20,27,99,.62) 38%, rgba(20,27,99,0) 66%);
}
.hero__still,
.hero__video{
  position:absolute;
  top:0; right:0; bottom:0;
  width:min(78%, 1180px);
  height:100%;
  object-fit:cover;
  object-position:50% 50%;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.45) 26%, #000 62%);
  mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.45) 26%, #000 62%);
}
/* the video is desktop-only; phones get the still frame instead */
.hero__still{ display:none; }

/* auto side margins beat align-items:stretch in a flex column, so the hero's
   wraps would shrink-wrap and drift off the container gutter */
.hero > .wrap{ width:100%; }
.hero__inner{ position:relative; z-index:1; flex:1; display:flex; flex-direction:column; justify-content:center; }
.hero__title{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(1.95rem, 6.15vw, 5.55rem);
  line-height:.96;
  letter-spacing:-.045em;
  color:var(--white);
  max-width:15ch;
  margin:0 0 38px;
}
.hero__title em{ color:var(--gold-bright); }
.hero__sub{
  font-size:clamp(1rem, 1.25vw, 1.14rem);
  line-height:1.75;
  color:var(--blue-300);
  max-width:52ch;
  margin:0 0 46px;
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; }
@media (max-width:620px){
  .hero__bg::after{
    background:linear-gradient(180deg, rgba(11,16,70,.9) 0%, rgba(11,16,70,.72) 55%, rgba(11,16,70,.55) 100%);
  }
  .hero__video{ display:none; }
  .hero__still{ display:block; opacity:.42; }
  .hero__actions{ flex-direction:column; align-items:stretch; }
  .hero__actions .btn{ width:100%; }
}

.hero__meta{
  position:relative; z-index:1;
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:clamp(16px,3vw,44px);
  padding-top:30px; margin-top:clamp(48px,7vw,86px);
  border-top:1px solid var(--rule-dark);
}
.meta__item{ display:flex; flex-direction:column; gap:8px; }
.meta__k{
  font-family:var(--font-mono);
  font-size:.6rem; letter-spacing:.19em; text-transform:uppercase;
  color:rgba(159,188,216,.7);
}
.meta__v{
  font-family:var(--font-display);
  font-size:clamp(.95rem,1.2vw,1.1rem); font-weight:400;
  letter-spacing:-.02em; color:var(--white); line-height:1.25;
}
@media (max-width:820px){
  .hero__meta{ grid-template-columns:repeat(2,1fr); row-gap:24px; }
}

.hero__cue{
  position:absolute; right:var(--gutter); bottom:34px; z-index:1;
  display:flex; align-items:center; gap:12px;
  font-family:var(--font-mono);
  font-size:.6rem; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(159,188,216,.6);
}
.hero__cue span{
  display:block; width:44px; height:1px;
  background:linear-gradient(90deg, transparent, var(--gold));
  animation:cue 2.6s var(--ease-soft) infinite;
}
@keyframes cue{ 0%,100%{ transform:scaleX(.35); transform-origin:left; } 50%{ transform:scaleX(1); transform-origin:left; } }
@media (max-width:820px){ .hero__cue{ display:none; } }

/* =========================================================
   MARQUEE
   ========================================================= */
.marquee{
  overflow:hidden;
  padding:26px 0;
  border-top:1px solid var(--rule-dark);
  border-bottom:1px solid var(--rule-dark);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.marquee__track{ display:flex; width:max-content; animation:marquee 34s linear infinite; }
.marquee__group{ display:flex; align-items:center; flex:none; }
.marquee__group b{
  font-family:var(--font-display);
  font-weight:300; font-size:clamp(1rem,1.6vw,1.35rem);
  letter-spacing:-.02em;
  color:rgba(220,232,244,.62);
  white-space:nowrap;
}
.marquee__group i{
  display:block; width:5px; height:5px; border-radius:50%;
  background:var(--gold); opacity:.75;
  margin:0 clamp(24px,3.4vw,52px);
}
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .marquee__track{ animation:none; } }

/* =========================================================
   FEATURE (about teaser)
   ========================================================= */
.feature{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(32px, 6vw, 100px);
  align-items:start;
}
.feature__body > p{ font-size:1.1rem; line-height:1.75; color:var(--ink-soft); max-width:52ch; }
@media (max-width:900px){
  .feature{ grid-template-columns:1fr; gap:34px; }
}

/* Stats */
.stat-row{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(16px,3vw,36px);
  margin-top:52px;
  border-top:1px solid var(--rule-light);
  padding-top:30px;
}
.s-dark .stat-row,.s-dark-2 .stat-row{ border-top-color:var(--rule-dark); }
.stat{ position:relative; }
.stat__num{
  display:block;
  font-family:var(--font-display); font-weight:300;
  font-size:clamp(2.1rem, 4vw, 3rem);
  letter-spacing:-.045em; line-height:1;
  color:var(--navy-800);
}
.s-dark .stat__num,.s-dark-2 .stat__num{ color:var(--white); }
.stat__label{
  display:block; margin-top:14px;
  font-family:var(--font-mono);
  font-size:.66rem; letter-spacing:.09em;
  color:var(--ink-soft); max-width:19ch; line-height:1.6;
}
.s-dark .stat__label,.s-dark-2 .stat__label{ color:var(--blue-300); }
@media (max-width:600px){
  .stat-row{ grid-template-columns:1fr; gap:26px; }
}

/* =========================================================
   ACTIVITIES — hairline list, no boxes
   ========================================================= */
.acts{ border-top:1px solid var(--rule-dark); }
.act{
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:clamp(22px,4vw,64px);
  padding:clamp(28px,3.4vw,44px) 0;
  border-bottom:1px solid var(--rule-dark);
  transition:padding-left .55s var(--ease);
}
.act::before{
  content:""; position:absolute; left:0; bottom:-1px; width:100%; height:1px;
  background:var(--gold);
  transform:scaleX(0); transform-origin:left;
  transition:transform .7s var(--ease);
}
.act:hover::before{ transform:scaleX(1); }
.act:hover{ padding-left:clamp(8px,1.4vw,22px); }
.act__num{
  font-family:var(--font-mono);
  font-size:.68rem; letter-spacing:.18em;
  color:var(--gold); opacity:.85;
  padding-top:6px; align-self:start;
}
.act__body{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(18px,3.4vw,56px); align-items:baseline; }
.act h3{
  font-size:clamp(1.5rem,2.6vw,2.1rem);
  font-weight:400; letter-spacing:-.035em;
  color:var(--white);
}
.act p{ color:var(--blue-300); font-size:.98rem; line-height:1.7; margin:0; max-width:46ch; }
.act__icon{
  display:block; width:30px; height:30px; flex:none;
  opacity:.5; transition:opacity .45s var(--ease), transform .55s var(--ease);
}
.act:hover .act__icon{ opacity:1; transform:translateX(4px); }
@media (max-width:900px){
  .act{ grid-template-columns:auto 1fr; }
  .act__body{ grid-template-columns:1fr; gap:14px; }
  .act__icon{ display:none; }
}

/* =========================================================
   EUROPEAN REACH
   ========================================================= */
.reach{
  display:grid;
  grid-template-columns:1fr .82fr;
  gap:clamp(36px, 6vw, 96px);
  align-items:center;
}
.reach__copy .h-section{ margin:0 0 28px; }
.reach__visual{
  position:relative;
  aspect-ratio:1/1;
  border-radius:50%;
  background:radial-gradient(circle at 50% 45%, rgba(42,121,208,.18), transparent 66%);
}
.netgraph{ position:absolute; inset:0; width:100%; height:100%; }
.netgraph .ng-rot{ transform-origin:260px 260px; animation:ngRot 90s linear infinite; }
@keyframes ngRot{ to{ transform:rotate(360deg); } }
.ng-ring{ fill:none; stroke:rgba(120,182,236,.2); }
.ng-ring--gold{ stroke:rgba(224,168,58,.4); }
.ng-ring--dotted{ fill:none; stroke:rgba(120,182,236,.26); stroke-dasharray:2 7; stroke-linecap:round; }
.ng-line{ stroke:rgba(120,182,236,.3); stroke-width:1; fill:none; }
.ng-line--gold{ stroke:rgba(224,168,58,.6); stroke-width:1; fill:none; }
.ng-node{ fill:var(--blue-300); }
.ng-node--gold{ fill:var(--gold-bright); }
.ng-core{ fill:var(--white); }
.ng-halo{ fill:rgba(42,121,208,.28); }
.ng-pulse{ animation:ngPulse 7s ease-in-out infinite; }
@keyframes ngPulse{ 0%,100%{ opacity:.9; } 50%{ opacity:.3; } }
@media (prefers-reduced-motion: reduce){ .ng-pulse,.netgraph .ng-rot{ animation:none; } }
@media (max-width:900px){
  .reach{ grid-template-columns:1fr; }
  .reach__visual{ max-width:420px; margin-top:20px; }
}

/* =========================================================
   PARTNERS — hairline rows
   ========================================================= */
.partners{ border-top:1px solid var(--rule-light); }
.s-dark .partners,.s-dark-2 .partners{ border-top-color:var(--rule-dark); }
.partner{
  position:relative;
  display:grid;
  grid-template-columns:minmax(110px,.5fr) minmax(0,1fr) minmax(0,1.35fr);
  gap:clamp(20px,4vw,64px);
  align-items:baseline;
  padding:clamp(26px,3vw,40px) 0;
  border-bottom:1px solid var(--rule-light);
  transition:padding-left .55s var(--ease);
}
.s-dark .partner,.s-dark-2 .partner{ border-bottom-color:var(--rule-dark); }
.partner:hover{ padding-left:clamp(6px,1.2vw,18px); }
.partner__flag{
  font-family:var(--font-mono);
  font-size:.6rem; letter-spacing:.17em; text-transform:uppercase;
  color:var(--gold);
}
.partner h3{
  font-size:clamp(1.35rem,2.3vw,1.85rem);
  font-weight:400; letter-spacing:-.035em;
  color:var(--navy-900);
}
.s-dark .partner h3,.s-dark-2 .partner h3{ color:var(--white); }
.partner p{ font-size:.95rem; line-height:1.7; color:var(--ink-soft); margin:0; }
.s-dark .partner p,.s-dark-2 .partner p{ color:var(--blue-300); }
@media (max-width:860px){
  .partner{ grid-template-columns:1fr; gap:12px; }
}

/* =========================================================
   QUALITY GRID — open cells, hairline separators
   ========================================================= */
.qgrid{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(28px,3.4vw,56px) clamp(28px,4vw,72px);
}
.qitem{
  padding-top:28px;
  border-top:1px solid var(--rule-light);
}
.s-dark .qitem,.s-dark-2 .qitem{ border-top-color:var(--rule-dark); }
.qitem__icon{ display:block; width:26px; height:26px; margin-bottom:22px; }
.qitem h3{
  font-size:1.18rem; font-weight:400; letter-spacing:-.03em;
  color:var(--navy-900); margin-bottom:12px;
}
.s-dark .qitem h3,.s-dark-2 .qitem h3{ color:var(--white); }
.qitem p{ font-size:.93rem; line-height:1.7; color:var(--ink-soft); margin:0; max-width:34ch; }
.s-dark .qitem p,.s-dark-2 .qitem p{ color:var(--blue-300); }
@media (max-width:900px){ .qgrid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .qgrid{ grid-template-columns:1fr; } }

/* =========================================================
   ICONS
   ========================================================= */
.ico{
  fill:none;
  stroke:var(--blue-400);
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.ico-fill{ fill:var(--gold); }
.act__icon .ico{ stroke:var(--gold); }
.s-paper .qitem__icon .ico,.s-white .qitem__icon .ico{ stroke:var(--blue-600); }

/* =========================================================
   CTA BAND
   ========================================================= */
.cta{
  padding-top:clamp(88px, 11vw, 168px);
  padding-bottom:clamp(88px, 11vw, 168px);
  position:relative; overflow:hidden;
  background:var(--navy-900);
}
.cta::before{
  content:""; position:absolute; left:50%; top:0;
  width:min(120vw,1400px); aspect-ratio:2/1;
  transform:translate(-50%,-52%);
  background:radial-gradient(ellipse at center, rgba(42,121,208,.2), transparent 62%);
  pointer-events:none;
}
.cta__inner{
  position:relative;
  display:flex; flex-direction:column; align-items:center; text-align:center;
}
.cta__inner .eyebrow{ justify-content:center; }
.cta__inner .eyebrow::after{ display:none; }
.cta__inner .h-display{ color:var(--white); margin:0 0 26px; max-width:20ch; }
.cta__inner .lead{ margin-bottom:44px; }
.cta__inner .lead + div,.cta__inner .h-display + div{ margin-top:8px; }
.cta__inner > div:last-child{ margin-top:12px; }

/* =========================================================
   PAGE HEAD (sub-pages)
   ========================================================= */
.page-head{
  position:relative; overflow:hidden;
  padding-top:calc(var(--header-h) + clamp(72px, 11vw, 150px));
  padding-bottom:clamp(64px, 9vw, 120px);
  background:var(--navy-900);
  color:var(--blue-100);
}
.page-head::before{
  content:""; position:absolute; top:-30%; right:-10%;
  width:min(70vw,760px); aspect-ratio:1/1; border-radius:50%;
  background:radial-gradient(circle, rgba(42,121,208,.26), transparent 68%);
  pointer-events:none;
}
.page-head::after{
  content:""; position:absolute; left:var(--gutter); right:var(--gutter); bottom:0;
  height:1px; background:var(--rule-dark);
}
.page-head .h-page{ color:var(--white); }
.page-head .h-page em{ color:var(--gold); }
.page-head .lead{ margin-top:32px; max-width:56ch; }

/* Prose block */
.prose{ max-width:66ch; }
.prose > p{ font-size:1.04rem; line-height:1.8; color:var(--ink-soft); }
.prose__lead{
  font-family:var(--font-display);
  font-size:clamp(1.3rem,2.2vw,1.75rem) !important;
  font-weight:300; line-height:1.4; letter-spacing:-.025em;
  color:var(--ink) !important;
  margin-bottom:1.4em !important;
}

/* =========================================================
   SERVICES DETAIL
   ========================================================= */
.svc-detail{
  display:grid;
  grid-template-columns:minmax(80px,.32fr) 1fr;
  gap:clamp(20px, 4vw, 64px);
  padding:clamp(40px, 5vw, 68px) 0;
  border-top:1px solid var(--rule-light);
  transition:padding-left .55s var(--ease);
}
.svc-detail:hover{ padding-left:clamp(6px,1.2vw,18px); }
.svc-detail:last-child{ border-bottom:1px solid var(--rule-light); }
.svc-detail__num{
  font-family:var(--font-mono);
  font-size:.7rem; letter-spacing:.18em;
  color:var(--gold);
  padding-top:12px;
}
.svc-detail h2{
  font-size:clamp(1.7rem, 3.2vw, 2.5rem);
  font-weight:400; letter-spacing:-.038em;
  color:var(--navy-900);
  margin-bottom:20px;
}
.svc-detail p{ color:var(--ink-soft); max-width:62ch; margin:0; line-height:1.78; }
@media (max-width:640px){
  .svc-detail{ grid-template-columns:1fr; gap:16px; }
  .svc-detail__num{ padding-top:0; }
}

/* =========================================================
   QUALITY PAGE
   ========================================================= */
.quality{
  display:grid;
  grid-template-columns:1fr .85fr;
  gap:clamp(36px, 6vw, 96px);
  align-items:start;
}
.quality__intro > p{ max-width:44ch; }
.check-list{ margin-top:38px; }
.check-list li{
  display:flex; align-items:flex-start; gap:16px;
  padding:18px 0;
  font-size:.98rem; color:var(--navy-800);
  border-top:1px solid var(--rule-light);
}
.check-list li:last-child{ border-bottom:1px solid var(--rule-light); }
.check{ width:17px; height:17px; flex:none; margin-top:4px; }
.check path{ fill:none; stroke:var(--gold); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.qgrid--panel{ grid-template-columns:1fr; gap:clamp(24px,3vw,40px); }
@media (max-width:900px){
  .quality{ grid-template-columns:1fr; }
}

/* =========================================================
   CONTACT
   ========================================================= */
.contact-cards{
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(24px,3.4vw,56px);
  margin-bottom:clamp(48px,6vw,88px);
}
.contact-card{
  position:relative;
  padding-top:26px;
  border-top:1px solid var(--rule-dark);
  transition:border-color .45s var(--ease);
}
.contact-card::before{
  content:""; position:absolute; top:-1px; left:0; width:100%; height:1px;
  background:var(--gold);
  transform:scaleX(0); transform-origin:left;
  transition:transform .6s var(--ease);
}
.contact-card:hover::before{ transform:scaleX(1); }
.contact-card h3{
  font-family:var(--font-mono);
  font-size:.63rem; font-weight:400;
  text-transform:uppercase; letter-spacing:.17em;
  color:var(--gold-bright);
  margin-bottom:24px;
}
.contact-card__name{ color:var(--white); margin-bottom:16px; font-size:.98rem; }
.contact-card a{
  position:relative; display:block; width:fit-content;
  color:var(--blue-300); font-size:1rem; margin-bottom:9px;
  transition:color .3s var(--ease);
}
.contact-card a:hover{ color:var(--gold-bright); }

.contact-lower{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(28px,4vw,64px);
  align-items:start;
}
.contact-details h3{
  font-size:clamp(1.2rem,2vw,1.5rem);
  font-weight:400; letter-spacing:-.03em;
  color:var(--white); margin-bottom:30px;
}
.detail-row{
  display:flex; justify-content:space-between; gap:24px;
  padding:16px 0; border-bottom:1px solid var(--rule-dark);
}
.detail-row:first-of-type{ border-top:1px solid var(--rule-dark); }
.detail-row span{
  font-family:var(--font-mono);
  font-size:.61rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--blue-300); flex:none; padding-top:4px; opacity:.75;
}
.detail-row p{ margin:0; text-align:right; font-size:.94rem; color:var(--blue-100); }
.detail-row a:hover{ color:var(--gold-bright); }
.contact-map{ min-height:380px; border:1px solid var(--rule-dark); }
.contact-map iframe{ width:100%; height:100%; min-height:378px; border:0; filter:grayscale(1) invert(.92) contrast(.86) brightness(.95); }
@media (max-width:900px){
  .contact-cards{ grid-template-columns:1fr; }
  .contact-lower{ grid-template-columns:1fr; }
}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--navy-900); border-top:1px solid var(--rule-dark); color:var(--blue-300); overflow:hidden; }
.footer__inner{
  display:grid; grid-template-columns:1.6fr 1fr 1fr;
  gap:clamp(28px,5vw,72px);
  padding-top:clamp(56px,7vw,90px);
  padding-bottom:clamp(40px,6vw,72px);
}
.footer__brand p{ max-width:32ch; font-size:.94rem; line-height:1.75; }
.footer__mail{
  display:inline-block; margin-top:22px;
  font-family:var(--font-display);
  font-size:clamp(1.1rem,1.8vw,1.4rem); font-weight:400; letter-spacing:-.03em;
  color:var(--white);
  border-bottom:1px solid var(--strand-soft);
  padding-bottom:4px;
  transition:color .3s var(--ease), border-color .3s var(--ease);
}
.footer__mail:hover{ color:var(--gold-bright); border-color:var(--gold); }
.footer__col h4{
  font-family:var(--font-mono);
  font-size:.61rem; font-weight:400;
  text-transform:uppercase; letter-spacing:.18em;
  color:rgba(255,255,255,.5); margin-bottom:24px;
}
.footer__col a,.footer__col p{
  display:block; color:var(--blue-300); font-size:.93rem; margin:0 0 13px;
  transition:color .3s var(--ease);
}
.footer__col a:hover{ color:var(--gold-bright); }
.footer__bottom{
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  border-top:1px solid var(--rule-dark);
  padding-top:26px; padding-bottom:26px;
}
.footer__bottom p{
  margin:0; font-family:var(--font-mono);
  font-size:.64rem; letter-spacing:.08em; color:rgba(159,188,216,.62);
}
@media (max-width:760px){
  .footer__inner{ grid-template-columns:1fr 1fr; }
  .footer__brand{ grid-column:1 / -1; }
}
@media (max-width:460px){
  .footer__inner{ grid-template-columns:1fr; }
}

/* =========================================================
   BACK TO TOP
   ========================================================= */
.back-to-top{
  position:fixed; right:26px; bottom:26px; z-index:190;
  width:46px; height:46px; border-radius:50%;
  background:rgba(13,31,51,.72);
  backdrop-filter:blur(8px);
  border:1px solid var(--rule-dark);
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transform:translateY(10px);
  transition:opacity .4s var(--ease), transform .4s var(--ease), background .3s var(--ease), border-color .3s var(--ease);
}
.back-to-top.visible{ opacity:1; pointer-events:auto; transform:none; }
.back-to-top svg{ width:15px; height:15px; }
.back-to-top path{ fill:none; stroke:var(--gold); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.back-to-top:hover{ background:var(--gold); border-color:var(--gold); }
.back-to-top:hover path{ stroke:var(--navy-900); }

/* =========================================================
   Reduced motion
   ========================================================= */
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  html{ scroll-behavior:auto; }
  .js .reveal{ opacity:1; transform:none; }
  .js .w__i{ transform:none; }
  .grain{ display:none; }
}
