/* Shared role scale. Preserve v17 glass and v16 composition. */
:root{
 --type-page:clamp(38px,3.35vw,50px);
 --type-section:clamp(32px,2.8vw,42px);
 --type-service:clamp(32px,2.65vw,40px);
 --type-question:clamp(27px,2.2vw,33px);
 --header-size:112px;
 --header-gap:32px;
}
.site-header,.hero .site-header,.interior .site-header{
 box-sizing:border-box;height:var(--header-size);min-height:var(--header-size);
 padding:24px 5.3%;display:flex;align-items:center;justify-content:flex-end;
}
.site-header>nav,.interior .site-header>nav{margin-left:auto;gap:30px;align-items:center}
.site-header nav>a,.site-header .nav-drop>summary{
 font-size:17px;font-weight:600;line-height:24px;letter-spacing:.01em;
 min-height:44px;display:inline-flex;align-items:center;color:#f5f2ea;
 text-shadow:0 1px 7px #041320,0 0 18px #041320a0;
}
.site-header .nav-drop>summary{gap:8px}
.site-header nav>a:hover,.site-header .nav-drop>summary:hover,.site-header .nav-drop[open]>summary{color:var(--accent)}
.site-header nav>a[aria-current=page]{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}
.site-header .nav-drop>div{min-width:230px}
.site-header .nav-drop>div a{font-size:16px;line-height:1.4;padding:12px 16px}
.site-header .nav-contact{padding:11px 22px;border-color:#d9c5a65c;background:#071a2770}
.interior .opening-copy{margin-top:var(--header-gap);padding-block:26px}
.interior .opening-copy h1,.interior.faq .opening-copy h1{
 font-size:var(--type-page);font-weight:500;line-height:1.12;letter-spacing:-.02em;
 max-width:25ch;text-wrap:balance;
}
.interior .opening-copy:not(:has(.opening-lead)) h1{max-width:30ch}
.interior .opening-copy:before{inset:0 -22px}
.interior .page-opening{padding-bottom:48px}
.interior .section-heading h2,.our-solutions .solution-copy h2{font-size:var(--type-section);line-height:1.15;text-wrap:balance}
.interior .problem-row h3,.interior .capabilities h3{font-size:var(--type-question);line-height:1.2;text-wrap:balance}
.hero-copy{padding-top:55px}
.hero h1{font-size:clamp(54px,4.8vw,72px);line-height:1.06;max-width:16ch;letter-spacing:-.025em}
.hero h1>.hero-primary{display:block;color:var(--accent);white-space:normal;text-wrap:balance}
.hero h1>.hero-secondary{display:block;font-size:.8em;font-weight:450;color:#f5f2ea;line-height:1.14;max-width:16ch;margin-top:10px;white-space:normal;text-wrap:balance}
.service-grid h2{font-size:var(--type-service);line-height:1.16;max-width:25ch;text-wrap:balance;color:#f5f2ea}
.service-grid h2 em{font-style:italic;font-weight:500;color:var(--accent)}
.case-layout{grid-template-columns:1fr 1.1fr;gap:5%}
.case-heading h2{font-family:var(--editorial);font-size:var(--type-section);line-height:1.15;text-wrap:balance;max-width:none}
.case-heading h2>span{display:block;font-family:Manrope,'DM Sans',sans-serif;font-size:clamp(22px,1.95vw,29px);line-height:1.3;letter-spacing:-.02em;max-width:27ch;margin-top:12px;text-wrap:balance}
.footer-wordmark{display:block;position:relative;width:min(350px,90%);margin:8px 0 9px;isolation:isolate;line-height:0}
.footer-wordmark>img{display:block;width:100%;height:auto;filter:drop-shadow(0 8px 9px #020b13b0)}
.footer-wordmark>.wordmark-reflection{position:absolute;top:82%;left:0;transform:scaleY(-.25);transform-origin:top;opacity:.23;filter:blur(1px);mask-image:linear-gradient(to top,#000,transparent 70%);pointer-events:none}
.closing-world .footer-contact-title{font-size:clamp(23px,2vw,29px)}
.closing-world .footer-top{align-items:center}
@media(max-width:1100px){
 :root{--header-size:96px;--header-gap:24px}
 .site-header,.hero .site-header,.interior .site-header{padding-inline:6%}
 .hero h1{font-size:60px;max-width:16ch}
 .hero h1>.hero-secondary{font-size:.8em}
 .interior .opening-copy h1,.interior.faq .opening-copy h1{font-size:var(--type-page)}
}
@media(max-width:760px){
 :root{--type-page:clamp(32px,8.7vw,38px);--type-section:clamp(30px,8.2vw,36px);--type-service:clamp(30px,8.2vw,36px);--type-question:28px;--header-size:80px;--header-gap:20px}
 .site-header,.hero .site-header,.interior .site-header{padding:16px 6%}
 .site-header .mobile-menu>summary{font-size:17px;font-weight:600;color:#f5f2ea;min-height:44px;display:flex;align-items:center;justify-content:flex-end}
 .site-header .mobile-menu nav>a{display:flex;min-height:44px;font-size:17px}
 .hero h1{font-size:clamp(37px,10.2vw,50px);max-width:17ch;line-height:1.08}
 .hero h1>.hero-secondary{font-size:.84em;max-width:17ch;margin-top:8px;line-height:1.16}
 .hero-copy{padding-top:24px}
 .interior .opening-copy{padding-block:22px}
 .interior .opening-copy:before{inset:0 -11px}
 .interior .opening-copy h1,.interior.faq .opening-copy h1{font-size:var(--type-page);max-width:26ch}
 .interior .opening-copy:not(:has(.opening-lead)) h1{max-width:26ch}
 .interior .opening-lead{margin-top:22px}
 .interior .page-opening{padding-bottom:34px}
 .our-solutions .opening-lead{font-size:24px}
 .case-layout{grid-template-columns:1fr;gap:24px}
 .case-heading h2>span{font-size:23px;max-width:27ch}
 .footer-wordmark{width:min(310px,90%);margin-top:6px;margin-bottom:12px}
 .closing-world .footer-contact-title{font-size:23px}
}
