/* ============ 1. TOKENS ============ */
:root{
  /* Ink + warm paper base. ONE saturated block colour (navy), gold used sparingly. */
  --ink:#0C1B2E;            /* near-black navy, from the logo */
  --ink-2:#12283F;
  --ink-3:#07121F;
  --paper:#F4F2ED;          /* warm off-white */
  --paper-2:#EAE7E0;
  --white:#FFFFFF;
  --rule:#D8D4CB;
  --rule-d:rgba(255,255,255,.16);
  --muted:#6A6A66;          /* warm grey for body on paper */
  --muted-d:#9BA7B6;        /* muted on ink */
  --gold:#BE8C33;           /* logo gold */
  --gold-hi:#E0A93F;        /* brighter accent marker */
  --gold-text:#8A6520;      /* gold that passes AA on paper */
  --gold-wash:#F1E7D4;
  --accent:var(--ink); --accent-text:#FFFFFF;
  --error:#A32318; --success:#1F6F43;

  /* condensed grotesque display, neutral body, mono for all measurements */
  --font-display:'Archivo','Barlow Condensed','Arial Narrow',sans-serif;
  --font-body:'Bricolage Grotesque','Figtree',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-data:'Martian Mono',ui-monospace,'SF Mono',Menlo,monospace;

  /* display runs at line-height 1.0 and full-bleed width */
  --d0:clamp(52px,9.2vw,168px);
  --d1:clamp(38px,6.2vw,104px);
  --d2:clamp(30px,3.9vw,60px);
  --d3:clamp(21px,2.3vw,34px);
  --lead:clamp(18px,1.55vw,24px);
  --body:16px; --body-s:14.5px;
  --data-l:clamp(34px,5vw,68px); --data:13px; --eyebrow:11.5px;

  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;
  --s7:48px;--s8:64px;--s9:80px;--s10:128px;--s11:184px;

  --r1:0; --r2:0;           /* squared, like the reference */
  --sh1:0 1px 2px rgba(12,27,46,.05);
  --sh2:0 8px 24px rgba(12,27,46,.08);
  --sh3:0 20px 50px rgba(12,27,46,.12);
  --sh4:0 34px 80px rgba(12,27,46,.18);

  --e:cubic-bezier(.16,1,.3,1);
  --e2:cubic-bezier(.65,0,.35,1);
  --t1:160ms; --t2:260ms; --t3:520ms;

  --container:1560px; --pad:56px;
  --hdr:104px; --hdr-s:78px;

  /* legacy aliases so existing rules keep resolving */
  --concrete:var(--paper-2); --steel:var(--ink-2); --blue:var(--ink-2); --blue-lt:#24507F;
  --muted-dark:var(--muted-d); --brass:var(--gold-hi); --brass-text:var(--gold-text);
  --gold-lt:var(--gold-hi); --brass-wash:var(--gold-wash);
  --grad-dark:var(--ink); --grad-gold:var(--gold); --grad-blue:var(--ink-2);
  --accent-deep:var(--ink-2); --accent-hi:var(--gold-hi);
}
@media(max-width:1200px){:root{--pad:40px}}
@media(max-width:900px){:root{--pad:20px;--hdr:72px;--hdr-s:62px;}}

/* ============ 2. RESET ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  font-family:var(--font-body);font-size:var(--body);line-height:1.5;
  color:var(--ink);background:var(--paper);
  overflow-x:clip;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
@supports not (overflow:clip){body{overflow-x:hidden}}
img,svg{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;letter-spacing:-.022em;
  line-height:1.0;font-stretch:75%;text-wrap:balance}
h3,h4{line-height:1.04;letter-spacing:-.016em}
::selection{background:var(--gold-hi);color:var(--ink)}
:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px}
.dark :focus-visible{outline-color:var(--brass)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ============ 3. LAYOUT ============ */
.wrap{max-width:var(--container);margin-inline:auto;padding-inline:var(--pad)}
.sec{padding-block:var(--s11);position:relative}
@media(max-width:1024px){.sec{padding-block:var(--s10)}}
@media(max-width:700px){.sec{padding-block:72px}}
.dark,.card--hero,.sbar{--accent:var(--gold);--accent-deep:var(--brass);--accent-text:var(--ink)}
.dark{background:var(--grad-dark);color:var(--white)}
.dark h1,.dark h2,.dark h3{color:var(--white)}
.band-concrete{background:var(--concrete)}
.band-paper{background:var(--paper)}
.band-white{background:var(--white)}

/* ---- chapter mark (elevation datum) ---- */
.chap{display:flex;align-items:center;gap:16px;margin-bottom:var(--s7)}
.chap__el{
  font-family:var(--font-data);font-size:12px;font-weight:500;letter-spacing:.1em;
  color:var(--brass-text);flex:none;
}
.dark .chap__el{color:var(--brass)}
.chap__tick{width:1px;height:20px;background:var(--brass-text);flex:none;opacity:.5}
.dark .chap__tick{background:var(--brass)}
.chap__eye{
  font-family:var(--font-data);font-size:var(--eyebrow);font-weight:400;
  letter-spacing:.18em;text-transform:uppercase;color:var(--muted);flex:none;
}
.dark .chap__eye{color:var(--muted-dark)}
.chap__line{height:1px;background:var(--rule);flex:1;transform-origin:left;transform:scaleX(0)}
.dark .chap__line{background:rgba(201,162,39,.28)}
.is-in .chap__line{transform:scaleX(1);transition:transform 900ms var(--e) 120ms}

.sec-head{max-width:920px}
.sec-head h2{font-size:var(--d1);line-height:1.08}
.sec-head p{
  font-size:var(--lead);color:var(--muted);margin-top:var(--s5);max-width:60ch;line-height:1.6;
}
.dark .sec-head p{color:var(--muted-dark)}

/* ============ 4. REVEALS ============ */
.js .rv{opacity:0;transform:translateY(22px)}
.js .rv.is-in{opacity:1;transform:none;transition:opacity 700ms var(--e),transform 700ms var(--e)}
.js .rv-l{opacity:0;transform:translateX(-26px)}
.js .rv-l.is-in{opacity:1;transform:none;transition:opacity 800ms var(--e),transform 800ms var(--e)}
.js .rv-s>*{opacity:0;transform:translateY(20px)}
.js .rv-s.is-in>*{opacity:1;transform:none;transition:opacity 640ms var(--e),transform 640ms var(--e)}
.js .rv-s.is-in>*:nth-child(1){transition-delay:0ms}
.js .rv-s.is-in>*:nth-child(2){transition-delay:80ms}
.js .rv-s.is-in>*:nth-child(3){transition-delay:160ms}
.js .rv-s.is-in>*:nth-child(4){transition-delay:240ms}
.js .rv-s.is-in>*:nth-child(5){transition-delay:320ms}
.js .rv-s.is-in>*:nth-child(6){transition-delay:400ms}
.js .rv-s.is-in>*:nth-child(7){transition-delay:480ms}
.js .rv-s.is-in>*:nth-child(8){transition-delay:560ms}

/* mask-reveal for headings */
.mask{display:block;overflow:hidden}
.js .mask>span{display:block;transform:translateY(105%)}
.js .is-in .mask>span{transform:none;transition:transform 900ms var(--e)}
.js .is-in .mask:nth-child(2)>span{transition-delay:90ms}
.js .is-in .mask:nth-child(3)>span{transition-delay:180ms}

/* ============ 5. BUTTONS ============ */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:12px;
  padding:17px 30px;font-size:15px;font-weight:600;letter-spacing:.01em;
  border-radius:var(--r1);overflow:hidden;isolation:isolate;
  transition:color var(--t2) var(--e),transform var(--t2) var(--e),box-shadow var(--t2) var(--e);
  min-height:52px;
}
.btn__t{position:relative;z-index:2}
.btn svg{position:relative;z-index:2;flex:none;transition:transform var(--t2) var(--e)}
.btn::before{content:"";position:absolute;inset:0;z-index:0;transition:background var(--t2) var(--e)}
.btn::after{content:"";position:absolute;inset:0;z-index:1;transform:translateY(101%);transition:transform 420ms var(--e)}
.btn:hover svg{transform:translateX(5px)}

.btn--p{color:var(--accent-text)}
.btn--p::before{background:var(--accent)}
.btn--p::after{background:var(--accent-deep)}
.btn--p:hover::after{transform:none}
.btn--p:hover{box-shadow:0 10px 30px rgba(10,39,70,.22)}
.dark .btn--p:hover,.card--hero .btn--p:hover{box-shadow:0 10px 30px rgba(190,140,51,.35)}

.btn--s{color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn--s::after{background:var(--ink)}
.btn--s:hover{color:#fff}
.btn--s:hover::after{transform:none}

.btn--g{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.34)}
.btn--g::after{background:#fff}
.btn--g:hover{color:var(--ink)}
.btn--g:hover::after{transform:none}

.tlink{
  display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:600;
  color:var(--accent);position:relative;padding-bottom:3px;
}
.tlink::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:currentColor;opacity:.35;transform-origin:right;transition:transform 340ms var(--e),opacity var(--t2)}
.tlink:hover::after{opacity:1;transform-origin:left}
.tlink svg{transition:transform var(--t2) var(--e)}
.tlink:hover svg{transform:translateX(5px)}
.dark .tlink{color:var(--accent-hi)}

/* ============ 6. HEADER ============ */
.hdr{
  position:fixed;top:0;left:0;right:0;z-index:96;height:var(--hdr);
  display:flex;align-items:center;background:transparent;
  --accent:var(--gold);--accent-deep:var(--brass);--accent-text:var(--ink);
  transition:height var(--t2) var(--e),background var(--t2) var(--e),box-shadow var(--t2);
}
.hdr.solid{height:var(--hdr-s);background:linear-gradient(120deg,rgba(10,39,70,.96),rgba(20,58,107,.94));
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(212,166,72,.22),0 10px 30px rgba(0,0,0,.18)}
.hdr__in{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--pad);
  display:flex;align-items:center;gap:34px}
.hdr__nav{display:flex;flex-wrap:nowrap;gap:30px;margin-left:auto}
.nlink{position:relative;flex:none;white-space:nowrap;font-size:14.5px;font-weight:500;
  color:rgba(255,255,255,.86);padding:6px 0;transition:color var(--t2),font-size var(--t2)}
.nlink::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--gold);
  transform:scaleX(0);transform-origin:right;transition:transform 380ms var(--e)}
.nlink:hover{color:var(--white)}
.nlink:hover::after,.nlink.active::after{transform:scaleX(1);transform-origin:left}
.hdr__act{display:flex;align-items:center;gap:22px;flex:none;white-space:nowrap}
.hdr__tel{display:inline-flex;align-items:center;gap:9px;flex:none;white-space:nowrap;
  font-family:var(--font-data);font-size:13px;color:var(--brass);transition:color var(--t2)}
.hdr__tel:hover{color:var(--white)}
.hdr .btn{padding:13px 22px;min-height:44px;font-size:14px;white-space:nowrap}
.hdr .btn__t{white-space:nowrap}

/* ---- single-line header ladder ---- */
@media(max-width:1340px){
  .hdr__in{gap:26px}.hdr__nav{gap:24px}.hdr__act{gap:18px}
}
@media(max-width:1200px){
  .hdr__nav{gap:19px}.nlink{font-size:13.5px}
  .hdr__tel{font-size:12px;gap:7px}
  .hdr .btn{padding:12px 18px;font-size:13.5px}
}
@media(max-width:1090px){
  .hdr__in{gap:20px}.hdr__nav{gap:16px}.nlink{font-size:13px}
  .hdr__tel .telno{display:none}
  .hdr .btn .lg{display:none}
}
.rail{position:fixed;top:0;left:0;height:2px;width:100%;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--gold),var(--brass));z-index:95}
.burger{display:none;width:46px;height:46px;align-items:center;justify-content:center;flex:none}
.burger span{display:block;width:22px;height:1.5px;background:var(--white);position:relative;transition:background var(--t1)}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:22px;height:1.5px;background:var(--white);
  transition:transform var(--t2) var(--e)}
.burger span::before{top:-7px}.burger span::after{top:7px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span::after{transform:translateY(-7px) rotate(-45deg)}

/* logo: the brand artwork, untouched; reversed copy on navy surfaces */
.logo{display:inline-flex;align-items:center;flex:none;min-width:0}
.logo img{display:block;height:calc(var(--hdr) - 14px);width:auto;
  transition:height var(--t2) var(--e),transform 600ms var(--e)}
.logo:hover img{transform:translateY(-1px)}
.hdr.solid .logo img{height:calc(var(--hdr-s) - 12px)}
.ftr .logo img{height:150px}
@media(max-width:600px){.ftr .logo img{height:120px}}

/* drawer */
.drawer{position:fixed;inset:0;z-index:94;overflow:hidden;pointer-events:none;visibility:hidden}
.drawer.open{pointer-events:auto;visibility:visible}
.drawer__sc{position:absolute;inset:0;background:rgba(7,21,35,.6);opacity:0;transition:opacity var(--t2)}
.drawer.open .drawer__sc{opacity:1}
.drawer__p{position:absolute;top:0;right:0;bottom:0;width:min(400px,88vw);background:var(--ink);
  padding:calc(var(--hdr) + 26px) 30px 40px;transform:translateX(100%);
  transition:transform 460ms var(--e);overflow-y:auto}
.drawer.open .drawer__p{transform:none}
.dlink{display:block;font-family:var(--font-display);font-size:26px;color:#fff;padding:13px 0;
  border-bottom:1px solid rgba(255,255,255,.09);transition:color var(--t2),padding-left var(--t2) var(--e)}
.dlink:hover{color:var(--brass);padding-left:10px}
.drawer__c{margin-top:34px;display:grid;gap:12px}
.drawer__c a{font-family:var(--font-data);font-size:13px;color:var(--muted-dark);transition:color var(--t2)}
.drawer__c a:hover{color:var(--brass)}

/* mobile sticky bar */
.sbar{position:fixed;left:0;right:0;bottom:0;z-index:88;display:none;
  background:var(--ink);border-top:1px solid rgba(201,162,39,.28);
  padding-bottom:env(safe-area-inset-bottom)}
.sbar__in{display:grid;grid-template-columns:1fr 1fr 1.25fr}
.sbar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:58px;
  font-size:13.5px;font-weight:600;color:#fff;transition:background var(--t1)}
.sbar a:active{background:var(--ink-2)}
.sbar a+a{border-left:1px solid rgba(255,255,255,.10)}
.sbar a.q{background:var(--gold);color:var(--ink)}
@media(max-width:900px){
  .hdr__nav,.hdr__tel,.hdr .btn{display:none}
  .burger{display:flex}
  .hdr__act{margin-left:auto;gap:6px}
  .sbar{display:block}
  body{padding-bottom:58px}
}

/* ============ 7. ELEVATION RAIL ============ */
.erail{position:fixed;left:16px;top:50%;transform:translateY(-50%);z-index:60;
  display:flex;flex-direction:column;align-items:center;gap:0;pointer-events:none;
  opacity:0;transition:opacity 600ms var(--e)}
.erail.show{opacity:1}
.erail__t{width:1px;height:150px;background:linear-gradient(180deg,transparent,var(--rule) 12%,var(--rule) 88%,transparent);
  position:relative}
.erail__f{position:absolute;top:0;left:-1px;width:3px;background:var(--brass);height:0;transition:height 120ms linear}
.erail__v{font-family:var(--font-data);font-size:10px;letter-spacing:.08em;color:var(--brass-text);
  margin-top:10px;font-variant-numeric:tabular-nums}
@media(max-width:1460px){.erail{display:none}}

/* ============ 8. HERO ============ */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;
  background:linear-gradient(180deg,#0E3057 0%,var(--ink) 58%,#08213D 100%);color:var(--white);
  overflow:hidden;padding-top:var(--hdr);--strip:98px}
.hero::before{content:"";position:absolute;width:90vmax;height:90vmax;left:-38vmax;top:-30vmax;z-index:0;
  background:radial-gradient(circle,rgba(212,166,72,.10) 0%,rgba(212,166,72,0) 60%);pointer-events:none}
.hero__bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero__grid{position:absolute;inset:0;
  background-image:linear-gradient(rgba(212,166,72,.075) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(212,166,72,.075) 1px,transparent 1px);
  background-size:88px 88px;
  -webkit-mask-image:radial-gradient(ellipse 70% 80% at 22% 40%,#000 0%,transparent 72%);
  mask-image:radial-gradient(ellipse 70% 80% at 22% 40%,#000 0%,transparent 72%);will-change:transform}
.hero__in{position:relative;z-index:2;flex:1;display:flex;align-items:center;width:100%;
  max-width:var(--container);margin-inline:auto;padding:72px var(--pad) 88px}
.hero__copy{max-width:600px;width:min(100%,600px)}
.hero__eye{display:flex;align-items:center;gap:13px;font-family:var(--font-data);font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin-bottom:var(--s6)}
.hero__eye i{display:block;width:36px;height:1px;background:var(--brass);flex:none}
.hero h1{font-size:var(--d0);line-height:1.0;letter-spacing:-.028em;margin-bottom:var(--s6);color:var(--white)}
.hero h1 em{font-style:normal;color:var(--brass)}
.hero__sub{font-size:var(--lead);color:var(--muted-dark);max-width:46ch;line-height:1.62}
.hero__her{font-family:var(--font-data);font-size:11.5px;letter-spacing:.11em;color:var(--brass);
  margin-top:var(--s4);opacity:.85}
.hero__cta{display:flex;gap:16px;margin-top:var(--s8);flex-wrap:wrap}

/* --- the photograph: bleeds to the right edge, fades into the page --- */
.hero__fig{position:absolute;z-index:1;right:0;top:var(--hdr);bottom:var(--strip);margin:0;
  height:auto;aspect-ratio:670/950;max-width:52vw;pointer-events:none}
.hero__im{position:absolute;inset:0;overflow:hidden}
.hero__im img{width:100%;height:100%;object-fit:cover;object-position:center bottom;display:block;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 34%),linear-gradient(to bottom,transparent 0,#000 20%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent 0,#000 34%),linear-gradient(to bottom,transparent 0,#000 20%);
  mask-composite:intersect}
.hero__im::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,39,70,0) 62%,rgba(10,39,70,.62) 100%)}
.js .hero__im{clip-path:inset(100% 0 0 0)}
.js .is-lit .hero__im{clip-path:inset(0 0 0 0);transition:clip-path 1300ms var(--e) 200ms}
.hero__stat{position:absolute;left:-118px;bottom:58px;pointer-events:auto;
  background:var(--ink-2);color:var(--white);padding:20px 24px 18px 22px;
  border-left:3px solid var(--gold);box-shadow:0 26px 60px rgba(0,0,0,.45),0 0 0 1px rgba(212,166,72,.22);min-width:0}
.hero__stat b{display:flex;align-items:baseline;gap:8px;font-family:var(--font-data);font-weight:400;
  font-size:clamp(38px,3.4vw,48px);line-height:1;letter-spacing:-.05em;color:var(--brass);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.hero__stat b i{font-style:normal;font-size:.36em;letter-spacing:.02em;color:var(--brass)}
.hero__stat>span{display:block;font-family:var(--font-data);font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted-dark);margin-top:10px}
.hero__stat small{display:block;font-size:12px;color:var(--white);opacity:.85;margin-top:10px;
  padding-top:10px;border-top:1px solid rgba(212,166,72,.3);white-space:nowrap}
.js .hero__stat{opacity:0;transform:translateY(18px)}
.js .is-lit .hero__stat{opacity:1;transform:none;transition:opacity 700ms var(--e) 1150ms,transform 700ms var(--e) 1150ms}
.hero__cap{position:absolute;right:28px;bottom:18px;pointer-events:auto;
  font-family:var(--font-data);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);background:var(--gold);padding:8px 12px}
.js .hero__cap{opacity:0}
.js .is-lit .hero__cap{opacity:1;transition:opacity 600ms var(--e) 1500ms}
.hdim{position:absolute;right:30px;top:9%;bottom:16%;width:1px;background:var(--gold);
  transform:scaleY(0);transform-origin:bottom}
