:root {
  --color-navy: #102a43;
  --color-slate: #243b53;
  --color-blue: #3f7faa;
  --color-blue-dark: #2f6388;
  --color-blue-light: #dcecf6;
  --color-sky: #8dbbd6;
  --color-earth: #b69a73;
  --color-bg: #f8f7f4;
  --color-text: #334e68;
  --color-accent: #5b91b5;
  --color-white: #ffffff;
  --color-border: #d5dee7;
  --color-soft: #edf4f8;
  --shadow-sm: 0 10px 30px rgba(16, 42, 67, .08);
  --radius: 1rem;
}
html { scroll-behavior: smooth; }
body { background: var(--color-bg); color: var(--color-text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 1rem; line-height: 1.72; }
a { color: var(--color-blue-dark); text-decoration-thickness: .08em; text-underline-offset: .16em; }
a:hover { color: var(--color-navy); }
img { max-width: 100%; height: auto; }
h1,h2,h3,h4,h5,h6 { color: var(--color-navy); font-weight: 750; letter-spacing: -.025em; line-height: 1.15; }
p, li { max-width: 74ch; }
.skip-link { position: fixed; left: 1rem; top: -10rem; z-index: 2000; background: #fff; color: var(--color-navy); padding: .85rem 1rem; border: 2px solid var(--color-blue); border-radius: .5rem; }
.skip-link:focus { top: 1rem; }
:focus-visible { outline: 3px solid var(--color-sky); outline-offset: 3px; border-radius: .2rem; }
.text-accent { color: var(--color-blue-dark) !important; }
.site-header { background: rgba(248,247,244,.96); border-bottom: 1px solid rgba(16,42,67,.10); backdrop-filter: blur(12px); }
.navbar { min-height: 76px; }
.navbar-brand { color: var(--color-navy); font-weight: 850; letter-spacing: -.03em; line-height: 1.05; }
.brand-dot { color: var(--color-blue); }
.brand-subtitle { display: block; margin-top: .18rem; color: #627d98; font-size: .69rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.nav-link { color: var(--color-slate); font-weight: 650; padding: .8rem .72rem !important; }
.nav-link:hover, .nav-link.active { color: var(--color-blue-dark); }
.navbar-toggler { border: 1px solid rgba(16,42,67,.28); min-width: 46px; min-height: 46px; }
.external-mark { font-size: .78em; }
.btn { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; border-radius: .7rem; font-weight: 750; padding: .72rem 1.05rem; }
.btn-primary { --bs-btn-bg: var(--color-blue); --bs-btn-border-color: var(--color-blue); --bs-btn-hover-bg: var(--color-blue-dark); --bs-btn-hover-border-color: var(--color-blue-dark); --bs-btn-active-bg: #285573; --bs-btn-active-border-color: #285573; }
.btn-outline-primary { --bs-btn-color: var(--color-blue-dark); --bs-btn-border-color: var(--color-blue); --bs-btn-hover-bg: var(--color-blue); --bs-btn-hover-border-color: var(--color-blue); --bs-btn-hover-color: #fff; }
.btn-dark { --bs-btn-bg: var(--color-navy); --bs-btn-border-color: var(--color-navy); }
.hero { position: relative; overflow: hidden; padding: clamp(4.5rem, 7vw, 7rem) 0; background: linear-gradient(135deg, var(--color-navy), #1f4f75); color: rgba(255,255,255,.9); }
.hero::after { content:""; position:absolute; right:-7rem; bottom:-13rem; width:35rem; height:35rem; border:1px solid rgba(255,255,255,.15); border-radius:50%; box-shadow: 0 0 0 4rem rgba(141,187,214,.11), 0 0 0 8rem rgba(182,154,115,.055); }
.hero .container { position: relative; z-index: 1; }
.hero h1 { color: #fff; font-size: clamp(2.55rem, 5.3vw, 4.35rem); max-width: 22ch; }
.hero p { color: rgba(255,255,255,.84); }
.hero .lead { font-size: clamp(1.1rem, 2vw, 1.34rem); max-width: 72ch; }
.hero-link a { color:#dcecf6; font-weight:700; }
.hero-link a:hover { color:#fff; }
.eyebrow { display:inline-flex; align-items:center; gap:.5rem; color: #dcecf6; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; }
.page-hero { padding: 4.5rem 0 3.75rem; background: linear-gradient(135deg, #edf4f8, #f5f1ea); border-bottom: 1px solid var(--color-border); }
.page-hero h1 { font-size: clamp(2.35rem, 6vw, 4.4rem); max-width: 18ch; }
.page-hero .lead { max-width: 68ch; }
.section { padding: clamp(4rem, 8vw, 7rem) 0; }
.section-sm { padding: clamp(2.8rem, 6vw, 4.5rem) 0; }
.section-soft { background: var(--color-soft); }
.section-dark { background: var(--color-navy); color: rgba(255,255,255,.84); }
.section-dark h2, .section-dark h3, .section-dark h4 { color:#fff; }
.section-title { font-size: clamp(2rem, 4vw, 3.35rem); max-width: 18ch; }
.section-intro { max-width: 70ch; font-size: 1.08rem; }
.card-clean { height:100%; background: rgba(255,255,255,.78); border: 1px solid var(--color-border); border-radius: var(--radius); box-shadow: none; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.card-clean:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); border-color: rgba(63,127,170,.5); }
.card-clean .card-body { padding: 1.45rem; }
.card-clean.position-sticky, .sidebar-card { height:auto; }
.card-icon { width: 3rem; height: 3rem; display:inline-flex; align-items:center; justify-content:center; color: var(--color-blue-dark); background:var(--color-blue-light); border-radius:.8rem; font-size:1.25rem; }
.status-label { display:inline-flex; align-items:center; gap:.4rem; border:1px solid rgba(63,127,170,.4); background:#e8f2f8; color:#285573; border-radius:999px; padding:.28rem .65rem; font-size:.75rem; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.link-arrow { font-weight: 800; text-decoration: none; }
.link-arrow::after { content:' →'; }
.portrait-frame { background:#e8edf1; border:1px solid var(--color-border); border-radius: 1.2rem; overflow:hidden; box-shadow:var(--shadow-sm); }
.portrait-frame img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center; display:block; }
.quote-panel { border-left: 5px solid var(--color-blue); background:#fff; padding:1.5rem 1.6rem; border-radius:0 var(--radius) var(--radius) 0; }
.cta-band { background: linear-gradient(135deg, #e3f0f7, #f4efe7); border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); }
.breadcrumb { --bs-breadcrumb-divider-color: #627d98; --bs-breadcrumb-item-active-color: #526d82; font-size:.9rem; }
.breadcrumb a { color:var(--color-blue-dark); }
.article-body { font-size:1.06rem; }
.article-body h2 { margin-top:2.6rem; }
.article-body h3 { margin-top:2rem; }
.article-body p { margin-bottom:1.15rem; }
.list-check { list-style:none; padding-left:0; }
.list-check li { position:relative; padding-left:1.75rem; margin-bottom:.7rem; }
.list-check li::before { content:'✓'; position:absolute; left:0; top:0; color:var(--color-blue); font-weight:900; }
.media-card .publisher { color:#627d98; font-size:.88rem; font-weight:750; }
.network-list { columns: 2; column-gap: 2rem; }
.network-list li { break-inside:avoid; margin-bottom:.55rem; }
.site-footer { background: var(--color-slate); color: rgba(255,255,255,.78); padding: 4rem 0 1.5rem; }
.site-footer h2, .site-footer h3 { color:#fff; }
.site-footer a { color:#dcecf6; }
.site-footer a:hover { color:#fff; }
.site-footer .footer-rule { border-color:rgba(255,255,255,.14); }
.footer-network { list-style:none; padding-left:0; display:flex; flex-wrap:wrap; gap:.45rem 1rem; }
.footer-network li { max-width:none; }
.footer-small { font-size:.88rem; }
.profile-hero { padding: 4.5rem 0; background:linear-gradient(135deg,var(--color-navy),#24577e); color:rgba(255,255,255,.86); }
.profile-hero h1 { color:#fff; font-size:clamp(2.7rem,7vw,5rem); }
.profile-nav { background:var(--color-bg); border-bottom:1px solid var(--color-border); }
.accordion-button:not(.collapsed) { color:var(--color-navy); background:#e6f0f6; }
.accordion-button:focus { box-shadow:0 0 0 .25rem rgba(63,127,170,.25); }
.not-found-code { font-size:clamp(4rem,15vw,9rem); font-weight:900; color:var(--color-blue); line-height:1; }
@media (max-width: 991.98px) {
  .navbar-collapse { background:var(--color-bg); padding:1rem; margin-top:.75rem; border:1px solid var(--color-border); border-radius:1rem; box-shadow:var(--shadow-sm); max-height:calc(100vh - 100px); overflow-y:auto; }
  .nav-link { min-height:46px; display:flex; align-items:center; }
  .hero { padding-top:4.5rem; }
}
@media (max-width: 575.98px) {
  body { font-size:.98rem; }
  .brand-subtitle { display:none; }
  .hero h1 { font-size:clamp(2.4rem,13vw,3.4rem); }
  .hero .btn, .page-hero .btn, .cta-band .btn { width:100%; }
  .network-list { columns:1; }
  .section { padding:3.8rem 0; }
  .card-clean .card-body { padding:1.2rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
