/* Shared foundations. Component files are assembled at build time, not layered fixes. */
:root { --navy:#102c39; --navy-deep:#091e2a; --ink:#183440; --muted:#52646b; --paper:#ffffff; --cream:#ffffff; --content-bg:#ffffff; --content-divider:#e3e9ea; --line:#d9e1e2; --note-bg:#f6f8f7; --note-border:#e0e7e4; --panel-radius:14px; --footer-bg:#f3f5f3; --gold:#86623e; --sky:#c6dce5; --pale-blue:#f3f5f3; --font-sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif; --font-serif:Georgia,'Times New Roman',serif; --container:1200px; --gutter:clamp(24px,4.5vw,64px); --header-height:96px; --space-section:clamp(64px,6.3vw,96px); --space-related:40px; --radius-image:16px; --text-body:1.0625rem; --text-small:.8125rem; --title-page:clamp(2.375rem,4.1vw,3.5rem); --title-section:clamp(2rem,2.8vw,2.5rem); }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header-height) + 24px); }
body { margin:0; background:var(--paper); color:var(--ink); font:var(--text-body)/1.75 var(--font-sans); -webkit-font-smoothing:antialiased; }
::selection { background:var(--sky); color:var(--navy-deep); }
img,picture { display:block; max-width:100%; } img { height:auto; }
a { color:inherit; text-decoration:none; text-underline-offset:.3em; }
button,input,select,textarea { font:inherit; } button,summary { cursor:pointer; } button { color:inherit; }
[hidden] { display:none!important; } a,button,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid #3f6678; outline-offset:5px; } main:focus { outline:none; }
h1,h2,h3,p,figure,blockquote { margin:0; } h1,h2,h3 { font-weight:500; line-height:1.16; letter-spacing:-.035em; text-wrap:balance; }
h1 { font-size:var(--title-page); } h2 { font-size:var(--title-section); } h3 { font-size:1.5rem; letter-spacing:-.022em; }
p { text-wrap:pretty; } :where(p,h1,h2,h3,a,blockquote) { overflow-wrap:anywhere; } :where(.heading-grid,.editorial-layout,.footer-editorial-grid)>* { min-width:0; } p+p { margin-top:20px; } p a { text-decoration:underline; }
.container { width:min(var(--container),calc(100% - var(--gutter)*2)); margin-inline:auto; }
.section-space { padding-block:var(--space-section); }
.icon { display:inline-block; width:22px; height:22px; flex-shrink:0; vertical-align:middle; }
.muted { color:var(--muted); } .large-paragraph { font-size:1.25rem; line-height:1.65; letter-spacing:-.014em; }
.eyebrow { margin:0 0 16px; color:var(--muted); font-size:.8125rem; font-weight:600; line-height:1.5; letter-spacing:.025em; }
.eyebrow__number { display:none; }
.button { display:inline-flex; min-height:54px; gap:28px; align-items:center; justify-content:space-between; padding:14px 23px; border:1px solid transparent; border-radius:6px; font-size:.875rem; font-weight:600; line-height:1.5; transition:background .16s,color .16s,border-color .16s; }
.button .icon { width:18px; height:18px; transition:transform .16s; } .button:hover .icon { transform:translateX(3px); }
.button--primary { background:var(--navy); color:white; } .button--primary:hover { background:#284d5d; }
.button--light { background:#fff; color:var(--navy-deep); } .button--light:hover { background:#e7eef0; }
.button--outline { border-color:var(--line); background:transparent; color:var(--ink); }
.text-link { display:inline-flex; align-items:center; gap:22px; width:fit-content; max-width:100%; min-height:44px; padding-block:9px; border-bottom:1px solid #a8b8bc; font-size:.875rem; font-weight:500; line-height:1.5; }
.text-link .icon { width:17px; height:17px; transition:transform .16s; } .text-link:hover { border-color:currentColor; } .text-link:hover .icon { transform:translateX(3px); }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* Explanatory notes stay beside their headings; containment gives them a clear role. */
.section-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:64px; }
.section-intro-title { min-width:0; } .section-intro h2 { max-width:510px; }
.intro-note { margin:0; padding:22px 26px; border:1px solid var(--note-border); border-radius:var(--panel-radius); background:var(--note-bg); color:var(--muted); font-size:var(--text-body); line-height:1.7; }
@media (max-width:1050px) { .section-intro { gap:40px; } }
@media (max-width:899px) { .section-intro { grid-template-columns:1fr; gap:24px; } .intro-note { padding:20px 22px; } }
@media (max-width:650px) { .section-intro { gap:20px; } .intro-note { padding:18px 20px; border-radius:10px; } }
@media (forced-colors:active) { .intro-note { background:Canvas; border-color:CanvasText; color:CanvasText; } }
/* Shared editorial page structure. */
.heading-grid { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:64px; }
.heading-grid>p { max-width:34rem; color:var(--muted); }
.section-heading { margin-bottom:36px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:12px; font-size:.75rem; color:var(--muted); margin-bottom:48px; }
.breadcrumbs a { display:inline-flex; align-items:center; min-height:32px; } .breadcrumbs a:hover { text-decoration:underline; }
.page-intro { padding-block:24px 64px; }
.page-intro .page-heading { align-items:start; }
.page-heading h1 { max-width:650px; }
.page-heading>p { margin-top:6px; font-size:1.125rem; line-height:1.8; }
.page-heading>.intro-note { margin:0; max-width:none; font-size:var(--text-body); line-height:1.7; }
.editorial-layout { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; }
.prose { color:var(--muted); font-size:var(--text-body); max-width:68ch; }
.prose .large-paragraph { color:var(--ink); } .prose .text-link { margin-top:24px; }
.not-found { min-height:56svh; display:flex; align-items:center; } .not-found h1 { max-width:800px; }
.not-found p { max-width:48ch; color:var(--muted); margin-top:24px; } .not-found .button { margin-top:28px; }
@media (max-width:1050px) { .heading-grid,.editorial-layout { gap:40px; } }
@media (max-width:899px) { :root { --header-height:80px; } .page-intro .page-heading { grid-template-columns:1fr; gap:24px; } .page-heading>p { max-width:38rem; margin-top:0; } }
@media (max-width:650px) {
 :root { --gutter:24px; --panel-radius:12px; --space-section:56px; --space-related:28px; --radius-image:12px; --text-body:1rem; --title-page:clamp(2rem,8.8vw,2.375rem); --title-section:clamp(1.875rem,7.7vw,2rem); }
 .heading-grid,.editorial-layout { grid-template-columns:1fr; gap:24px; } .large-paragraph { font-size:1.125rem; }
 .page-intro { padding-block:20px 40px; } .breadcrumbs { margin-bottom:32px; }
 .page-heading>p { font-size:1.0625rem; line-height:1.75; } .page-heading h1 br { display:none; }
 .eyebrow { margin-bottom:12px; } .not-found { min-height:55svh; }
}
@media (max-width:359px) { :root { --gutter:20px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } .button:hover .icon,.text-link:hover .icon { transform:none; } }
@media (forced-colors:active) { :root { --ink:CanvasText; --muted:CanvasText; --line:CanvasText; --paper:Canvas; --footer-bg:Canvas; } .button { border-color:ButtonText; } a:focus-visible,button:focus-visible,summary:focus-visible { outline-color:Highlight; } }
@media print { .container { width:100%; } .section-space,.page-intro { padding-block:24px; } body { color:#000; background:#fff; font-size:11pt; } .heading-grid,.editorial-layout { gap:28px; } article,details,figure { break-inside:avoid; } }

/* Header owns theme, menu and floating return control; no dependency on page fixes. */
.skip-link { position:fixed; top:-100px; left:20px; z-index:100; padding:12px 20px; color:var(--navy); background:#fff; } .skip-link:focus { top:14px; }
.site-header--refined { position:sticky; top:0; z-index:30; height:var(--header-height); isolation:isolate; background:transparent; border:0; color:var(--ink); transition:transform 200ms ease; }
.site-header--refined::before { content:''; position:absolute; z-index:-1; inset:0; pointer-events:none; background:var(--paper); opacity:1; }
.site-header--refined.is-hidden { transform:translateY(-105%); }
.header-inner { height:100%; display:flex; align-items:center; gap:32px; }
.brand { display:block; flex:0 0 auto; } .brand img { width:126px; height:auto; }
.brand-caption { border:0; padding:0; font-size:.75rem; line-height:1.65; color:var(--muted); }
.site-nav { margin-left:auto; display:flex; align-items:center; gap:32px; font-size:.875rem; font-weight:500; }
.site-nav>a { position:relative; display:inline-flex; align-items:center; min-height:44px; padding-block:10px; }
.site-nav>a:not(.nav-contact)::after { content:''; position:absolute; bottom:6px; left:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .16s; }
.site-nav>a:hover::after,.site-nav>a[aria-current=page]::after { transform:scaleX(1); }
.site-nav>a.nav-contact { gap:24px; padding:11px 20px; border:1px solid transparent; border-radius:6px; background:var(--navy); color:#fff; }
.nav-contact .icon { width:16px; height:16px; }
.header-controls,.mobile-menu-tools { display:flex; align-items:center; flex:0 0 auto; gap:12px; }
.header-controls:has(.menu-toggle[hidden]) { display:none; }
.menu-toggle { display:none; padding:0; border:0; background:none; }
.menu-icon,.menu-close { width:44px; height:44px; display:grid; place-items:center; border:1px solid #c7d3d7; border-radius:50%; background:transparent; color:inherit; }
.menu-icon svg,.menu-close .icon { width:22px; height:22px; }
.site-header--overlay { margin-bottom:calc(-1 * var(--header-height)); }
.site-header--overlay:not(.is-on-light):not(.is-open) { color:#fff; }
.site-header--overlay:not(.is-on-light):not(.is-open)::before { background:transparent; opacity:0; }
.site-header--overlay:not(.is-on-light):not(.is-open) .brand img { filter:brightness(0) invert(1); }
.site-header--overlay:not(.is-on-light):not(.is-open) .brand-caption { color:#e2eaf0; }
.site-header--overlay:not(.is-on-light):not(.is-open) .site-nav>a.nav-contact { color:#fff; background:transparent; border-color:#ffffff80; }
.site-header--overlay:not(.is-on-light):not(.is-open) .menu-icon { border-color:#ffffff80; }
.site-header--overlay:not(.is-on-light):not(.is-open) :focus-visible { outline-color:white; }
@media (hover:hover) { .site-nav>a.nav-contact:hover { background:#284d5d; } .site-header--overlay:not(.is-on-light):not(.is-open) .nav-contact:hover { background:#ffffff18; } .menu-toggle:hover .menu-icon,.menu-close:hover { background:#65757e12; } }
/* Native modal menu: content, including its final link, can scroll on short screens. */
.mobile-menu { position:fixed; inset:0; width:100%; max-width:none; height:100vh; height:100dvh; max-height:none; margin:0; padding:0; border:0; color:var(--ink); background:var(--paper); overscroll-behavior:contain; }
.mobile-menu:not([open]) { display:none; } .mobile-menu[open] { display:flex; flex-direction:column; animation:menu-arrive 180ms ease both; }
.mobile-menu::backdrop { background:var(--paper); }
.mobile-menu-top { display:flex; align-items:center; justify-content:space-between; gap:24px; flex:0 0 auto; min-height:80px; padding:max(10px,env(safe-area-inset-top)) max(var(--gutter),env(safe-area-inset-right)) 10px max(var(--gutter),env(safe-area-inset-left)); }
.mobile-menu-top .brand img { width:112px; }
.mobile-menu-content { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; display:flex; flex-direction:column; padding:40px var(--gutter) max(32px,env(safe-area-inset-bottom)); }
.mobile-menu-label { color:var(--muted); font-size:.8125rem; margin-bottom:20px; }
.mobile-nav { display:flex; flex-direction:column; }
.mobile-nav-link { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:19px 0; min-height:60px; border-bottom:1px solid var(--line); font-size:clamp(1.75rem,6vw,2.25rem); line-height:1.15; letter-spacing:-.025em; }
.mobile-nav-link .icon { width:21px; height:21px; color:var(--muted); }
.mobile-nav-link[aria-current=page] span { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:8px; }
@keyframes menu-arrive { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
.back-to-top { position:fixed; z-index:25; right:calc(24px + env(safe-area-inset-right)); bottom:calc(24px + env(safe-area-inset-bottom)); width:48px; height:48px; display:grid; place-items:center; padding:0; background:var(--navy); color:#fff; border:1px solid #91a8b1; border-radius:50%; box-shadow:0 3px 12px #102c3914; transition:background .16s; }
.back-to-top .icon { width:20px; height:20px; } .back-to-top:hover { background:#2d5262; }
@media (min-width:900px) { .header-controls { display:none; } }
@media (max-width:1130px) { .brand-caption { display:none; } }
@media (max-width:899px) { .brand img { width:112px; } .header-inner { flex-wrap:wrap; gap:12px; } .header-controls { margin-left:auto; } .site-nav { flex:0 0 100%; justify-content:space-between; gap:12px; flex-wrap:wrap; } .js .site-nav { display:none; } .js .menu-toggle { display:flex; } .js .header-inner { flex-wrap:nowrap; } }
@media (max-width:650px) { .back-to-top { width:46px; height:46px; right:calc(16px + env(safe-area-inset-right)); bottom:calc(16px + env(safe-area-inset-bottom)); } }
@media (max-height:650px) { .mobile-menu-content { padding-top:16px; } .mobile-menu-label { margin-bottom:8px; } .mobile-nav-link { padding-block:12px; min-height:52px; font-size:1.75rem; } }
@media (prefers-reduced-transparency:reduce),(prefers-contrast:more) { .site-header--overlay:not(.is-on-light):not(.is-open)::before { background:#091e2a; opacity:1; } }
@media (prefers-reduced-motion:reduce) { .site-header--refined,.mobile-menu { animation:none; transition:none; } }
@media (forced-colors:active) { .site-header--refined::before { background:Canvas!important; opacity:1!important; } .site-header--refined,.site-header--refined .brand-caption { color:CanvasText!important; } .site-header--refined .brand img { filter:none!important; background:White; } .site-nav>a.nav-contact,.menu-icon { background:ButtonFace!important; color:ButtonText!important; border-color:ButtonText!important; } }
@media print { .site-header,.mobile-menu,.back-to-top { display:none!important; } .site-header--overlay { margin-bottom:0; } }
/* Keep scrolled text from painting through the transparent logo without hiding focused content. */
.site-header--overlay:not(.is-on-light):not(.is-hidden):not(.is-open) ~ main :is(.hero-copy,.hero-bottom):not(:focus-within) { -webkit-mask-image:linear-gradient(to bottom,transparent max(0px,calc(var(--header-clearance,0px) - 12px)),#000 var(--header-clearance,0px)); mask-image:linear-gradient(to bottom,transparent max(0px,calc(var(--header-clearance,0px) - 12px)),#000 var(--header-clearance,0px)); }

/* One quiet ending. No solicitation, decorative image or duplicate return link. */
.site-footer--editorial { background:var(--footer-bg); border:0; }
.footer-editorial-grid { display:grid; grid-template-columns:1.4fr .8fr 1fr; gap:56px; padding-block:56px 40px; }
.footer-editorial-grid>div { min-width:0; }
.footer-signature>a { display:block; width:132px; max-width:100%; } .footer-signature img { width:132px; height:auto; }
.footer-signature p { max-width:260px; margin-top:20px; font-size:.875rem; color:var(--muted); line-height:1.8; }
.footer-editorial-grid h2 { margin:0 0 15px; color:var(--muted); font-size:.8125rem; font-weight:500; line-height:1.6; letter-spacing:.025em; }
.footer-editorial-grid nav { display:flex; flex-direction:column; align-items:flex-start; gap:0; }
.footer-editorial-grid nav a { display:flex; align-items:center; min-height:44px; padding:8px 0; font-size:.9375rem; line-height:1.5; }
.footer-editorial-grid nav a:hover,.footer-privacy-link:hover { text-decoration:underline; }
.footer-editorial-grid nav a[aria-current=page] { text-decoration:underline; text-decoration-color:var(--gold); }
.footer-editorial-bottom { display:flex; flex-wrap:wrap; align-items:center; gap:8px 28px; padding-block:18px 26px; padding-right:64px; border-top:1px solid #d6dfdc; font-size:.8125rem; color:var(--muted); }
.footer-copyright { line-height:1.65; } .footer-privacy-link { display:inline-flex; align-items:center; min-height:44px; line-height:1.5; }
.footer-bottom-language { margin-left:auto; }
.footer-credit { margin:0; display:flex; align-items:center; flex-wrap:wrap; gap:6px; font-size:.8125rem; }
.footer-credit a { display:inline-flex; align-items:center; gap:5px; min-height:44px; color:var(--ink); text-decoration:none; }
.footer-credit a:hover { text-decoration:underline; } .footer-credit .icon { width:13px; height:13px; }
.language-switch--flags { display:flex; align-items:center; gap:4px; }
.language-switch--flags a { position:relative; display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px; width:44px; height:44px; min-height:44px; padding:0; border-radius:5px; text-decoration:none; }
.language-switch--flags .language-flag { display:block; flex:0 0 20px; width:20px; height:14px; max-width:none; overflow:hidden; border-radius:2px; box-shadow:0 0 0 1px #102c3914; }
.language-switch--flags a[aria-current=true]::after { content:''; position:absolute; left:12px; bottom:5px; width:20px; height:1px; background:var(--gold); }
.language-switch--flags a:hover { background:#102c3908; } .language-switch--flags a:focus-visible { outline:2px solid #3f6678; outline-offset:2px; }
@media (max-width:1050px) { .footer-editorial-grid { gap:36px; grid-template-columns:1.2fr .8fr 1fr; } .footer-bottom-language { margin-left:0; } }
@media (max-width:750px) { .footer-editorial-grid { grid-template-columns:1fr 1fr; gap:30px; } .footer-signature { grid-column:1 / -1; display:flex; align-items:center; gap:28px; } .footer-signature>a { flex:0 0 120px; } .footer-signature p { margin:0; } }
@media (max-width:650px) { .footer-editorial-grid { gap:28px 22px; padding-block:36px 26px; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); } .footer-signature { gap:22px; } .footer-signature>a { flex-basis:104px; } .footer-signature img { width:104px; } .footer-signature p { font-size:.8125rem; } .footer-editorial-grid nav a { font-size:.875rem; } .footer-editorial-grid h2 { font-size:.75rem; margin-bottom:10px; } .footer-editorial-bottom { display:grid; grid-template-columns:1fr; gap:0; padding-right:52px; padding-block:18px max(22px,env(safe-area-inset-bottom)); font-size:.75rem; } .footer-credit { font-size:.75rem; } .footer-bottom-language { margin-top:2px; } }
@media (max-width:359px) { .footer-signature { align-items:flex-start; gap:18px; } .footer-signature>a { flex-basis:96px; } }
@media (forced-colors:active) { .language-switch--flags .language-flag { display:none; } .language-switch--flags .language-switch-label { position:static; width:auto; height:auto; margin:0; padding:0; clip:auto; clip-path:none; overflow:visible; white-space:normal; border:0; } .language-switch--flags a { flex-basis:auto; width:auto; min-width:44px; padding-inline:8px; } .language-switch--flags a[aria-current=true]::after { background:CanvasText; } }
@media print { .site-footer--editorial { display:none!important; } }