.js .is-lit .hdim{transform:scaleY(1);transition:transform 1000ms var(--e) 900ms}
.hdim::before,.hdim::after{content:"";position:absolute;left:-8px;width:17px;height:1px;background:var(--gold);opacity:0}
.hdim::before{top:0}.hdim::after{bottom:0}
.js .is-lit .hdim::before,.js .is-lit .hdim::after{opacity:1;transition:opacity 380ms var(--e) 1850ms}
.hdim b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(90deg);
  font-family:var(--font-data);font-size:10px;font-weight:400;letter-spacing:.1em;color:var(--brass);
  background:var(--ink-3);padding:5px 8px;white-space:nowrap;opacity:0}
.js .is-lit .hdim b{opacity:1;transition:opacity 400ms var(--e) 1950ms}

/* --- stat strip: the hero's base --- */
.hero__strip{position:relative;z-index:3;background:var(--ink-3);border-top:2px solid var(--gold);min-height:var(--strip)}
.hero__strip ul{max-width:var(--container);margin-inline:auto;padding:0 var(--pad);
  display:grid;grid-template-columns:repeat(5,1fr);list-style:none}
.hero__strip li{padding:24px 0 22px;position:relative}
.hero__strip li+li::before{content:"";position:absolute;left:0;top:20px;bottom:20px;width:1px;background:rgba(255,255,255,.12)}
.hero__strip li+li{padding-left:28px}
.hero__strip b{display:block;font-family:var(--font-data);font-size:22px;font-weight:400;color:var(--white);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;transition:color var(--t2)}
.hero__strip span{display:block;font-family:var(--font-data);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted-dark);margin-top:7px}
.hero__strip li:hover b{color:var(--brass)}

@media(max-width:1180px){.hero__copy{max-width:520px}.hero__fig{max-width:46vw}.hero__stat{left:-60px}}
@media(max-width:1024px){
  .hero{min-height:auto}
  .hero__in{padding:56px var(--pad) 40px}
  .hero__copy{max-width:640px}
  .hero__fig{position:relative;top:auto;bottom:auto;right:auto;aspect-ratio:auto;max-width:none;
    width:100%;height:min(66vh,560px);margin:0}
  .hero__im img{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 22%);
    -webkit-mask-composite:source-over;mask-image:linear-gradient(to bottom,transparent 0,#000 22%);
    mask-composite:add;object-position:center 22%}
  .hero__stat{left:var(--pad);bottom:28px}
  .hero__cap{right:var(--pad)}
  .hdim{right:calc(var(--pad) + 6px)}
}
@media(max-width:700px){
  .hero__in{padding:36px var(--pad) 22px}
  .hero__cta{margin-top:var(--s6)}
  .hero__cta .btn{width:100%;justify-content:center}
  .hero__fig{height:min(62vh,460px)}
  .hero__stat{padding:18px 20px 16px;min-width:0;bottom:18px}
  .hero__stat b{font-size:36px}
  .hero__stat small{font-size:11.5px}
  .hero__cap{display:none}
  .hdim{display:none}
  .hero__strip ul{grid-template-columns:repeat(2,1fr)}
  .hero__strip li{padding:16px 0}
  .hero__strip li+li{padding-left:0}
  .hero__strip li:nth-child(even){padding-left:22px}
  .hero__strip li:nth-child(odd)::before{display:none}
  .hero__strip li:nth-child(n+3){border-top:1px solid rgba(255,255,255,.1)}
  .hero__strip li:last-child{grid-column:1/-1;padding-left:0}
  .hero__strip li:last-child::before{display:none}
}

/* ============ 9. ABOUT ============ */
.abt{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(48px,7vw,110px);align-items:start}
.abt h2{font-size:var(--d1);line-height:1.06;margin-bottom:var(--s6)}
.abt p{color:var(--muted);margin-bottom:var(--s5);max-width:56ch;line-height:1.72}
.abt p strong{color:var(--ink);font-weight:600}
.abt__sig{margin-top:var(--s7);padding-top:var(--s6);border-top:1px solid var(--rule);
  display:flex;align-items:center;gap:18px}
.abt__sig .in{width:52px;height:52px;flex:none;background:var(--ink);color:var(--brass);
  display:grid;place-items:center;font-family:var(--font-display);font-size:17px;letter-spacing:.04em;
  transition:transform 600ms var(--e)}
.abt__sig:hover .in{transform:rotate(-6deg) scale(1.06)}
.abt__sig b{display:block;font-size:15px;font-weight:600}
.abt__sig span{display:block;font-family:var(--font-data);font-size:11px;letter-spacing:.1em;
  color:var(--muted);margin-top:3px}

.abt__panel{position:relative;background:var(--ink);padding:clamp(30px,3.6vw,52px);overflow:hidden}
.abt__panel::before{content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(201,162,39,.07) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(201,162,39,.07) 1px,transparent 1px);
  background-size:44px 44px;pointer-events:none}
.abt__panel::after{content:"";position:absolute;width:60vmax;height:60vmax;right:-30vmax;top:-32vmax;
  background:radial-gradient(circle,rgba(201,162,39,.10),transparent 62%);pointer-events:none}
.abt__ph{position:relative;z-index:2;display:flex;align-items:center;gap:12px;
  font-family:var(--font-data);font-size:10.5px;letter-spacing:.2em;color:var(--brass);
  padding-bottom:22px;margin-bottom:26px;border-bottom:1px solid rgba(201,162,39,.24)}
.abt__ph i{flex:1;height:1px;background:rgba(201,162,39,.24)}
.abt__stats{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:rgba(201,162,39,.18)}
.abt__stats div{background:var(--ink);padding:26px 22px;transition:background var(--t2) var(--e)}
.abt__stats div:hover{background:var(--ink-2)}
.abt__stats b{display:block;font-family:var(--font-data);font-size:clamp(32px,3.6vw,46px);font-weight:400;
  color:var(--brass);line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.04em;
  transition:transform var(--t2) var(--e)}
.abt__stats div:hover b{transform:translateY(-3px)}
.abt__stats u{display:block;font-family:var(--font-data);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted-dark);margin-top:12px;text-decoration:none}
.abt__note{position:relative;z-index:2;margin-top:26px;font-size:14px;color:var(--muted-dark);line-height:1.6}
@media(max-width:900px){.abt{grid-template-columns:1fr;gap:52px}}

/* ============ 10. SERVICES ============ */
.svc{display:grid;grid-template-columns:repeat(12,1fr);gap:20px;margin-top:var(--s8)}
.card{position:relative;overflow:hidden;background:var(--white);border:1px solid var(--rule);
  padding:clamp(26px,2.6vw,38px);display:flex;flex-direction:column;min-height:290px;
  transition:transform 420ms var(--e),box-shadow 420ms var(--e),border-color var(--t2)}
.card::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;pointer-events:none;
  left:var(--mx,50%);top:var(--my,50%);transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(201,162,39,.14),transparent 66%);
  opacity:0;transition:opacity 420ms var(--e)}
.card::after{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform 480ms var(--e)}
.card:hover{transform:translateY(-7px);box-shadow:var(--sh3);border-color:var(--brass)}
.card:hover::before{opacity:1}
.card:hover::after{transform:scaleX(1)}
.card__n{font-family:var(--font-data);font-size:11px;letter-spacing:.16em;color:var(--brass-text);
  position:relative;z-index:2}
.card__ic{width:44px;height:44px;margin:22px 0 20px;position:relative;z-index:2}
.card__ic path,.card__ic line,.card__ic rect,.card__ic circle,.card__ic polyline{
  stroke:var(--ink);stroke-width:1.4;fill:none;stroke-linecap:square;
  transition:stroke var(--t2) var(--e)}
.card:hover .card__ic path,.card:hover .card__ic line,.card:hover .card__ic rect,
.card:hover .card__ic circle,.card:hover .card__ic polyline{stroke:var(--accent)}
.card h3{font-size:var(--d3);position:relative;z-index:2;margin-bottom:12px;line-height:1.2}
.card p{font-size:var(--body-s);color:var(--muted);position:relative;z-index:2;line-height:1.6;flex:1}
.card__f{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
  margin-top:24px;position:relative;z-index:2}
.card__m{font-family:var(--font-data);font-size:11px;letter-spacing:.1em;color:var(--muted)}
.card__m b{display:block;font-size:26px;font-weight:400;color:var(--brass-text);letter-spacing:-.03em;
  margin-bottom:4px;font-variant-numeric:tabular-nums;transition:color var(--t2)}
.card:hover .card__m b{color:var(--accent)}
.card__ar{width:34px;height:34px;border:1px solid var(--rule);display:grid;place-items:center;flex:none;
  transition:background var(--t2) var(--e),border-color var(--t2),transform var(--t2) var(--e)}
.card__ar svg{width:14px;height:14px;stroke:var(--ink);stroke-width:1.5;fill:none;transition:stroke var(--t2)}
.card:hover .card__ar{background:var(--accent);border-color:var(--accent);transform:rotate(-45deg)}
.card:hover .card__ar svg{stroke:var(--accent-text)}
.svc>a:nth-child(1){grid-column:span 12}
.svc>a:nth-child(2),.svc>a:nth-child(3),.svc>a:nth-child(4){grid-column:span 4}
@media(max-width:980px){.svc>a:nth-child(n+2){grid-column:span 6}}
.card--hero{background:var(--ink);border-color:transparent;min-height:340px}
.card--hero h3,.card--hero .card__n{color:#fff}
.card--hero .card__n{color:var(--brass)}
.card--hero p{color:var(--muted-dark)}
.card--hero .card__ic path,.card--hero .card__ic line,.card--hero .card__ic rect,
.card--hero .card__ic circle,.card--hero .card__ic polyline{stroke:var(--brass)}
.card--hero:hover .card__ic path,.card--hero:hover .card__ic line,.card--hero:hover .card__ic rect,
.card--hero:hover .card__ic circle,.card--hero:hover .card__ic polyline{stroke:#fff}
.card--hero .card__m{color:var(--muted-dark)}
.card--hero .card__m b{color:var(--brass)}
.card--hero:hover .card__m b{color:#fff}
.card--hero .card__ar{border-color:rgba(255,255,255,.28)}
.card--hero .card__ar svg{stroke:#fff}
.card--hero::before{background:radial-gradient(circle,rgba(201,162,39,.20),transparent 66%)}
.card--hero:hover{border-color:transparent;box-shadow:var(--sh4)}
@media(max-width:700px){.svc>a{grid-column:span 12!important}.card{min-height:0}}

/* ============ 11. WHY CHOOSE US ============ */
.why{position:relative;overflow:hidden}
.why__spot{position:absolute;width:760px;height:760px;border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(201,162,39,.10),transparent 62%);
  transform:translate(-50%,-50%);opacity:0;transition:opacity 500ms var(--e)}
.why:hover .why__spot{opacity:1}
.why__in{position:relative;z-index:2}
.why__list{margin-top:var(--s9);border-top:1px solid rgba(201,162,39,.2)}
.wrow{display:grid;grid-template-columns:78px 1fr 1.05fr 210px;gap:34px;align-items:center;
  padding:38px 12px;border-bottom:1px solid rgba(201,162,39,.2);position:relative;
  transition:opacity 380ms var(--e),padding-left 420ms var(--e),background 420ms var(--e)}
.wrow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--brass);
  transform:scaleY(0);transform-origin:bottom;transition:transform 480ms var(--e)}
.why__list:hover .wrow{opacity:.4}
.why__list .wrow:hover,.why__list .wrow:focus-within{opacity:1;padding-left:26px;background:rgba(255,255,255,.028)}
.wrow:hover::before,.wrow:focus-within::before{transform:scaleY(1);transform-origin:top}
.wrow__n{font-family:var(--font-data);font-size:12px;letter-spacing:.14em;color:var(--brass)}
.wrow h3{font-size:var(--d3);line-height:1.2}
.wrow p{font-size:var(--body-s);color:var(--muted-dark);line-height:1.62;max-width:44ch}
.wrow__fig{text-align:right}
.wrow__fig b{display:block;font-family:var(--font-data);font-size:clamp(26px,2.9vw,38px);font-weight:400;
  color:#fff;line-height:1;letter-spacing:-.035em;font-variant-numeric:tabular-nums;
  transition:color var(--t2) var(--e),transform var(--t2) var(--e)}
.wrow:hover .wrow__fig b{color:var(--brass);transform:translateX(-6px)}
.wrow__fig span{display:block;font-family:var(--font-data);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted-dark);margin-top:9px}
.why__plant{margin-top:var(--s9);display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:rgba(201,162,39,.18)}
.pt{background:var(--ink);padding:26px 22px;transition:background var(--t2) var(--e)}
.pt:hover{background:var(--ink-2)}
.pt b{display:block;font-family:var(--font-data);font-size:23px;font-weight:400;color:var(--brass);
  letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.pt u{display:block;text-decoration:none;font-family:var(--font-data);font-size:9.5px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--muted-dark);margin-top:9px}
.why__cta{margin-top:var(--s9);display:flex;gap:16px;flex-wrap:wrap;align-items:center}
@media(max-width:1024px){
  .wrow{grid-template-columns:56px 1fr;gap:8px 22px;padding:30px 10px}
  .wrow p{grid-column:2;max-width:none}
  .wrow__fig{grid-column:2;text-align:left;margin-top:12px}
  .wrow:hover .wrow__fig b{transform:translateX(6px)}
  .why__plant{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){.why__cta .btn{width:100%;justify-content:center}}

/* ============ 12. INDUSTRIES: horizontal expanding cards ============ */
.ind-sec{background:var(--ink-3)}
.ind{margin-top:var(--s8);display:flex;flex-direction:column;gap:12px}
.icard{position:relative;display:grid;grid-template-columns:40% 1fr;height:184px;overflow:hidden;
  background:var(--ink-2);border:1px solid rgba(212,166,72,.14);
  transition:height 720ms var(--e),border-color var(--t2),box-shadow 600ms var(--e)}
.icard__ph{position:relative;overflow:hidden;background:var(--ink)}
.icard__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;
  transform:scale(1.12);filter:saturate(.85) brightness(.82);
  transition:transform 1200ms var(--e),filter 600ms var(--e)}
.icard__ph::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(18,58,102,0) 62%,rgba(18,58,102,.55) 88%,var(--ink-2) 100%),
             linear-gradient(180deg,rgba(7,27,51,.18) 0%,rgba(7,27,51,0) 40%)}
.icard__proj{position:absolute;left:0;bottom:0;z-index:2;font-family:var(--font-data);font-size:9.5px;
  letter-spacing:.15em;text-transform:uppercase;color:var(--ink);background:var(--gold);padding:7px 12px;
  opacity:0;transform:translateY(100%);transition:opacity 400ms var(--e),transform 500ms var(--e)}
.icard__body{position:relative;display:flex;flex-direction:column;justify-content:center;
  padding:22px 36px 22px 34px;min-width:0}
.icard__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.icard__n{font-family:var(--font-data);font-size:12px;letter-spacing:.16em;color:var(--brass)}
.icard__ar{width:40px;height:40px;border:1px solid rgba(255,255,255,.28);display:grid;place-items:center;
  color:var(--white);flex:none;
  transition:background var(--t2) var(--e),border-color var(--t2),transform 600ms var(--e),color var(--t2)}
.icard__ar svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5;fill:none}
.icard__t{font-size:clamp(24px,2.3vw,34px);line-height:1.1;color:var(--white);margin:0;transition:font-size 600ms var(--e)}
.icard__lead{font-size:var(--body-s);color:var(--muted-dark);line-height:1.55;margin-top:10px;max-width:56ch;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.icard__more{max-height:0;opacity:0;transform:translateY(14px);overflow:hidden;
  transition:max-height 700ms var(--e),opacity 500ms var(--e),transform 600ms var(--e)}
.icard__more ul{list-style:none;margin:18px 0 0;padding:16px 0 0;border-top:1px solid rgba(212,166,72,.3);
  display:grid;gap:9px;max-width:60ch}
.icard__more li{position:relative;padding-left:22px;font-size:14.5px;line-height:1.5;color:var(--white)}
.icard__more li::before{content:"";position:absolute;left:0;top:9px;width:11px;height:2px;background:var(--gold)}
.icard__more .tlink{margin-top:20px;color:var(--brass)}
.icard__more .tlink:hover{color:var(--white)}

/* --- the active (expanded) card --- */
.ind:not(:hover):not(:focus-within) .icard:first-child,
.icard:hover,.icard:focus-within,.icard.is-open{height:420px;border-color:rgba(212,166,72,.5);
  box-shadow:0 30px 60px rgba(0,0,0,.35)}
.ind:not(:hover):not(:focus-within) .icard:first-child .icard__ph img,
.icard:hover .icard__ph img,.icard:focus-within .icard__ph img,.icard.is-open .icard__ph img{
  transform:scale(1);filter:saturate(1) brightness(.98)}
.ind:not(:hover):not(:focus-within) .icard:first-child .icard__t,
.icard:hover .icard__t,.icard:focus-within .icard__t,.icard.is-open .icard__t{font-size:clamp(30px,2.9vw,42px)}
.ind:not(:hover):not(:focus-within) .icard:first-child .icard__lead,
.icard:hover .icard__lead,.icard:focus-within .icard__lead,.icard.is-open .icard__lead{-webkit-line-clamp:unset}
.ind:not(:hover):not(:focus-within) .icard:first-child .icard__more,
.icard:hover .icard__more,.icard:focus-within .icard__more,.icard.is-open .icard__more{
  max-height:300px;opacity:1;transform:none;transition-delay:160ms}
.ind:not(:hover):not(:focus-within) .icard:first-child .icard__ar,
.icard:hover .icard__ar,.icard:focus-within .icard__ar,.icard.is-open .icard__ar{
  background:var(--gold);border-color:var(--gold);color:var(--ink);transform:rotate(-45deg)}
.ind:not(:hover):not(:focus-within) .icard:first-child .icard__proj,
.icard:hover .icard__proj,.icard:focus-within .icard__proj,.icard.is-open .icard__proj{opacity:1;transform:none;transition-delay:320ms}
.ind:hover .icard:not(:hover):not(:focus-within) .icard__ph img{filter:saturate(.7) brightness(.62)}

@media(max-width:1180px){.icard{grid-template-columns:38% 1fr}}
@media(max-width:900px){
  .icard{grid-template-columns:1fr;grid-template-rows:200px auto;height:auto!important;box-shadow:none}
  .icard__ph{min-height:200px}
  .icard__ph::after{background:linear-gradient(180deg,rgba(18,58,102,0) 55%,var(--ink-2) 100%)}
  .icard__body{padding:18px 22px 22px}
  .icard__t{font-size:26px!important}
  .icard__lead{-webkit-line-clamp:unset}
  .icard__more{transition-delay:0ms}
  .icard:not(.is-open) .icard__more{max-height:0!important;opacity:0!important;transform:translateY(12px)!important}
  .icard:not(.is-open) .icard__ar{background:transparent;border-color:rgba(255,255,255,.28);color:var(--white);transform:none}
  .icard:not(.is-open) .icard__ph img{transform:scale(1.06);filter:saturate(.85) brightness(.8)}
  .icard__proj{display:none}
  .icard.is-open{border-color:rgba(212,166,72,.5)}
  .icard.is-open .icard__ar{transform:rotate(135deg)}
  .icard__toggle{position:absolute;inset:0;z-index:3;background:none;border:0;cursor:pointer;display:block}
  .icard.is-open .icard__toggle{inset:auto 0 auto 0;top:0;height:260px}
}
@media(min-width:901px){.icard__toggle{display:none}}

/* ============ 13. PROOF / TESTIMONIALS ============ */
.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:var(--s8)}
.pcard{position:relative;background:var(--white);border:1px solid var(--rule);padding:34px 30px 30px;
  display:flex;flex-direction:column;overflow:hidden;
  transition:transform 420ms var(--e),box-shadow 420ms var(--e),border-color var(--t2)}
