/* ————————————————————————————————————————————
   Dr. Kristin Baron — KI-Recht · Bankrecht · Governance
   Typeface: Mulish only · greyish-white / navy / gold
———————————————————————————————————————————— */
:root{
  --ink:#0F1B2C;
  --navy:#1E3A5C;
  --navy-light:#2F5480;
  --navy-pale:#92ABC7;
  --gilt:#4f778b;
  --gilt-light:#4f778b;
  --teal:#3D93AE;           /* Eastgate brand accent — sampled from the logomark */
  --slate:#5B6470;
  --bg:#F0F1F3;             /* greyish white */
  --bg-2:#E7E9EC;
  --card:#FFFFFF;
  --line:rgba(15,27,44,0.09);
  --line-2:rgba(15,27,44,0.2);
  --line-w:rgba(255,255,255,0.14);
  --ease:cubic-bezier(.19,1,.22,1);
  --font:'Mulish', system-ui, -apple-system, sans-serif;
}

*{box-sizing:border-box; margin:0;}
html{scroll-behavior:smooth;}
section[id]{scroll-margin-top:132px;}
body{
  background:var(--bg); color:var(--ink);
  font-family:var(--font); font-weight:400;
  font-size:15.5px; line-height:1.75; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.locked{overflow:hidden;}
h1,h2,h3,h4{font-family:var(--font); color:var(--ink);}
a{color:inherit; text-decoration:none;}
ul{list-style:none; padding:0;}
img{max-width:100%; height:auto; display:block;}
::selection{background:var(--gilt-light); color:var(--ink);}
.wrap{max-width:1400px; margin:0 auto; padding:0 clamp(22px,4vw,64px);}
.mono{
  font-family:var(--font); font-weight:800; font-size:10.5px;
  letter-spacing:0.3em; text-transform:uppercase;
}
.gold{color:var(--gilt);}

/* display headline system: featherweight uppercase, gold bold accents */
.dsp{
  font-weight:200; text-transform:uppercase; letter-spacing:0.015em; line-height:1.16;
}
.dsp em, .hero h1 em, .page-hero h1 em, .chap h2 em, .csplit-body .ct em,
.statement h2 em, .pyr-copy h3 em, .duo-panel h3 em, .gov h2 em{
  font-style:normal; font-weight:600; color:var(--gilt);
}

/* ————— film grain ————— */
.grain{
  position:fixed; inset:-100px; z-index:2000; pointer-events:none; opacity:.4;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.05'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ————— intro curtain (home only) ————— */
.curtain{
  position:fixed; inset:0; z-index:3000; background:var(--ink);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:26px;
  transition:transform 1s var(--ease);
}
.curtain.lift{transform:translateY(-101%);}
.curtain .i-name{
  font-weight:200; font-size:clamp(22px,3.4vw,38px); color:#fff;
  letter-spacing:0.22em; text-transform:uppercase;
  opacity:0; animation:iname 1s var(--ease) .15s forwards;
}
.curtain .i-name b{font-weight:700; color:var(--gilt-light);}
.curtain .i-sub{
  font-weight:700; font-size:9.5px; letter-spacing:0.55em; text-transform:uppercase;
  color:rgba(255,255,255,0.4); opacity:0; animation:iname .9s var(--ease) .4s forwards;
}
.curtain .i-line{width:0; height:1px; background:var(--gilt); animation:iline 1s var(--ease) .3s forwards;}
@keyframes iname{from{opacity:0; transform:translateY(24px);} to{opacity:1; transform:none;}}
@keyframes iline{to{width:min(340px,60vw);}}

/* ————— custom cursor ————— */
.cur-dot,.cur-ring{position:fixed; top:0; left:0; z-index:2500; pointer-events:none; border-radius:50%; transform:translate(-50%,-50%);}
.cur-dot{width:6px; height:6px; background:var(--gilt);}
.cur-ring{
  width:38px; height:38px; border:1px solid rgba(15,27,44,0.35);
  transition:width .3s var(--ease), height .3s var(--ease), border-color .3s ease, background .3s ease;
}
body.cur-hover .cur-ring{width:64px; height:64px; border-color:var(--gilt); background:rgba(199,169,104,0.08);}
@media (hover:none), (max-width:900px){ .cur-dot,.cur-ring{display:none;} }

/* ————————————————————————————————————————————
   HEADER — utility strip · glass nav bar · scroll progress
———————————————————————————————————————————— */
header{
  position:sticky; top:0; z-index:960; isolation:isolate;
  background:linear-gradient(180deg, rgba(243,244,246,0.92), rgba(238,240,243,0.80));
  backdrop-filter:blur(22px) saturate(160%);
  -webkit-backdrop-filter:blur(22px) saturate(160%);
  border-bottom:1px solid rgba(15,27,44,0.08);
  transition:box-shadow .4s ease, background .4s ease, border-color .4s ease;
}
header::after{ /* hairline of light along the bottom edge */
  content:''; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background:linear-gradient(90deg, transparent, rgba(147,117,58,0.28) 22%, rgba(147,117,58,0.28) 78%, transparent);
  opacity:0; transition:opacity .4s ease; pointer-events:none;
}
header.scrolled{
  background:linear-gradient(180deg, rgba(244,245,247,0.96), rgba(240,241,243,0.92));
  border-bottom-color:rgba(15,27,44,0.1);
  box-shadow:0 22px 52px -40px rgba(15,27,44,0.9);
}
header.scrolled::after{opacity:1;}

/* ——— utility strip ——— */
.h-strip{
  background:linear-gradient(90deg, var(--ink) 0%, #16283f 52%, var(--navy) 100%);
  color:rgba(240,241,243,0.72);
  height:36px; overflow:hidden;
  transition:height .45s var(--ease), opacity .3s ease;
}
header.scrolled .h-strip{height:0; opacity:0;}
.h-strip-in{
  max-width:1400px; margin:0 auto; padding:0 clamp(22px,4vw,64px);
  height:36px; display:flex; align-items:center; gap:clamp(14px,2vw,28px);
  font-weight:700; font-size:9.2px; letter-spacing:0.2em; text-transform:uppercase;
  white-space:nowrap;
}
.h-strip s{
  width:3px; height:3px; background:rgba(199,169,104,0.7); transform:rotate(45deg);
  display:inline-block; flex-shrink:0; margin:0 10px; vertical-align:middle;
}
.hs-lead{display:inline-flex; align-items:center; gap:10px; color:#fff; letter-spacing:0.18em;}
.hs-lead .pulse{
  width:6px; height:6px; border-radius:50%; background:var(--teal); flex-shrink:0;
  box-shadow:0 0 0 0 rgba(61,147,174,0.55); animation:pulseDot 2.6s var(--ease) infinite;
}
@keyframes pulseDot{
  0%{box-shadow:0 0 0 0 rgba(61,147,174,0.5);}
  70%{box-shadow:0 0 0 8px rgba(61,147,174,0);}
  100%{box-shadow:0 0 0 0 rgba(61,147,174,0);}
}
.hs-specs{color:rgba(240,241,243,0.5); overflow:hidden; text-overflow:ellipsis;}
.hs-specs b{color:var(--gilt-light); font-weight:800;}
.hs-right{margin-left:auto; display:inline-flex; align-items:center; gap:0;}
.hs-right a, .hs-loc{
  display:inline-flex; align-items:center; gap:7px; color:rgba(240,241,243,0.66);
  transition:color .25s ease;
}
.hs-right a:hover{color:var(--gilt-light);}
.hs-right svg{width:12px; height:12px; opacity:.75;}
.hs-ic{
  margin-left:18px; width:26px; height:26px; border-radius:5px; justify-content:center;
  border:1px solid rgba(255,255,255,0.16); background:rgba(255,255,255,0.05);
  transition:background .25s ease, border-color .25s ease, color .25s ease;
}
.hs-ic svg{width:13px; height:13px; opacity:1;}
.hs-ic:hover{background:var(--gilt); border-color:var(--gilt); color:#fff;}
@media (max-width:1240px){ .hs-specs{display:none;} }
@media (max-width:1020px){ .h-strip, .h-strip-in{height:32px;} .hs-lead{letter-spacing:0.14em;} }
@media (max-width:720px){ .hs-loc, .hs-ic{display:none;} }
@media (max-width:520px){ .h-strip, .h-strip-in{height:0; display:none;} }

/* ——— main bar ——— */
.nav{
  max-width:1400px; margin:0 auto; padding:0 clamp(22px,4vw,64px);
  height:88px; display:grid; grid-template-columns:auto 1fr auto;
  align-items:center; gap:clamp(16px,2vw,32px);
  transition:height .45s var(--ease);
}
header.scrolled .nav{height:72px;}

/* brand lockup: real wordmark · rule · descriptor */
.brand{display:flex; align-items:center; gap:18px; min-width:0; padding:6px 0;}
.brand-logo{
  height:50px; width:auto; flex-shrink:0;
  filter:contrast(1.12) saturate(1.08) drop-shadow(0 2px 6px rgba(15,27,44,0.08));
  transition:height .45s var(--ease), opacity .3s ease, transform .5s var(--ease), filter .3s ease;
}
header.scrolled .brand-logo{height:42px;}
@media (hover:hover){ .brand:hover .brand-logo{opacity:.9; transform:translateX(-1px); filter:contrast(1.18) saturate(1.12) drop-shadow(0 3px 8px rgba(15,27,44,0.12));} }
.brand-rule{
  width:1px; height:28px; flex-shrink:0;
  background:linear-gradient(180deg, transparent, rgba(15,27,44,0.22), transparent);
  transition:height .45s var(--ease);
}
header.scrolled .brand-rule{height:24px;}
.brand-sub{
  font-weight:800; font-size:8px; letter-spacing:0.3em; line-height:1.5;
  text-transform:uppercase; color:var(--slate);
  display:flex; align-items:center; gap:8px; white-space:nowrap;
}
.brand-sub i{width:3px; height:3px; background:var(--gilt); transform:rotate(45deg); flex-shrink:0;}
@media (max-width:1420px){ .brand-rule, .brand-sub{display:none;} }

/* nav pills with sliding ink */
nav.links{
  position:relative; justify-self:end; display:flex; align-items:center; gap:2px;
  padding:5px; border:1px solid rgba(15,27,44,0.09); border-radius:10px;
  background:linear-gradient(180deg, rgba(255,255,255,0.66), rgba(255,255,255,0.36));
  box-shadow:0 1px 0 rgba(255,255,255,0.7) inset, 0 18px 40px -34px rgba(15,27,44,0.7);
}
.nav-ink{
  position:absolute; z-index:0; top:5px; left:0; height:calc(100% - 10px); width:0;
  border-radius:6px; opacity:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.72));
  box-shadow:0 1px 0 rgba(255,255,255,0.9) inset, 0 6px 16px -10px rgba(15,27,44,0.5);
  transition:transform .42s var(--ease), width .42s var(--ease), opacity .28s ease;
}
.nav-ink.on{opacity:1;}
.nav-ink::after{ /* gold underline that rides with the pill */
  content:''; position:absolute; left:14px; right:14px; bottom:6px; height:1.5px;
  background:linear-gradient(90deg, transparent, var(--gilt), transparent);
}
nav.links > a{
  position:relative; z-index:1;
  min-height:40px; display:inline-flex; align-items:center; justify-content:center;
  font-weight:800; font-size:9.8px; letter-spacing:0.17em; text-transform:uppercase;
  color:var(--slate); padding:0 clamp(13px,1.1vw,19px); border-radius:6px;
  transition:color .25s ease;
}
nav.links > a:hover, nav.links > a.active{color:var(--ink);}
nav.links > a:focus:not(:focus-visible){outline:none;}
nav.links > a:focus-visible{outline:2px solid rgba(199,169,104,0.9); outline-offset:3px;}
nav.links > a.m-only{display:none;}   /* desktop: the header CTA covers Contact */

/* header CTA */
.h-tools{display:flex; align-items:center; gap:14px;}
.h-cta{
  position:relative; overflow:hidden; isolation:isolate;
  display:inline-flex; align-items:center; gap:11px; height:50px; padding:0 26px;
  border-radius:10px; background:var(--ink); color:#fff;
  border:1px solid rgba(15,27,44,0.9);
  font-weight:800; font-size:9.5px; letter-spacing:0.22em; text-transform:uppercase;
  box-shadow:0 16px 30px -22px rgba(15,27,44,0.95);
  transition:height .45s var(--ease), box-shadow .35s ease, border-color .35s ease, transform .35s var(--ease);
}
header.scrolled .h-cta{height:44px;}
.h-cta::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(115deg, var(--gilt) 0%, #A9863F 45%, var(--navy) 100%);
  opacity:0; transform:translateX(-101%);
  transition:opacity .1s ease, transform .55s var(--ease);
}
.h-cta:hover::before{opacity:1; transform:none;}
.h-cta:hover{border-color:rgba(147,117,58,0.7); transform:translateY(-1px); box-shadow:0 20px 34px -22px rgba(147,117,58,0.85);}
.h-cta svg{width:14px; height:14px; transition:transform .38s var(--ease);}
.h-cta:hover svg{transform:translateX(4px);}
.h-cta:focus-visible{outline:2px solid rgba(199,169,104,0.9); outline-offset:3px;}
@media (max-width:1180px){
  nav.links > a{letter-spacing:0.14em; padding-inline:12px;}
  .h-cta{padding-inline:18px; letter-spacing:0.18em;}
  .h-cta span{display:none;}
  .h-cta{width:50px; justify-content:center; padding:0;}
  header.scrolled .h-cta{width:44px;}
}

/* scroll progress */
.h-progress{
  position:absolute; left:0; right:0; bottom:-1px; height:2px;
  background:rgba(15,27,44,0.06); overflow:hidden; z-index:3;
}
.h-progress i{
  display:block; height:100%; width:0;
  background:linear-gradient(90deg, var(--navy), var(--gilt) 60%, var(--gilt-light));
  box-shadow:0 0 12px rgba(147,117,58,0.55);
}

/* ——— burger ——— */
.menu-toggle{
  display:none; width:50px; height:50px; place-items:center; position:relative;
  background:linear-gradient(180deg, rgba(255,255,255,0.66), rgba(255,255,255,0.36));
  border:1px solid rgba(15,27,44,0.12);
  border-radius:10px; cursor:pointer; padding:0;
  transition:background .25s ease, border-color .25s ease;
}
.menu-toggle span{
  position:absolute; width:19px; height:1.5px; background:var(--ink); border-radius:2px;
  transition:transform .32s var(--ease), opacity .22s ease, width .32s var(--ease);
}
.menu-toggle span:nth-child(1){transform:translateY(-6px);}
.menu-toggle span:nth-child(3){transform:translateY(6px);}
.menu-toggle:focus:not(:focus-visible){outline:none;}
.menu-toggle:focus-visible{outline:2px solid rgba(199,169,104,0.9); outline-offset:3px;}
.menu-toggle.open{background:var(--ink); border-color:var(--ink);}
.menu-toggle.open span{background:#fff;}
.menu-toggle.open span:nth-child(1){transform:rotate(45deg);}
.menu-toggle.open span:nth-child(2){opacity:0; width:0;}
.menu-toggle.open span:nth-child(3){transform:rotate(-45deg);}
body.nav-open{overflow:hidden;}

/* ——— mobile drawer ——— */
@media (max-width:1020px){
  .nav{height:74px; grid-template-columns:1fr auto;}
  header.scrolled .nav{height:68px;}
  .brand-logo{height:44px;}
  header.scrolled .brand-logo{height:40px;}
  .nav-ink{display:none;}
  nav.links > a.m-only{display:inline-flex;}
  .h-cta{display:none;}
  .menu-toggle{display:grid;}
  nav.links{
    counter-reset:nav-item;
    position:absolute; top:calc(100% + 10px); left:clamp(14px,4vw,28px); right:clamp(14px,4vw,28px);
    justify-self:auto; flex-direction:column; align-items:stretch; gap:0; padding:10px;
    max-height:calc(100vh - 130px); overflow:auto;
    background:linear-gradient(165deg, rgb(15,27,44), rgb(21,38,62));
    border:1px solid rgba(255,255,255,0.12); border-radius:12px;
    box-shadow:0 30px 74px -32px rgba(15,27,44,0.92);
    opacity:0; visibility:hidden; transform:translateY(-14px) scale(.985); pointer-events:none;
    transition:opacity .28s ease, visibility .28s ease, transform .38s var(--ease);
  }
  nav.links.open{opacity:1; visibility:visible; transform:none; pointer-events:auto;}
  nav.links > a{
    counter-increment:nav-item; width:100%; min-height:58px; justify-content:flex-start;
    color:rgba(240,241,243,0.76); padding:0 16px; border-radius:8px;
    border-bottom:1px solid rgba(255,255,255,0.07);
    font-size:11px; letter-spacing:0.2em;
  }
  nav.links > a:last-of-type{border-bottom:0;}
  nav.links > a::before{
    content:'0' counter(nav-item); order:2; margin-left:auto;
    font-weight:800; font-size:10px; letter-spacing:0.16em; color:rgba(199,169,104,0.75);
  }
  nav.links > a:hover, nav.links > a.active{color:#fff; background:rgba(255,255,255,0.06);}
  nav.links > a.active::before{color:var(--gilt-light);}
  nav.links.open > a{animation:navItemIn .52s var(--ease) both;}
  nav.links.open > a:nth-of-type(2){animation-delay:.04s;}
  nav.links.open > a:nth-of-type(3){animation-delay:.08s;}
  nav.links.open > a:nth-of-type(4){animation-delay:.12s;}
  nav.links.open > a:nth-of-type(5){animation-delay:.16s;}
  nav.links.open > a:nth-of-type(6){animation-delay:.2s;}
  .m-only{
    margin-top:10px; min-height:58px; justify-content:center !important;
    background:var(--gilt); color:#fff !important; border-radius:8px; border-bottom:0 !important;
  }
  .m-only::before{content:none !important;}
}
@keyframes navItemIn{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;}}
@media (max-width:720px){
  section[id]{scroll-margin-top:92px;}
  .nav{height:70px;}
}
@media (max-width:520px){
  .brand-logo{height:36px;}
  header.scrolled .brand-logo{height:34px;}
  .menu-toggle{width:46px; height:46px;}
}

/* ————— buttons / eyebrow / reveals ————— */
.eyebrow{
  font-weight:800; font-size:10px; letter-spacing:0.3em;
  text-transform:uppercase; color:var(--gilt);
  display:flex; align-items:center; gap:12px; margin-bottom:38px;
}
.eyebrow i{width:6px; height:6px; background:var(--gilt); transform:rotate(45deg); flex-shrink:0;}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  padding:19px 36px; font-family:var(--font); font-weight:800;
  font-size:10px; letter-spacing:0.26em; text-transform:uppercase;
  border:1px solid transparent; cursor:pointer;
  transition:background .3s ease, color .3s ease, border-color .3s ease;
  text-align:center;
}
.btn svg{width:15px; height:15px; transition:transform .3s var(--ease);}
.btn:hover svg{transform:translateX(5px);}
.btn-gold{background:var(--gilt); color:#fff;}
.btn-gold:hover{background:var(--ink);}
.btn-hover-white:hover{background:#fff; border-color:#fff; color:var(--ink);}
.profile-download:hover{background:var(--gilt); color:#fff;}
.profile-download:hover svg{transform:none;}
.btn-line{border-color:var(--line-2); color:var(--ink);}
.btn-line:hover{border-color:var(--ink); background:var(--ink); color:#fff;}
.btn-line-light{border-color:rgba(255,255,255,0.4); color:#fff;}
.btn-line-light:hover{background:#fff; border-color:#fff; color:var(--ink);}

.reveal{opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease), transform .9s var(--ease);}
.reveal.in{opacity:1; transform:none;}
.d1{transition-delay:.1s;} .d2{transition-delay:.2s;}
.lm{display:block; overflow:hidden; padding-bottom:0.14em; margin-bottom:-0.14em;}
.lm > span{display:block; transform:translateY(110%); transition:transform 1.1s var(--ease);}
.lm.in > span{transform:none;}

/* ————————————————————————————————————————————
   HERO — cinematic full-bleed Sentinus footage
   Copy sits in the lower band: the clip's own PiP inspection
   inset occupies the upper-left, the BAR watermark the upper-right.
———————————————————————————————————————————— */
.vhero{
  --vh-h: calc(100vh - 125px);
  position:relative; min-height:var(--vh-h); background:#08111D;
  display:flex; flex-direction:column; justify-content:flex-end;
  overflow:hidden; isolation:isolate;
}
@media (max-width:1020px){ .vhero{--vh-h:calc(100vh - 106px);} }
@media (max-width:520px){ .vhero{--vh-h:calc(100vh - 71px);} }

/* — footage layer — */
.vh-stage{position:absolute; inset:0; z-index:0; overflow:hidden;}
.vh-video{
  position:absolute; inset:0 0 0 auto;
  width:60%; max-width:none; height:100%;
  /* Keep the complete square artwork visible instead of cropping it like footage. */
  object-fit:contain; object-position:right center;
  transform:scale(1); transform-origin:right center; opacity:0;
  transition:opacity 1.5s var(--ease), transform 12s linear;
}
.ready .vh-video{opacity:1; transform:scale(.94);}

/* Frosted copy panel. The clip carries its own cyan PiP inspection inset in the
   upper-left; blurring that half turns it into depth-of-field instead of a
   rectangle fighting the headline, and the ROV side stays sharp. */
.vh-veil{
  position:absolute; top:0; bottom:0; left:0; right:26%; pointer-events:none;
  backdrop-filter:blur(26px) saturate(118%);
  -webkit-backdrop-filter:blur(26px) saturate(118%);
  background:linear-gradient(to right, rgba(6,14,24,0.66), rgba(6,14,24,0.40) 62%, rgba(6,14,24,0.16));
  -webkit-mask-image:linear-gradient(to right, #000 0%, #000 70%, transparent 100%);
          mask-image:linear-gradient(to right, #000 0%, #000 70%, transparent 100%);
}
/* base grade: anchors the bottom bar, keeps the top open for the watermark */
.vh-scrim{
  position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(to top, rgba(6,14,24,0.88) 0%, rgba(6,14,24,0.52) 26%, rgba(6,14,24,0.10) 58%, rgba(8,17,29,0.30) 100%),
    radial-gradient(120% 80% at 88% 40%, transparent 40%, rgba(6,14,24,0.42) 100%);
}
.vh-rule{
  position:absolute; left:0; right:0; bottom:0; height:1px; pointer-events:none;
  background:linear-gradient(90deg, transparent, rgba(199,169,104,0.55) 30%, rgba(199,169,104,0.55) 70%, transparent);
}

/* — copy band — */
.vh-body{position:relative; z-index:2; width:100%; padding:clamp(40px,7vh,90px) 0 clamp(26px,3.5vh,44px);}
.vh-grid{
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(32px,5vw,86px); align-items:flex-end;
}
@media (max-width:1080px){ .vh-grid{grid-template-columns:1fr;} }

.vh-eyebrow{
  font-weight:800; font-size:10px; letter-spacing:0.3em; text-transform:uppercase;
  color:var(--gilt-light); display:flex; align-items:center; gap:12px; margin-bottom:26px;
  opacity:0; transform:translateY(20px);
}
.vh-eyebrow i{width:6px; height:6px; background:var(--gilt-light); transform:rotate(45deg); flex-shrink:0;}
.vh-title{
  font-weight:200; text-transform:uppercase; letter-spacing:0.012em; color:#fff;
  font-size:clamp(38px,6.4vw,104px); line-height:1.02; margin-bottom:30px;
  text-shadow:0 24px 60px rgba(0,0,0,0.5);
}
.vh-title em{font-style:normal; font-weight:500; color:var(--gilt-light);}
.vh-lede{
  font-size:clamp(14.5px,1.12vw,17px); color:rgba(238,241,245,0.76);
  max-width:600px; margin-bottom:38px; line-height:1.72;
  opacity:0; transform:translateY(20px);
}
.vh-lede b{font-weight:700; color:#fff;}
.vh-cta{display:flex; gap:14px; flex-wrap:wrap; opacity:0; transform:translateY(20px);}
.btn-ghost{
  background:rgba(255,255,255,0.05); color:#fff;
  border:1px solid rgba(255,255,255,0.3); backdrop-filter:blur(8px);
}
.btn-ghost:hover{background:rgba(255,255,255,0.14); border-color:rgba(255,255,255,0.6);}

/* — foot bar — */
.vh-bar{
  position:relative; z-index:2; width:100%;
  border-top:1px solid rgba(255,255,255,0.12);
  background:linear-gradient(to top, rgba(6,13,22,0.72), rgba(6,13,22,0.18));
  backdrop-filter:blur(6px);
}
.vh-bar-in{
  height:64px; display:flex; align-items:center; justify-content:space-between; gap:24px;
  opacity:0; transition:opacity .9s var(--ease) 1.1s;
}
.ready .vh-bar-in{opacity:1;}
.vh-scroll{
  display:inline-flex; align-items:center; gap:14px;
  font-weight:800; font-size:9px; letter-spacing:0.26em; text-transform:uppercase;
  color:rgba(238,241,245,0.66); transition:color .3s ease;
}
.vh-scroll:hover{color:#fff;}
.vs-line{position:relative; width:46px; height:1px; background:rgba(255,255,255,0.24); overflow:hidden;}
.vs-line i{
  position:absolute; inset:0; width:16px; background:var(--gilt-light);
  animation:vsRun 2.6s var(--ease) infinite;
}
@keyframes vsRun{0%{transform:translateX(-18px);} 100%{transform:translateX(48px);}}
.vh-caption{
  font-weight:700; font-size:8.5px; letter-spacing:0.28em; text-transform:uppercase;
  color:rgba(238,241,245,0.42); white-space:nowrap;
}
@media (max-width:900px){ .vh-caption{display:none;} }
.vh-toggle{
  width:38px; height:38px; flex-shrink:0; display:grid; place-items:center; padding:0;
  border-radius:50%; cursor:pointer; color:rgba(238,241,245,0.8);
  background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.2);
  transition:background .28s ease, border-color .28s ease, color .28s ease;
}
.vh-toggle:hover{background:var(--gilt); border-color:var(--gilt); color:#fff;}
.vh-toggle:focus-visible{outline:2px solid rgba(199,169,104,0.9); outline-offset:3px;}
.vh-toggle svg{width:14px; height:14px;}
.vh-toggle .ic-play{display:none;}
.vh-toggle.paused .ic-pause{display:none;}
.vh-toggle.paused .ic-play{display:block; margin-left:2px;}

/* — entrance, gated on .ready — */
.ready .vh-eyebrow{opacity:1; transform:none; transition:opacity .9s var(--ease) .1s, transform .9s var(--ease) .1s;}
.ready .vh-lede{opacity:1; transform:none; transition:opacity .9s var(--ease) .62s, transform .9s var(--ease) .62s;}
.ready .vh-cta{opacity:1; transform:none; transition:opacity .9s var(--ease) .74s, transform .9s var(--ease) .74s;}
.vh-title .lm > span{transform:translateY(112%);}
.ready .vh-title .lm > span{transform:none; transition:transform 1.15s var(--ease);}

/* short viewports: let the hero breathe instead of squashing */
@media (max-height:720px) and (min-width:1081px){
  .vh-title{font-size:clamp(34px,4.6vw,64px); margin-bottom:22px;}
  .vh-lede{margin-bottom:26px; font-size:14.5px;}
}
/* narrow viewports: the frame turns portrait, so re-aim at the vehicle and
   switch the veil from a left panel to a bottom band under the copy */
@media (max-width:1080px){
  .vh-video{
    inset:0;
    width:100%; height:100%;
  }
  .vh-veil{
    right:0;
    backdrop-filter:blur(16px) saturate(115%);
    -webkit-backdrop-filter:blur(16px) saturate(115%);
    background:linear-gradient(to bottom, rgba(6,14,24,0.26), rgba(6,14,24,0.70));
    -webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 32%, #000 100%);
            mask-image:linear-gradient(to bottom, transparent 0%, #000 32%, #000 100%);
  }
}
@media (max-width:640px){
  .vh-video{object-position:50% 50%;}
  /* blurring a full-bleed video costs more than it's worth on a phone */
  .vh-veil{
    backdrop-filter:none; -webkit-backdrop-filter:none;
    background:linear-gradient(to bottom, rgba(6,14,24,0.20), rgba(6,14,24,0.88) 48%);
    -webkit-mask-image:none; mask-image:none;
  }
}
@media (max-width:520px){
  .vh-body{padding-top:clamp(28px,5vh,50px);}
  .vh-title{font-size:clamp(34px,10.4vw,50px); margin-bottom:20px;}
  .vh-lede{margin-bottom:28px;}
  .vh-cta{width:100%; flex-direction:column; gap:12px;}
  .vh-cta .btn{width:100%; padding-inline:24px;}
  .vh-bar-in{height:56px;}
  .vh-scroll{letter-spacing:0.2em; font-size:8.5px;}
}

/* legacy shared bits still used by inner-page heroes */
.cta-row{display:flex; gap:16px; flex-wrap:wrap;}
.page-hero .fade{opacity:0; transform:translateY(28px);}
.ready .page-hero .fade{opacity:1; transform:none; transition:opacity .9s var(--ease), transform .9s var(--ease);}
.page-hero .lm > span{transform:translateY(112%);}
.ready .page-hero .lm > span{transform:none; transition:transform 1.1s var(--ease);}

/* ————— ticker ————— */
.ticker{
  position:relative; z-index:6; border-bottom:1px solid var(--line);
  background:var(--bg); overflow:hidden; padding:22px 0;
}
.ticker-track{display:flex; width:max-content; animation:tick 40s linear infinite;}
.ticker span{
  font-weight:700; font-size:11px; letter-spacing:0.34em; text-transform:uppercase;
  color:var(--slate); white-space:nowrap;
  display:inline-flex; align-items:center; gap:38px; padding-right:38px;
}
.ticker i{width:6px; height:6px; background:var(--gilt); transform:rotate(45deg); flex-shrink:0;}
@keyframes tick{to{transform:translateX(-50%);}}

/* ————— page hero (inner pages) ————— */
.page-hero{
  padding:clamp(70px,11vh,130px) 0 clamp(50px,8vh,90px);
  border-bottom:1px solid var(--line); position:relative; overflow:hidden;
}
.page-hero h1{
  font-weight:200; text-transform:uppercase; letter-spacing:0.015em;
  font-size:clamp(32px,4.2vw,64px); line-height:1.14; max-width:1100px;
}
.page-hero h1 em{font-style:normal; font-weight:600; color:var(--gilt);}
.page-hero .lede{
  font-size:16.5px; font-weight:400; color:var(--slate); max-width:640px; margin-top:34px;
}
.page-hero .lede b{font-weight:800; color:var(--ink);}
.page-hero .ph-meta{
  margin-top:44px; padding-top:24px; border-top:1px solid var(--line-2);
  font-weight:700; font-size:9.5px; letter-spacing:0.24em;
  text-transform:uppercase; color:var(--slate);
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
}
.page-hero .ph-meta i{width:4px; height:4px; background:var(--gilt); transform:rotate(45deg); flex-shrink:0;}

/* ————— chapter head ————— */
.chap{display:flex; align-items:baseline; gap:30px; margin-bottom:clamp(56px,8vh,90px);}
.chap .no{
  font-weight:200; font-size:clamp(60px,8vw,120px); line-height:0.85;
  color:transparent; -webkit-text-stroke:1px rgba(15,27,44,0.28);
  flex-shrink:0; letter-spacing:-0.02em;
}
.chap .cw{flex:1;}
.chap .cw .mono{color:var(--gilt); display:flex; align-items:center; gap:16px; margin-bottom:20px;}
.chap .cw .mono::after{content:''; flex:1; height:1px; background:var(--line-2);}
.chap h2{
  font-weight:200; text-transform:uppercase; letter-spacing:0.015em;
  font-size:clamp(26px,3.4vw,48px); line-height:1.18; max-width:960px;
}
.chap.on-dark .no{-webkit-text-stroke-color:rgba(255,255,255,0.25);}
.chap.on-dark h2{color:#fff;}
.chap.on-dark h2 em{color:var(--gilt-light);}
.chap.on-dark .cw .mono{color:var(--gilt-light);}
.chap.on-dark .cw .mono::after{background:var(--line-w);}
@media (max-width:720px){ .chap{flex-direction:column; gap:16px;} }

/* ————— statement ————— */
.statement{padding:clamp(110px,16vh,190px) 0;}
.st-label{display:flex; align-items:center; gap:18px; margin-bottom:54px;}
.st-label .mono{color:var(--gilt);}
.st-label::after{content:''; flex:1; height:1px; background:var(--line-2);}
.st-label .idx{font-weight:600; font-size:11px; letter-spacing:0.14em; color:var(--slate); text-transform:uppercase;}
.statement h2{
  font-weight:200; font-size:clamp(28px,3.9vw,58px); line-height:1.28; max-width:1180px;
  letter-spacing:-0.005em;
}
.statement h2 em{font-style:normal; font-weight:600; color:var(--gilt);}
.statement h2 .accent{color:var(--navy); font-weight:500;}
.st-creds{margin-top:76px; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line-2);}
@media (max-width:860px){ .st-creds{grid-template-columns:repeat(2,1fr);} }
.st-cred{
  padding:34px 30px 8px 0; border-right:1px solid var(--line);
  display:flex; flex-direction:column; gap:6px;
}
.st-cred:last-child{border-right:none;}
@media (max-width:860px){ .st-cred:nth-child(2){border-right:none;} }
.st-cred b{font-weight:300; font-size:clamp(20px,2.1vw,28px); color:var(--ink); letter-spacing:0.01em;}
.st-cred b em{font-style:normal; font-weight:600; color:var(--gilt);}
.st-cred span{font-weight:700; font-size:9px; letter-spacing:0.22em; text-transform:uppercase; color:var(--slate);}
.st-more{
  display:inline-flex; align-items:center; gap:12px; margin-top:56px;
  font-weight:800; font-size:10px; letter-spacing:0.26em; text-transform:uppercase;
  color:var(--ink); border-bottom:1px solid var(--gilt); padding-bottom:9px;
}
.st-more svg{width:15px; height:15px; transition:transform .3s var(--ease);}
.st-more:hover svg{transform:translateX(6px);}

/* ————— international expertise (dark) ————— */
.intl{background:var(--ink); color:#fff; position:relative; overflow:hidden; padding:clamp(110px,15vh,180px) 0;}
.intl::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse at 90% 0%, rgba(199,169,104,0.15), transparent 50%),
             radial-gradient(ellipse at 0% 100%, rgba(47,84,128,0.45), transparent 55%);
}
.intl .watermark{
  position:absolute; right:-2vw; bottom:-6vh; pointer-events:none; user-select:none;
  font-weight:200; font-size:clamp(160px,24vw,380px); line-height:1; letter-spacing:-0.02em;
  color:transparent; -webkit-text-stroke:1px rgba(255,255,255,0.05);
}
.intl-lead{
  font-weight:300; font-size:clamp(17px,1.7vw,22px); line-height:1.75;
  color:rgba(240,241,243,0.85); max-width:860px;
  margin-bottom:clamp(50px,7vh,80px); position:relative; z-index:2;
}
.intl-lead b{color:#fff; font-weight:700;}
.jur3{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line-w); border:1px solid var(--line-w);
  position:relative; z-index:2;
}
@media (max-width:840px){ .jur3{grid-template-columns:1fr;} }
.jur-card{
  background:var(--ink); padding:clamp(36px,4vw,54px) clamp(28px,3vw,44px);
  position:relative; overflow:hidden; transition:background .4s ease;
}
.jur-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--gilt-light); transform:scaleX(0); transform-origin:left;
  transition:transform .5s var(--ease);
}
.jur-card:hover{background:#132238;}
.jur-card:hover::before{transform:none;}
.jur-card .code{
  display:block; font-weight:200; font-size:clamp(54px,6vw,84px); line-height:1;
  letter-spacing:0.02em; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,0.3);
  margin-bottom:32px; transition:color .5s ease, -webkit-text-stroke-color .5s ease;
}
.jur-card:hover .code{color:rgba(199,169,104,0.45); -webkit-text-stroke-color:var(--gilt-light);}
.jur-card h4{
  font-weight:800; font-size:11px; letter-spacing:0.26em; text-transform:uppercase;
  color:var(--gilt-light); margin-bottom:14px;
}
.jur-card p{font-size:13.5px; font-weight:400; color:rgba(240,241,243,0.65);}
.intl-close{
  margin-top:clamp(50px,7vh,80px); border-left:2px solid var(--gilt-light);
  padding:10px 0 10px 30px; max-width:820px;
  font-weight:300; font-size:clamp(16px,1.6vw,20px); line-height:1.75;
  color:rgba(240,241,243,0.85); position:relative; z-index:2;
}
.intl-close b{font-weight:800; color:var(--gilt-light);}

/* ————— duo panels ————— */
.duo{padding:clamp(110px,15vh,180px) 0;}
.duo-flex{display:flex; gap:2px; min-height:560px;}
@media (max-width:880px){ .duo-flex{flex-direction:column;} }
.duo-panel{
  flex:1; position:relative; overflow:hidden; padding:64px 56px;
  display:flex; flex-direction:column; justify-content:flex-end;
  transition:flex 0.9s var(--ease); text-decoration:none;
}
@media (min-width:881px){ .duo-flex:hover .duo-panel{flex:0.75;} .duo-flex .duo-panel:hover{flex:1.6;} }
@media (max-width:720px){ .duo-panel{padding:44px 26px; min-height:480px;} }
.duo-panel.p1{background:var(--ink);}
.duo-panel.p2{background:var(--navy);}
/* photographic underlay + gold wash; artwork lifts on hover */
.duo-panel::before{
  content:''; position:absolute; inset:0; opacity:.85; transition:opacity .6s ease, transform 1.2s var(--ease);
  background:radial-gradient(ellipse at 80% 0%, rgba(199,169,104,0.16), transparent 55%);
  z-index:1;
}
.duo-panel:hover::before{opacity:1; transform:scale(1.1);}
.duo-panel::after{
  content:''; position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:50% 34%; background-repeat:no-repeat;
  opacity:.22; mix-blend-mode:luminosity;
  transform:scale(1.04); transition:opacity .7s ease, transform 1.4s var(--ease);
  -webkit-mask-image:linear-gradient(to bottom, #000 0%, rgba(0,0,0,0.55) 46%, transparent 82%);
          mask-image:linear-gradient(to bottom, #000 0%, rgba(0,0,0,0.55) 46%, transparent 82%);
}
.duo-panel.p1::after{background-image:url("img/photo-team.webp");}
.duo-panel.p2::after{background-image:url("img/photo-precision.webp");}
.duo-panel:hover::after{opacity:.36; transform:scale(1.1);}
.duo-panel > *{position:relative; z-index:2;}
.duo-panel .dp-num{
  position:absolute; top:34px; right:44px;
  font-weight:200; font-size:clamp(80px,9vw,130px);
  line-height:1; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,0.22);
  transition:-webkit-text-stroke-color .5s ease, color .5s ease;
}
.duo-panel:hover .dp-num{color:rgba(199,169,104,0.5); -webkit-text-stroke-color:rgba(199,169,104,0.7);}
.duo-panel h3{
  color:#fff; font-weight:200; text-transform:uppercase; letter-spacing:0.02em;
  font-size:clamp(22px,2.4vw,34px); margin-bottom:16px; position:relative;
}
.duo-panel h3 em{color:var(--gilt-light);}
.duo-panel p{color:rgba(240,241,243,0.65); font-size:14.5px; max-width:460px; margin-bottom:34px; position:relative;}
.duo-panel .dp-go{
  display:inline-flex; align-items:center; gap:14px; position:relative;
  font-weight:800; font-size:9.5px; letter-spacing:0.3em; text-transform:uppercase; color:#fff;
}
.duo-panel .dp-go .arr{
  width:52px; height:52px; border:1px solid rgba(255,255,255,0.35); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:background .4s ease, border-color .4s ease, transform .4s var(--ease);
}
.duo-panel:hover .dp-go .arr{background:var(--gilt); border-color:var(--gilt); transform:rotate(-45deg);}
.duo-panel .dp-go svg{width:18px; height:18px;}
.duo-panel .dp-tag{
  position:absolute; top:44px; left:56px;
  font-weight:800; font-size:9px; letter-spacing:0.36em; text-transform:uppercase;
  color:var(--gilt-light);
}
@media (max-width:720px){ .duo-panel .dp-tag{left:26px;} }

/* ————— pyramid ————— */
.leist{padding:clamp(110px,15vh,180px) 0 0;}
.pyr-zone{
  display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(44px,6vw,110px);
  align-items:center; margin-bottom:clamp(90px,12vh,150px);
}
@media (max-width:900px){ .pyr-zone{grid-template-columns:1fr;} }
.pyramid{display:flex; flex-direction:column; gap:6px; align-items:center;}
.tier{
  color:#fff; padding:20px 26px; width:var(--w,100%);
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  transform-origin:center; transform:scaleX(0); transition:transform 1s var(--ease);
}
.pyr-zone.in .tier{transform:none;}
.tier:nth-child(1){transition-delay:.05s;} .tier:nth-child(2){transition-delay:.15s;}
.tier:nth-child(3){transition-delay:.25s;} .tier:nth-child(4){transition-delay:.35s;}
.tier .tn{font-weight:800; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; white-space:nowrap;}
.tier .td{font-size:11px; opacity:.7; text-align:right; font-weight:400;}
.tier-1{background:var(--ink); --w:46%;}
.tier-2{background:var(--navy); --w:64%;}
.tier-3{background:var(--navy-light); --w:82%;}
.tier-4{background:var(--navy-pale); color:var(--ink); --w:100%;}
@media (max-width:560px){ .tier .td{display:none;} .tier-1{--w:58%;} .tier-2{--w:72%;} .tier-3{--w:86%;} }
.pyr-cap{margin-top:26px; display:flex; align-items:center; gap:16px; width:100%;}
.pyr-cap .mono{color:var(--gilt);}
.pyr-cap::before,.pyr-cap::after{content:''; flex:1; height:1px; background:var(--line-2);}
.pyr-copy h3{
  font-weight:200; text-transform:uppercase; letter-spacing:0.02em;
  font-size:clamp(22px,2.4vw,34px); line-height:1.25; margin-bottom:24px;
}
.pyr-copy h3 em{font-style:normal; font-weight:600; color:var(--navy);}
.pyr-copy p{color:var(--slate); font-size:15px; margin-bottom:18px; max-width:520px;}
.pyr-copy .call{
  border-left:2px solid var(--gilt); background:var(--card); padding:20px 26px;
  font-size:13.5px; color:var(--ink); font-weight:500; max-width:520px;
}
.pyr-copy .call b{font-weight:800;}

/* ————— service rows ————— */
.svc-rows{border-top:1px solid var(--line-2); margin-bottom:clamp(90px,12vh,150px);}
.svc-row{
  position:relative; overflow:hidden; border-bottom:1px solid var(--line-2);
  display:grid; grid-template-columns:clamp(90px,12vw,170px) 1fr auto; gap:clamp(20px,3vw,60px);
  align-items:center; padding:clamp(28px,4vh,44px) 8px; isolation:isolate;
}
.svc-row::before{
  content:''; position:absolute; inset:0; background:var(--ink); z-index:0;
  transform:scaleY(0); transform-origin:top; transition:transform .5s var(--ease);
}
.svc-row:hover::before{transform:none; transform-origin:bottom;}
.svc-row > *{position:relative; z-index:1;}
.svc-row .idx{
  font-weight:200; font-size:clamp(36px,4.8vw,72px); line-height:1; letter-spacing:-0.02em;
  color:transparent; -webkit-text-stroke:1px rgba(15,27,44,0.35);
  transition:-webkit-text-stroke-color .4s ease, color .4s ease;
}
.svc-row:hover .idx{color:var(--gilt-light); -webkit-text-stroke-color:var(--gilt-light);}
.svc-row .body h4{
  font-weight:300; font-size:clamp(19px,2.1vw,27px); letter-spacing:0.02em;
  margin-bottom:8px; transition:color .4s ease;
}
.svc-row .body p{font-size:14px; color:var(--slate); max-width:640px; transition:color .4s ease;}
.svc-row:hover .body h4{color:#fff;}
.svc-row:hover .body p{color:rgba(240,241,243,0.66);}
.svc-row .plus{
  width:56px; height:56px; border:1px solid var(--line-2); border-radius:50%;
  display:flex; align-items:center; justify-content:center; justify-self:end;
  font-weight:200; font-size:28px; color:var(--ink);
  transition:all .5s var(--ease);
}
.svc-row:hover .plus{background:var(--gilt); border-color:var(--gilt); color:#fff; transform:rotate(135deg);}
@media (max-width:640px){ .svc-row{grid-template-columns:1fr; gap:10px;} .svc-row .plus{display:none;} .svc-row .idx{font-size:30px;} }

/* ————— expertise ledger ————— */
.ledger{display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,90px); padding-bottom:clamp(110px,15vh,180px);}
@media (max-width:780px){ .ledger{grid-template-columns:1fr;} }
.ledger .mono{color:var(--gilt); display:flex; align-items:center; gap:16px; margin-bottom:14px;}
.ledger .mono::after{content:''; flex:1; height:1px; background:var(--line-2);}
.ledger li{
  display:flex; gap:18px; align-items:baseline; padding:15px 2px;
  border-bottom:1px solid var(--line); font-size:15px;
  transition:padding-left .35s var(--ease), background .35s ease;
}
.ledger li:hover{padding-left:14px; background:rgba(255,255,255,0.6);}
.ledger li i{
  font-style:normal; font-weight:800; font-size:9.5px; letter-spacing:0.1em;
  color:var(--gilt); min-width:26px; text-transform:uppercase; position:relative; top:-1px;
}

/* ————— governance (dark) ————— */
.gov{background:var(--ink); color:#fff; position:relative; overflow:hidden; padding:clamp(110px,15vh,180px) 0;}
.gov::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse at 15% 0%, rgba(47,84,128,0.5), transparent 55%),
             radial-gradient(ellipse at 100% 100%, rgba(199,169,104,0.14), transparent 50%);
}
.gov-watermark{
  position:absolute; right:-2vw; top:50%; transform:translateY(-50%);
  font-weight:200; font-size:clamp(180px,26vw,420px); line-height:1;
  color:transparent; -webkit-text-stroke:1px rgba(255,255,255,0.06);
  pointer-events:none; user-select:none;
}
.gov-grid{display:grid; grid-template-columns:0.92fr 1.08fr; gap:clamp(50px,7vw,110px); align-items:center; position:relative; z-index:2;}
@media (max-width:940px){ .gov-grid{grid-template-columns:1fr;} }
.gov-photo{position:relative;}
.gov-photo .ph{overflow:hidden; position:relative;}
.gov-photo .ph{background:#EDEFF1;}
.gov-photo img{
  width:100%; aspect-ratio:1/1; object-fit:cover; object-position:50% 52%;
  filter:contrast(1.04) saturate(1.04); transform:scale(1.05);
  will-change:transform;
}
.gov-photo::after{
  content:''; position:absolute; top:28px; left:28px; right:-28px; bottom:-28px;
  border:1px solid rgba(199,169,104,0.45); pointer-events:none;
}
.gov-photo .cap{
  position:absolute; z-index:3; left:-1px; bottom:38px; background:var(--gilt); color:#fff;
  padding:16px 26px; font-weight:800; font-size:9px; letter-spacing:0.3em; text-transform:uppercase;
}
.gov h2{color:#fff;}
.gov-copy .intro{color:rgba(240,241,243,0.66); font-size:15.5px; max-width:560px; margin-bottom:44px;}
.gov-list{border-top:1px solid var(--line-w); columns:2; column-gap:44px;}
@media (max-width:640px){ .gov-list{columns:1;} }
.gov-list li{
  break-inside:avoid; padding:15px 2px; border-bottom:1px solid var(--line-w);
  font-size:14px; color:rgba(240,241,243,0.85); display:flex; gap:14px; align-items:baseline;
}
.gov-list li i{
  font-style:normal; font-weight:800; font-size:9.5px; letter-spacing:0.1em;
  color:var(--gilt-light); min-width:28px; text-transform:uppercase; position:relative; top:-1px;
}
.gov-note{
  margin-top:40px; padding:24px 30px; border:1px solid var(--line-w);
  background:rgba(255,255,255,0.04); backdrop-filter:blur(4px);
  font-size:13px; color:rgba(240,241,243,0.62); max-width:600px;
}

/* ————— publication ————— */
.pub{padding:clamp(110px,15vh,180px) 0;}
.pub-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:clamp(50px,7vw,120px); align-items:center;}
@media (max-width:900px){ .pub-grid{grid-template-columns:1fr;} }
.book-stage{perspective:1400px; display:flex; justify-content:center;}
.book{
  background:linear-gradient(145deg, #24466B, var(--navy) 55%, #16304D);
  color:#fff; padding:64px 52px; width:min(430px,100%); position:relative;
  transform:rotateY(-14deg) rotateX(2deg); transform-style:preserve-3d;
  box-shadow:-40px 50px 80px -40px rgba(15,27,44,0.55);
  transition:transform 1s var(--ease), box-shadow 1s ease;
}
.book:hover{transform:rotateY(-4deg); box-shadow:-20px 40px 70px -38px rgba(15,27,44,0.5);}
.book::before{content:''; position:absolute; inset:20px; border:1px solid rgba(255,255,255,0.25); pointer-events:none;}
.book::after{
  content:''; position:absolute; top:0; bottom:0; left:-14px; width:14px;
  background:linear-gradient(to right, #0C1826, #1E3A5C);
  transform:rotateY(-70deg); transform-origin:right;
}
.book .ed{font-weight:800; font-size:9px; letter-spacing:0.34em; text-transform:uppercase; color:var(--gilt-light);}
.book h3{
  color:#fff; font-weight:200; font-size:26px; letter-spacing:0.04em; text-transform:uppercase;
  margin:24px 0 10px; line-height:1.3;
}
.book .by{font-size:12.5px; font-weight:400; color:rgba(240,241,243,0.6); margin-bottom:34px;}
.book .chapname{
  font-weight:600; font-size:15px; letter-spacing:0.06em; color:var(--gilt-light);
  border-top:1px solid rgba(255,255,255,0.22); padding-top:26px; line-height:1.6;
}
.pub-copy > p{font-size:15.5px; color:var(--slate); margin-bottom:20px; max-width:640px;}
.pub-copy > p b{color:var(--ink); font-weight:800;}
.pub-copy .note{font-size:12px; font-weight:600; color:var(--navy-light);}
.pub-rows{margin-top:44px;}
.pub-rows li{
  display:grid; grid-template-columns:56px 1fr; gap:22px; padding:22px 0;
  border-top:1px solid var(--line-2); align-items:baseline;
  transition:padding-left .35s var(--ease);
}
.pub-rows li:hover{padding-left:12px;}
.pub-rows li i{
  font-style:normal; font-weight:800; font-size:9.5px; letter-spacing:0.12em;
  color:var(--gilt); text-transform:uppercase;
}
.pub-rows .t{font-size:15px; font-weight:600;}
.pub-rows .m{display:block; font-weight:700; font-size:9px; letter-spacing:0.2em; text-transform:uppercase; color:var(--slate); margin-top:6px;}

/* ————— about: profile ————— */
.profile{padding:clamp(110px,15vh,180px) 0;}
.profile-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(50px,7vw,120px); align-items:start;}
@media (max-width:920px){ .profile-grid{grid-template-columns:1fr;} }
.profile-photo{position:relative; max-width:440px;}
.profile-photo img{width:100%; aspect-ratio:4/5; object-fit:cover; object-position:46% 46%; filter:saturate(0.94) contrast(1.05);}
.profile-photo::after{
  content:''; position:absolute; top:22px; left:-22px; right:22px; bottom:-22px;
  border:1px solid var(--gilt); z-index:-1;
}
.profile-photo .cap{
  position:absolute; right:-12px; bottom:30px; background:var(--ink); color:#fff;
  padding:15px 24px; font-weight:800; font-size:9px;
  letter-spacing:0.26em; text-transform:uppercase;
}
.profile-copy p{font-size:15.5px; color:var(--slate); margin-bottom:22px; max-width:640px;}
.profile-copy p b{color:var(--ink); font-weight:800;}
.profile-copy .pull{
  font-weight:300; font-size:clamp(18px,1.9vw,23px); color:var(--ink); line-height:1.6;
  letter-spacing:0.01em;
  border-left:2px solid var(--gilt); padding:10px 0 10px 28px; margin:36px 0;
}

.qualifications{padding:clamp(80px,12vh,150px) 0 clamp(110px,15vh,180px);}

/* ————— qualification grid ————— */
.qual-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line-2); border:1px solid var(--line-2);
}
@media (max-width:880px){ .qual-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .qual-grid{grid-template-columns:1fr;} }
.qual-item{
  background:var(--card); padding:clamp(38px,4vw,54px) clamp(30px,3vw,44px);
  position:relative; overflow:hidden; transition:background .4s ease;
}
.qual-item::before{
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--gilt-light); transform:scaleX(0); transform-origin:left;
  transition:transform .5s var(--ease); z-index:1;
}
.qual-item:hover{background:var(--ink);}
.qual-item:hover::before{transform:none;}
.qual-item .mk{
  display:block; font-weight:200; font-size:clamp(44px,4.6vw,64px); line-height:1;
  letter-spacing:0.02em; color:transparent; -webkit-text-stroke:1px rgba(15,27,44,0.3);
  margin-bottom:30px; transition:color .5s ease, -webkit-text-stroke-color .5s ease;
}
.qual-item:hover .mk{color:rgba(199,169,104,0.45); -webkit-text-stroke-color:var(--gilt-light);}
.qual-item b{
  display:block; font-weight:800; font-size:11.5px; letter-spacing:0.22em;
  text-transform:uppercase; margin-bottom:9px; transition:color .4s ease;
}
.qual-item span{font-size:13px; font-weight:400; color:var(--slate); line-height:1.65; display:block; transition:color .4s ease;}
.qual-item:hover b{color:#fff;}
.qual-item:hover span{color:rgba(240,241,243,0.65);}

/* ————— timeline ————— */
.cv{background:var(--bg-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:clamp(110px,15vh,180px) 0;}
.cv-cols{display:grid; grid-template-columns:1.15fr 0.85fr; gap:clamp(50px,7vw,110px); align-items:start;}
@media (max-width:920px){ .cv-cols{grid-template-columns:1fr; gap:70px;} }
.cv-col > .mono{color:var(--gilt); display:flex; align-items:center; gap:16px; margin-bottom:34px;}
.cv-col > .mono::after{content:''; flex:1; height:1px; background:var(--line-2);}
.tl{position:relative; padding-left:clamp(30px,4vw,60px);}
.tl::before{content:''; position:absolute; left:6px; top:0; bottom:0; width:1px; background:var(--line-2);}
.tl .tl-progress{position:absolute; left:6px; top:0; width:1px; height:0; background:var(--gilt); z-index:1;}
.tl-row{
  position:relative; padding:26px 0; border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:110px 1fr; gap:26px;
}
@media (max-width:600px){ .tl-row{grid-template-columns:1fr; gap:4px;} }
.tl-row::before{
  content:''; position:absolute; left:calc(-1 * clamp(30px,4vw,60px) + 2px); top:40px;
  width:9px; height:9px; background:var(--bg-2); border:1.5px solid var(--gilt);
  transform:rotate(45deg); z-index:2;
}
.tl-row .yr{
  font-weight:200; font-size:clamp(17px,1.7vw,21px); color:var(--gilt); line-height:1.4;
  letter-spacing:0.02em;
}
.tl-row b{display:block; font-weight:800; font-size:14.5px; letter-spacing:0.02em; color:var(--ink);}
.tl-row span{font-size:13px; color:var(--slate);}
.cv-lang{margin-top:44px; font-size:13.5px; color:var(--slate);}
.cv-lang b{color:var(--ink); font-weight:800;}

/* ————— contact split (concept 2) ————— */
.csplit{background:var(--ink); color:#fff; position:relative; overflow:hidden;}
.csplit-grid{display:grid; grid-template-columns:1fr 1fr; min-height:640px;}
@media (max-width:920px){ .csplit-grid{grid-template-columns:1fr;} }
.csplit.tall .csplit-grid{min-height:calc(100vh - 86px);}
.csplit-photo{position:relative; overflow:hidden; min-height:640px;}
@media (max-width:920px){ .csplit-photo{min-height:56vh;} }
.csplit-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 46%;}
.csplit-photo::after{content:''; position:absolute; inset:0; background:linear-gradient(to right, transparent 55%, var(--ink));}
@media (max-width:920px){ .csplit-photo::after{background:linear-gradient(to bottom, transparent 60%, var(--ink));} }
.csplit-body{
  padding:clamp(70px,10vh,120px) clamp(28px,5vw,90px);
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  position:relative; z-index:2;
}
.csplit-body .mono{color:var(--gilt-light);}
.csplit-body .ct{
  color:#fff; font-weight:200; text-transform:uppercase; letter-spacing:0.02em;
  font-size:clamp(30px,3.8vw,54px); line-height:1.16;
  margin:24px 0 26px;
}
.csplit-body .ct em{font-style:normal; font-weight:600; color:var(--gilt-light);}
.csplit-body .lede{font-size:15.5px; font-weight:400; color:rgba(240,241,243,0.72); max-width:480px; margin-bottom:38px;}
.c-rows{border-top:1px solid var(--line-w); margin-bottom:44px; max-width:520px; width:100%;}
.c-rows .row{
  display:grid; grid-template-columns:130px 1fr; gap:20px; padding:16px 2px;
  border-bottom:1px solid var(--line-w); align-items:baseline;
}
@media (max-width:520px){ .c-rows .row{grid-template-columns:1fr; gap:2px;} }
.c-rows dt{font-weight:800; font-size:9px; letter-spacing:0.26em; text-transform:uppercase; color:var(--gilt-light);}
.c-rows dd{margin:0; font-size:15px; font-weight:400; color:rgba(240,241,243,0.9);}
.c-rows dd a{border-bottom:1px solid transparent; transition:border-color .25s ease, color .25s ease;}
.c-rows dd a:hover{border-bottom-color:var(--gilt-light); color:#fff;}

/* ————— process steps (contact page) ————— */
.steps{padding:clamp(110px,15vh,180px) 0;}
.steps-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-2); border:1px solid var(--line-2);}
@media (max-width:840px){ .steps-grid{grid-template-columns:1fr;} }
.step{background:var(--card); padding:50px 44px; transition:background .35s ease;}
.step:hover{background:var(--bg);}
.step .sn{
  font-weight:200; font-size:56px; line-height:1;
  color:transparent; -webkit-text-stroke:1px rgba(147,117,58,0.6); display:block; margin-bottom:28px;
}
.step h4{
  font-weight:800; font-size:12.5px; letter-spacing:0.2em; text-transform:uppercase;
  margin-bottom:14px;
}
.step p{font-size:14px; color:var(--slate);}

/* ————— footer (concept 2) ————— */
footer{background:var(--ink); border-top:1px solid var(--line-w); padding:40px 0; color:rgba(244,244,245,0.45);}
.foot{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; font-size:11.5px; font-weight:400;}
.foot .fb{
  display:inline-flex; align-items:center; gap:12px;
  font-weight:800; font-size:11px; letter-spacing:0.26em; text-transform:uppercase;
  color:rgba(244,244,245,0.85);
}
.foot .fb img{
  width:34px; height:34px; object-fit:contain; flex:0 0 auto;
}
.foot .fb em{font-style:normal; color:var(--gilt-light);}
.foot-links{display:flex; gap:24px;}
.foot-links a{transition:color .25s ease;}
.foot-links a:hover{color:#fff;}

/* ════════════════════════════════════════════
   INNER PAGES — about · products · partners · contact
   Same vocabulary as the home page: featherweight uppercase
   headings, gold hairlines, diamond marks, stroked numerals.
════════════════════════════════════════════ */

/* ————— page hero with artwork ————— */
.page-hero::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse at 88% 10%, rgba(61,147,174,0.10), transparent 55%),
             radial-gradient(ellipse at 0% 100%, rgba(199,169,104,0.10), transparent 50%);
}
.page-hero > .wrap{position:relative; z-index:2;}
.ph-grid{display:grid; grid-template-columns:1.3fr 0.7fr; gap:clamp(40px,6vw,90px); align-items:center;}
@media (max-width:940px){ .ph-grid{grid-template-columns:1fr;} }
.ph-art{position:relative; justify-self:center; width:min(360px,100%);}
.ph-art img{width:100%; aspect-ratio:1/1; object-fit:contain;}
@media (max-width:940px){ .ph-art{display:none;} }
.crumb{
  display:flex; align-items:center; gap:10px; margin-bottom:28px;
  font-weight:800; font-size:9px; letter-spacing:0.26em; text-transform:uppercase; color:var(--slate);
}
.crumb a{color:var(--gilt); transition:color .25s ease;}
.crumb a:hover{color:var(--ink);}
.crumb i{width:3px; height:3px; background:var(--line-2); transform:rotate(45deg); flex-shrink:0;}

/* About hero keeps the shared side-by-side layout with a slightly larger image. */
.about-hero .ph-grid{grid-template-columns:1.2fr .8fr;}
.about-hero .ph-art{width:min(440px,100%);}
@media (max-width:940px){ .about-hero .ph-grid{grid-template-columns:1fr;} }

/* Contact hero keeps the image beside the copy, enlarged with feathered edges. */
.contact-hero .ph-grid{grid-template-columns:1.15fr .85fr;}
.contact-hero .ph-art{width:min(480px,100%);}
.contact-hero .ph-art img{
  opacity:.88;
  -webkit-mask-image:radial-gradient(ellipse at center, #000 48%, rgba(0,0,0,.94) 64%, rgba(0,0,0,.58) 78%, transparent 100%);
  mask-image:radial-gradient(ellipse at center, #000 48%, rgba(0,0,0,.94) 64%, rgba(0,0,0,.58) 78%, transparent 100%);
}
@media (max-width:940px){ .contact-hero .ph-grid{grid-template-columns:1fr;} }

/* Solutions hero gives the wide equipment artwork room to display at full scale. */
.solutions-hero .ph-grid{grid-template-columns:1fr 1fr; gap:clamp(30px,4vw,64px);}
.solutions-hero .ph-art{width:min(620px,100%);}
.solutions-hero .ph-art img{aspect-ratio:3/2; object-fit:contain;}
@media (max-width:940px){ .solutions-hero .ph-grid{grid-template-columns:1fr;} }

/* Partners hero uses a full-opacity square artwork beside the copy. */
.partners-hero{
  min-height:clamp(560px,68vh,720px); display:flex; align-items:center;
  padding:clamp(64px,9vh,104px) 0;
}
.partners-hero .ph-grid{
  grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);
  gap:clamp(40px,5vw,78px); width:100%;
}
.partners-hero h1{font-size:clamp(42px,4.8vw,70px); line-height:1.08; max-width:760px;}
.partners-hero .lede{max-width:700px; line-height:1.72;}
.partners-hero .ph-meta{max-width:760px;}
.partners-hero .partners-hero-art{
  display:block; width:min(520px,100%); overflow:hidden;
  border:1px solid var(--line); background:#eef1f3;
}
.partners-hero .partners-hero-art img{
  display:block; width:100%; aspect-ratio:1; object-fit:cover;
  opacity:1; filter:none; -webkit-mask-image:none; mask-image:none;
}
@media (max-width:940px){
  .partners-hero .ph-grid{grid-template-columns:1fr;}
  .partners-hero .partners-hero-art{display:block; justify-self:start; width:min(560px,100%); margin-top:12px;}
}
@media (max-width:620px){
  .partners-hero{min-height:0; padding:64px 0;}
  .partners-hero .lede{font-size:15px; margin-top:26px;}
  .partners-hero .ph-meta{margin-top:32px; padding-top:20px; gap:10px;}
}

/* ————— generic section rhythm ————— */
.sec{padding:clamp(90px,13vh,160px) 0;}
.sec-tight{padding:clamp(70px,10vh,120px) 0;}
.sec-alt{background:var(--bg-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.sec-dark{background:var(--ink); color:#fff; position:relative; overflow:hidden;}
.sec-dark::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse at 12% 0%, rgba(47,84,128,0.5), transparent 55%),
             radial-gradient(ellipse at 100% 100%, rgba(199,169,104,0.13), transparent 50%);
}
.sec-dark > .wrap{position:relative; z-index:2;}
.lede-lg{
  font-weight:300; font-size:clamp(16px,1.65vw,21px); line-height:1.75;
  color:var(--slate); max-width:860px;
}
.lede-lg b{color:var(--ink); font-weight:700;}
.sec-dark .lede-lg{color:rgba(240,241,243,0.82);}
.sec-dark .lede-lg b{color:#fff;}

/* ————— split: copy beside artwork ————— */
.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(44px,6vw,100px); align-items:center;}
.split.narrow-media{grid-template-columns:1.15fr 0.85fr;}
@media (max-width:920px){ .split, .split.narrow-media{grid-template-columns:1fr;} }
.split-media{position:relative; isolation:isolate;}
.split-media img{width:100%; aspect-ratio:1/1; object-fit:cover; background:#EDEFF1;}
.split-media.contain img{object-fit:contain; background:none;}
.split-media::after{
  content:''; position:absolute; top:26px; left:26px; right:-26px; bottom:-26px;
  border:1px solid rgba(199,169,104,0.45); pointer-events:none; z-index:-1;
}
.split-media.flip::after{left:-26px; right:26px;}
.split-media .cap{
  position:absolute; z-index:3; left:0; bottom:34px; background:var(--gilt); color:#fff;
  padding:15px 24px; font-weight:800; font-size:9px; letter-spacing:0.28em; text-transform:uppercase;
}
.split-copy p{font-size:15.5px; color:var(--slate); margin-bottom:20px; max-width:620px;}
.split-copy p b{color:var(--ink); font-weight:700;}
.sec-dark .split-copy p{color:rgba(240,241,243,0.7);}
.sec-dark .split-copy p b{color:#fff;}
@media (max-width:920px){ .split-media{max-width:520px;} }
/* the offset frame overhangs by 26px — more than the wrap padding on phones,
   so pull it inside rather than letting it push a horizontal scrollbar */
@media (max-width:600px){
  .split-media::after, .split-media.flip::after{top:14px; left:14px; right:14px; bottom:-14px;}
}

/* ————— vision · mission ————— */
.vm{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line-w); border:1px solid var(--line-w);}
@media (max-width:820px){ .vm{grid-template-columns:1fr;} }
.vm-card{
  background:var(--ink); padding:clamp(40px,4.4vw,64px) clamp(30px,3.2vw,52px);
  position:relative; overflow:hidden; transition:background .4s ease;
}
.vm-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--gilt-light); transform:scaleX(0); transform-origin:left;
  transition:transform .5s var(--ease);
}
.vm-card:hover{background:#132238;}
.vm-card:hover::before{transform:none;}
.vm-card .vm-ic{
  width:52px; height:52px; display:grid; place-items:center; margin-bottom:30px;
  border:1px solid rgba(199,169,104,0.5); color:var(--gilt-light);
  transition:background .4s ease, color .4s ease, border-color .4s ease;
}
.vm-card:hover .vm-ic{background:var(--gilt); border-color:var(--gilt); color:#fff;}
.vm-card .vm-ic svg{width:22px; height:22px;}
.vm-card h3{
  color:var(--gilt-light); font-weight:800; font-size:11px;
  letter-spacing:0.3em; text-transform:uppercase; margin-bottom:18px;
}
.vm-card p{font-weight:300; font-size:clamp(16px,1.55vw,20px); line-height:1.7; color:rgba(240,241,243,0.85);}

/* ————— artwork cards (values · sectors · objectives) —————
   Hairlines on the cells, not on a grid gap: three cards reflowed to two
   columns would otherwise leave a filled-looking empty cell in the last row. */
.artgrid{
  display:grid; grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line-2); border-left:1px solid var(--line-2);
}
.artgrid.four{grid-template-columns:repeat(4,1fr);}
@media (max-width:1080px){ .artgrid.four{grid-template-columns:repeat(2,1fr);} }
@media (max-width:880px){ .artgrid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .artgrid, .artgrid.four{grid-template-columns:1fr;} }
.artcard{
  background:var(--card); padding:clamp(34px,3.4vw,48px) clamp(26px,2.6vw,40px);
  border-right:1px solid var(--line-2); border-bottom:1px solid var(--line-2);
  position:relative; overflow:hidden; transition:background .4s ease;
  display:flex; flex-direction:column;
}
.artcard::before{
  content:''; position:absolute; top:0; left:0; right:0; height:2px; z-index:2;
  background:var(--gilt-light); transform:scaleX(0); transform-origin:left;
  transition:transform .5s var(--ease);
}
.artcard:hover{background:var(--bg-2);}
.artcard:hover::before{transform:none;}
.artcard .av{
  width:clamp(84px,8vw,110px); height:clamp(84px,8vw,110px); margin-bottom:26px;
  object-fit:contain;
  transition:transform .55s var(--ease);
}
.artcard:hover .av{transform:translateY(-4px) scale(1.05);}
.artcard .mk{
  position:absolute; top:clamp(24px,2.4vw,34px); right:clamp(24px,2.4vw,34px);
  font-weight:200; font-size:clamp(38px,3.6vw,52px); line-height:1;
  color:transparent; -webkit-text-stroke:1px rgba(15,27,44,0.22);
  transition:color .5s ease, -webkit-text-stroke-color .5s ease;
}
.artcard:hover .mk{color:rgba(199,169,104,0.35); -webkit-text-stroke-color:var(--gilt-light);}
.artcard h4{
  font-weight:800; font-size:11.5px; letter-spacing:0.22em;
  text-transform:uppercase; margin-bottom:12px;
}
.artcard p{font-size:13.5px; color:var(--slate); line-height:1.7;}

/* ————— operational units (accordion) ————— */
.units{border-top:1px solid var(--line-2);}
.unit{border-bottom:1px solid var(--line-2);}
.unit-head{
  width:100%; background:none; border:0; cursor:pointer; text-align:left;
  font-family:var(--font); color:var(--ink);
  display:grid; grid-template-columns:clamp(64px,7vw,110px) 1fr auto;
  gap:clamp(18px,3vw,50px); align-items:center; padding:clamp(24px,3.4vh,36px) 8px;
  transition:padding-left .4s var(--ease), color .35s ease;
}
.unit-head:hover{padding-left:20px;}
.unit-head:focus:not(:focus-visible){outline:none;}
.unit-head:focus-visible{outline:2px solid rgba(199,169,104,0.9); outline-offset:2px;}
.unit-head .un{
  font-weight:200; font-size:clamp(30px,3.6vw,54px); line-height:1; letter-spacing:-0.02em;
  color:transparent; -webkit-text-stroke:1px rgba(15,27,44,0.32);
  transition:color .4s ease, -webkit-text-stroke-color .4s ease;
}
.unit.open .unit-head .un, .unit-head:hover .un{color:var(--gilt-light); -webkit-text-stroke-color:var(--gilt);}
.unit-head .ut{
  font-weight:300; font-size:clamp(18px,2vw,26px); letter-spacing:0.02em; display:block;
}
.unit-head .us{
  display:block; margin-top:6px; font-weight:700; font-size:9px;
  letter-spacing:0.22em; text-transform:uppercase; color:var(--slate);
}
.unit-head .uc{
  width:48px; height:48px; flex-shrink:0; border:1px solid var(--line-2); border-radius:50%;
  display:grid; place-items:center; font-weight:200; font-size:24px; line-height:0; color:var(--ink);
  transition:background .45s var(--ease), border-color .45s var(--ease), color .45s ease, transform .45s var(--ease);
}
.unit-head:hover .uc{border-color:var(--gilt);}
.unit.open .unit-head .uc{background:var(--gilt); border-color:var(--gilt); color:#fff; transform:rotate(135deg);}
@media (max-width:640px){ .unit-head .uc{display:none;} .unit-head{grid-template-columns:52px 1fr;} }
.unit-panel{display:grid; grid-template-rows:0fr; transition:grid-template-rows .55s var(--ease);}
.unit.open .unit-panel{grid-template-rows:1fr;}
.unit-panel > div{overflow:hidden;}
.unit-subs{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line);
  margin:0 0 clamp(24px,3.4vh,36px) clamp(0px,7vw,110px);
}
@media (max-width:640px){ .unit-subs{margin-left:0;} }
.unit-sub{background:var(--card); padding:28px 26px;}
.unit-sub b{
  display:flex; align-items:baseline; gap:10px;
  font-weight:800; font-size:10.5px; letter-spacing:0.18em;
  text-transform:uppercase; color:var(--ink); margin-bottom:10px;
}
.unit-sub b::before{
  content:''; width:5px; height:5px; background:var(--gilt);
  transform:rotate(45deg); flex-shrink:0; position:relative; top:-1px;
}
.unit-sub span{font-size:13px; color:var(--slate); line-height:1.7; display:block;}

/* ————— portfolio blocks (products page) ————— */
.folio{border-top:1px solid var(--line-2);}
.folio-row{
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(40px,6vw,100px);
  align-items:center; padding:clamp(60px,9vh,110px) 0; border-bottom:1px solid var(--line-2);
}
/* alternate sides — the copy column stays the wider of the two either way */
.folio-row:nth-child(even){grid-template-columns:1.1fr 0.9fr;}
.folio-row:nth-child(even) .folio-media{order:2;}
@media (max-width:940px){
  .folio-row, .folio-row:nth-child(even){grid-template-columns:1fr; gap:44px;}
  .folio-row:nth-child(even) .folio-media{order:0;}
}
.folio-media{position:relative; overflow:hidden; background:linear-gradient(150deg, #FFFFFF, var(--bg-2)); padding:0;}
.folio-media img{display:block; width:100%; aspect-ratio:1/1; object-fit:cover;}
.folio-media::after{content:''; position:absolute; inset:0; pointer-events:none; border:1px solid var(--line);}
.folio-media .fnum{
  position:absolute; z-index:2; top:0; left:0; background:var(--ink); color:#fff;
  padding:14px 22px; font-weight:800; font-size:9px; letter-spacing:0.28em; text-transform:uppercase;
}
.folio-body .mono{color:var(--gilt); display:flex; align-items:center; gap:16px; margin-bottom:18px;}
.folio-body .mono::after{content:''; flex:1; height:1px; background:var(--line-2);}
.folio-body h3{
  font-weight:200; text-transform:uppercase; letter-spacing:0.015em;
  font-size:clamp(24px,2.9vw,42px); line-height:1.18; margin-bottom:22px;
}
.folio-body h3 em{font-style:normal; font-weight:600; color:var(--gilt);}
.folio-body > p{font-size:15px; color:var(--slate); max-width:600px; margin-bottom:34px;}
.tags{display:flex; flex-wrap:wrap; gap:8px;}
.tags li{
  display:inline-flex; align-items:center; gap:9px;
  border:1px solid var(--line-2); background:var(--card);
  padding:11px 17px; font-weight:700; font-size:10.5px;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--ink);
  transition:background .3s ease, border-color .3s ease, color .3s ease, transform .3s var(--ease);
}
.tags li::before{
  content:''; width:5px; height:5px; background:var(--gilt);
  transform:rotate(45deg); flex-shrink:0; transition:background .3s ease;
}
.tags li:hover{background:var(--ink); border-color:var(--ink); color:#fff; transform:translateY(-2px);}
.tags li:hover::before{background:var(--gilt-light);}

/* ————— microsite callout ————— */
.microsite{
  position:relative; overflow:hidden; background:var(--navy); color:#fff;
  display:grid; grid-template-columns:1fr auto; gap:clamp(30px,5vw,70px);
  align-items:center; padding:clamp(44px,6vw,72px) clamp(32px,5vw,72px);
}
@media (max-width:820px){ .microsite{grid-template-columns:1fr;} }
.microsite::before{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse at 92% 0%, rgba(199,169,104,0.28), transparent 55%);
}
.microsite > *{position:relative; z-index:2;}
.microsite .mono{color:var(--gilt-light); margin-bottom:16px; display:block;}
.microsite h3{
  color:#fff; font-weight:200; text-transform:uppercase; letter-spacing:0.02em;
  font-size:clamp(22px,2.5vw,34px); line-height:1.22; margin-bottom:14px;
}
.microsite h3 em{font-style:normal; font-weight:600; color:var(--gilt-light);}
.microsite p{font-size:14.5px; color:rgba(240,241,243,0.72); max-width:620px;}

/* ————— partner logo wall —————
   Hairlines live on the cells, not on a grid gap, so a partial last row
   never leaves a filled-looking empty cell. */
.plogos{
  display:grid; grid-template-columns:repeat(5,1fr);
  border-top:1px solid var(--line-2); border-left:1px solid var(--line-2);
}
@media (max-width:1120px){ .plogos{grid-template-columns:repeat(4,1fr);} }
@media (max-width:860px){ .plogos{grid-template-columns:repeat(3,1fr);} }
@media (max-width:560px){ .plogos{grid-template-columns:repeat(2,1fr);} }
.plogo{
  background:var(--card); aspect-ratio:16/10; position:relative; overflow:hidden;
  border-right:1px solid var(--line-2); border-bottom:1px solid var(--line-2);
  display:grid; place-items:center stretch; padding:clamp(22px,2.6vw,38px);
  transition:background .4s ease;
}
.plogo::before{
  content:''; position:absolute; top:0; left:0; right:0; height:2px; z-index:2;
  background:var(--gilt-light); transform:scaleX(0); transform-origin:left;
  transition:transform .5s var(--ease);
}
.plogo:hover{background:var(--bg-2);}
.plogo:hover::before{transform:none;}
.plogo:focus-visible{outline:3px solid var(--gilt); outline-offset:-3px; background:var(--bg-2);}
.plogo:focus-visible::before{transform:none;}
/* fill the padded box and let object-fit do the scaling — percentage max-height
   against an aspect-ratio box lets tall marks (MDL, Vesalio) blow out the cell */
.plogo img{
  width:100%; height:100%; min-height:0; object-fit:contain;
  /* brightness pulls pale marks (Serres, saniswiss) down to a readable grey
     instead of letting opacity alone wash them off the white card */
  filter:grayscale(1) brightness(0.62) opacity(0.78);
  transition:filter .45s ease, transform .55s var(--ease);
}
.plogo:hover img{filter:none; transform:scale(1.05);}
.plogo .pname{
  position:absolute; left:0; right:0; bottom:0; padding:9px 12px;
  background:var(--ink); color:#fff; text-align:center;
  font-weight:800; font-size:8px; letter-spacing:0.2em; text-transform:uppercase;
  transform:translateY(101%); transition:transform .4s var(--ease);
}
.plogo:hover .pname{transform:none;}
@media (hover:none){ .plogo img{filter:none;} .plogo .pname{display:none;} }

/* ————— contact form ————— */
.cform{background:var(--card); border:1px solid var(--line-2); padding:clamp(32px,4vw,54px);}
.cform .fh{display:flex; align-items:center; gap:16px; margin-bottom:34px;}
.cform .fh .mono{color:var(--gilt);}
.cform .fh::after{content:''; flex:1; height:1px; background:var(--line-2);}
.fgrid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media (max-width:640px){ .fgrid{grid-template-columns:1fr;} }
.field{display:flex; flex-direction:column; gap:9px;}
.field.wide{grid-column:1 / -1;}
.field label{
  font-weight:800; font-size:9px; letter-spacing:0.24em;
  text-transform:uppercase; color:var(--slate);
}
.field label .req{color:var(--gilt); margin-left:3px;}
.field input, .field select, .field textarea{
  font-family:var(--font); font-size:14.5px; font-weight:400; color:var(--ink);
  background:var(--bg); border:1px solid var(--line-2); border-radius:0;
  padding:15px 16px; width:100%; -webkit-appearance:none; appearance:none;
  transition:border-color .28s ease, background .28s ease, box-shadow .28s ease;
}
.field textarea{resize:vertical; min-height:140px; line-height:1.7;}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235B6470' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 15px center; background-size:16px;
  padding-right:44px; cursor:pointer;
}
.field input::placeholder, .field textarea::placeholder{color:#9AA2AC;}
.field input:hover, .field select:hover, .field textarea:hover{border-color:rgba(15,27,44,0.32);}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; background:var(--card); border-color:var(--gilt);
  box-shadow:0 0 0 3px rgba(199,169,104,0.16);
}
.field input:user-invalid, .field textarea:user-invalid{border-color:#B4453C;}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.consent{
  grid-column:1 / -1; display:flex; align-items:flex-start; gap:12px;
  font-size:12.5px; color:var(--slate); line-height:1.65;
}
.consent input{width:17px; height:17px; flex-shrink:0; margin-top:2px; accent-color:var(--gilt); cursor:pointer;}
.cform .btn{margin-top:30px; width:100%;}
.cform .btn[disabled]{opacity:.55; cursor:progress;}
.fmsg{
  margin-top:20px; padding:16px 20px; font-size:13.5px; line-height:1.65;
  border-left:2px solid var(--gilt); background:var(--bg); display:none;
}
.fmsg.show{display:block;}
.fmsg.ok{border-left-color:#2E7D62; color:#1F5A46;}
.fmsg.err{border-left-color:#B4453C; color:#8E332C;}

/* ————— contact detail rows ————— */
.cdetails{border-top:1px solid var(--line-2);}
.cdetail{
  display:grid; grid-template-columns:44px 1fr; gap:20px; align-items:start;
  padding:24px 2px; border-bottom:1px solid var(--line-2);
  transition:padding-left .35s var(--ease);
}
.cdetail:hover{padding-left:10px;}
.cdetail .ci{
  width:44px; height:44px; display:grid; place-items:center;
  border:1px solid var(--line-2); color:var(--gilt);
  transition:background .35s ease, border-color .35s ease, color .35s ease;
}
.cdetail:hover .ci{background:var(--gilt); border-color:var(--gilt); color:#fff;}
.cdetail .ci svg{width:18px; height:18px;}
.cdetail dt{
  font-weight:800; font-size:9px; letter-spacing:0.24em;
  text-transform:uppercase; color:var(--slate); margin-bottom:7px;
}
.cdetail dd{margin:0; font-size:15.5px; color:var(--ink); line-height:1.65;}
.cdetail dd a{border-bottom:1px solid transparent; transition:border-color .25s ease, color .25s ease;}
.cdetail dd a:hover{border-bottom-color:var(--gilt); color:var(--gilt);}
.cdetail dd .sm{display:block; font-size:12.5px; color:var(--slate); margin-top:3px;}

/* ————— map ————— */
.map-band{position:relative; border-top:1px solid var(--line);}
.map-band iframe{
  display:block; width:100%; height:clamp(340px,46vh,480px); border:0;
  filter:grayscale(0.55) contrast(1.05); transition:filter .5s ease;
}
.map-band:hover iframe{filter:none;}
.map-tag{
  position:absolute; z-index:2; left:clamp(22px,4vw,64px); top:36px;
  background:var(--ink); color:#fff; padding:20px 26px; max-width:330px;
  box-shadow:0 30px 60px -34px rgba(15,27,44,0.85); pointer-events:none;
}
.map-tag b{
  display:block; font-weight:800; font-size:9px; letter-spacing:0.28em;
  text-transform:uppercase; color:var(--gilt-light); margin-bottom:10px;
}
.map-tag span{font-size:13.5px; color:rgba(240,241,243,0.8); line-height:1.65;}
@media (max-width:640px){ .map-tag{display:none;} }

/* ————— reason cards —————
   Real gaps rather than a 1px hairline grid, so an odd item count
   never leaves a filled-looking empty cell in the last row. */
.whys{display:grid; grid-template-columns:repeat(auto-fit,minmax(252px,1fr)); gap:clamp(14px,1.5vw,22px);}
.why{
  position:relative; overflow:hidden; padding:clamp(30px,3vw,42px) clamp(24px,2.4vw,34px);
  border:1px solid var(--line-w); background:rgba(255,255,255,0.04);
  transition:background .4s ease, border-color .4s ease, transform .4s var(--ease);
}
.why:hover{background:rgba(255,255,255,0.08); border-color:rgba(199,169,104,0.45); transform:translateY(-3px);}
.why .wn{
  display:block; font-weight:200; font-size:clamp(34px,3.4vw,46px); line-height:1; margin-bottom:24px;
  color:transparent; -webkit-text-stroke:1px rgba(255,255,255,0.32);
  transition:color .45s ease, -webkit-text-stroke-color .45s ease;
}
.why:hover .wn{color:rgba(199,169,104,0.4); -webkit-text-stroke-color:var(--gilt-light);}
.why h4{
  color:var(--gilt-light); font-weight:800; font-size:10.5px;
  letter-spacing:0.2em; text-transform:uppercase; margin-bottom:12px; line-height:1.6;
}
.why p{font-size:13.5px; color:rgba(240,241,243,0.66); line-height:1.75;}
.whys.on-light .why{border-color:var(--line-2); background:var(--card);}
.whys.on-light .why:hover{background:var(--bg-2); border-color:var(--gilt);}
.whys.on-light .why .wn{-webkit-text-stroke-color:rgba(15,27,44,0.26);}
.whys.on-light .why:hover .wn{color:rgba(199,169,104,0.38); -webkit-text-stroke-color:var(--gilt);}
.whys.on-light .why h4{color:var(--ink);}
.whys.on-light .why p{color:var(--slate);}

/* ————— dark stat strip ————— */
.stats{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line-w); border:1px solid var(--line-w);
}
@media (max-width:860px){ .stats{grid-template-columns:repeat(2,1fr);} }
.stat{background:var(--ink); padding:clamp(30px,3.4vw,46px) clamp(24px,2.6vw,38px); transition:background .4s ease;}
.stat:hover{background:#132238;}
.stat b{display:block; font-weight:200; font-size:clamp(34px,4vw,54px); line-height:1; color:#fff; margin-bottom:14px;}
.stat b em{font-style:normal; font-weight:600; font-size:0.42em; color:var(--gilt-light); margin-left:4px;}
.stat span{
  font-weight:700; font-size:9px; letter-spacing:0.22em;
  text-transform:uppercase; color:rgba(240,241,243,0.55); line-height:1.7; display:block;
}

/* ════════════════════════════════════════════
   LEGAL PAGES — privacy · terms
   Long-form prose with a sticky contents rail.
════════════════════════════════════════════ */
.legal{padding:clamp(60px,9vh,110px) 0 clamp(90px,13vh,150px);}
.legal-grid{
  display:grid; grid-template-columns:250px minmax(0,1fr);
  gap:clamp(40px,6vw,90px); align-items:start;
}
@media (max-width:940px){ .legal-grid{grid-template-columns:1fr; gap:44px;} }

/* contents rail */
.toc{position:sticky; top:132px;}
@media (max-width:940px){
  .toc{position:static; border:1px solid var(--line-2); background:var(--card); padding:26px 24px;}
}
.toc > .mono{
  color:var(--gilt); display:flex; align-items:center; gap:14px; margin-bottom:20px;
}
.toc > .mono::after{content:''; flex:1; height:1px; background:var(--line-2);}
.toc ol{list-style:none; padding:0; counter-reset:toc;}
.toc li{counter-increment:toc;}
.toc a{
  display:flex; gap:12px; padding:8px 0; font-size:13px; line-height:1.5;
  color:var(--slate); border-bottom:1px solid var(--line);
  transition:color .25s ease, padding-left .3s var(--ease);
}
.toc a::before{
  content:counter(toc,decimal-leading-zero);
  font-weight:800; font-size:9px; letter-spacing:0.1em; color:var(--gilt);
  flex-shrink:0; position:relative; top:3px;
}
.toc a:hover, .toc a.on{color:var(--ink); padding-left:5px;}
.toc a.on::before{color:var(--ink);}

/* summary card */
.tldr{
  border:1px solid var(--line-2); border-left:2px solid var(--gilt);
  background:var(--card); padding:clamp(26px,3vw,38px); margin-bottom:clamp(44px,6vh,66px);
}
.tldr .mono{color:var(--gilt); display:block; margin-bottom:16px;}
.tldr p{font-size:14.5px; color:var(--slate); line-height:1.8; margin-bottom:12px;}
.tldr p:last-child{margin-bottom:0;}
.tldr b{color:var(--ink); font-weight:700;}

/* prose */
.prose{max-width:760px;}
.prose section{scroll-margin-top:132px; margin-bottom:clamp(44px,6vh,64px);}
.prose section:last-child{margin-bottom:0;}
.prose h2{
  font-weight:200; text-transform:uppercase; letter-spacing:0.015em;
  font-size:clamp(20px,2.2vw,30px); line-height:1.25; margin-bottom:20px;
  display:flex; align-items:baseline; gap:16px;
}
.prose h2 .n{
  font-weight:800; font-size:10px; letter-spacing:0.2em; color:var(--gilt);
  flex-shrink:0; position:relative; top:-2px;
}
.prose h3{
  font-weight:800; font-size:11px; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--ink); margin:30px 0 12px;
}
.prose p{font-size:15px; color:var(--slate); line-height:1.85; margin-bottom:16px;}
.prose p b, .prose li b{color:var(--ink); font-weight:700;}
.prose a{color:var(--gilt); border-bottom:1px solid rgba(147,117,58,0.35); transition:border-color .25s ease, color .25s ease;}
.prose a:hover{color:var(--ink); border-bottom-color:var(--ink);}
.prose ul{margin:0 0 18px; padding:0;}
.prose ul li{
  position:relative; padding:0 0 0 24px; margin-bottom:11px;
  font-size:15px; color:var(--slate); line-height:1.8;
}
.prose ul li::before{
  content:''; position:absolute; left:2px; top:11px; width:5px; height:5px;
  background:var(--gilt); transform:rotate(45deg);
}
.prose .note{
  border-left:2px solid var(--navy-light); background:var(--bg-2);
  padding:20px 24px; margin:24px 0; font-size:14px; color:var(--ink); line-height:1.8;
}
.prose .note b{font-weight:800;}
.prose .caps{
  border:1px solid var(--line-2); background:var(--card); padding:22px 26px; margin:24px 0;
  font-size:13px; color:var(--slate); line-height:1.8; text-transform:uppercase;
  letter-spacing:0.04em; font-weight:600;
}
.prose dl.defs{margin:0 0 18px;}
.prose dl.defs > div{
  display:grid; grid-template-columns:190px 1fr; gap:20px;
  padding:14px 0; border-bottom:1px solid var(--line);
}
.prose dl.defs > div:last-child{border-bottom:0;}
@media (max-width:620px){ .prose dl.defs > div{grid-template-columns:1fr; gap:4px;} }
.prose dl.defs dt{font-weight:800; font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink); padding-top:3px;}
.prose dl.defs dd{margin:0; font-size:14px; color:var(--slate); line-height:1.75;}

/* data table */
.dtable{width:100%; border-collapse:collapse; margin:8px 0 20px; font-size:13.5px;}
.dtable th, .dtable td{
  text-align:left; vertical-align:top; padding:14px 16px 14px 0;
  border-bottom:1px solid var(--line); line-height:1.7;
}
.dtable th{
  font-weight:800; font-size:9px; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--slate); border-bottom-color:var(--line-2); white-space:nowrap;
}
.dtable td{color:var(--slate);}
.dtable td:first-child{color:var(--ink); font-weight:700; padding-right:26px;}
@media (max-width:620px){
  .dtable, .dtable tbody, .dtable tr, .dtable td{display:block; width:100%;}
  .dtable thead{display:none;}
  .dtable tr{padding:14px 0; border-bottom:1px solid var(--line);}
  .dtable td{border:0; padding:2px 0;}
  .dtable td:first-child{margin-bottom:6px;}
}

/* legal page footer strip */
.legal-foot{
  margin-top:clamp(44px,6vh,66px); padding-top:26px; border-top:1px solid var(--line-2);
  display:flex; flex-wrap:wrap; gap:14px 30px; align-items:center;
  font-weight:700; font-size:9.5px; letter-spacing:0.2em; text-transform:uppercase; color:var(--slate);
}
.legal-foot a{color:var(--gilt); transition:color .25s ease;}
.legal-foot a:hover{color:var(--ink);}

/* footer separator between site and legal links */
.foot-links s{
  width:3px; height:3px; background:rgba(244,244,245,0.3); transform:rotate(45deg);
  align-self:center; flex-shrink:0; text-decoration:none;
}
@media (max-width:620px){ .foot-links{flex-wrap:wrap; justify-content:center; gap:14px;} }

/* ————— reduced motion ————— */
@media (prefers-reduced-motion:reduce){
  *{transition:none !important; animation:none !important;}
  html{scroll-behavior:auto;}
  .reveal,.lm > span,.page-hero .fade,
  .vh-eyebrow,.vh-lede,.vh-cta,.vh-bar-in{opacity:1 !important; transform:none !important;}
  .vh-video{opacity:1 !important; transform:none !important;}
  .vs-line i{animation:none !important;}
  .curtain{display:none;}
  .tier{transform:none !important;}
  .ticker-track{animation:none !important;}
  .unit-panel{transition:none !important;}
}
