:root { --navy:#003c71; --logo:#00467f; --blue:#007db3; --caribbean:#3eb1c8; --caribbean-tint:#c5e7ee; --raven:#6a737b; --muted:#888e95; --line:#e1e3e5; --soft:#f7f8f8; --pale:#f0f1f1; --white:#ffffff; --black:#000000; --space:1rem; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--raven); background:var(--white); font-family:'Inter',Arial,sans-serif; font-size:1rem; line-height:1.55; }
img { display:block; max-width:100%; }
a { color:var(--blue); text-decoration:none; }
a:hover, a:focus-visible { text-decoration:underline; }
button, input { font:inherit; }
.skip-link { position:absolute; left:1rem; top:-4rem; z-index:20; padding:.5rem 1rem; background:var(--white); color:var(--navy); }
.skip-link:focus { top:1rem; }
.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; }
.utility { background:var(--soft); border-bottom:1px solid var(--line); font-size:.75rem; }
.utility-inner, .header-inner, .container { width:min(100% - 2rem, 1400px); margin-inline:auto; }
.utility-inner { min-height:32px; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.utility-links { display:flex; gap:1.5rem; align-items:center; }
.utility a { color:var(--raven); }
.site-header { position:sticky; top:0; z-index:10; background:var(--white); border-bottom:1px solid var(--line); }
.header-inner { min-height:72px; display:flex; align-items:center; gap:1.25rem; }
.logo { width:104px; height:auto; flex:none; }
.primary-nav { display:flex; flex:1; align-items:center; justify-content:center; gap:clamp(.75rem,1.4vw,1.75rem); }
.primary-nav a { position:relative; color:var(--navy); font-size:.82rem; font-weight:600; white-space:nowrap; padding-block:1.55rem; }
.primary-nav a::after { content:""; position:absolute; left:0; right:0; bottom:1rem; height:2px; background:var(--navy); transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.primary-nav a:hover::after, .primary-nav a:focus-visible::after { transform:scaleX(1); }
.header-actions { display:flex; align-items:center; gap:.75rem; }
.search { display:flex; align-items:center; border:1px solid var(--line); height:36px; width:164px; }
.search input { border:0; outline:0; width:100%; min-width:0; padding:0 .65rem; color:var(--raven); }
.search button, .icon-button { border:0; background:transparent; color:var(--navy); cursor:pointer; display:grid; place-items:center; }
.search button { width:34px; height:34px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:.55rem 1rem; border:1px solid var(--blue); border-radius:4px; font-weight:600; font-size:.82rem; cursor:pointer; }
.button-primary { background:var(--blue); color:var(--white); }
.button-primary:hover, .button-primary:focus-visible { background:var(--navy); text-decoration:none; }
.menu-toggle, .mobile-search { display:none; }
.mobile-panel { display:none; }
.hero { min-height:560px; position:relative; display:flex; align-items:center; background-image:linear-gradient(90deg,rgba(0,60,113,.92),rgba(0,60,113,.55)),url('assets/hero-run.jpg'); background-size:cover; background-position:center; color:var(--white); }
.hero-content { width:min(100% - 2rem,1400px); margin-inline:auto; padding-block:5rem; }
.eyebrow { margin:0 0 1rem; color:var(--caribbean-tint); text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; font-weight:700; }
h1, h2, h3, h4 { margin:0; color:var(--navy); font-family:'Inter Tight','Inter',Arial,sans-serif; line-height:1.08; }
h1 { max-width:680px; color:var(--white); font-size:clamp(2.75rem,6vw,5.25rem); letter-spacing:-.04em; }
.hero p:not(.eyebrow) { max-width:640px; margin:1.5rem 0 0; color:var(--white); font-size:1.1rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2rem; }
.button-light { border-color:var(--white); background:var(--white); color:var(--navy); }
.button-ghost { border-color:var(--white); color:var(--white); }
.button-ghost:hover, .button-ghost:focus-visible { background:var(--white); color:var(--navy); text-decoration:none; }
.tail { display:inline-grid; vertical-align:bottom; min-width:7.5ch; }
.tail span { grid-area:1/1; opacity:0; animation:tail 9s infinite; }
.tail span:nth-child(2) { animation-delay:3s; }
.tail span:nth-child(3) { animation-delay:6s; }
@keyframes tail { 0%,27%{opacity:1} 33%,94%{opacity:0} 100%{opacity:1} }
.section { padding-block:5rem; }
.audience { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; padding-block:1rem 4.5rem; }
.audience-card { min-height:250px; padding:2rem; border:1px solid var(--line); display:flex; flex-direction:column; align-items:flex-start; transition:border-color .2s ease; }
.audience-card:hover, .audience-card:focus-within { border-color:var(--navy); }
.small-icon { width:28px; height:28px; margin-bottom:1.5rem; color:var(--blue); }
.small-icon svg { display:block; width:100%; height:100%; }
.audience-card h2 { font-size:1.45rem; }
.audience-card p { margin:.75rem 0 1.5rem; }
.text-link { font-weight:600; }
.text-link::after { content:' →'; }
.section-heading { margin-bottom:2rem; font-size:clamp(2rem,4vw,3.2rem); letter-spacing:-.03em; }
.specialty-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
.specialty-grid a { padding:1.2rem .5rem; border-bottom:1px solid var(--line); color:var(--navy); font-family:'Inter Tight','Inter',Arial,sans-serif; font-size:1.05rem; font-weight:600; }
.specialty-grid a:hover, .specialty-grid a:focus-visible { color:var(--blue); text-decoration:none; }
.specialty-more { margin-top:2rem; }
.stories { background:var(--soft); }
.story-layout { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.story-card { display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); transition:transform .2s ease,border-color .2s ease; }
.story-card:hover, .story-card:focus-within { border-color:var(--navy); transform:translateY(-2px); }
.story-lead { grid-row:span 2; }
.story-card img { width:100%; aspect-ratio:16/9; object-fit:cover; }
/* The lead card is stretched to two grid rows: let its photo absorb the slack
   instead of leaving a blank block under the copy. */
.story-lead img { flex:1 1 auto; min-height:0; aspect-ratio:auto; }
.story-copy { padding:1.5rem; }
.story-pretitle { margin:0 0 .5rem; color:var(--blue); font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.story-card h3 { font-size:1.55rem; }
.story-card p { margin:.7rem 0 1rem; }
.mission { background:var(--navy); color:var(--white); }
.mission h2 { color:var(--white); font-size:clamp(2rem,4vw,3.2rem); }
.mission > .container > p { max-width:650px; margin:1rem 0 3rem; font-size:1.15rem; }
.mission-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--caribbean); }
.mission-item { padding:1.5rem 1rem 1.5rem 0; border-right:1px solid var(--caribbean); }
.mission-item + .mission-item { padding-left:1.5rem; }
.mission-item:last-child { border-right:0; }
.mission-item h3 { color:var(--white); font-size:1.25rem; }
.mission-link { display:inline-block; margin-top:2rem; color:var(--white); }
.split { display:grid; grid-template-columns:1fr 1fr; }
.split-panel { padding:5rem max(2rem,calc((100vw - 1400px) / 2)); }
.split-panel:first-child { padding-right:4rem; }
.split-panel:last-child { padding-left:4rem; }
.split-panel:nth-child(1) { background:var(--soft); }
.split-panel:nth-child(2) { background:var(--pale); }
.split-panel h2 { max-width:520px; font-size:clamp(1.8rem,3vw,2.7rem); }
.split-panel p { max-width:520px; margin:1rem 0 1.5rem; }
.site-footer { background:var(--navy); color:var(--white); padding-top:4rem; }
.footer-logo { width:120px; filter:brightness(0) invert(1); margin-bottom:3rem; }
.footer-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; padding-bottom:3rem; }
.footer-group h2 { color:var(--white); font-size:1rem; margin-bottom:1rem; }
.footer-group ul { list-style:none; padding:0; margin:0; }
.footer-group li + li { margin-top:.55rem; }
.footer-group a, .legal a { color:var(--white); font-size:.82rem; }
.footer-group a:hover, .legal a:hover { color:var(--caribbean-tint); }
.legal { border-top:1px solid var(--caribbean); padding-block:1.25rem 2rem; display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; font-size:.75rem; }
.legal-links { display:flex; flex-wrap:wrap; gap:1rem; }
:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
@media (max-width:991px) { .primary-nav { display:none; } .menu-toggle,.mobile-search { display:grid; } .header-actions { margin-left:auto; } .search { width:36px; border:0; } .search input { display:none; } .search button { width:36px; } .header-actions .button-primary { display:none; } .mobile-panel { position:fixed; inset:0; z-index:15; display:none; flex-direction:column; background:var(--white); padding:1rem; overflow:auto; } .mobile-panel.is-open { display:flex; } .mobile-panel-header { display:flex; align-items:center; justify-content:space-between; min-height:56px; border-bottom:1px solid var(--line); } .mobile-panel nav { display:flex; flex-direction:column; padding-top:1rem; } .mobile-panel nav a { padding:1rem 0; color:var(--navy); border-bottom:1px solid var(--line); font-family:'Inter Tight','Inter',Arial,sans-serif; font-size:1.4rem; font-weight:600; } }
@media (max-width:767px) { .utility-links a:not(:last-child) { display:none; } .utility-inner { min-height:28px; } .hero { min-height:460px; } .hero-content { padding-block:4rem; } .audience,.story-layout,.split { grid-template-columns:1fr; } .audience { padding-bottom:3rem; } .specialty-grid { grid-template-columns:repeat(2,1fr); } .story-lead { grid-row:auto; } .mission-grid { grid-template-columns:1fr; } .mission-item,.mission-item + .mission-item { padding:1rem 0; border-right:0; border-bottom:1px solid var(--caribbean); } .mission-item:last-child { border-bottom:0; } .split-panel,.split-panel:first-child,.split-panel:last-child { padding:3.5rem 1rem; } .footer-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:575px) { .utility-inner,.header-inner,.container,.hero-content { width:min(100% - 1.5rem,1400px); } .logo { width:94px; } .hero-actions { align-items:stretch; flex-direction:column; } .hero-actions .button { width:100%; } .footer-grid { grid-template-columns:1fr; } .legal { display:block; } .legal-links { margin-bottom:1rem; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; } .tail span { opacity:0; } .tail span:first-child { opacity:1; } }