.pcard::after{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform 480ms var(--e)}
.pcard:hover{transform:translateY(-8px);box-shadow:var(--sh3);border-color:var(--brass)}
.pcard:hover::after{transform:scaleX(1)}
.pcard__el{font-family:var(--font-data);font-size:11px;letter-spacing:.14em;color:var(--brass-text)}
.pcard__q{font-family:var(--font-display);font-size:clamp(22px,2.2vw,29px);line-height:1.24;
  margin:20px 0 22px;letter-spacing:-.012em}
.pcard__b{font-size:var(--body-s);color:var(--muted);line-height:1.62;flex:1}
.pcard__meta{margin-top:26px;padding-top:20px;border-top:1px solid var(--rule);display:grid;gap:7px}
.pcard__meta div{display:flex;justify-content:space-between;gap:14px;
  font-family:var(--font-data);font-size:11px;letter-spacing:.06em}
.pcard__meta dt{color:var(--muted)}
.pcard__meta dd{color:var(--ink);text-align:right}
.pcard__go{margin-top:22px;display:flex;align-items:center;gap:10px;
  font-family:var(--font-data);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--brass-text);transition:color var(--t2),gap var(--t2) var(--e)}
.pcard:hover .pcard__go{color:var(--accent);gap:16px}
.pcard__go i{flex:1;height:1px;background:var(--rule);transition:background var(--t2)}
.pcard:hover .pcard__go i{background:var(--accent)}
.proof__note{margin-top:var(--s7);display:flex;align-items:center;gap:16px;
  font-family:var(--font-data);font-size:11.5px;letter-spacing:.09em;color:var(--muted)}
.proof__note i{width:34px;height:1px;background:var(--brass-text);flex:none}
@media(max-width:980px){.proof{grid-template-columns:1fr 1fr}.proof>:nth-child(3){grid-column:1/-1}}
@media(max-width:660px){.proof{grid-template-columns:1fr}.proof>:nth-child(3){grid-column:auto}}

/* ============ 14. QUOTE FORM ============ */
.qt{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(44px,6vw,96px);align-items:start}
.qt__aside h2{font-size:var(--d1);line-height:1.06;margin-bottom:var(--s5)}
.qt__aside p{color:var(--muted);line-height:1.7;max-width:44ch}
.qt__pts{margin-top:var(--s7);display:grid;gap:2px;background:var(--rule)}
.qt__pt{background:var(--paper);padding:20px 22px;display:flex;gap:16px;align-items:flex-start;
  transition:background var(--t2) var(--e),padding-left var(--t2) var(--e)}
.qt__pt:hover{background:var(--white);padding-left:28px}
.qt__pt b{font-family:var(--font-data);font-size:11px;letter-spacing:.12em;color:var(--brass-text);
  flex:none;padding-top:3px}
.qt__pt span{font-size:14.5px;color:var(--muted);line-height:1.55}
.qt__pt span em{font-style:normal;color:var(--ink);font-weight:600}

.form{position:relative;background:var(--white);border:1px solid var(--rule);padding:clamp(26px,3.4vw,46px)}
.form__prog{position:absolute;left:0;top:0;height:3px;width:100%;background:var(--concrete)}
.form__prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--brass-text),var(--gold));
  transition:width 420ms var(--e)}
.form__ph{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding-bottom:22px;margin-bottom:28px;border-bottom:1px solid var(--rule)}
.form__ph b{font-family:var(--font-data);font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--ink)}
.form__ph span{font-family:var(--font-data);font-size:11px;letter-spacing:.1em;color:var(--muted);
  font-variant-numeric:tabular-nums}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.f{position:relative;margin-bottom:20px}
.f label{display:block;font-family:var(--font-data);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);margin-bottom:9px;transition:color var(--t2)}
.f:focus-within label{color:var(--brass-text)}
.f input,.f select,.f textarea{
  width:100%;min-height:52px;padding:14px 16px;font-size:16px;background:var(--paper);
  border:1px solid var(--rule);border-radius:var(--r1);color:var(--ink);
  transition:border-color var(--t2),background var(--t2),box-shadow var(--t2);appearance:none}
.f textarea{min-height:112px;resize:vertical;line-height:1.55}
.f select{cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235C5F63' stroke-width='1.4' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;padding-right:42px}
.f input:hover,.f select:hover,.f textarea:hover{border-color:var(--brass-text)}
.f input:focus,.f select:focus,.f textarea:focus{
  outline:none;background:var(--white);border-color:var(--ink);box-shadow:0 0 0 2px var(--brass)}
.f.bad input,.f.bad select{border-color:var(--error);box-shadow:0 0 0 2px rgba(163,35,24,.16)}
.f__err{display:none;align-items:center;gap:7px;margin-top:8px;font-size:13px;color:var(--error)}
.f.bad .f__err{display:flex}
.f__ok{position:absolute;right:14px;top:38px;width:20px;height:20px;opacity:0;transform:scale(.6);
  transition:opacity var(--t2),transform var(--t2) var(--e);pointer-events:none}
.f.good .f__ok{opacity:1;transform:none}
.f__ok svg{stroke:var(--success);stroke-width:2;fill:none}
.form .btn{width:100%;justify-content:center;margin-top:8px}
.form__legal{margin-top:18px;font-size:12.5px;color:var(--muted);line-height:1.55;text-align:center}
.form__done{display:none;text-align:center;padding:24px 0}
.form.sent .form__body{display:none}
.form.sent .form__done{display:block}
.form__done .ic{width:66px;height:66px;margin:0 auto 26px;border-radius:50%;background:var(--brass-wash);
  display:grid;place-items:center}
.form__done .ic svg{width:26px;height:26px;stroke:var(--brass-text);stroke-width:2;fill:none;
  stroke-dasharray:40;stroke-dashoffset:40;animation:tick 700ms var(--e) 120ms forwards}
@keyframes tick{to{stroke-dashoffset:0}}
.form__done h3{font-size:var(--d3);margin-bottom:14px}
.form__done p{color:var(--muted);font-size:var(--body-s);max-width:40ch;margin:0 auto 26px;line-height:1.65}
@media(max-width:980px){.qt{grid-template-columns:1fr;gap:52px}}
@media(max-width:560px){.grid2{grid-template-columns:1fr;gap:0}}

/* ============ 15. FINAL CTA ============ */
.fcta{position:relative;overflow:hidden;text-align:center}
.fcta__glow{position:absolute;width:130vmax;height:130vmax;left:50%;top:58%;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(20,44,70,.42) 0%,rgba(11,29,48,0) 58%);pointer-events:none;z-index:0}
.fcta__glow2{position:absolute;width:70vmax;height:70vmax;left:66%;top:14%;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(178,58,33,.16) 0%,transparent 62%);pointer-events:none;z-index:0}
.fcta__grid{position:absolute;inset:0;z-index:0;
  background-image:linear-gradient(rgba(201,162,39,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(201,162,39,.05) 1px,transparent 1px);
  background-size:76px 76px;
  -webkit-mask-image:radial-gradient(ellipse 70% 66% at 50% 50%,#000,transparent 76%);
  mask-image:radial-gradient(ellipse 70% 66% at 50% 50%,#000,transparent 76%)}
.fcta__in{position:relative;z-index:2}
.fcta h2{font-size:var(--d1);line-height:1.1;max-width:17ch;margin:var(--s6) auto var(--s5)}
.fcta__p{font-size:var(--lead);color:#C7CDD4;max-width:52ch;margin:0 auto;line-height:1.62}
.fcta .chap__eye{color:#C7CDD4}
.fcta__p a{color:var(--brass);position:relative}
.fcta__p a::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:currentColor;
  opacity:.45;transform:scaleX(1);transform-origin:right;transition:transform 340ms var(--e)}
.fcta__p a:hover::after{transform:scaleX(0)}
.fcta__b{display:flex;gap:16px;justify-content:center;margin-top:var(--s8);flex-wrap:wrap}
.fcta__b .btn--p:hover{box-shadow:0 0 44px rgba(212,166,72,.40)}
.fcta__m{margin-top:var(--s8);padding-top:var(--s6);border-top:1px solid rgba(201,162,39,.22);
  display:flex;justify-content:center;gap:34px;flex-wrap:wrap;
  font-family:var(--font-data);font-size:11px;letter-spacing:.13em;color:var(--muted-dark)}
@media(max-width:560px){.fcta__b .btn{width:100%;justify-content:center}.fcta__m{gap:12px;flex-direction:column}}

/* ============ 16. FOOTER ============ */
.ftr{background:var(--steel);color:#fff;padding-block:var(--s9) 0}
.ftr__top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:44px;padding-bottom:var(--s9)}
.ftr__brand p{font-size:14px;color:var(--muted-dark);line-height:1.65;margin-top:24px;max-width:34ch}
.ftr__her{font-family:var(--font-data);font-size:11px;letter-spacing:.1em;color:var(--brass);margin-top:18px}
.ftr__soc{display:flex;gap:10px;margin-top:26px}
.ftr__soc a{width:40px;height:40px;border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;
  transition:background var(--t2) var(--e),border-color var(--t2),transform var(--t2) var(--e)}
.ftr__soc svg{width:16px;height:16px;fill:var(--muted-dark);color:var(--muted-dark);
  transition:fill var(--t2),color var(--t2)}
.ftr__soc a:hover{background:var(--brass);border-color:var(--brass);transform:translateY(-3px)}
.ftr__soc a:hover svg{fill:var(--ink);color:var(--ink)}
.ftr__col h4{font-family:var(--font-data);font-size:10.5px;font-weight:400;letter-spacing:.19em;
  text-transform:uppercase;color:var(--brass);margin-bottom:22px}
.ftr__col ul{list-style:none;display:grid;gap:12px}
.flink{font-size:14.5px;color:var(--muted-dark);position:relative;display:inline-block;
  transition:color var(--t2),transform var(--t2) var(--e)}
.flink::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:100%;background:var(--brass);
  transform:scaleX(0);transform-origin:right;transition:transform 340ms var(--e)}
.flink:hover{color:#fff;transform:translateX(4px)}
.flink:hover::after{transform:scaleX(1);transform-origin:left}
.ftr__addr{font-style:normal;font-size:14.5px;color:var(--muted-dark);line-height:1.7}
.ftr__addr a{transition:color var(--t2)}
.ftr__addr a:hover{color:var(--brass)}
.ftr__hrs{margin-top:18px;font-family:var(--font-data);font-size:11px;letter-spacing:.1em;color:var(--brass)}
.ftr__bot{border-top:1px solid rgba(201,162,39,.2);padding-block:26px 34px;
  display:flex;justify-content:space-between;align-items:center;gap:16px 32px;flex-wrap:wrap;
  font-family:var(--font-data);font-size:10.5px;line-height:1.7;letter-spacing:.06em;color:var(--muted-dark)}
.ftr__bot a{transition:color var(--t2)}
.ftr__bot a:hover{color:var(--brass)}
.ftr__bot>span{display:block;white-space:nowrap;flex:0 1 auto}
.ftr__bot>span:last-child{text-align:right;margin-left:auto}
.ftr__bot>span span{display:inline}
@media(max-width:1120px){.ftr__bot>span{white-space:normal}}
@media(max-width:980px){.ftr__top{grid-template-columns:1fr 1fr;gap:44px 32px}}
@media(max-width:600px){.ftr__top{grid-template-columns:1fr;gap:40px}.ftr__bot{flex-direction:column;gap:10px}}


/* ============ 18. PROJECT PHOTOGRAPHY (from company profile) ============ */
.ph{background-size:cover;background-position:center;background-repeat:no-repeat}
img.ph{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
/* per-image crop tuning */
.pcard__ph img.ph{object-position:center 20%}
.card__ph img.ph{object-position:center 34%}
.abt__im img.ph{object-position:center 42%}
.why__fig img.ph{object-position:center 52%}
.fcta__ph.p-chalet{background-position:center 42%}
.why__bg.p-suzuki{background-position:center 46%}
.p-owt{background-image:url(/assets/img/one-world-tower-lahore-17-storey-commercial-building.webp)}
.p-fifth{background-image:url(/assets/img/5th-avenue-mm-alam-road-lahore-commercial-building.webp)}
.p-fbr{background-image:url(/assets/img/fbr-garden-town-lahore-15-storey-building.webp)}
.p-g40{background-image:url(/assets/img/40-c3-gulberg-lahore-12-storey-commercial-tower.webp)}
.p-chalet{background-image:url(/assets/img/grand-chalet-lahore-commercial-building-at-night.webp)}
.p-mm103{background-image:url(/assets/img/103-b-mm-alam-road-gulberg-lahore-commercial-building.webp)}
.p-suzuki{background-image:url(/assets/img/suzuki-sethi-motors-gulberg-lahore-concrete-frame.webp)}
.p-kamal{background-image:url(/assets/img/kamal-garments-lahore-formwork-shuttering-concrete-frame.webp)}
.p-zaka{background-image:url(/assets/img/zaka-apartments-gulberg-lahore-residential-building.webp)}
.p-naveed{background-image:url(/assets/img/general-naveed-plaza-lahore-commercial-building.webp)}
.p-g38n{background-image:url(/assets/img/38-n-gulberg-lahore-commercial-building-construction.webp)}

/* --- about photo --- */
.abt__im{position:relative;z-index:2;display:block;width:100%;aspect-ratio:16/10;margin-bottom:26px;
  overflow:hidden;outline:1px solid rgba(201,162,39,.28)}
.abt__im .ph{position:absolute;inset:0;transition:transform 900ms var(--e)}
.abt__panel:hover .abt__im .ph{transform:scale(1.06)}
.abt__im figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;
  background:linear-gradient(180deg,transparent,rgba(7,21,35,.9));
  font-family:var(--font-data);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:#fff}

/* --- service card photos --- */
.card{padding:0}
.card__ph{display:block;position:relative;z-index:1;overflow:hidden;background:var(--ink-2)}
.card__ph .ph{position:absolute;inset:0;transition:transform 900ms var(--e)}
.card:hover .card__ph .ph{transform:scale(1.06)}
.card__ph::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(11,29,48,.06),rgba(11,29,48,.34));
  transition:opacity 500ms var(--e)}
.card:hover .card__ph::after{opacity:.55}
.card__body{position:relative;z-index:2;display:flex;flex-direction:column;flex:1;
  padding:clamp(24px,2.4vw,34px)}
.card:not(.card--hero) .card__ph{aspect-ratio:4/3}
.card--hero{display:grid;grid-template-columns:1.02fr 1fr;align-items:stretch;min-height:400px}
.card--hero .card__ph{height:100%}
.card--hero .card__body{padding:clamp(28px,3vw,44px)}
@media(max-width:980px){.card--hero{grid-template-columns:1fr}.card--hero .card__ph{aspect-ratio:16/9}}

/* --- why band photography --- */
.why__bg{position:absolute;inset:0;z-index:0;opacity:.13;pointer-events:none}
.why__bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,var(--ink) 0%,rgba(11,29,48,.55) 40%,var(--ink) 100%)}
.why__head{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(40px,5vw,80px);align-items:center}
.why__fig{position:relative}
.why__fig .imw{display:block;position:relative;width:100%;aspect-ratio:5/4;overflow:hidden;
  outline:1px solid rgba(201,162,39,.3)}
.why__fig .imw .ph{position:absolute;inset:0;transition:transform 900ms var(--e)}
.why__fig:hover .imw .ph{transform:scale(1.07)}
.why__fig .imw::after{content:"";position:absolute;inset:0;background:rgba(11,29,48,.24)}
.why__tag{position:absolute;left:-1px;bottom:22px;background:var(--brass);color:var(--ink);
  font-family:var(--font-data);font-size:11px;letter-spacing:.1em;padding:9px 16px;
  transform:translateX(-14px);white-space:nowrap}
.why__cap{margin-top:16px;font-family:var(--font-data);font-size:9.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--muted-dark)}
@media(max-width:980px){.why__head{grid-template-columns:1fr;gap:44px}.why__tag{transform:none;left:0}}

/* --- proof card photos --- */
.pcard{padding:0}
.pcard__ph{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--concrete)}
.pcard__ph .ph{position:absolute;inset:0;transition:transform 900ms var(--e)}
.pcard:hover .pcard__ph .ph{transform:scale(1.06)}
.pcard__ph .tagm{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--brass);
  font-family:var(--font-data);font-size:10.5px;letter-spacing:.11em;padding:8px 14px}
.pcard__body{padding:30px;display:flex;flex-direction:column;flex:1}

/* --- final CTA photo --- */
.fcta__ph{position:absolute;inset:0;z-index:0;opacity:.46}
.fcta__ph::after{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 82% 74% at 50% 50%,rgba(11,29,48,.34),rgba(11,29,48,.86) 72%,var(--ink) 96%)}


