:root{
--bg:#ffffff;
--bg-soft:#f6f7f9;
--bg-soft-2:#eef1f4;
--navy:#0f2940;
--navy-2:#163a57;
--ink:#1a1f26;
--ink-muted:#5c6670;
--ink-faint:#8b94a0;
--rule:#e2e6ea;
--rule-strong:#c9d0d7;
--accent:#c8442d;
--accent-dark:#a8351f;
--accent-tint:#fbe9e5;
--radius:3px;
--serif:'Source Serif 4', Georgia, serif;
--sans:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
--mono:'IBM Plex Mono', 'SFMono-Regular', monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
margin:0;
font-family:var(--sans);
color:var(--ink);
background:var(--bg);
-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;}

.wrap{
max-width:1240px;
margin:0 auto;
padding:0 32px;
}

/* ---------- Skip link / focus ---------- */
.skip-link{
position:absolute; left:-9999px; top:0;
background:var(--navy); color:#fff; padding:10px 16px; z-index:200;
}
.skip-link:focus{left:16px; top:16px;}
a:focus-visible, button:focus-visible, input:focus-visible{
outline:2px solid var(--accent);
outline-offset:2px;
}

/* ---------- Top utility bar ---------- */
.utility-bar{
background:var(--navy);
color:#cfe0ee;
font-size:13px;
}
.utility-bar .wrap{
display:flex;
justify-content:center;
align-items:center;
height:36px;
}
.utility-bar a{color:#cfe0ee; opacity:.85;}
.utility-bar a:hover{opacity:1; text-decoration:underline;}

/* ---------- Main header ---------- */
.site-header{
background:#fff;
border-bottom:1px solid var(--rule);
position:sticky;
top:0;
z-index:100;
}
.header-inner{
display:flex;
align-items:center;
gap:32px;
height:76px;
}
.logo{
display:flex;
align-items:center;
gap:10px;
font-family:var(--serif);
font-weight:700;
font-size:24px;
color:var(--navy);
white-space:nowrap;
flex-shrink:0;
}
.logo-mark{
width:34px; height:34px;
border:2px solid var(--navy);
border-radius:50%;
display:flex;align-items:center;justify-content:center;
font-size:15px;
position:relative;
}
.logo-mark::after{
content:"";
position:absolute;
width:1px;height:18px;
background:var(--navy);
transform:rotate(0deg);
}
.logo-mark span{font-family:var(--serif); font-style:italic;}

.main-nav{flex:1; display:flex;}
.main-nav ul{display:flex; gap:4px;}
.main-nav a{
display:block;
padding:10px 14px;
font-size:15px;
font-weight:500;
color:var(--ink);
border-radius:var(--radius);
}
.main-nav a:hover{background:var(--bg-soft); color:var(--navy);}

.header-actions{display:flex; align-items:center; gap:14px; flex-shrink:0;}
.icon-btn{
width:38px;height:38px;
display:flex;align-items:center;justify-content:center;
border-radius:50%;
color:var(--navy);
border:1px solid transparent;
}
.icon-btn:hover{background:var(--bg-soft); border-color:var(--rule);}
.btn{
display:inline-flex;
align-items:center;
gap:6px;
padding:9px 18px;
border-radius:var(--radius);
font-size:14px;
font-weight:600;
border:1px solid transparent;
white-space:nowrap;
}
.btn-primary{background:var(--accent); color:#fff;}
.btn-primary:hover{background:var(--accent-dark);}
.btn-outline{border-color:var(--navy); color:var(--navy);}
.btn-outline:hover{background:var(--navy); color:#fff;}

.nav-toggle{display:none; background:none; border:none; padding:8px;}
.nav-toggle svg{width:26px;height:26px; color:var(--navy);}

/* ---------- Page banner ---------- */
.page-banner{
background:var(--navy);
color:#fff;
padding:40px 0;
position:relative;
}
.page-banner::before{
content:"";
position:absolute;
inset:0;
background-image:repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px 120px);
pointer-events:none;
}
.page-banner-inner{
position:relative;
max-width:1240px;
margin:0 auto;
padding:0 32px;
}
.page-banner h1{
font-family:var(--serif);
font-weight:600;
font-size:clamp(28px, 4vw, 42px);
line-height:1.15;
margin:0 0 8px;
}
.page-meta{
font-size:14px;
color:#cfe0ee;
margin-top:6px;
}

/* ---------- Content section ---------- */
.content-section{padding:64px 0;}
.content-section blockquote{
background:var(--bg-soft);
border-left:4px solid var(--accent);
padding:24px 28px;
margin:24px 0 32px;
font-size:15px;
line-height:1.7;
color:var(--ink-muted);
}
.content-section h2{
font-family:var(--serif);
font-size:26px;
font-weight:600;
margin:36px 0 16px;
color:var(--navy);
}
.content-section h3{
font-family:var(--sans);
font-size:19px;
font-weight:600;
margin:28px 0 12px;
color:var(--ink);
}
.content-section p{
font-size:16px;
line-height:1.75;
color:var(--ink);
margin:0 0 18px;
}
.content-section ol, .content-section ul{
font-size:16px;
line-height:1.75;
color:var(--ink);
padding-left:28px;
margin:0 0 20px;
}
.content-section li{margin-bottom:10px;}
.content-section a{
color:var(--accent);
font-weight:500;
}
.content-section a:hover{text-decoration:underline;}

/* ---------- Breadcrumb ---------- */
.breadcrumb{
display:flex;
gap:8px;
font-size:13px;
color:var(--ink-muted);
margin-bottom:20px;
flex-wrap:wrap;
}
.breadcrumb a{color:var(--ink-muted);}
.breadcrumb a:hover{color:var(--accent);}
.breadcrumb span{color:var(--ink-faint);}

/* ---------- Newsletter CTA ---------- */
.cta-band{
background:var(--accent-tint);
border-top:1px solid var(--rule);
border-bottom:1px solid var(--rule);
}
.cta-inner{
display:flex;
align-items:center;
justify-content:center;
gap:32px;
padding:40px 0;
flex-wrap:wrap;
text-align:center;
}
.cta-inner h2{
font-family:var(--serif);
font-size:24px;
font-weight:600;
margin:0 0 6px;
color:var(--navy);
}
.cta-inner p{margin:0; color:var(--ink-muted); font-size:14.5px;}

/* ---------- Footer ---------- */
footer{background:#fff; border-top:1px solid var(--rule);}
.footer-grid{
display:grid;
grid-template-columns:1.4fr repeat(4, 1fr);
gap:32px;
padding:56px 0 36px;
}
.footer-brand .logo{margin-bottom:14px;}
.footer-brand p{
font-size:13.5px;
color:var(--ink-muted);
line-height:1.6;
max-width:260px;
margin:0 0 18px;
}
.footer-social{display:flex; gap:10px;}
.footer-social a{
width:34px;height:34px;
border:1px solid var(--rule);
border-radius:50%;
display:flex;align-items:center;justify-content:center;
color:var(--ink-muted);
}
.footer-social a:hover{border-color:var(--navy); color:var(--navy);}
.footer-col h4{
font-size:13px;
text-transform:uppercase;
letter-spacing:.05em;
color:var(--ink-faint);
margin:0 0 16px;
font-weight:600;
}
.footer-col ul li{margin-bottom:11px;}
.footer-col a{font-size:14px; color:var(--ink-muted);}
.footer-col a:hover{color:var(--accent);}
.footer-bottom{
border-top:1px solid var(--rule);
padding:22px 0;
display:flex;
justify-content:space-between;
align-items:center;
flex-wrap:wrap;
gap:12px;
}
.footer-bottom p{margin:0; font-size:12.5px; color:var(--ink-faint);}
.footer-bottom-links{display:flex; gap:20px;}
.footer-bottom-links a{font-size:12.5px; color:var(--ink-faint);}
.footer-bottom-links a:hover{color:var(--navy);}

/* ---------- Mobile nav drawer ---------- */
.mobile-nav{
display:none;
position:fixed;
inset:0 0 0 auto;
width:min(320px, 84vw);
background:#fff;
z-index:300;
transform:translateX(100%);
transition:transform .25s ease;
box-shadow:-12px 0 40px rgba(0,0,0,.25);
overflow-y:auto;
}
.mobile-nav.open{transform:translateX(0);}
.mobile-nav-head{
display:flex;justify-content:space-between;align-items:center;
padding:20px; border-bottom:1px solid var(--rule);
}
.mobile-nav-head button{background:none;border:none;padding:8px;}
.mobile-nav-head svg{width:24px;height:24px;color:var(--navy);}
.mobile-nav ul{padding:8px 12px;}
.mobile-nav a{
display:block;
padding:14px 12px;
font-size:16px;
font-weight:500;
border-bottom:1px solid var(--rule);
}
.scrim{
display:none;
position:fixed; inset:0;
background:rgba(15,41,64,.45);
z-index:290;
}
.scrim.open{display:block;}

/* =====================================================
 RESPONSIVE
===================================================== */
@media (max-width:860px){
.wrap{padding:0 20px;}
.main-nav, .header-actions .btn-outline{display:none;}
.nav-toggle{display:flex;}
.header-inner{height:64px;}
.page-banner-inner{padding:0 20px;}
.page-banner{padding:32px 0;}
.footer-grid{grid-template-columns:1fr 1fr; padding:40px 0 24px;}
.footer-brand{grid-column:1 / -1;}
}

@media (max-width:520px){
.footer-grid{grid-template-columns:1fr;}
.cta-inner{flex-direction:column;}
}

@media (prefers-reduced-motion: reduce){
*{transition:none !important; scroll-behavior:auto !important;}
}
