/* Kafra Core — shared presentation refinements. Portal layouts retain their existing rules. */
:root { --ivory:#f4f2ed; --ink:#14252c; --navy-950:#07171d; --navy-900:#0b2029; --slate:#647079; --gold:#867243; --gold-soft:#d1bf90; --content:min(1280px,calc(100% - 112px)); }
html { scroll-padding-top:100px; }
.site-header { border-bottom:1px solid #ffffff24; background:linear-gradient(#07171d99,transparent); }
.site-header .nav-shell { height:96px; grid-template-columns:224px 1fr auto; gap:24px; }
.site-header .brand-lockup { width:224px; min-width:0; height:54px; }
.site-header .brand-logo-window--group { width:224px; height:54px; }
.site-header .brand-logo-window--group .brand-group-logo { width:224px; }
.site-header .nav-links { gap:clamp(12px,1.4vw,24px); }
.site-header .nav-links a { font-size:10px; letter-spacing:.08em; }
.site-header .nav-contact { border-radius:0; font-size:10px; letter-spacing:.09em; padding:13px 15px; }
.site-header.is-sticky { background:#07171df5; box-shadow:none; }
.button { border-radius:0; min-height:52px; padding:16px 24px; font-size:11px; letter-spacing:.09em; }
.button:hover { transform:translateY(-2px); }
.eyebrow { font-size:11px; letter-spacing:.18em; }
.section-title { font-size:clamp(38px,4.7vw,66px); line-height:1.08; letter-spacing:-.035em; text-wrap:balance; }
.page-hero { border-radius:0; }
.page-hero h1 { line-height:1.08; text-wrap:balance; }
.wide-media,.crude-visual,.media-pair figure,.location-gallery figure { border-radius:2px; }
.hero.hero--editorial { min-height:min(900px,100svh); border-radius:0; background:#0b2029; }
.hero--editorial::before { background:linear-gradient(90deg,#07171deb 0%,#07171db0 46%,#07171d28 100%),linear-gradient(0deg,#07171dbb,transparent 50%); }
.hero--editorial::after { display:none; }
.hero--editorial .hero-content { min-height:inherit; align-items:flex-start; justify-content:center; padding:170px 0 160px; text-align:left; }
.hero-editorial-copy { max-width:860px; text-align:left; }
.hero--editorial .hero-kicker { color:#d1bf90; font-size:11px; letter-spacing:.18em; margin:0 0 30px; }
.hero--editorial h1 { margin:0; max-width:900px; font-family:var(--serif); font-size:clamp(64px,7.8vw,112px); line-height:1.02; letter-spacing:-.045em; font-weight:400; }
.hero--editorial h1 em { color:#e1d4b5; font-weight:400; }
.hero-summary { max-width:500px; margin:30px 0 0; font-size:18px; color:#e0e4e4; line-height:1.65; }
.hero-actions { display:flex; gap:32px; align-items:center; margin-top:38px; }
.hero-actions .button { display:inline-flex; align-items:center; gap:30px; background:#f4f2ed; color:#14252c; border-color:#f4f2ed; }
.hero-actions .hero-discover { margin:0; font-size:10px; letter-spacing:.1em; }
.hero-rail { width:var(--content); left:0; right:0; margin:auto; bottom:30px; color:#d5dadb; font-size:9px; letter-spacing:.09em; }
.hero-rail::before { bottom:35px; }
.home-intro { margin:0; padding:110px 0; border-radius:0; }
.home-intro-orbit { display:none; }
.home-intro-grid { grid-template-columns:1fr 3fr; gap:65px; }
.home-intro h2 { font-size:clamp(42px,5.2vw,72px); line-height:1.08; letter-spacing:-.04em; }
.home-intro-lead { max-width:800px; font-size:22px; margin-top:32px; line-height:1.6; }
.home-intro-detail { margin-top:32px; gap:32px; grid-template-columns:1.5fr 1fr; }
.home-intro-detail p { font-size:15px; }
.home-markets,.home-platform,.home-execution { padding:105px 0; }
.flow-heading { gap:70px; grid-template-columns:1.25fr .75fr; }
.flow-heading > p { font-size:16px; line-height:1.7; }
.market-composition { margin-top:52px; gap:54px; }
.home-market-feature { min-height:530px; border-radius:2px; }
.home-market-feature h3 { font-size:54px; }
.home-market-feature p { font-size:15px; line-height:1.65; }
.market-index a { min-height:130px; }
.market-index img { border-radius:0; }
.market-index strong { font-size:29px; }
.market-index small { font-size:10px; letter-spacing:.13em; }
.market-index em { font-size:12px; }
.home-platform { background:#0b2029; border-radius:0; }
.home-platform .eyebrow { color:#d1bf90; }
.capability-list { margin-top:48px; }
.capability-list a { padding:29px 0; grid-template-columns:56px 1fr 1.15fr 30px; }
.capability-list h3 { font-size:32px; }
.capability-list p { font-size:15px; line-height:1.6; }
.home-execution { background:var(--ivory); }
.execution-line { margin-top:62px; gap:30px; }
.execution-line h3 { font-size:25px; }
.execution-line p { font-size:14px; }
.split-media--flow { padding:85px max(56px,calc((100vw - 1280px)/2)); gap:70px; background:#fff; }
.split-media--flow .split-media-image { border-radius:2px; min-height:490px; }
.split-media-copy .prose { font-size:16px; line-height:1.8; }
.network-film { border-radius:0; margin:0; min-height:610px; }
.network-still { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.network-film-shade { background:linear-gradient(90deg,#07171ded,#07171d60),linear-gradient(0deg,#07171dbb,transparent); }
.network-film-copy { padding-top:100px; padding-bottom:155px; }
.network-film-copy h2 { font-size:clamp(44px,5vw,72px); line-height:1.08; max-width:800px; }
.network-film-copy p { max-width:580px; font-size:17px; }
.network-locations { border-radius:0; }
.footer-cta { background:#eae7de; color:#14252c; padding:70px 0; }
.footer-cta h2 { font-size:clamp(36px,4.5vw,60px); line-height:1.08; letter-spacing:-.035em; }
.footer-cta .eyebrow { color:#79633c; }
.footer-cta .button--light { background:#0b2029; color:#fff; border-color:#0b2029; }
.footer-cta .button--outline { color:#14252c; border-color:#9aa1a0; }
.footer-main { background:#07171d; }
.footer-column a { font-size:13px; overflow-wrap:anywhere; }
.footer-bottom { font-size:11px; }
:focus-visible { outline:2px solid #a88b43; outline-offset:5px; }
/* Progressive enhancement: reading never depends on an animation callback. */
.reveal { opacity:1; transform:none; }
@media(min-width:1241px) { .site-header .nav-links { display:flex; } .site-header .nav-toggle { display:none; } }
@media(max-width:1240px) {
 .site-header .nav-shell { grid-template-columns:1fr auto; }
 .site-header .nav-links:not(.is-open),.site-header .nav-contact { display:none; }
 .site-header .nav-toggle { display:block; width:46px; height:46px; }
 .site-header .nav-links.is-open { position:fixed; inset:96px 0 0; height:calc(100dvh - 96px); overflow:auto; padding:20px 32px 40px; background:#07171d; display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0; }
 .site-header .nav-links.is-open a { display:block; padding:13px 0; font-family:var(--serif); font-size:27px; letter-spacing:0; text-transform:none; border-bottom:1px solid #ffffff22; }
 .site-header .nav-links.is-open a::after { display:none; }
 .site-header.is-sticky .nav-links.is-open { top:76px; height:calc(100dvh - 76px); }
}
@media(max-width:760px) {
 :root { --content:calc(100% - 44px); }
 .site-header .nav-shell,.site-header.is-sticky .nav-shell { height:80px; }
 .site-header .brand-lockup,.site-header .brand-logo-window--group { width:190px; }
 .site-header .brand-logo-window--group .brand-group-logo { width:190px; }
 .site-header .nav-links.is-open,.site-header.is-sticky .nav-links.is-open { top:80px; height:calc(100dvh - 80px); }
 .hero.hero--editorial { min-height:750px; }
 .hero--editorial .hero-content { padding:145px 0 160px; }
 .hero--editorial .hero-kicker { font-size:9px; line-height:1.7; letter-spacing:.14em; max-width:270px; margin-bottom:27px; }
 .hero--editorial h1 { font-size:clamp(44px,11.7vw,74px); line-height:1.05; }
 .hero-summary { max-width:360px; font-size:16px; margin-top:24px; }
 .hero-actions { flex-direction:column; align-items:flex-start; gap:20px; margin-top:28px; }
 .hero-actions .button { min-height:52px; }
 .hero-actions .hero-discover i { width:32px; height:32px; }
 .hero-rail { bottom:28px; gap:7px; font-size:8px; }
 .hero-rail::before { display:block; bottom:78px; }
 .home-intro,.home-markets,.home-platform,.home-execution { padding:70px 0; }
 .home-intro-grid,.home-intro-detail,.flow-heading { grid-template-columns:1fr; gap:22px; }
 .home-intro h2 { font-size:42px; }
 .home-intro-lead { font-size:19px; margin-top:25px; }
 .home-intro-detail { margin-top:28px; }
 .section-title { font-size:39px; }
 .market-composition { gap:26px; margin-top:32px; }
 .home-market-feature { min-height:470px; }
 .home-market-feature h3 { font-size:44px; }
 .market-index a { grid-template-columns:64px 1fr 20px; min-height:115px; gap:16px; }
 .market-index img { width:64px; height:74px; }
 .market-index strong { font-size:23px; }
 .market-index em { display:block; font-size:11px; line-height:1.5; }
 .capability-list a { grid-template-columns:30px 1fr 20px; gap:14px; }
 .capability-list h3 { font-size:27px; }
 .capability-list p { grid-column:2; font-size:14px; }
 .execution-line { grid-template-columns:1fr; gap:0; margin-top:32px; }
 .execution-line article { padding:24px 0; border-top:1px solid #c9ceca; }
 .execution-line article > span { font-size:26px; }
 .execution-line h3 { margin:10px 0 6px; }
 .split-media--flow { padding:50px 22px 70px; gap:32px; grid-template-columns:1fr; }
 .split-media--flow .split-media-image { min-height:330px; }
 .network-film { min-height:600px; }
 .network-film-copy { padding-top:70px; padding-bottom:170px; }
 .network-film-copy h2 { font-size:43px; }
 .network-film-copy p { font-size:15px; }
 .footer-cta { padding:56px 0; }
 .footer-actions { align-items:stretch; }
 .footer-cta .button { text-align:center; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }
.hero--editorial .hero-poster { z-index:-4; }
.hero--editorial video.is-unavailable { visibility:hidden; }
.motion-toggle { position:absolute; right:max(56px,calc((100vw - 1280px)/2)); bottom:100px; padding:10px 15px; color:#fff; background:#07171d88; border:1px solid #ffffff70; cursor:pointer; font-size:11px; letter-spacing:.04em; min-height:44px; }
.motion-toggle[hidden] { display:none; }
@media(max-width:760px) { .motion-toggle { right:22px; bottom:150px; } }