/* ---- legal dialog ---- */
.legal-open{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(201,162,39,.5)}
.legal-open:hover{color:var(--brass)}
.lg{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;padding:24px}
.lg[open]{display:flex}
.lg__sc{position:absolute;inset:0;background:rgba(7,21,35,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.lg__p{position:relative;background:var(--paper);color:var(--ink);max-width:640px;width:100%;
  max-height:82vh;overflow:auto;padding:38px 36px 32px;border-top:3px solid var(--brass);
  box-shadow:var(--sh4)}
.lg__p h2{font-size:var(--d3);margin-bottom:6px}
.lg__p .upd{font-family:var(--font-data);font-size:11px;letter-spacing:.1em;color:var(--muted);
  text-transform:uppercase;margin-bottom:22px}
.lg__p h3{font-family:var(--font-body);font-weight:600;font-size:15px;margin:20px 0 6px}
.lg__p p,.lg__p li{font-size:14.5px;line-height:1.65;color:var(--muted)}
.lg__p ul{margin:6px 0 0 18px}
.lg__x{position:absolute;top:12px;right:12px;width:40px;height:40px;display:grid;place-items:center;
  border:1px solid var(--rule);transition:background var(--t2),border-color var(--t2)}
.lg__x:hover{background:var(--ink);border-color:var(--ink);color:#fff}

/* ============ 17. CURSOR + MOTION ============ */
@media(hover:none),(pointer:coarse){
  .card::before,.why__spot{display:none}
  .card:hover,.pcard:hover{transform:none;box-shadow:var(--sh1)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js .rv,.js .rv-l,.js .rv-s>*{opacity:1!important;transform:none!important}
  .js .mask>span{transform:none!important}
  .js .hero__stat,.js .hero__cap{opacity:1!important;transform:none!important}
  .chap__line{transform:scaleX(1)!important}
  .hero__scroll i{animation:none}
}

/* ============ STORY TIMELINE (serpentine) ============ */
.story{overflow:hidden}
.tl{position:relative;max-width:1180px;margin:var(--s9) auto 0;padding:0 var(--pad)}
.tl__path{position:absolute;left:50%;top:0;transform:translateX(-50%);width:400px;height:100%;
  pointer-events:none;overflow:visible}
#tlFill{stroke-dasharray:var(--len,4000);stroke-dashoffset:var(--len,4000)}
.tl__rider{position:absolute;left:50%;top:0;width:22px;height:22px;margin:-11px 0 0 -11px;z-index:3;
  border-radius:50%;background:var(--gold);box-shadow:0 0 0 6px rgba(190,140,51,.18),0 6px 18px rgba(10,39,70,.3);
  opacity:0;transition:opacity 400ms var(--e)}
.tl__rider::after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--ink)}
.tl.is-live .tl__rider{opacity:1}
.tl__list{list-style:none;margin:0;padding:0;position:relative;z-index:2}
.tl__it{position:relative;display:grid;grid-template-columns:1fr 92px 1fr;align-items:center;
  gap:0;min-height:340px;padding:24px 0}
.tl__it--left  .tl__fig{grid-column:1;justify-self:end;padding-right:44px}
.tl__it--left  .tl__txt{grid-column:3;padding-left:44px}
.tl__it--right .tl__fig{grid-column:3;justify-self:start;padding-left:44px;order:2}
.tl__it--right .tl__txt{grid-column:1;padding-right:44px;text-align:right}
.tl__dot{position:absolute;left:50%;top:50%;width:13px;height:13px;margin:-6.5px 0 0 -6.5px;
  border-radius:50%;background:var(--paper);border:2.5px solid var(--rule);z-index:2;
  transition:border-color 500ms var(--e),transform 500ms var(--e),background 500ms var(--e)}
.tl__it.is-in .tl__dot{border-color:var(--gold);background:var(--gold);transform:scale(1.15)}
.tl__card{margin:0;background:var(--white);padding:12px;box-shadow:0 18px 44px rgba(10,39,70,.13);
  max-width:330px;transform:rotate(-1.6deg);transition:transform 700ms var(--e),box-shadow 700ms var(--e)}
.tl__it--right .tl__card{transform:rotate(1.6deg)}
.tl__card img{display:block;width:100%;height:290px;object-fit:cover;object-position:center 38%}
.tl__card:hover{transform:rotate(0) translateY(-6px);box-shadow:0 26px 60px rgba(10,39,70,.2)}
.tl__eye{font-family:var(--font-data);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass-text);margin:0 0 10px}
.tl__num{font-family:var(--font-display);font-weight:700;font-size:clamp(54px,7vw,92px);line-height:.9;
  letter-spacing:-.04em;color:var(--ink);margin:0 0 14px;font-variant-numeric:tabular-nums}
.tl__it h3{font-size:clamp(21px,2.1vw,27px);line-height:1.15;color:var(--ink);margin:0 0 14px}
.tl__p{font-size:var(--body-s);line-height:1.68;color:var(--muted);max-width:40ch;margin:0}
.tl__it--right .tl__p{margin-left:auto}
.js .tl__it .tl__fig,.js .tl__it .tl__txt{opacity:0;transform:translateY(26px)}
.js .tl__it.is-in .tl__fig,.js .tl__it.is-in .tl__txt{opacity:1;transform:none;
  transition:opacity 800ms var(--e),transform 800ms var(--e)}
.js .tl__it.is-in .tl__txt{transition-delay:120ms}
@media(max-width:900px){
  .tl{padding-left:0;padding-right:0}
  .tl__path{left:26px;transform:none;width:120px}
  .tl__rider{left:26px}
  .tl__it{grid-template-columns:1fr;min-height:0;padding:0 0 var(--s8) 62px;gap:20px}
  .tl__it--left .tl__fig,.tl__it--right .tl__fig{grid-column:1;justify-self:start;padding:0;order:0}
  .tl__it--left .tl__txt,.tl__it--right .tl__txt{grid-column:1;padding:0;text-align:left}
  .tl__it--right .tl__p{margin-left:0}
  .tl__dot{left:26px;top:34px;margin-left:-6.5px}
  .tl__card{max-width:none;transform:none!important}
  .tl__card img{height:230px}
  .tl__num{font-size:56px}
}
@media(prefers-reduced-motion:reduce){
  #tlFill{stroke-dashoffset:0!important}
  .tl__rider{display:none}
}

/* ============ PRELOADER ============ */
.ldr{position:fixed;inset:0;z-index:5000;background:var(--ink);display:grid;place-items:center;
  overflow:hidden;transition:transform 1s cubic-bezier(.76,0,.24,1),opacity .9s var(--e)}
.ldr.done{transform:translateY(-100%);opacity:.5}
.ldr__glow{position:absolute;width:70vmax;height:70vmax;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(212,166,72,.16),transparent 62%)}
.ldr__grid{position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(212,166,72,.07) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(212,166,72,.07) 1px,transparent 1px);
  background-size:76px 76px;
  -webkit-mask-image:radial-gradient(ellipse 60% 60% at 50% 50%,#000,transparent 75%);
  mask-image:radial-gradient(ellipse 60% 60% at 50% 50%,#000,transparent 75%)}
.ldr__in{position:relative;display:grid;gap:30px;justify-items:center;text-align:center;padding:0 24px}
.ldr__logo{height:clamp(96px,13vw,150px);width:auto;opacity:0;transform:translateY(14px);
  animation:ldrUp .9s var(--e) .05s forwards}
.ldr__bar{width:min(280px,64vw);height:2px;background:rgba(255,255,255,.14);position:relative;overflow:hidden}
.ldr__bar i{position:absolute;inset:0;background:linear-gradient(90deg,var(--gold),var(--brass));
  transform-origin:left;transform:scaleX(0);animation:ldrFill 1.5s cubic-bezier(.65,0,.25,1) .2s forwards}
.ldr__tag{font-family:var(--font-data);font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;
  color:rgba(255,255,255,.5);margin:0;opacity:0;animation:ldrUp .8s var(--e) .45s forwards}
.ldr__meta{position:absolute;left:0;right:0;bottom:30px;display:flex;justify-content:center;gap:6px;
  font-family:var(--font-data);font-size:11px;letter-spacing:.14em;color:var(--brass);opacity:0;
  animation:ldrUp .8s var(--e) .6s forwards}
.ldr__pct{font-variant-numeric:tabular-nums}
@keyframes ldrUp{to{opacity:1;transform:none}}
@keyframes ldrFill{to{transform:scaleX(1)}}
body.ldr-on{overflow:hidden}
/* the page "pops out" once the loader clears */
body.ldr-off .hdr,body.ldr-off main>section:first-child{animation:popIn .9s var(--e) both}
@keyframes popIn{from{opacity:0;transform:scale(.985) translateY(10px)}to{opacity:1;transform:none}}
.no-js .ldr{display:none}
@media(prefers-reduced-motion:reduce){
  .ldr{display:none}
  body.ldr-off .hdr,body.ldr-off main>section:first-child{animation:none}
}

/* ============ BUTTON HOVERS (sheen + lift) ============ */
.btn{isolation:isolate;transform:translateZ(0)}
.btn::after{background:var(--accent-deep)}
.btn--p::before{background:var(--accent)}
.btn--p::after{background:var(--grad-blue)}
.dark .btn--p::before,.card--hero .btn--p::before,.hdr .btn--p::before{background:var(--grad-gold)}
.dark .btn--p::after,.card--hero .btn--p::after,.hdr .btn--p::after{background:linear-gradient(120deg,#F0C97A,#BE8C33)}
.btn__sheen{position:absolute;top:0;bottom:0;left:-40%;width:34%;z-index:3;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.42),transparent);
  transform:skewX(-18deg) translateX(-140%);opacity:0}
.btn:hover .btn__sheen{opacity:1;transform:skewX(-18deg) translateX(520%);
  transition:transform 900ms cubic-bezier(.22,.8,.2,1),opacity 200ms}
.btn--p:hover{transform:translateY(-2px)}
.btn--s:hover,.btn--g:hover{transform:translateY(-2px)}
.tlink::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left;transition:transform 420ms var(--e)}
.tlink:hover::before{transform:scaleX(1)}

/* ============ EXPANDING SERVICE CARDS ============ */
.xg{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:var(--s8)}
.xc{position:relative;display:block;height:500px;overflow:hidden;background:var(--ink);
  border:1px solid rgba(221,174,82,.16);
  transition:transform .6s var(--e),box-shadow .6s var(--e),border-color .4s}
.xc__im{position:absolute;inset:0;z-index:0}
.xc__im img{width:100%;height:100%;object-fit:cover;filter:saturate(.8) brightness(.66);
  transform:scale(1.08);transition:transform 1.3s var(--e),filter .7s var(--e)}
.xc__im::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(6,26,49,.10) 0%,rgba(6,26,49,.02) 26%,rgba(6,26,49,.72) 58%,rgba(6,26,49,.95) 82%,rgba(6,26,49,.99) 100%);
  transition:background .6s var(--e)}
.xc__b{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:28px 26px}
.xc__n{font-family:var(--font-data);font-size:11px;letter-spacing:.2em;color:var(--brass);display:block;margin-bottom:12px}
.xc h3{font-size:clamp(23px,2.1vw,29px);line-height:1.1;color:#fff;margin:0}
.xc__r{max-height:0;opacity:0;overflow:hidden;transform:translateY(10px);
  transition:max-height .7s var(--e),opacity .5s var(--e) .08s,transform .6s var(--e)}
.xc__p{font-size:14.5px;line-height:1.6;color:#CFD8E6;margin:14px 0 0}
.xc__l{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid rgba(221,174,82,.32);display:grid;gap:8px}
.xc__l li{position:relative;padding-left:20px;font-size:13.5px;line-height:1.45;color:#fff}
.xc__l li::before{content:"";position:absolute;left:0;top:8px;width:10px;height:2px;background:var(--gold)}
.xc__go{display:inline-flex;align-items:center;gap:9px;margin-top:18px;font-size:14px;font-weight:600;color:var(--brass)}
.xc__go svg{width:15px;height:15px;stroke:currentColor;stroke-width:1.8;fill:none;transition:transform .3s var(--e)}
.xc__el{position:absolute;top:22px;right:22px;z-index:2;font-family:var(--font-data);font-size:10.5px;
  letter-spacing:.14em;color:var(--ink);background:var(--grad-gold);padding:6px 11px;
  opacity:0;transform:translateY(-8px);transition:opacity .4s var(--e),transform .5s var(--e)}
@media(hover:hover){
  .xc:hover{transform:translateY(-8px);box-shadow:0 30px 64px rgba(6,26,49,.42);border-color:rgba(221,174,82,.5)}
  .xc:hover .xc__im img{transform:scale(1);filter:saturate(1.05) brightness(.82)}
  .xc:hover .xc__im::after{background:linear-gradient(180deg,rgba(6,26,49,.16) 0%,rgba(6,26,49,.06) 18%,rgba(6,26,49,.80) 46%,rgba(6,26,49,.96) 70%,rgba(6,26,49,1) 100%)}
  .xc:hover .xc__r{max-height:340px;opacity:1;transform:none}
  .xc:hover .xc__go svg{transform:translateX(5px)}
  .xc:hover .xc__el{opacity:1;transform:none}
}
.xc:focus-visible{transform:translateY(-8px);border-color:var(--gold)}
.xc:focus-visible .xc__r{max-height:340px;opacity:1;transform:none}
@media(max-width:1024px){.xg{grid-template-columns:repeat(2,1fr)}.xc{height:440px}}
@media(max-width:700px){
  .xg{grid-template-columns:1fr}.xc{height:auto;min-height:0}
  .xc__im{position:relative;height:210px}
  .xc__im::after{background:linear-gradient(180deg,rgba(6,26,49,.1),rgba(6,26,49,.55))}
  .xc__b{position:relative;padding:22px}
  .xc__r{max-height:none;opacity:1;transform:none}
  .xc__el{opacity:1;transform:none}
}

/* ============ SERVICE SUB-NAV ============ */
.svcnav{background:var(--concrete);border-bottom:1px solid var(--rule);position:sticky;top:var(--hdr-s);z-index:60}
.svcnav__in{display:flex;gap:4px;overflow-x:auto;scrollbar-width:thin}
.svcnav__i{flex:none;padding:16px 18px;font-size:14px;font-weight:500;color:var(--muted);white-space:nowrap;
  border-bottom:2px solid transparent;transition:color .25s,border-color .25s,background .25s}
.svcnav__i:hover{color:var(--ink);background:rgba(255,255,255,.6)}
.svcnav__i.is-on{color:var(--ink);border-bottom-color:var(--gold);background:var(--white)}
@media(max-width:900px){.svcnav{top:var(--hdr-s)}.svcnav__i{padding:14px 14px;font-size:13px}}

/* ============ INTERIOR PAGE HERO ============ */
.phero{position:relative;overflow:hidden;padding:calc(var(--hdr) + 84px) 0 84px;background:var(--grad-dark)}
.phero__grid{position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(221,174,82,.07) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(221,174,82,.07) 1px,transparent 1px);
  background-size:84px 84px;
  -webkit-mask-image:radial-gradient(ellipse 70% 80% at 22% 40%,#000,transparent 72%);
  mask-image:radial-gradient(ellipse 70% 80% at 22% 40%,#000,transparent 72%)}
.phero__ph{position:absolute;right:0;top:0;bottom:0;width:46%;z-index:0}
.phero__ph img{width:100%;height:100%;object-fit:cover;object-position:center 40%;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 46%);
  mask-image:linear-gradient(to right,transparent,#000 46%)}
.phero__ph::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(10,39,70,.96) 0%,rgba(10,39,70,.55) 48%,rgba(10,39,70,.2) 100%)}
.phero__in{position:relative;z-index:2;max-width:760px}
.phero__eye{display:flex;align-items:center;gap:13px;font-family:var(--font-data);font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin:0 0 var(--s5)}
.phero__eye i{width:34px;height:1px;background:var(--grad-gold);flex:none}
.phero h1{font-size:clamp(34px,5vw,62px);line-height:1.04;letter-spacing:-.025em;color:#fff;margin:0 0 var(--s5)}
.phero__lead{font-size:var(--lead);line-height:1.6;color:var(--muted-dark);max-width:52ch;margin:0}
.phero__cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:var(--s7)}
@media(max-width:900px){
  .phero{padding:calc(var(--hdr) + 54px) 0 56px}
  .phero__ph{width:100%;opacity:.26}
  .phero__ph img{-webkit-mask-image:none;mask-image:none}
  .phero__cta .btn{width:100%;justify-content:center}
}

/* ============ BREADCRUMBS ============ */
.crumbs{margin-bottom:var(--s6)}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;
  font-family:var(--font-data);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.crumbs li+li::before{content:"/";margin-right:8px;color:rgba(255,255,255,.3)}
.crumbs a{color:var(--brass)}.crumbs a:hover{color:#fff}
.crumbs span{color:rgba(255,255,255,.55)}

/* ============ TWO-COLUMN + PANEL ============ */
.two{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(36px,5vw,80px);align-items:start}
.two--fq{grid-template-columns:.85fr 1.15fr}
.lead{font-size:var(--lead);line-height:1.72;color:var(--muted)}
.panel{background:var(--grad-dark);color:#fff;padding:clamp(26px,3vw,40px);border-top:3px solid var(--gold)}
.panel__t{font-size:var(--d3);color:#fff;margin:0 0 var(--s5)}
.panel__dl{display:grid;gap:0;margin:0}
.panel__dl div{display:grid;gap:4px;padding:14px 0;border-top:1px solid rgba(221,174,82,.26)}
.panel__dl dt{font-family:var(--font-data);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.panel__dl dd{margin:0;font-size:15px;color:#fff;line-height:1.45}
@media(max-width:900px){.two,.two--fq{grid-template-columns:1fr}}

/* ============ FEATURE GRID ============ */
.fxg{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:var(--s7)}
.fx{background:var(--white);border:1px solid var(--rule);padding:clamp(24px,2.4vw,34px);
  transition:transform .4s var(--e),box-shadow .4s var(--e),border-color .3s}
.fx:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(10,39,70,.1);border-color:var(--gold)}
.fx__n{font-family:var(--font-data);font-size:11px;letter-spacing:.16em;color:var(--brass-text)}
.fx h3{font-size:var(--d3);margin:14px 0 10px;color:var(--ink)}
.fx p{font-size:var(--body-s);line-height:1.62;color:var(--muted);margin:0}
.fxg--dark .fx{background:rgba(255,255,255,.04);border-color:rgba(221,174,82,.2)}
.fxg--dark .fx:hover{background:rgba(255,255,255,.07);box-shadow:0 18px 44px rgba(0,0,0,.3)}
.fxg--dark .fx h3{color:#fff}.fxg--dark .fx p{color:var(--muted-dark)}
.fxg--dark .fx__n{color:var(--brass)}
.fx__fig{font-family:var(--font-data);font-size:32px;color:var(--brass)!important;margin-top:18px!important;
  padding-top:14px;border-top:1px solid rgba(221,174,82,.26);font-variant-numeric:tabular-nums}
.fx__fig span{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-dark);margin-top:7px}
@media(max-width:820px){.fxg{grid-template-columns:1fr}}

/* ============ PROCESS ============ */
.proc{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:var(--s7) 0 0;padding:0;
  background:rgba(221,174,82,.2)}
.proc__i{background:var(--ink);padding:26px 22px;transition:background .35s var(--e)}
.proc__i:hover{background:var(--ink-2)}
.proc__n{font-family:var(--font-data);font-size:11px;letter-spacing:.16em;color:var(--brass)}
.proc__i h3{font-size:19px;color:#fff;margin:12px 0 10px;line-height:1.2}
.proc__i p{font-size:13.5px;line-height:1.55;color:var(--muted-dark);margin:0}
@media(max-width:1024px){.proc{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.proc{grid-template-columns:1fr}}

/* ============ EQUIPMENT / VALUES ============ */
.eq{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:var(--s7)}
.eq__g{background:var(--white);border:1px solid var(--rule);padding:28px}
.eq__g h3{font-size:var(--d3);color:var(--ink);margin:0 0 18px;padding-bottom:14px;border-bottom:2px solid var(--gold)}
.eq__g dl{margin:0;display:grid}
.eq__g div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--rule)}
.eq__g dt{font-size:14.5px;color:var(--muted)}
.eq__g dd{margin:0;font-family:var(--font-data);font-size:14px;color:var(--ink);white-space:nowrap}
.valg{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:var(--s7)}
.val{padding:26px;background:var(--paper);border-left:3px solid var(--gold);
  transition:transform .4s var(--e),background .3s}
.val:hover{transform:translateY(-4px);background:var(--brass-wash)}
.val__n{font-family:var(--font-data);font-size:11px;letter-spacing:.16em;color:var(--brass-text)}
.val h3{font-size:20px;color:var(--ink);margin:10px 0 10px}
.val p{font-size:14px;line-height:1.6;color:var(--muted);margin:0}
@media(max-width:900px){.eq,.valg{grid-template-columns:1fr}}

/* ============ PROJECT GRID ============ */
.pjg{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:var(--s7)}
.pj{background:var(--white);border:1px solid var(--rule);overflow:hidden;display:flex;flex-direction:column;
  transition:transform .45s var(--e),box-shadow .45s var(--e),border-color .3s}
.pj:hover{transform:translateY(-6px);box-shadow:0 22px 52px rgba(10,39,70,.14);border-color:var(--gold)}
.pj__ph{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--concrete)}
.pj__ph img{width:100%;height:100%;object-fit:cover;object-position:center 38%;
  transition:transform 1.1s var(--e)}
.pj:hover .pj__ph img{transform:scale(1.06)}
.pj__ph--none{background:var(--grad-dark)}
.pj__tag{position:absolute;left:0;bottom:0;background:var(--grad-gold);color:var(--ink);
  font-family:var(--font-data);font-size:10px;letter-spacing:.1em;padding:7px 11px}
.pj__b{padding:22px 22px 20px;display:flex;flex-direction:column;flex:1}
.pj__el{font-family:var(--font-data);font-size:11px;letter-spacing:.12em;color:var(--brass-text);margin:0}
.pj h3{font-size:var(--d3);color:var(--ink);margin:8px 0 4px;line-height:1.15}
.pj__loc{font-size:13.5px;color:var(--muted);margin:0 0 16px}
.pj__meta{margin:0;display:grid;gap:7px;padding-top:14px;border-top:1px solid var(--rule);flex:1}
.pj__meta div{display:flex;justify-content:space-between;gap:12px;font-size:12.5px}
.pj__meta dt{color:var(--muted);font-family:var(--font-data);font-size:11px;letter-spacing:.06em}
.pj__meta dd{margin:0;color:var(--ink);text-align:right}
.pj__f{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0 0;
  font-family:var(--font-data);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pj__st{padding:5px 10px}
.pj__st--done{background:var(--concrete);color:var(--ink)}
.pj__st--wip{background:var(--brass-wash);color:var(--brass-text)}
.dark .pj{background:rgba(255,255,255,.05);border-color:rgba(221,174,82,.2)}
.dark .pj h3,.dark .pj__meta dd{color:#fff}
.dark .pj__loc,.dark .pj__meta dt,.dark .pj__f{color:var(--muted-dark)}
.dark .pj__el{color:var(--brass)}
.dark .pj__meta{border-top-color:rgba(221,174,82,.24)}
.dark .pj__st--done{background:rgba(255,255,255,.12);color:#fff}
@media(max-width:1024px){.pjg{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.pjg{grid-template-columns:1fr}}

/* ============ FILTERS / TABLE / FAQ / RELATED / CONTACT ============ */
.filt{display:flex;gap:10px;flex-wrap:wrap;margin-top:var(--s6)}
.filt__b{font:inherit;font-size:13.5px;font-weight:500;padding:11px 20px;background:var(--white);
  border:1px solid var(--rule);color:var(--muted);cursor:pointer;
  transition:background .25s,color .25s,border-color .25s,transform .25s var(--e)}
.filt__b:hover{color:var(--ink);border-color:var(--gold);transform:translateY(-2px)}
.filt__b.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.filt__none{margin-top:var(--s7);color:var(--muted)}
.tblw{overflow-x:auto;margin-top:var(--s7);border:1px solid var(--rule)}
.tbl{width:100%;border-collapse:collapse;min-width:520px;background:var(--white)}
.tbl th{background:var(--ink);color:#fff;font-family:var(--font-data);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;text-align:left;padding:14px 18px;font-weight:400}
.tbl td{padding:14px 18px;font-size:14.5px;color:var(--ink);border-top:1px solid var(--rule)}
.tbl tbody tr:nth-child(even) td{background:var(--paper)}
.fq{margin-top:0}
.fq__i{border-bottom:1px solid var(--rule)}
.fq__q{font:inherit;width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;
  text-align:left;background:none;border:0;cursor:pointer;padding:24px 0;
  font-family:var(--font-display);font-size:var(--d3);color:var(--ink);transition:color .25s}
.fq__q svg{width:20px;height:20px;flex:none;stroke:var(--brass-text);stroke-width:1.6;fill:none;
  transform:rotate(90deg);transition:transform .35s var(--e),stroke .25s}
.fq__q:hover{color:var(--blue)}
.fq__q[aria-expanded="true"]{color:var(--blue)}
.fq__q[aria-expanded="true"] svg{transform:rotate(-90deg);stroke:var(--blue)}
.fq__a p{font-size:var(--body-s);line-height:1.7;color:var(--muted);margin:0 0 24px;max-width:62ch}
.rel{margin-top:var(--s9);padding-top:var(--s6);border-top:1px solid var(--rule);
  display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.rel__t{font-family:var(--font-data);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin:0 8px 0 0}
.rel__i{display:inline-flex;align-items:center;gap:9px;padding:11px 18px;background:var(--white);
  border:1px solid var(--rule);font-size:14px;color:var(--ink);
  transition:border-color .25s,transform .25s var(--e),background .25s}
.rel__i svg{stroke:var(--brass-text);transition:transform .25s var(--e)}
.rel__i:hover{border-color:var(--gold);transform:translateY(-2px);background:var(--brass-wash)}
.rel__i:hover svg{transform:translateX(4px)}
.cg{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:var(--s7)}
.cc{padding:26px;background:var(--paper);border-top:3px solid var(--gold)}
.cc h3{font-size:19px;color:var(--ink);margin:0 0 14px}
.cc address,.cc p{font-style:normal;font-size:14.5px;line-height:1.7;color:var(--ink);margin:0}
.cc a{color:var(--blue)}.cc a:hover{text-decoration:underline}
.cc__m{margin-top:12px!important;font-family:var(--font-data);font-size:11px;letter-spacing:.08em;
  color:var(--muted)!important;line-height:1.5!important}
.mapw{margin-top:var(--s7);border:1px solid var(--rule);overflow:hidden;line-height:0}
.mapw iframe{width:100%;height:420px;border:0;filter:grayscale(.25)}
@media(max-width:1024px){.cg{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.cg{grid-template-columns:1fr}.mapw iframe{height:300px}}

/* timeline: keep copy clear of the curve */
@media(min-width:901px){
  .tl__it{grid-template-columns:1fr 210px 1fr}
  .tl__it--left .tl__fig{padding-right:10px}
  .tl__it--left .tl__txt{padding-left:10px}
  .tl__it--right .tl__fig{padding-left:10px}
  .tl__it--right .tl__txt{padding-right:10px}
  .tl__p{max-width:34ch}
}

/* skip link: hidden until focused */
.skip{position:absolute;left:-9999px;top:8px;z-index:6000;background:var(--oxide,var(--ink));
  color:#fff;padding:14px 22px;font-size:15px;font-weight:600;border-radius:2px}
.skip:focus{left:16px;outline:2px solid var(--gold);outline-offset:3px}

/* ============ HOME: TRUST STRIP (count-up) ============ */
.trust{background:var(--concrete);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.trust__g{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule)}
.trust__i{background:var(--paper);padding:34px 26px;transition:background .4s var(--e)}
.trust__i:hover{background:var(--white)}
.trust__n{display:flex;align-items:baseline;gap:6px;font-family:var(--font-data);font-weight:500;
  font-size:clamp(34px,3.6vw,46px);line-height:1;letter-spacing:-.04em;color:var(--ink);
  font-variant-numeric:tabular-nums}
.trust__n em{font-style:normal;font-size:.42em;color:var(--brass-text);letter-spacing:.02em}
.trust__l{font-size:14px;line-height:1.55;color:var(--muted);margin:14px 0 0}
.trust__l b{color:var(--ink);font-weight:600}
@media(max-width:1024px){.trust__g{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.trust__g{grid-template-columns:1fr}.trust__i{padding:24px 20px}}

/* ============ HOME: SPLIT INTRO + COLLAGE ============ */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,5vw,86px);align-items:center}
.split--wide{grid-template-columns:1fr 1fr}
.prose p{font-size:var(--body);line-height:1.75;color:var(--muted);margin:0 0 var(--s5);max-width:56ch}
.prose p strong{color:var(--ink);font-weight:600}
.prose p:last-child{margin-bottom:0}
.collage{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.collage figure{margin:0;position:relative;overflow:hidden;background:var(--concrete)}
.collage img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.1s var(--e),filter .6s}
.collage figure:hover img{transform:scale(1.05)}
.collage .c1{grid-row:span 2;aspect-ratio:3/4.4}
.collage .c2,.collage .c3{aspect-ratio:4/3}
.collage__tag{position:absolute;left:0;bottom:0;background:var(--grad-gold);color:var(--ink);
  font-family:var(--font-data);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;padding:7px 11px}
.sig{margin-top:var(--s7);padding-top:var(--s6);border-top:1px solid var(--rule);display:flex;align-items:center;gap:18px}
.sig__i{width:54px;height:54px;flex:none;background:var(--grad-dark);color:var(--brass);display:grid;
  place-items:center;font-family:var(--font-display);font-size:17px;letter-spacing:.04em;
  transition:transform .6s var(--e)}
.sig:hover .sig__i{transform:rotate(-6deg) scale(1.06)}
.sig b{display:block;font-size:15.5px;color:var(--ink)}
.sig span{display:block;font-family:var(--font-data);font-size:11px;letter-spacing:.1em;color:var(--muted);margin-top:4px}
@media(max-width:900px){.split,.split--wide{grid-template-columns:1fr}}

/* ============ HOME: HEIGHT LADDER ============ */
.lad{margin-top:var(--s8);border-top:1px solid rgba(221,174,82,.22)}
.lrow{position:relative;display:grid;grid-template-columns:96px 1fr 1.05fr 190px;gap:28px;align-items:center;
  padding:26px 14px;border-bottom:1px solid rgba(221,174,82,.22);text-decoration:none;
  transition:opacity .38s var(--e),padding .42s var(--e),background .42s var(--e)}
.lrow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--grad-gold);
  transform:scaleY(0);transform-origin:bottom;transition:transform .46s var(--e)}
.lad:hover .lrow{opacity:.42}
.lad .lrow:hover,.lad .lrow:focus-visible{opacity:1;padding-left:30px;background:rgba(255,255,255,.04)}
.lrow:hover::before,.lrow:focus-visible::before{transform:scaleY(1);transform-origin:top}
.lrow__bar{height:8px;background:rgba(255,255,255,.12);position:relative;overflow:hidden}
.lrow__bar i{position:absolute;inset:0;background:var(--grad-gold);transform-origin:left;transform:scaleX(0)}
.lrow.is-in .lrow__bar i{transform:scaleX(var(--p,.5));transition:transform 1s var(--e)}
.lrow h3{font-size:clamp(19px,1.9vw,25px);color:#fff;margin:0;line-height:1.16}
.lrow__m{font-family:var(--font-data);font-size:11.5px;letter-spacing:.06em;color:var(--muted-dark);margin:7px 0 0}
.lrow__f{text-align:right}
.lrow__f b{display:block;font-family:var(--font-data);font-size:clamp(23px,2.4vw,32px);font-weight:400;
  color:#fff;line-height:1;letter-spacing:-.035em;font-variant-numeric:tabular-nums;transition:color .28s,transform .28s var(--e)}
.lrow:hover .lrow__f b{color:var(--brass);transform:translateX(-5px)}
.lrow__f span{display:block;font-family:var(--font-data);font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted-dark);margin-top:8px}
@media(max-width:900px){
  .lrow{grid-template-columns:64px 1fr;gap:10px 18px;padding:22px 10px}
  .lrow__bar{grid-column:1/-1;order:3}
  .lrow__m{grid-column:2}
  .lrow__f{grid-column:1/-1;text-align:left;order:4;display:flex;align-items:baseline;gap:10px}
  .lrow__f span{margin-top:0}
  .lad .lrow:hover{padding-left:18px}
}

/* ============ HOME: MARQUEE ============ */
.mq{background:var(--ink-3);border-block:1px solid rgba(221,174,82,.22);overflow:hidden;padding:20px 0}
.mq__t{display:flex;gap:0;width:max-content;animation:mqs 42s linear infinite}
.mq:hover .mq__t{animation-play-state:paused}
.mq__i{display:inline-flex;align-items:center;gap:22px;padding:0 22px;font-family:var(--font-data);
  font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55);white-space:nowrap}
.mq__i b{color:var(--brass);font-weight:400}
.mq__i::after{content:"";width:5px;height:5px;background:var(--gold);border-radius:50%;opacity:.7}
@keyframes mqs{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.mq__t{animation:none;flex-wrap:wrap;width:auto}}

/* ============ ABOUT: figures, stats, values, spec, refs ============ */
.fig{margin:0;position:relative;overflow:hidden;background:var(--concrete)}
.fig img{width:100%;height:auto;display:block;transition:transform 1.1s var(--e)}
.fig:hover img{transform:scale(1.04)}
.fig--crop img{aspect-ratio:4/3;object-fit:cover}
.fig figcaption{position:absolute;left:0;bottom:0;background:var(--grad-gold);color:var(--ink);
  font-family:var(--font-data);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;padding:7px 11px}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(221,174,82,.22);margin-top:var(--s7)}
.stats div{background:var(--ink);padding:26px 22px;transition:background .35s var(--e)}
.stats div:hover{background:var(--ink-2)}
.stats b{display:block;font-family:var(--font-data);font-size:clamp(30px,3.4vw,42px);font-weight:400;
  color:var(--brass);line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.stats u{display:block;text-decoration:none;font-family:var(--font-data);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted-dark);margin-top:11px}
.vgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:var(--s7)}
.vcard{padding:28px;background:var(--white);border:1px solid var(--rule);border-top:3px solid var(--gold);
  transition:transform .4s var(--e),box-shadow .4s var(--e)}
.vcard:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(10,39,70,.1)}
.vcard__n{font-family:var(--font-data);font-size:11px;letter-spacing:.16em;color:var(--brass-text)}
.vcard h3{font-size:20px;color:var(--ink);margin:10px 0 10px}
.vcard p{font-size:14px;line-height:1.6;color:var(--muted);margin:0}
.spec{margin:0;display:grid}
.spec div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--rule)}
.spec dt{font-family:var(--font-data);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.spec dd{margin:0;font-size:14.5px;color:var(--ink);text-align:right}
.refs{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:var(--s7)}
.refs h3{font-family:var(--font-data);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--brass-text);margin:0 0 16px;padding-bottom:12px;border-bottom:2px solid var(--gold)}
.refs ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.refs li{font-size:14.5px;color:var(--ink);line-height:1.45}
.phero--img .phero__in{max-width:700px}
.pjg--all{margin-top:var(--s6)}
.pj__badge{position:absolute;right:0;top:0;background:var(--ink);color:var(--brass);
  font-family:var(--font-data);font-size:10px;letter-spacing:.1em;padding:6px 10px}
@media(max-width:900px){.vgrid,.refs{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}}
.lrow__el{font-family:var(--font-data);font-size:11.5px;letter-spacing:.1em;color:var(--brass);
  font-variant-numeric:tabular-nums}

/* ═══════════════════════════════════════════════════════════════════
   EDITORIAL LAYER
   Flat colour blocks, condensed display type at line-height 1.0,
   wide measure, generous air, gold used only as a marker.
   ═══════════════════════════════════════════════════════════════════ */

/* ---- flatten every gradient back to solid ---- */
.dark,.phero,.ind-sec,.fcta,.panel,.ldr{background:var(--ink)!important}
.dark::before,.phero::before{display:none}
.hdr.solid{background:rgba(12,27,46,.97)!important;backdrop-filter:blur(10px)}
.trust__i,.stats div,.proc__i{background:var(--paper)}

/* ---- wider bleed, more air ---- */
.wrap{max-width:var(--container);padding-inline:var(--pad)}
.sec{padding-block:clamp(84px,11vw,180px)}

/* ---- chapter mark: mono tag + hairline, gold square marker ---- */
.chap{display:flex;align-items:center;gap:18px;margin-bottom:clamp(40px,5vw,72px)}
.chap__el{font-family:var(--font-data);font-size:var(--eyebrow);letter-spacing:.1em;color:var(--gold-text)}
.dark .chap__el{color:var(--gold-hi)}
.chap__tick{width:9px;height:9px;background:var(--gold-hi);flex:none;opacity:1}
.chap__eye{font-family:var(--font-data);font-size:var(--eyebrow);letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted)}
.dark .chap__eye{color:var(--muted-d)}
.chap__line{height:1px;background:var(--rule);flex:1}
.dark .chap__line{background:var(--rule-d)}

/* ---- section heads: the statement IS the design ---- */
.sec-head{max-width:none}
.sec-head h2{font-size:var(--d1);line-height:.98;letter-spacing:-.025em;max-width:16ch}
.sec-head p{font-size:var(--lead);line-height:1.38;color:var(--muted);margin-top:clamp(24px,2.4vw,38px);
  max-width:46ch}
.dark .sec-head p{color:var(--muted-d)}
h2[style*="--d1"],.two h2,.split h2{line-height:.98!important;letter-spacing:-.025em!important}

/* ---- buttons: squared, flat, decisive ---- */
.btn{border-radius:0;padding:19px 34px;font-family:var(--font-body);font-weight:600;
  font-size:14.5px;letter-spacing:.005em;min-height:58px}
.btn--p{color:#fff}
.btn--p::before{background:var(--ink)}
.btn--p::after{background:var(--gold-hi)}
.btn--p:hover{color:var(--ink);transform:none}
.dark .btn--p::before,.hdr .btn--p::before{background:var(--gold-hi)}
.dark .btn--p,.hdr .btn--p{color:var(--ink)}
.dark .btn--p::after,.hdr .btn--p::after{background:#fff}
.dark .btn--p:hover,.hdr .btn--p:hover{color:var(--ink)}
.btn--s{box-shadow:inset 0 0 0 1px var(--ink);color:var(--ink)}
.btn--s::after{background:var(--ink)}
.btn--g{box-shadow:inset 0 0 0 1px rgba(255,255,255,.38)}
.btn--g::after{background:#fff}
.btn:hover{box-shadow:none;transform:none}
.btn--s:hover{box-shadow:inset 0 0 0 1px var(--ink)}
.btn--g:hover{box-shadow:inset 0 0 0 1px #fff}
.btn__sheen{display:none}

/* ---- text link: gold rule that wipes ---- */
.tlink{font-family:var(--font-body);font-weight:600;font-size:14.5px;color:var(--ink);
  padding-bottom:6px}
.dark .tlink{color:#fff}
.tlink::after{background:var(--gold-hi);opacity:1;height:2px}
.tlink::before{background:var(--gold-hi);height:2px}

/* ---- header ---- */
.hdr{background:transparent}
.nlink{font-family:var(--font-body);font-weight:500;font-size:14.5px}
.nlink::after{height:2px;background:var(--gold-hi)}
.hdr__tel{font-family:var(--font-data);font-size:12px;color:var(--gold-hi)}

/* ═══════════ HERO ═══════════ */
.hero{background:var(--ink)!important;min-height:100svh;--strip:0px}
.hero::before{display:none}
.hero__grid{opacity:.5}
.hero__in{align-items:flex-end;padding:0 var(--pad) clamp(48px,5vw,84px);max-width:var(--container)}
.hero__copy{max-width:none;width:100%}
.hero__eye{font-family:var(--font-data);font-size:var(--eyebrow);letter-spacing:.22em;
  color:var(--gold-hi);margin-bottom:clamp(20px,2.2vw,34px)}
.hero__eye i{background:var(--gold-hi);width:28px}
.hero h1{font-size:var(--d0);line-height:.92;letter-spacing:-.035em;color:#fff;
  margin-bottom:clamp(26px,2.8vw,44px);max-width:none}
.hero h1 em{color:var(--gold-hi)}
.hero__sub{font-size:var(--lead);line-height:1.38;color:var(--muted-d);max-width:40ch}
.hero__her{font-family:var(--font-data);font-size:11px;letter-spacing:.14em;color:rgba(255,255,255,.4)}
.hero__cta{margin-top:clamp(32px,3.4vw,52px)}

/* photo: full-height right bleed, no mask games */
.hero__fig{position:absolute;right:0;top:0;bottom:0;width:44vw;max-width:none;aspect-ratio:auto;z-index:1}
.hero__im{position:absolute;inset:0;overflow:hidden}
.hero__im img{width:100%;height:100%;object-fit:cover;object-position:center 28%;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 42%);
  mask-image:linear-gradient(to right,transparent,#000 42%);
  -webkit-mask-composite:source-over;mask-composite:add}
.hero__im::after{background:linear-gradient(180deg,rgba(12,27,46,.3) 0%,rgba(12,27,46,0) 40%,rgba(12,27,46,.55) 100%)}
.js .hero__im{clip-path:none}
.js .is-lit .hero__im{clip-path:none}
.hero__stat{left:auto;right:calc(44vw + var(--pad));bottom:clamp(48px,5vw,84px);background:var(--gold-hi);
  border-left:0;box-shadow:none;padding:22px 26px 20px;color:var(--ink)}
.hero__stat b{color:var(--ink);font-size:clamp(34px,3vw,44px)}
.hero__stat b i{color:var(--ink);opacity:.7}
.hero__stat>span{color:rgba(12,27,46,.7)}
.hero__stat small{color:var(--ink);opacity:.8;border-top-color:rgba(12,27,46,.25)}
.hero__cap{background:var(--ink);color:#fff;right:auto;left:0;bottom:0}
.hdim{display:none}

/* the stat strip becomes a flat ink band with mono figures */
.hero__strip{background:var(--ink-3);border-top:1px solid var(--rule-d)}
.hero__strip b{font-family:var(--font-data);font-size:20px;color:#fff}
.hero__strip li:hover b{color:var(--gold-hi)}
.hero__strip li+li::before{background:var(--rule-d)}

@media(max-width:1024px){
  .hero{min-height:auto}
  .hero__fig{position:relative;width:100%;height:min(52vh,430px)}
  .hero__im img{-webkit-mask-image:none;mask-image:none;object-position:center 30%}
  .hero__stat{right:auto;left:var(--pad);bottom:22px}
  .hero__in{padding-block:clamp(40px,7vw,70px) clamp(30px,4vw,54px)}
}

/* ═══════════ INTERIOR PAGE HERO ═══════════ */
.phero{padding:calc(var(--hdr) + clamp(64px,7vw,120px)) 0 clamp(64px,7vw,116px)}
.phero__in{max-width:none}
.phero h1{font-size:var(--d1);line-height:.96;letter-spacing:-.03em;max-width:15ch}
.phero__eye{font-family:var(--font-data);font-size:var(--eyebrow);letter-spacing:.22em;color:var(--gold-hi)}
.phero__eye i{background:var(--gold-hi);width:28px}
.phero__lead{font-size:var(--lead);line-height:1.38;max-width:44ch}
.phero__ph{width:42%}
.phero__ph::after{background:linear-gradient(90deg,var(--ink) 0%,rgba(12,27,46,.55) 55%,rgba(12,27,46,.15) 100%)}
.crumbs ol{font-family:var(--font-data);font-size:10.5px;letter-spacing:.14em}
.crumbs a{color:var(--gold-hi)}

/* ═══════════ CARDS: flat, hairline, no resting shadow ═══════════ */
.fx,.pj,.vcard,.eq__g,.cc,.xc,.tl__card{border-radius:0;box-shadow:none}
.fx{background:transparent;border:0;border-top:1px solid var(--rule);padding:30px 0 0}
.fx:hover{transform:none;box-shadow:none;border-top-color:var(--ink)}
.fxg--dark .fx{background:transparent;border-top-color:var(--rule-d)}
.fxg--dark .fx:hover{background:transparent;border-top-color:var(--gold-hi)}
.fx__n{font-family:var(--font-data);font-size:11px;letter-spacing:.16em;color:var(--gold-text)}
.fxg--dark .fx__n{color:var(--gold-hi)}
.fx h3{font-size:var(--d3);margin:16px 0 12px}
.fxg{gap:clamp(28px,3vw,52px)}

.pj{background:var(--white);border:1px solid var(--rule)}
.pj:hover{transform:translateY(-4px);box-shadow:var(--sh2);border-color:var(--ink)}
.pj h3{font-size:var(--d3)}
.pj__tag{background:var(--gold-hi);color:var(--ink)}
.dark .pj{background:rgba(255,255,255,.04);border-color:var(--rule-d)}
.dark .pj:hover{border-color:var(--gold-hi)}

.vcard{background:var(--white);border:1px solid var(--rule);border-top:2px solid var(--ink)}
.vcard:hover{transform:translateY(-4px);box-shadow:var(--sh2)}
.eq__g{background:var(--white);border:1px solid var(--rule)}
.eq__g h3{border-bottom-color:var(--ink);font-size:var(--d3)}
.cc{background:var(--white);border:1px solid var(--rule);border-top:2px solid var(--gold-hi)}

/* expanding service cards */
.xc{border:1px solid var(--rule-d);height:clamp(420px,46vw,540px)}
.xc:hover{transform:translateY(-6px);box-shadow:var(--sh3);border-color:var(--gold-hi)}
.xc h3{font-size:clamp(26px,2.4vw,38px);line-height:.98;letter-spacing:-.022em}
.xc__n{font-family:var(--font-data);color:var(--gold-hi)}
.xc__el{background:var(--gold-hi);color:var(--ink)}
.xc__go{color:var(--gold-hi);font-family:var(--font-body);font-weight:600}
.xc__l li::before{background:var(--gold-hi)}

/* industry rows */
.icard{background:var(--ink-2);border:1px solid var(--rule-d)}
.icard__t{font-size:clamp(26px,2.5vw,40px);line-height:.98;letter-spacing:-.022em}
.icard__n{font-family:var(--font-data);color:var(--gold-hi)}
.icard__proj{background:var(--gold-hi);color:var(--ink)}
.icard__more li::before{background:var(--gold-hi)}
.icard:hover,.icard.is-open{border-color:var(--gold-hi)}
.icard__ar:hover{border-color:var(--gold-hi)}

/* ═══════════ HEIGHT LADDER ═══════════ */
.lad{border-top:1px solid var(--rule-d)}
.lrow{border-bottom:1px solid var(--rule-d);padding-block:clamp(22px,2.2vw,34px)}
.lrow::before{background:var(--gold-hi)}
.lrow h3{font-size:clamp(22px,2.3vw,34px);line-height:1;letter-spacing:-.02em}
.lrow__bar{background:rgba(255,255,255,.1);height:6px}
.lrow__bar i{background:var(--gold-hi)}
.lrow__f b{font-family:var(--font-data);font-size:clamp(24px,2.3vw,34px)}
.lrow__el,.lrow__m,.lrow__f span{font-family:var(--font-data)}

/* ═══════════ TRUST STRIP ═══════════ */
.trust{background:var(--paper-2);border-color:var(--rule)}
.trust__g{background:var(--rule)}
.trust__n{font-family:var(--font-data);font-weight:400;font-size:clamp(32px,3.4vw,46px);color:var(--ink)}
.trust__n em{color:var(--gold-text);font-size:.38em}
.trust__l{font-size:14px;line-height:1.5;color:var(--muted)}

/* ═══════════ MARQUEE ═══════════ */
.mq{background:var(--ink-3);border-color:var(--rule-d)}
.mq__i{font-family:var(--font-data);font-size:12px;letter-spacing:.16em;color:rgba(255,255,255,.5)}
.mq__i b{color:var(--gold-hi)}
.mq__i::after{background:var(--gold-hi);border-radius:0;width:4px;height:4px}

/* ═══════════ TIMELINE ═══════════ */
.tl__card{background:var(--white);box-shadow:var(--sh2);transform:none}
.tl__it--right .tl__card,.tl__card:hover{transform:none}
.tl__card:hover{box-shadow:var(--sh3)}
.tl__num{font-family:var(--font-display);font-weight:700;letter-spacing:-.04em;line-height:.88}
.tl__eye{font-family:var(--font-data);color:var(--gold-text)}
.tl__it h3{font-size:clamp(22px,2.2vw,32px);line-height:1}
#tlFill{stroke:var(--gold-hi)}
.tl__rider{background:var(--gold-hi);box-shadow:0 0 0 6px rgba(224,169,63,.18)}

/* ═══════════ PANELS / TABLES / FAQ / FORM ═══════════ */
.panel{border-top:3px solid var(--gold-hi)}
.panel__t{font-size:var(--d3)}
.panel__dl dt{font-family:var(--font-data);color:var(--gold-hi)}
.tbl th{background:var(--ink);font-family:var(--font-data)}
.fq__q{font-family:var(--font-display);font-weight:700;font-size:clamp(19px,1.9vw,27px);
  line-height:1.08;letter-spacing:-.018em}
.fq__q:hover,.fq__q[aria-expanded="true"]{color:var(--gold-text)}
.fq__q[aria-expanded="true"] svg{stroke:var(--gold-text)}
.filt__b{border-radius:0;font-family:var(--font-body);font-weight:500}
.filt__b.is-on{background:var(--ink);border-color:var(--ink)}
.filt__b:hover{border-color:var(--ink);transform:none}
.f input,.f select,.f textarea{border-radius:0}
.f input:focus,.f select:focus,.f textarea:focus{box-shadow:0 0 0 2px var(--gold-hi)}
.f label{font-family:var(--font-data)}
.form,.rel__i{border-radius:0}
.rel__i:hover{transform:none;border-color:var(--ink);background:var(--paper-2)}
.svcnav{background:var(--paper-2)}
.svcnav__i{font-family:var(--font-body);font-weight:500}
.svcnav__i.is-on{border-bottom-color:var(--gold-hi)}

/* ═══════════ PRELOADER ═══════════ */
.ldr__bar i{background:var(--gold-hi)}
.ldr__tag{font-family:var(--font-data);letter-spacing:.24em}
.ldr__meta{color:var(--gold-hi);font-family:var(--font-data)}

/* ═══════════ FOOTER ═══════════ */
.ftr{background:var(--ink-3)}
.ftr__col h4{font-family:var(--font-data);color:var(--gold-hi)}
.flink{font-family:var(--font-body)}
.flink::after{background:var(--gold-hi)}
.ftr__her{font-family:var(--font-data);color:var(--gold-hi)}
.ftr__soc a{border-radius:0}
.ftr__soc a:hover{background:var(--gold-hi);border-color:var(--gold-hi);transform:none}
.ftr__bot{font-family:var(--font-data)}
.sbar a.q{background:var(--gold-hi);color:var(--ink)}

/* ---- collage / figures ---- */
.collage figure,.fig{border-radius:0}
.collage__tag,.fig figcaption{background:var(--gold-hi);color:var(--ink)}
.sig__i{background:var(--ink);color:var(--gold-hi);border-radius:0}
.sig:hover .sig__i{transform:none}
.refs h3{font-family:var(--font-data);color:var(--gold-text);border-bottom-color:var(--ink)}
.prose p{font-size:var(--body);line-height:1.62}
.lead{line-height:1.5}

/* ═══════════════════════════════════════════════════════════════
   HERO + CONDENSED REFINEMENT
   ═══════════════════════════════════════════════════════════════ */

/* --- force the true condensed axis on the Archivo variable font --- */
h1,h2,h3,h4,.sec-head h2,.phero h1,.fq__q,.tl__num{
  font-stretch:74%;font-variation-settings:'wdth' 74,'wght' 700}
.hero h1{font-stretch:68%;font-variation-settings:'wdth' 68,'wght' 700}
.tl__num,.big{font-stretch:66%;font-variation-settings:'wdth' 66,'wght' 700}
.dlink{font-stretch:74%;font-variation-settings:'wdth' 74,'wght' 600}
.pcard__q{font-stretch:80%;font-variation-settings:'wdth' 80,'wght' 500}

/* --- hero geometry: photo column clears the data strip --- */
.hero{--strip:88px}
.hero__fig{position:absolute;right:0;top:0;bottom:var(--strip);left:auto;
  width:clamp(380px,44vw,760px);max-width:none;aspect-ratio:auto;z-index:1}
.hero__im{position:absolute;inset:0;overflow:hidden}
.hero__im img{width:100%;height:100%;object-fit:cover;object-position:center 26%;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.25) 26%,#000 62%);
  mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.25) 26%,#000 62%);
  -webkit-mask-composite:source-over;mask-composite:add}

/* the darkening veil has to fade out on the left too, or it draws a hard seam */
.hero__im::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(7,18,31,.34) 0%,rgba(7,18,31,0) 38%,rgba(7,18,31,.58) 100%);
  -webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.25) 26%,#000 62%);
  mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.25) 26%,#000 62%)}

/* --- gold data tile: flush into the corner where photo meets strip --- */
.hero__stat{position:absolute;left:auto;right:0;bottom:0;top:auto;
  background:var(--gold-hi);color:var(--ink);border-left:0;box-shadow:none;
  padding:22px 30px 20px;min-width:clamp(230px,19vw,290px)}
.hero__stat b{color:var(--ink);font-size:clamp(36px,3.1vw,46px);letter-spacing:-.045em}
.hero__stat b i{color:var(--ink);opacity:.62}
.hero__stat>span{color:rgba(12,27,46,.72)}
.hero__stat small{color:var(--ink);opacity:.82;border-top-color:rgba(12,27,46,.24)}

/* --- caption bookends it at the top right --- */
.hero__cap{position:absolute;left:auto;right:0;top:calc(var(--hdr) + 22px);bottom:auto;
  background:var(--ink-3);color:#fff;padding:9px 16px;border-left:2px solid var(--gold-hi)}

/* --- copy column must never run under the photograph --- */
.hero__copy{max-width:min(100%,calc(100vw - 44vw - var(--pad) * 2 - 40px))}
.hero__sub{max-width:36ch}

@media(max-width:1024px){
  .hero{--strip:0px;min-height:auto}
  .hero__copy{max-width:none}
  .hero__fig{position:relative;width:100%;height:min(52vh,430px);bottom:auto}
  .hero__im img,.hero__im::after{-webkit-mask-image:none;mask-image:none}
  .hero__im img{object-position:center 30%}
  .hero__stat{right:0;left:auto;bottom:0}
  .hero__cap{top:16px;right:0}
  .hero__in{padding-block:clamp(40px,7vw,70px) clamp(30px,4vw,54px)}
}
@media(max-width:560px){
  .hero__stat{padding:16px 20px 14px;min-width:0;width:100%}
  .hero__stat small{white-space:normal}
}

/* ═══════════ HERO FIT: one screen, two headline lines ═══════════ */
.hero__in{padding-top:clamp(18px,2.6vw,42px);padding-bottom:clamp(40px,4.4vw,72px)}
.hero h1{font-size:clamp(44px,7vw,112px);line-height:.9;letter-spacing:-.038em;
  font-stretch:64%;font-variation-settings:'wdth' 64,'wght' 700;
  margin-bottom:clamp(22px,2.4vw,36px)}
.hero__eye{margin-bottom:clamp(16px,1.8vw,26px)}
.hero__sub{font-size:clamp(17px,1.35vw,21px);line-height:1.42;max-width:38ch}
.hero__her{margin-top:clamp(14px,1.4vw,20px)}
.hero__cta{margin-top:clamp(26px,2.6vw,38px)}
.hero__copy{max-width:min(100%,calc(100vw - 44vw - var(--pad) * 2 - 24px))}

/* caption is redundant next to the gold tile: keep it for screen readers only */
.hero__cap{position:absolute!important;width:1px;height:1px;padding:0;margin:0;
  overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* strip: tighter, so the whole hero lands inside one screen */
.hero__strip li{padding:20px 0 18px}
.hero__strip b{font-size:19px}

/* ═══════════════════════════════════════════════════════════════
   COMPOSITION PASS
   ═══════════════════════════════════════════════════════════════ */

/* --- 1. section headlines: editorial scale, not billboard scale --- */
.sec-head h2,.sec h2,.fcta h2,.split h2,.ind-sec h2{
  font-size:clamp(31px,4.3vw,63px);line-height:1.0;letter-spacing:-.024em;
  max-width:19ch;text-wrap:balance}
.fcta h2{max-width:22ch;margin-inline:auto}
.sec-head{max-width:none}
.sec-head p,.split .sec-head p{font-size:clamp(16.5px,1.25vw,19px);line-height:1.5;
  max-width:46ch;color:var(--muted);margin-top:clamp(18px,1.8vw,26px)}
.sec h3{letter-spacing:-.018em}

/* --- 2. the five service cards fill both rows: 3 up, then 2 wide --- */
.xg{gap:16px}
@media(min-width:1025px){
  .xg{grid-template-columns:repeat(6,1fr)}
  .xg>.xc{grid-column:span 2}
  .xg>.xc:nth-child(4),.xg>.xc:nth-child(5){grid-column:span 3;height:clamp(300px,25vw,380px)}
}
@media(max-width:1024px) and (min-width:721px){
  .xg{grid-template-columns:repeat(2,1fr)}
  .xg>.xc{grid-column:span 1}
  .xg>.xc:nth-child(5){grid-column:span 2;height:340px}
}
@media(max-width:1024px) and (min-width:701px){
  .xg>.xc{height:440px}
}
@media(max-width:700px){
  .xg{grid-template-columns:1fr}
  .xg>.xc,.xg>.xc:nth-child(4),.xg>.xc:nth-child(5){grid-column:span 1;height:auto;min-height:0}
  .xc__im{position:relative;height:clamp(190px,52vw,260px)}
  .xc__b{position:relative;padding:24px 22px 26px}
  .xc__r{max-height:none;opacity:1;transform:none}
  .xc__el{opacity:1;transform:none}
  .xc h3{max-width:none}
}

/* the reveal panel is a <span>: max-height only collapses block boxes */
.xc__r{display:block}
.xc__b{padding:30px 28px}
.xc h3{max-width:14ch}
.xc:hover .xc__r,.xc:focus-visible .xc__r{max-height:360px;opacity:1;transform:none}

/* --- 3. the founder mark: .sig span was overriding it --- */
.sig .sig__i{display:grid;place-items:center;font-family:var(--font-display);
  font-size:17px;font-stretch:88%;font-variation-settings:'wdth' 88,'wght' 700;
  letter-spacing:.04em;margin-top:0;line-height:1;color:var(--gold-hi)}

/* --- 4. the about column: photographs track the text instead of floating --- */
.split{align-items:start}
.split>.rv:first-child,.split>div:first-child{padding-top:2px}
.collage{position:sticky;top:calc(var(--hdr) + 36px)}
@media(max-width:900px){.collage{position:static}}

/* --- 5. breathing room without dead room --- */
.sec{padding-block:clamp(72px,8.4vw,136px)}
.sec-head{margin-bottom:clamp(38px,4vw,62px)}
.xg{margin-top:0}
.chap{margin-bottom:clamp(30px,3.2vw,50px)}

/* ═══════════ INTERIOR HERO: flush left, editorial scale ═══════════ */
.phero__in,.phero--img .phero__in{max-width:var(--container);margin-inline:auto;
  padding-inline:var(--pad)}
.phero h1{font-size:clamp(31px,4.3vw,63px);line-height:1.0;letter-spacing:-.024em;
  max-width:17ch;margin:0 0 clamp(20px,2.2vw,32px)}
.phero__lead{max-width:44ch}
.phero--img .phero__in>*{max-width:min(100%,calc(100% - 42% - 40px))}
.phero__ph{width:clamp(320px,42vw,700px)}
.phero__ph img{-webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.25) 24%,#000 60%);
  mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.25) 24%,#000 60%)}
.phero__ph::after{background:linear-gradient(180deg,rgba(7,18,31,.28) 0%,rgba(7,18,31,0) 46%,rgba(7,18,31,.5) 100%);
  -webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.25) 24%,#000 60%);
  mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.25) 24%,#000 60%)}
.crumbs{margin-bottom:clamp(20px,2.4vw,34px)}

@media(max-width:900px){
  .phero--img .phero__in>*{max-width:100%}
  .phero__ph{width:100%;opacity:.3}
  .phero__ph img,.phero__ph::after{-webkit-mask-image:none;mask-image:none}
}

/* the hero copy is only constrained where the photograph actually sits beside it */
.hero__copy{max-width:none}
@media(min-width:1025px){
  .hero__copy{max-width:min(100%,calc(100vw - clamp(380px,44vw,760px) - var(--pad) * 2 - 24px))}
}

/* these card parts are spans: they need a block box for height to apply at all */
.xc__im,.xc__b,.xc__r,.xc__p,.xc__n{display:block}
.xc__go{display:inline-flex}

/* ═══════════ INDUSTRY ROWS: fill the width ═══════════ */
.icard{grid-template-columns:38% 1fr}
.icard__body{padding:24px clamp(28px,3vw,52px) 24px clamp(26px,2.6vw,40px)}
.icard__lead{max-width:none;padding-right:clamp(0px,6vw,110px)}
.icard__more ul{max-width:none}
@media(min-width:1100px){
  .icard__more ul{grid-template-columns:1fr 1fr;gap:9px clamp(24px,3vw,48px)}
}
.icard__t{letter-spacing:-.02em}

/* ═══════════ HEADER SCRIM: nav stays legible over bright photography ═══════════ */
.hdr{background:transparent;isolation:isolate}
.hdr::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,rgba(7,18,31,.80) 0%,rgba(7,18,31,.42) 58%,rgba(7,18,31,0) 100%);
  transition:opacity .45s var(--e)}
.hdr.solid::after{opacity:0}
.hdr__tel{color:var(--gold-hi);text-shadow:0 1px 10px rgba(7,18,31,.7)}
.hdr.solid .hdr__tel{text-shadow:none}

/* ═══════════════════════════════════════════════════════════════════════
   THEME C: STOREY. Calm, light, numbered, the buildings are the page.
   ═══════════════════════════════════════════════════════════════════════ */
:root{
  --ink:#111827; --ink-2:#1B2436; --ink-3:#0B1220;
  --paper:#F6F5F1; --paper-2:#EDEBE5; --white:#FFFFFF;
  --rule:#E3E0D8; --rule-d:rgba(255,255,255,.14);
  --muted:#6B6E76; --muted-d:#A9B0BC;
  --gold:#C9962F; --gold-hi:#D9A63C; --gold-text:#8A6520; --gold-wash:#F5EEDC;
  --brass:var(--gold-hi); --brass-text:var(--gold-text); --brass-wash:var(--gold-wash);
  --concrete:var(--paper-2); --grad-dark:var(--ink); --grad-gold:var(--gold-hi);
  --font-display:'Bricolage Grotesque','Figtree',-apple-system,sans-serif;
  --font-body:'Bricolage Grotesque','Figtree',-apple-system,sans-serif;
  --font-data:'Bricolage Grotesque','Figtree',-apple-system,sans-serif;
  --r1:10px; --r2:16px; --container:1440px; --pad:48px;
  --d0:clamp(42px,6.4vw,92px); --d1:clamp(32px,3.9vw,56px); --d2:clamp(26px,2.8vw,40px); --d3:clamp(20px,1.7vw,26px);
  --lead:clamp(17px,1.25vw,20px);
}
html{background:var(--white)}
body{background:var(--white);color:var(--ink);font-family:var(--font-body);font-optical-sizing:auto}
::selection{background:var(--gold-wash);color:var(--ink)}

/* type: normal width, medium weight, quiet */
h1,h2,h3,h4,.sec-head h2,.sec h2,.fcta h2,.split h2,.ind-sec h2,.phero h1,.hero h1,.fq__q,.tl__num,.dlink,.pcard__q,.xc h3,.pj h3,.icard__t,.tl__it h3,.panel__t{
  font-family:var(--font-display);font-weight:500;font-stretch:100%;font-variation-settings:'wdth' 100,'wght' 500;
  letter-spacing:-.022em;line-height:1.02;text-wrap:balance}
.hero h1{font-size:var(--d0);line-height:.98;letter-spacing:-.03em;color:var(--ink);max-width:14ch;margin-bottom:clamp(22px,2.4vw,34px)}
.hero h1 em,.phero h1 em{color:var(--ink);font-style:normal}
.sec-head h2,.sec h2,.split h2,.ind-sec h2,.phero h1{font-size:var(--d1);max-width:16ch}
.fcta h2{font-size:clamp(34px,4.6vw,66px);max-width:20ch;color:#fff}
h3{font-weight:500}
p,li,dd,dt,label,input,select,textarea,button{font-family:var(--font-body)}
.sec-head p,.split .sec-head p,.hero__sub,.phero__lead,.fcta__p{font-size:var(--lead);line-height:1.5;color:var(--muted);font-weight:400}

/* every mono label becomes a small Bricolage cap */
.hero__eye,.phero__eye,.chap__eye,.chap__el,.hero__her,.hero__cap,.xc__n,.xc__el,.pj__el,.pj__meta dt,.pj__f,.pj__tag,
.icard__n,.icard__proj,.sig span,.trust__n em,.facts dt,.tl__eye,.panel__dl dt,.f label,.ftr__col h4,.ftr__her,.ftr__bot,
.crumbs ol,.hdr__tel,.ldr__tag,.ldr__meta,.hero__strip span,.collage__tag,.fig figcaption,.refs h3,.lrow__el,.svcnav__i,.filt__b{
  font-family:var(--font-body);font-weight:500;letter-spacing:.06em;text-transform:uppercase;font-size:11.5px}
.hero__eye,.phero__eye,.chap__eye{letter-spacing:.1em;color:var(--muted)}
.hero__eye i,.phero__eye i{background:var(--ink);width:22px;height:1px}
.chap__tick{background:var(--gold-hi);width:7px;height:7px;border-radius:50%}
.chap__line{background:var(--rule)}
.chap__el{display:none}

/* section numbering, the Storey device */
main{counter-reset:sec}
section.sec{counter-increment:sec;padding-block:clamp(72px,8vw,128px);position:relative}
section.sec>.wrap>.chap{position:relative;padding-left:0;margin-bottom:clamp(34px,3.6vw,56px)}
section.sec>.wrap>.chap::before{content:counter(sec,decimal-leading-zero);font-family:var(--font-display);
  font-weight:500;font-size:13px;letter-spacing:.08em;color:var(--ink);margin-right:14px;
  min-width:28px;display:inline-block}
.sec-num{position:absolute;left:0;top:-.06em;font-family:var(--font-display);font-weight:500;
  font-size:clamp(84px,11vw,168px);line-height:1;color:var(--paper-2);letter-spacing:-.05em;pointer-events:none;user-select:none;z-index:0}
.sec-head{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(28px,4vw,80px);align-items:start;max-width:none;margin-bottom:clamp(40px,4.6vw,72px)}
.sec-head h2{margin:0}
.sec-head p{margin:.35em 0 0;max-width:52ch}
@media(max-width:900px){.sec-head{grid-template-columns:1fr;gap:16px}}

/* backgrounds: light, alternating. Dark only for the closing CTA and footer */
.band-paper{background:var(--paper)!important}
.band-white{background:var(--white)!important}
.sec.dark:not(.fcta),.ind-sec,.dark#work,section#work{background:var(--paper)!important;color:var(--ink)}
.sec.dark:not(.fcta) h2,.sec.dark:not(.fcta) h3,.sec.dark:not(.fcta) p,.sec.dark:not(.fcta) .sec-head p{color:inherit}
.sec.dark:not(.fcta) .sec-head p{color:var(--muted)}
.fcta,.ftr{background:var(--ink)!important}
.fcta__glow,.fcta__grid,.fcta__ph{display:none}
.fcta__p{color:var(--muted-d)}
.fcta__m{color:var(--muted-d);font-size:12.5px;letter-spacing:.04em}

/* header: white, hairline, dark type */
.hdr{background:rgba(255,255,255,.86)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--rule)}
.hdr::after{display:none}
.hdr.solid{background:rgba(255,255,255,.94)!important;border-bottom-color:var(--rule)}
.nlink{color:var(--ink);font-weight:500;font-size:14.5px;letter-spacing:0}
.nlink::after{background:var(--ink);height:1px}
.hdr__tel{color:var(--ink);text-shadow:none;letter-spacing:.02em;text-transform:none;font-size:13.5px}
.hdr__tel:hover{color:var(--gold-text)}
.burger span,.burger span::before,.burger span::after{background:var(--ink)}
.logo img{filter:none}

/* buttons: pills, gold primary */
.btn{border-radius:999px;padding:16px 26px;min-height:52px;font-family:var(--font-body);font-weight:600;font-size:14.5px;letter-spacing:0}
.btn--p,.dark .btn--p,.hdr .btn--p{background:var(--gold-hi);color:var(--ink);border-color:var(--gold-hi)}
.btn--p::before,.dark .btn--p::before,.hdr .btn--p::before{background:var(--gold-hi)}
.btn--p::after,.dark .btn--p::after,.hdr .btn--p::after{background:var(--ink)}
.btn--p:hover,.dark .btn--p:hover,.hdr .btn--p:hover{color:#fff}
.btn--g{border:1px solid var(--ink);color:var(--ink);background:transparent}
.btn--g:hover{background:var(--ink);color:#fff}
.dark .btn--g,.fcta .btn--g{border-color:rgba(255,255,255,.4);color:#fff}
.dark .btn--g:hover,.fcta .btn--g:hover{background:#fff;color:var(--ink);border-color:#fff}
.hdr .btn{padding:12px 20px;min-height:42px;font-size:13.5px}
.tlink{color:var(--ink);font-weight:600}
.tlink::after{background:var(--ink)}

/* ─── hero: light, headline then a wide photograph ─── */
.hero{background:var(--white)!important;color:var(--ink);min-height:0;--strip:0px;display:block;overflow:visible;
  padding-top:calc(var(--hdr) + clamp(36px,5vw,84px))}
.hero__bg,.hero__grid,.hero::before,.hdim,.hero__strip{display:none!important}
.hero__in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,4vw,80px);align-items:end;
  padding:0 var(--pad) clamp(30px,3.4vw,52px);max-width:var(--container);margin-inline:auto}
.hero__copy{max-width:none!important}
.hero__eye{color:var(--muted);margin-bottom:clamp(18px,2vw,28px)}
.hero__sub{color:var(--muted);max-width:44ch;font-size:var(--lead);line-height:1.5}
.hero__her{color:var(--muted);text-transform:none;letter-spacing:0;font-size:13px;font-weight:400;margin-top:14px}
.hero__cta{margin-top:clamp(22px,2.4vw,34px)}
.hero__fig{position:relative!important;inset:auto!important;width:auto!important;max-width:none;height:clamp(300px,52vw,640px);
  margin:0 auto!important;max-width:var(--container);padding:0 var(--pad);pointer-events:auto;aspect-ratio:auto;bottom:auto!important}
.hero__im{position:absolute;inset:0 var(--pad);overflow:hidden;border-radius:var(--r2);clip-path:none!important}
.hero__im img{-webkit-mask-image:none!important;mask-image:none!important;object-position:center 30%;width:100%;height:100%;object-fit:cover;
  transform:scale(1.02);transition:transform 1.6s var(--e)}
.hero__fig:hover .hero__im img{transform:scale(1.05)}
.hero__im::after{content:"";position:absolute;inset:0;-webkit-mask-image:none;mask-image:none;
  background:linear-gradient(180deg,rgba(17,24,39,0) 55%,rgba(17,24,39,.42) 100%)}
.hero__stat{position:absolute;left:calc(var(--pad) + 22px);right:auto;bottom:22px;top:auto;
  background:rgba(255,255,255,.92);backdrop-filter:blur(8px);color:var(--ink);border-radius:var(--r1);
  padding:16px 20px 14px;min-width:0;box-shadow:0 10px 30px rgba(0,0,0,.14)}
.hero__stat b{color:var(--ink);font-family:var(--font-display);font-weight:500;font-size:clamp(30px,2.6vw,40px);letter-spacing:-.03em}
.hero__stat b i{color:var(--muted);opacity:1;font-size:.4em;font-weight:500}
.hero__stat>span{color:var(--muted);font-size:11px}
.hero__stat small{color:var(--ink);opacity:1;border-top-color:var(--rule);font-size:12.5px;text-transform:none;letter-spacing:0;font-weight:400}
.hero__cap{position:absolute!important;right:calc(var(--pad) + 22px);left:auto;bottom:22px;top:auto;width:auto;height:auto;clip-path:none;
  overflow:visible;background:rgba(17,24,39,.72);color:#fff;padding:8px 12px;border:0;border-radius:999px;font-size:11px;letter-spacing:.06em}
.js .hero__stat{opacity:0;transform:translateY(14px)}
.js .is-lit .hero__stat{opacity:1;transform:none}
.hero .mask>span{color:inherit}
@media(max-width:1024px){.hero__in{grid-template-columns:1fr}.hero__fig{height:min(56vw,420px)}}
@media(max-width:560px){.hero__cap{display:none}.hero__stat{left:calc(var(--pad) + 12px);bottom:12px;padding:12px 14px 10px}}

/* ─── firm facts: the Kononenko table ─── */
.facts{background:var(--white);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:clamp(28px,3.4vw,48px) 0}
.facts__g{display:grid;grid-template-columns:repeat(4,1fr);gap:22px clamp(20px,3vw,48px);margin:0}
.facts__g>div{display:grid;grid-template-columns:118px 1fr;gap:12px;align-items:baseline;padding:10px 0;border-top:1px solid var(--rule)}
.facts dt{color:var(--muted);margin:0}
.facts dd{margin:0;font-size:15px;color:var(--ink);line-height:1.4}
@media(max-width:1100px){.facts__g{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.facts__g{grid-template-columns:1fr}}

/* ─── about ─── */
.prose p{color:var(--muted);font-size:16px;line-height:1.7}
.prose p strong{color:var(--ink);font-weight:600}
.collage figure,.fig{border-radius:var(--r1);overflow:hidden}
.collage__tag,.fig figcaption{background:rgba(255,255,255,.92);color:var(--ink);border-radius:999px;margin:12px;padding:7px 12px;
  bottom:0;left:0}
.sig .sig__i{background:var(--ink);color:#fff;border-radius:50%;font-family:var(--font-display);font-weight:500;font-stretch:100%;font-variation-settings:'wdth' 100,'wght' 500;font-size:15px;letter-spacing:.02em}
.sig b{font-weight:600}
.sig span{color:var(--muted);text-transform:none;letter-spacing:0;font-size:13px;font-weight:400}

/* ─── service cards: photo cards, rounded, quiet border, expand on hover ─── */
.xc{border-radius:var(--r2);border:1px solid var(--rule);background:var(--ink)}
.xc:hover{transform:translateY(-6px);box-shadow:0 26px 60px rgba(17,24,39,.16);border-color:transparent}
.xc__im img{filter:saturate(.9) brightness(.72)}
.xc:hover .xc__im img{filter:saturate(1) brightness(.6)}
.xc__im::after{background:linear-gradient(180deg,rgba(17,24,39,0) 30%,rgba(17,24,39,.7) 100%)}
.xc h3{font-size:clamp(22px,1.9vw,30px);letter-spacing:-.02em;color:#fff}
.xc__n{color:rgba(255,255,255,.7)}
.xc__el{background:rgba(255,255,255,.92);color:var(--ink);border-radius:999px;padding:6px 11px}
.xc__p{color:rgba(255,255,255,.82)}
.xc__l{border-top-color:rgba(255,255,255,.2)}
.xc__l li::before{background:var(--gold-hi)}
.xc__go{color:#fff;font-weight:600;text-transform:none;letter-spacing:0;font-size:14px}

/* ─── project grid on home and on /projects ─── */
.pjg{gap:20px}
.pjg--home{margin-top:0}
.pj{border-radius:var(--r2);border:1px solid var(--rule);background:var(--white)}
.pj:hover{transform:translateY(-6px);box-shadow:0 22px 52px rgba(17,24,39,.12);border-color:var(--rule)}
.pj__ph{aspect-ratio:4/3}
.pj__tag{background:rgba(255,255,255,.92);color:var(--ink);border-radius:999px;margin:12px;padding:6px 11px;bottom:0;left:0}
.pj__el{color:var(--muted)}
.pj h3{font-size:22px;letter-spacing:-.02em;margin:6px 0 2px}
.pj__loc{color:var(--muted)}
.pj__meta{border-top-color:var(--rule)}
.pj__meta dt{color:var(--muted);text-transform:none;letter-spacing:0;font-weight:400;font-size:13px}
.pj__meta dd{font-size:13.5px}
.pj__f{border-top:1px solid var(--rule);padding-top:12px;font-size:11px;color:var(--muted)}
.pj__st{border-radius:999px;padding:5px 10px}
.pj__st--done{background:var(--paper-2);color:var(--ink)}
.pj__st--wip{background:var(--gold-wash);color:var(--gold-text)}
.sec-more{margin-top:clamp(28px,3vw,44px)}
.filt__b{border-radius:999px;text-transform:none;letter-spacing:0;font-size:14px;font-weight:500;border:1px solid var(--rule);background:var(--white)}
.filt__b.is-on{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ─── why us feature list ─── */
.fx{border-top-color:var(--rule);padding-top:26px}
.fx h3{font-size:24px}
.fx p{color:var(--muted)}
.fx__n,.fx b{color:var(--ink)}

/* ─── industry rows: light ─── */
.ind-sec{color:var(--ink)}
.icard{background:var(--white);border:1px solid var(--rule);border-radius:var(--r2);overflow:hidden}
.icard:hover,.ind:not(:hover):not(:focus-within) .icard:first-child{border-color:var(--rule);box-shadow:0 22px 52px rgba(17,24,39,.10)}
.icard__ph::after{background:linear-gradient(90deg,rgba(255,255,255,0) 70%,rgba(255,255,255,1) 100%)}
.icard__ph img{filter:none}
.ind:hover .icard:not(:hover):not(:focus-within) .icard__ph img{filter:saturate(.8) brightness(.9)}
.icard__n{color:var(--muted)}
.icard__t{color:var(--ink);font-size:clamp(22px,2vw,30px)}
.icard__lead{color:var(--muted)}
.icard__more li{color:var(--ink)}
.icard__more ul{border-top-color:var(--rule)}
.icard__more li::before{background:var(--gold-hi)}
.icard__ar{border-color:var(--rule);color:var(--ink);border-radius:50%}
.icard:hover .icard__ar{background:var(--ink);color:#fff;border-color:var(--ink)}
.icard__proj{background:rgba(255,255,255,.92);color:var(--ink);border-radius:999px;margin:12px}

/* ─── consultants / references ─── */
.refs h3{color:var(--ink);border-bottom:1px solid var(--ink);text-transform:uppercase;letter-spacing:.08em;font-size:11.5px;font-weight:600}
.refs li{color:var(--ink)}

/* ─── interior hero: light too ─── */
.phero{background:var(--white)!important;color:var(--ink);padding:calc(var(--hdr) + clamp(36px,5vw,84px)) 0 clamp(40px,5vw,72px)}
.phero__grid{display:none}
.phero h1{color:var(--ink);font-size:var(--d1);max-width:18ch}
.phero__eye{color:var(--muted)}
.phero__lead{color:var(--muted)}
.crumbs a,.crumbs span{color:var(--muted)}
.crumbs ol{text-transform:none;letter-spacing:0;font-size:13px}
.phero__ph{position:relative;width:auto;inset:auto;height:clamp(260px,42vw,520px);max-width:var(--container);margin:clamp(30px,3.4vw,52px) auto 0;padding:0 var(--pad)}
.phero__ph img{-webkit-mask-image:none;mask-image:none;border-radius:var(--r2);object-position:center 30%}
.phero__ph::after{display:none}
.phero--img .phero__in>*{max-width:none}
.phero__in{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,4vw,80px);align-items:end}
.phero__in>.crumbs,.phero__in>.phero__eye,.phero__in>h1{grid-column:1}
.phero__in>.phero__lead,.phero__in>.phero__cta{grid-column:2}
.phero__in>.phero__lead{align-self:end}
@media(max-width:1024px){.phero__in{grid-template-columns:1fr}.phero__in>*{grid-column:1!important}}
.svcnav{background:var(--white);border-bottom:1px solid var(--rule)}
.svcnav__i{text-transform:none;letter-spacing:0;font-size:14px;color:var(--muted)}
.svcnav__i.is-on{color:var(--ink);border-bottom-color:var(--ink);background:transparent}

/* ─── panels, tables, faq, form ─── */
.panel{background:var(--paper)!important;color:var(--ink);border:1px solid var(--rule);border-top:1px solid var(--rule);border-radius:var(--r2)}
.panel__t,.panel h3,.panel p,.panel dd{color:var(--ink)}
.panel__dl dt{color:var(--muted)}
.panel__dl div,.panel__dl>div{border-color:var(--rule)}
.tbl th{background:var(--ink);color:#fff;text-transform:uppercase;letter-spacing:.06em;font-size:11.5px}
.tbl{border-radius:var(--r1);overflow:hidden}
.fq__q{font-size:clamp(18px,1.6vw,23px)}
.fq__q:hover,.fq__q[aria-expanded="true"]{color:var(--gold-text)}
.form,.rel__i,.f input,.f select,.f textarea{border-radius:var(--r1)}
.f input:focus,.f select:focus,.f textarea:focus{box-shadow:0 0 0 2px var(--ink)}
.f label{color:var(--muted)}
.form .btn--p{border-radius:999px}
.rel__i:hover{border-color:var(--ink)}

/* ─── timeline (about) ─── */
.tl__card{border-radius:var(--r2)}
.tl__num{color:var(--ink);font-size:clamp(48px,6vw,80px);letter-spacing:-.04em}
.tl__eye{color:var(--muted)}
#tlFill{stroke:var(--gold-hi)}

/* ─── preloader ─── */
.ldr{background:var(--white)!important}
.ldr__bar{background:var(--rule)}
.ldr__bar i{background:var(--ink)}
.ldr__tag,.ldr__meta{color:var(--muted)}
.ldr img{filter:none}

/* ─── footer ─── */
.ftr{background:var(--ink)!important;color:var(--muted-d)}
.ftr__col h4{color:#fff;font-weight:600}
.flink{color:var(--muted-d)}
.flink:hover{color:#fff}
.flink::after{background:#fff}
.ftr__her{color:var(--muted-d);text-transform:none;letter-spacing:0;font-size:13px}
.ftr__soc a{border-radius:50%;border-color:rgba(255,255,255,.2)}
.ftr__soc a:hover{background:#fff;border-color:#fff;color:var(--ink)}
.ftr__bot{text-transform:none;letter-spacing:0;font-size:12.5px}
.sbar a.q{background:var(--gold-hi);color:var(--ink)}

/* the mobile action bar */
.sbar{background:var(--ink)}

/* hero refinements */
.hero.dark .btn--g{border-color:var(--ink);color:var(--ink);background:transparent}
.hero.dark .btn--g:hover{background:var(--ink);color:#fff}
.hero.dark .btn--p{color:var(--ink)}
.hero.dark .btn--p:hover{color:#fff}
.hero__in{display:block}
.hero__copy{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,80px);align-items:end}
.hero__eye,.hero h1{grid-column:1}
.hero__sub,.hero__her,.hero__cta{grid-column:2}
.hero__sub{margin-top:0;max-width:40ch}
.hero h1{margin-bottom:0;font-variation-settings:'wdth' 100,'wght' 560;font-weight:560}
h2,h3,.sec-head h2,.sec h2,.split h2,.phero h1,.fcta h2{font-variation-settings:'wdth' 100,'wght' 540;font-weight:540}
@media(max-width:1024px){.hero__copy{grid-template-columns:1fr}.hero__sub,.hero__her,.hero__cta{grid-column:1}.hero__sub{margin-top:22px}}
.hero__copy{grid-template-rows:auto auto auto auto;align-items:start}
.hero__eye{grid-row:1;grid-column:1}
.hero h1{grid-row:2/5;grid-column:1;align-self:start;font-weight:500;font-variation-settings:'wdth' 100,'wght' 500}
.hero__sub{grid-row:2;grid-column:2;align-self:end}
.hero__her{grid-row:3;grid-column:2;margin-top:14px}
.hero__cta{grid-row:4;grid-column:2;margin-top:22px}
h2,h3,.sec-head h2,.sec h2,.split h2,.phero h1,.fcta h2{font-weight:500;font-variation-settings:'wdth' 100,'wght' 500}
@media(max-width:1024px){.hero__eye,.hero h1,.hero__sub,.hero__her,.hero__cta{grid-column:1;grid-row:auto}}
/* the project cards are always light, whatever section holds them */
.dark .pj,.sec.dark .pj{background:var(--white);color:var(--ink)}
.dark .pj h3,.dark .pj__meta dd,.sec.dark .pj h3,.sec.dark .pj__meta dd{color:var(--ink)}
.dark .pj__meta dt,.dark .pj__loc,.dark .pj__el,.dark .pj__f,.sec.dark .pj__loc,.sec.dark .pj__meta dt{color:var(--muted)}
.dark .pj__st--done,.sec.dark .pj__st--done{background:var(--paper-2);color:var(--ink)}
.dark .pj__st--wip,.sec.dark .pj__st--wip{background:var(--gold-wash);color:var(--gold-text)}
.dark .pj__meta,.dark .pj__f,.sec.dark .pj__meta,.sec.dark .pj__f{border-color:var(--rule)}
.dark .pj__tag{background:rgba(255,255,255,.92);color:var(--ink)}
.dark .pj,.sec.dark .pj{border-color:var(--rule)}
.dark .pj:hover{border-color:var(--rule)}
.sec.dark:not(.fcta) .tlink,.ind-sec .tlink,.icard__more .tlink{color:var(--ink)}
.sec.dark:not(.fcta) .tlink::after,.icard__more .tlink::after{background:var(--ink)}
.sec.dark:not(.fcta) .tlink:hover{color:var(--gold-text)}
.fcta>.wrap>.chap::before,.fcta .chap__eye{color:rgba(255,255,255,.75)}
.fcta .chap__line{background:var(--rule-d)}
/* interior hero: copy first, photograph second */
.phero{display:flex;flex-direction:column}
.phero__ph{order:2;margin-top:clamp(30px,3.6vw,56px);width:100%;box-sizing:border-box}
.phero__in{order:1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-rows:auto auto auto;gap:0 clamp(28px,4vw,80px);align-items:start}
.phero__in>.crumbs{grid-column:1/-1;grid-row:1;margin-bottom:clamp(22px,2.6vw,40px)}
.phero__in>.phero__eye{grid-column:1;grid-row:2;margin-bottom:clamp(14px,1.6vw,22px)}
.phero__in>h1{grid-column:1;grid-row:3;margin:0}
.phero__in>.phero__lead{grid-column:2;grid-row:2/4;align-self:end;margin:0 0 6px}
.phero__in>.phero__cta{grid-column:2;grid-row:4;margin-top:22px}
.phero__in>.phero__meta,.phero__in>*:nth-child(n+6){grid-column:1/-1}
@media(max-width:1024px){.phero__in{grid-template-columns:1fr}.phero__in>*{grid-column:1!important;grid-row:auto!important}.phero__in>.phero__lead{margin-top:22px}}
/* mobile gutters */
@media(max-width:720px){:root{--pad:20px}.hero__stat{width:auto;right:auto}.facts__g>div{grid-template-columns:100px 1fr}}
.phero.dark .btn--g,.dark:not(.fcta):not(.ftr) .btn--g{border-color:var(--ink);color:var(--ink);background:transparent}
.phero.dark .btn--g:hover{background:var(--ink);color:#fff}
.phero.dark .btn--p,.sec.dark:not(.fcta) .btn--p{color:var(--ink)}
.phero__ph img,.hero__im img{object-position:center 18%}
.dark:not(.fcta):not(.ftr):not(.hero):not(.phero) .btn--g{border-color:var(--ink);color:var(--ink)}

.sig__i{border-radius:50%!important}
.stat b,.kpi b{color:var(--ink)}

/* ═══════════ v3.1: navy back, photo right, dark preloader ═══════════ */
:root{
  --ink:#0E2240; --ink-2:#163256; --ink-3:#091A33;
  --paper:#F2F5F9; --paper-2:#E4EAF2; --rule:#D9E0EA;
  --muted:#5F6B7D; --muted-d:#A9B6C9;
}
body{color:var(--ink)}
.hdr{border-bottom-color:var(--rule)}
.hero__eye,.phero__eye,.chap__eye{color:#4E5F78}
.facts{background:var(--paper);border-color:var(--rule)}
.facts dt{color:#4E5F78}

/* industries section goes back to navy, cards stay light on it */
.ind-sec,section#industries{background:var(--ink)!important;color:#fff}
.ind-sec h2,.ind-sec .sec-head p,section#industries h2{color:#fff}
.ind-sec .sec-head p,section#industries .sec-head p{color:var(--muted-d)}
.ind-sec>.wrap>.chap::before,.ind-sec .chap__eye{color:rgba(255,255,255,.75)}
.ind-sec .chap__line{background:var(--rule-d)}
.ind-sec .icard{background:var(--white)}

/* why-us feature numbers and section rules pick up navy */
.fx__n,.icard__n,.xc__n,.pj__el{color:var(--gold-text)}
.tlink{color:var(--ink)}

/* ─── hero: copy left, photograph right ─── */
.hero{padding-top:calc(var(--hdr) + clamp(28px,4vw,64px));padding-bottom:clamp(28px,4vw,64px)}
.hero__in{display:grid!important;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(28px,4vw,72px);align-items:stretch;
  padding:0 var(--pad);max-width:var(--container);margin-inline:auto}
.hero__copy{display:flex!important;flex-direction:column;justify-content:center;grid-template-columns:none;gap:0}
.hero__eye,.hero h1,.hero__sub,.hero__her,.hero__cta{grid-column:auto;grid-row:auto}
.hero h1{font-size:clamp(40px,5.4vw,78px);margin-bottom:clamp(20px,2.2vw,30px);max-width:12ch}
.hero__sub{margin-top:0;max-width:42ch}
.hero__her{margin-top:14px}
.hero__cta{margin-top:clamp(22px,2.4vw,32px)}
.hero__fig{position:relative!important;grid-column:2;grid-row:1;height:auto!important;min-height:clamp(420px,58vh,680px);
  padding:0!important;margin:0!important;width:auto!important;max-width:none}
.hero__im{inset:0;border-radius:var(--r2)}
.hero__im img{object-position:center 22%}
.hero__stat{left:22px;bottom:22px}
.hero__cap{right:22px;bottom:22px}
@media(max-width:1024px){
  .hero__in{grid-template-columns:1fr;gap:26px}
  .hero__fig{grid-column:1;grid-row:2;min-height:min(58vw,440px)}
  .hero h1{max-width:none}
}

/* ─── preloader: navy, white logo, gold bar ─── */
.ldr{background:var(--ink-3)!important;color:#fff}
.ldr::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 60% 55% at 50% 45%,rgba(224,169,63,.14),rgba(224,169,63,0) 70%)}
.ldr__bar{background:rgba(255,255,255,.14)}
.ldr__bar i{background:var(--gold-hi)}
.ldr__tag,.ldr__meta{color:rgba(255,255,255,.75)}
.ldr img{filter:none}
/* the photograph is a sibling of .hero__in, so the hero itself is the grid */
.hero{display:grid!important;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(28px,4vw,72px);align-items:stretch;
  padding-inline:max(var(--pad),calc((100vw - var(--container)) / 2 + var(--pad)));min-height:0}
.hero__in{display:flex!important;grid-column:1;grid-row:1;padding:0!important;max-width:none;margin:0;align-items:center}
.hero__fig{grid-column:2;grid-row:1}
.hero__sub{margin-left:0!important;margin-right:0}
.hero__strip{display:none!important}
@media(max-width:1024px){.hero{grid-template-columns:1fr}.hero__in{grid-column:1;grid-row:1}.hero__fig{grid-column:1;grid-row:2}}
.hero__sub,.hero__her,.hero__cta,.hero h1,.hero__eye{align-self:flex-start!important}
.hero__sub{align-self:flex-start!important}
.ind-sec .icard,.ind-sec .icard *{color:var(--ink)}
.ind-sec .icard__lead,.ind-sec .icard__n{color:var(--muted)}
.ind-sec .icard__n{color:var(--gold-text)}
.ind-sec .icard__ar{color:var(--ink)}
.ind-sec .icard:hover .icard__ar{color:#fff}
section.sec.ind-sec>.wrap>.chap::before,section.sec.fcta>.wrap>.chap::before{color:rgba(255,255,255,.8)}

/* ═══════════════════════════════════════════════════════════════════════
   HOVER AND STATE AUDIT (final layer; wins by source order and specificity)
   ═══════════════════════════════════════════════════════════════════════ */

/* header links: navy at rest, gold-text on hover, never white on the white bar */
.hdr .nlink,.hdr.solid .nlink{color:var(--ink)}
.hdr .nlink:hover,.hdr .nlink:focus-visible,.hdr .nlink.active{color:var(--gold-text)}
.hdr .nlink::after{background:var(--gold-hi);height:2px}
.hdr .hdr__tel,.hdr.solid .hdr__tel{color:var(--ink)}
.hdr .hdr__tel:hover{color:var(--gold-text)}
.hdr .burger span,.hdr .burger span::before,.hdr .burger span::after{background:var(--ink)}
.hdr .burger[aria-expanded="true"] span{background:transparent}

/* primary pill: gold at rest, navy slides in, text flips to white */
.btn.btn--p,.hdr .btn.btn--p,.dark .btn.btn--p,.hero .btn.btn--p,.phero .btn.btn--p,.fcta .btn.btn--p,.form .btn.btn--p{
  color:var(--ink);background:transparent;box-shadow:none}
.btn.btn--p::before,.hdr .btn.btn--p::before,.dark .btn.btn--p::before{background:var(--gold-hi)}
.btn.btn--p::after,.hdr .btn.btn--p::after,.dark .btn.btn--p::after{background:var(--ink)}
.btn.btn--p:hover,.btn.btn--p:focus-visible,.hdr .btn.btn--p:hover,.dark .btn.btn--p:hover,.hero .btn.btn--p:hover,.fcta .btn.btn--p:hover{
  color:#fff;transform:translateY(-2px);box-shadow:0 12px 30px rgba(14,34,64,.22)}
.btn.btn--p:hover .btn__t,.btn.btn--p:hover svg{color:#fff}
/* on the navy CTA the slide-in is white, text flips to navy */
.fcta .btn.btn--p::after{background:#fff}
.fcta .btn.btn--p:hover{color:var(--ink)}
.fcta .btn.btn--p:hover .btn__t,.fcta .btn.btn--p:hover svg{color:var(--ink)}

/* ghost pill on light surfaces: navy outline, navy fills, text white */
.btn.btn--g,.hero .btn.btn--g,.phero .btn.btn--g,.sec .btn.btn--g{color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:transparent}
.btn.btn--g::after,.hero .btn.btn--g::after,.phero .btn.btn--g::after{background:var(--ink)}
.btn.btn--g:hover,.btn.btn--g:focus-visible,.hero .btn.btn--g:hover,.phero .btn.btn--g:hover{color:#fff;transform:translateY(-2px)}
.btn.btn--g:hover .btn__t,.btn.btn--g:hover svg{color:#fff}
/* ghost pill on navy surfaces: white outline, white fills, text navy */
.fcta .btn.btn--g,.ftr .btn.btn--g,.drawer .btn.btn--g{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.fcta .btn.btn--g::after,.ftr .btn.btn--g::after,.drawer .btn.btn--g::after{background:#fff}
.fcta .btn.btn--g:hover,.ftr .btn.btn--g:hover,.drawer .btn.btn--g:hover{color:var(--ink)}
.fcta .btn.btn--g:hover .btn__t,.fcta .btn.btn--g:hover svg{color:var(--ink)}
/* secondary (solid outline) */
.btn.btn--s{color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn.btn--s::after{background:var(--ink)}
.btn.btn--s:hover{color:#fff}
/* the sheen must never wash the label out */
.btn__sheen{background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.28),rgba(255,255,255,0))}
.btn .btn__t,.btn svg{transition:color .25s var(--e)}

/* text links */
.tlink,.sec .tlink,.dark:not(.fcta) .tlink{color:var(--ink)}
.tlink:hover{color:var(--gold-text)}
.fcta .tlink,.ftr .tlink{color:#fff}
.fcta .tlink:hover,.ftr .tlink:hover{color:var(--gold-hi)}

/* drawer (mobile menu) stays navy with white links */
.drawer__p{background:var(--ink-3)}
.dlink{color:#fff;font-weight:500}
.dlink:hover{color:var(--gold-hi)}
.drawer__c a{color:var(--muted-d);font-family:var(--font-body);text-transform:none;letter-spacing:0;font-size:14px}
.drawer__c a:hover{color:#fff}

/* footer */
.flink:hover{color:#fff}
.ftr__soc a:hover{background:var(--gold-hi);border-color:var(--gold-hi)}
.ftr__soc a:hover svg{color:var(--ink);fill:var(--ink)}
.ftr a{color:var(--muted-d)}
.ftr a:hover{color:#fff}
.ftr__bot a{color:var(--muted-d);text-decoration:underline;text-underline-offset:3px}

/* project filter, service sub-nav, FAQ, form controls */
.filt__b:hover{background:var(--paper-2);color:var(--ink);border-color:var(--rule);transform:none}
.filt__b.is-on:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.svcnav__i:hover{background:var(--paper);color:var(--ink)}
.fq__q{color:var(--ink)}
.fq__q:hover,.fq__q[aria-expanded="true"]{color:var(--gold-text)}
.fq__q svg{stroke:currentColor}
.f input,.f select,.f textarea{background:var(--white);color:var(--ink);border:1px solid var(--rule)}
.f input:hover,.f select:hover,.f textarea:hover{border-color:var(--ink)}
.f input::placeholder,.f textarea::placeholder{color:#9AA3B2}
.f label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11.5px;font-weight:500}

/* cards: keep the lift, keep a visible border */
.pj:hover,.xc:hover,.icard:hover,.rel__i:hover{border-color:var(--rule)}
.rel__i:hover{background:var(--paper)}
.rel__i,.rel__i *{color:var(--ink)}

/* focus rings for keyboard users, everywhere */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold-hi);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:#fff;padding:10px 14px;border-radius:999px;z-index:999}
.skip:focus{left:12px}

/* mobile action bar */
.sbar{background:var(--ink-3)}
.sbar a{color:#fff}
.sbar a.q{background:var(--gold-hi);color:var(--ink)}
.sbar a:active{background:var(--ink-2)}

/* preloader: nothing from the light theme leaks in */
.ldr,.ldr *{color:#fff}
.ldr__tag,.ldr__meta{color:rgba(255,255,255,.75)}

/* no stray dark-theme colours on light sections */
.sec:not(.fcta) .sec-head p,.sec:not(.fcta) .prose p,.sec:not(.fcta) .fx p,.sec:not(.fcta) .lead{color:var(--muted)}
.sec:not(.fcta) h2,.sec:not(.fcta) h3,.sec:not(.fcta) h4{color:var(--ink)}
.ind-sec h2,.ind-sec .sec-head h2{color:#fff}
.ind-sec .sec-head p{color:var(--muted-d)}
.ind-sec .icard h3,.ind-sec .icard .icard__t{color:var(--ink)}

/* 404 page */
.p404,.nf{background:var(--white);color:var(--ink)}
/* service cards sit on photographs: their text is always white */
.sec .xc h3,.sec .xc .xc__p,.sec .xc .xc__l li,.sec .xc .xc__go,.xc__b,.xc__b *{color:#fff}
.sec .xc .xc__n{color:rgba(255,255,255,.72)}
.sec .xc .xc__el{color:var(--ink)}
.ftr__soc a:hover{color:var(--ink)}
.hdr .burger[aria-expanded="true"] span::before,.hdr .burger[aria-expanded="true"] span::after{background:var(--ink)!important}
.hdr .burger span::before,.hdr .burger span::after,.hdr .burger span{background:var(--ink)}
.hdr .burger[aria-expanded="true"] span{background:transparent!important}

/* ═══════════ services process grid: light cells, navy on hover with white text ═══════════ */
.proc{background:var(--rule);gap:1px;border:1px solid var(--rule);border-radius:var(--r2);overflow:hidden}
.proc__i{background:var(--white);padding:30px 26px;transition:background .35s var(--e)}
.proc__n{font-family:var(--font-body);font-size:11.5px;letter-spacing:.08em;font-weight:500;color:var(--gold-text)}
.proc__i h3{color:var(--ink);font-size:21px;margin:12px 0 10px;transition:color .3s}
.proc__i p{color:var(--muted);font-size:14px;line-height:1.55;transition:color .3s}
.proc__i:hover{background:var(--ink)}
.proc__i:hover h3,.sec .proc__i:hover h3{color:#fff}
.proc__i:hover p,.sec .proc__i:hover p{color:var(--muted-d)}
.proc__i:hover .proc__n{color:var(--gold-hi)}
/* seven steps in a four-column grid: the last step spans the remaining space */
@media(min-width:1025px){.proc__i:nth-child(7):last-child{grid-column:span 2}}
@media(max-width:1024px) and (min-width:601px){.proc__i:nth-child(7):last-child{grid-column:span 2}}
.val{border-radius:var(--r1);border-left:3px solid var(--gold-hi);background:var(--white);border-top:1px solid var(--rule);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.val:hover{background:var(--paper);transform:translateY(-4px)}
.qt__pts{border-radius:var(--r1);overflow:hidden}
.qt__pt b{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.06em;font-size:11.5px;font-weight:500;color:var(--gold-text)}
.trust__i:hover{background:var(--white)}
