
:root{
  --navy:#0d2647;
  --navy-deep:#06182f;
  --navy-soft:#26456d;
  --crimson:#a83a2d;
  --crimson-deep:#7d281f;
  --gold:#d4a93a;
  --gold-deep:#a8821f;
  --gold-soft:#fae6a3;
  --ink:#0a1830;
  --ink-soft:#4a5868;
  --ink-dim:#8a94a5;
  --cream:#ffffff;
  --cream-warm:#f2f3f5;
  --white:#ffffff;
  --bg:#ffffff;
  --rule:#e0e4ec;
  --rule-soft:#f3f5f8;
  --fs:'Source Serif 4', Georgia, serif;
  --fb:'Source Sans 3', 'Inter', system-ui, sans-serif;
  --max:1260px;
  --pad:clamp(20px,4vw,56px);
}
*, *::before, *::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--fb);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--crimson);font-weight:700}
.eyebrow::before{content:"";width:32px;height:1px;background:var(--gold)}

/* TOP UTILITY BAND */
.utility{background:var(--navy-deep);color:var(--cream);font-size:13px;letter-spacing:.04em}
.utility .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}
.utility a:hover{color:var(--gold)}
.utility .right{display:flex;gap:18px;color:rgba(251,248,238,0.7)}
.utility .right span{color:rgba(251,248,238,0.4)}

/* NAV */
nav.top{position:sticky;top:0;z-index:50;background:var(--white);border-bottom:1px solid var(--rule)}
nav.top .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:18px;padding-bottom:18px}
.brand-link img{height:52px;width:auto}
.top-links{display:flex;gap:34px}
.top-links a{padding:6px 0;transition:color .2s;font-size:13px;color:var(--ink-soft);font-weight:600;letter-spacing:.04em}
.top-links a:hover, .top-links a.active{color:var(--crimson)}
.top-links a.active{color:var(--crimson)}
.top-cta{font-family:var(--fb);background:var(--crimson);color:var(--white);padding:11px 22px;font-weight:700;font-size:13px;letter-spacing:.04em;border-radius:4px;border:0;transition:all .2s}
.top-cta:hover{background:var(--crimson-deep);transform:translateY(-1px)}
.nav-burger{display:none;flex-direction:column;gap:5px;padding:8px}
.nav-burger span{display:block;width:22px;height:2px;background:var(--navy);transition:transform .25s}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-drawer{position:fixed;inset:88px 0 0 0;background:var(--white);z-index:40;transform:translateX(100%);transition:transform .35s;display:flex;flex-direction:column;padding:32px var(--pad)}
.mobile-drawer.open{transform:translateX(0)}
.mobile-drawer-links a{font-family:var(--fs);font-size:30px;color:var(--navy);padding:14px 0;border-bottom:1px solid var(--rule);display:block;font-weight:600}
body.drawer-open{overflow:hidden}

.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;font-family:var(--fb);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:all .2s;border-radius:4px}
.btn-crimson{background:var(--crimson);color:var(--white)}.btn-crimson:hover{background:var(--crimson-deep);transform:translateY(-2px)}
.btn-navy{background:var(--navy);color:var(--white)}.btn-navy:hover{background:var(--navy-deep);transform:translateY(-2px)}
.btn-gold{background:var(--gold);color:var(--navy)}.btn-gold:hover{background:var(--gold-deep);color:var(--white)}
.btn-ghost{border:2px solid var(--navy);color:var(--navy)}.btn-ghost:hover{background:var(--navy);color:var(--white)}

/* HERO with badge */
.hero{padding:80px 0 96px;background:linear-gradient(180deg, var(--cream) 0%, var(--white) 100%);border-bottom:3px solid var(--crimson)}
.hero-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:72px;align-items:center}
.hero .eyebrow{margin-bottom:28px}
.hero h1{font-family:var(--fs);font-size:clamp(46px,6.6vw,98px);font-weight:600;line-height:1.02;letter-spacing:-0.015em;color:var(--navy);margin-bottom:24px}
.hero h1 .crimson{color:var(--crimson)}
.hero p.lede{font-size:19px;color:var(--ink-soft);max-width:54ch;margin-bottom:36px;line-height:1.65}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-badge{position:relative;text-align:center}
.hero-badge img{width:100%;max-width:420px;height:auto;margin:0 auto;display:block;filter:drop-shadow(0 24px 36px rgba(13,38,71,0.18))}

/* ---------- HOME MASTHEAD: their own building, full bleed ----------
   Replaces a cream gradient carrying the 30-year badge. Their photograph was in
   the repo the whole time, used by nothing. */
.hero-photo{position:relative;display:flex;align-items:flex-end;min-height:min(86vh,760px);padding:0;background:var(--navy);border-bottom:3px solid var(--crimson);overflow:hidden}
.hero-photo .hero-media,.hero-photo .hero-media img{position:absolute;inset:0;width:100%;height:100%}
/* The sign sits left of centre in the frame, so anchor there: the default
   centre crop walks it off the edge on a wide monitor. */
.hero-photo .hero-media img{object-fit:cover;object-position:38% 42%}
/* Navy from the left so the type has a ground to sit on, thinning out to the
   right where the facade and sky carry the picture. The photograph is bright
   (white sign, white sky) and unscrimmed white type on it is unreadable. */
.hero-photo .hero-scrim{position:absolute;inset:0;background:linear-gradient(96deg,rgba(13,38,71,.93) 0%,rgba(13,38,71,.78) 38%,rgba(13,38,71,.30) 72%,rgba(13,38,71,.12) 100%)}
.hero-photo .wrap{position:relative;z-index:2;width:100%}
/* 60ch is sized by the PARENT's 16px, so it gave the 77px h1 about 600px and
   broke a two-line headline into five. The markup already says where the line
   breaks; the box just has to be wide enough to obey it. */
.hero-photo .hero-copy{max-width:min(940px,100%);padding:120px 0 88px}
.hero-photo .eyebrow{color:var(--gold,#c9a227);margin-bottom:22px}
.hero-photo h1{color:var(--white);font-size:clamp(34px,4.6vw,68px);margin-bottom:22px;text-shadow:0 2px 30px rgba(0,0,0,.28)}
/* The crimson is a brand colour chosen against cream; on a dark photograph it
   goes muddy, so lift it rather than lose the word. */
.hero-photo h1 .crimson{color:#ff8f7a}
.hero-photo p.lede{color:rgba(255,255,255,.9);max-width:56ch;margin-bottom:32px}
.btn-on-photo{color:var(--white);border-color:rgba(255,255,255,.55)}
.btn-on-photo:hover{background:rgba(255,255,255,.12);border-color:var(--white)}
@media (max-width:720px){
  .hero-photo{min-height:auto;align-items:flex-end}
  .hero-photo .hero-copy{padding:96px 0 56px;max-width:100%}
  /* the portrait crop keeps the sign in frame instead of cropping it away */
  .hero-photo .hero-media img{object-position:50% 38%}
  .hero-photo .hero-scrim{background:linear-gradient(180deg,rgba(13,38,71,.55) 0%,rgba(13,38,71,.72) 45%,rgba(13,38,71,.94) 100%)}
}

/* TAGLINE BAR */
.tagbar{background:var(--navy);color:var(--cream);padding:48px 0;text-align:center;border-bottom:3px solid var(--gold)}
.tagbar h2{font-family:var(--fs);font-size:clamp(22px,2.6vw,32px);font-weight:500;color:var(--cream);letter-spacing:-0.005em;line-height:1.3;max-width:780px;margin:0 auto;font-style:italic}
.tagbar h2 em{color:var(--gold);font-style:italic;font-weight:600}

/* SERVICES TABLE */
.services{padding:120px 0;background:var(--white)}
.section-head{max-width:720px;margin-bottom:64px}
.section-head .eyebrow{margin-bottom:22px}
.section-head h2{font-family:var(--fs);font-size:clamp(38px,5vw,64px);font-weight:600;letter-spacing:-0.015em;line-height:1.05;color:var(--navy);margin-bottom:22px}
.section-head h2 em{font-style:italic;color:var(--crimson);font-weight:500}
.section-head p{font-size:17.5px;color:var(--ink-soft);max-width:60ch;line-height:1.7}
.svc-table{border-top:2px solid var(--navy);border-bottom:2px solid var(--navy)}
.svc-row{display:grid;grid-template-columns:56px 280px 1fr 40px;gap:32px;padding:32px 0;border-bottom:1px solid var(--rule);align-items:center;transition:background .2s}
.svc-row:hover{background:var(--rule-soft)}
.svc-row:last-child{border-bottom:0}
.svc-row .ic{color:var(--crimson);display:flex;align-items:center}
.svc-row .ic svg{width:34px;height:34px}
.svc-row h3{font-family:var(--fs);font-size:24px;font-weight:600;color:var(--navy);letter-spacing:-0.005em;line-height:1.15}
.svc-row p{font-size:15.5px;color:var(--ink-soft);line-height:1.65}
.svc-row .arrow{font-family:var(--fs);font-size:24px;color:var(--gold);text-align:right}

/* INDUSTRIES, dark navy band */
.industries{padding:120px 0;background:var(--navy);color:var(--cream);border-top:8px solid var(--gold)}
.industries .section-head h2{color:var(--cream)}
.industries .section-head h2 em{color:var(--gold)}
.industries .section-head p{color:rgba(251,248,238,0.78);max-width:60ch}
.industries .section-head .eyebrow{color:var(--gold)}
.industries .section-head .eyebrow::before{background:var(--gold)}
.ind-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:48px}
.ind-cell{background:#15355a;padding:32px 24px;border-left:3px solid var(--crimson);transition:background .25s, transform .25s}
.ind-cell:hover{background:#1a3f6a;transform:translateY(-3px)}
.ind-cell .ic{color:var(--gold);margin-bottom:16px}
.ind-cell .ic svg{width:30px;height:30px}
.ind-cell h3{font-family:var(--fs);font-size:20px;font-weight:600;color:var(--cream);letter-spacing:-0.005em;line-height:1.2;margin-bottom:8px}
.ind-cell p{font-size:13px;color:rgba(251,248,238,0.7);line-height:1.6}

/* ABOUT band */
.about{padding:128px 0;background:var(--cream);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:center}
.about-img{position:relative;border:1px solid var(--rule);background:var(--white);padding:14px;box-shadow:0 24px 56px -28px rgba(13,38,71,0.25)}
.about-img img{width:100%;height:480px;object-fit:cover;display:block}
.about-img::after{content:"";position:absolute;inset:22px -22px -22px 22px;border:1px solid var(--gold);z-index:-1;background:var(--cream-warm)}
.about-body .eyebrow{margin-bottom:22px}
.about-body h2{font-family:var(--fs);font-size:clamp(36px,4.6vw,58px);font-weight:600;color:var(--navy);letter-spacing:-0.015em;line-height:1.04;margin-bottom:24px}
.about-body h2 em{font-style:italic;color:var(--crimson);font-weight:500}
.about-body p{font-size:17.5px;color:var(--ink-soft);line-height:1.8;margin-bottom:22px}
.about-body p strong{color:var(--navy);font-weight:700}
.about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px;padding-top:32px;border-top:1px solid var(--rule)}
.about-stats .s .n{font-family:var(--fs);font-size:42px;font-weight:600;color:var(--crimson);line-height:1;letter-spacing:-0.01em;margin-bottom:6px;display:block;font-style:italic}
.about-stats .s .l{font-family:var(--fb);font-size:13px;color:var(--ink-soft);letter-spacing:.02em}

/* AFFILIATIONS */
.affil{padding:96px 0;background:var(--white)}
.affil .section-head{text-align:center;margin-left:auto;margin-right:auto;max-width:620px}
.affil .section-head .eyebrow{justify-content:center}
.affil-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;max-width:920px;margin:48px auto 0}
.affil-cell{background:var(--navy);padding:48px;display:grid;place-items:center;border-radius:4px}
.affil-cell img{max-width:100%;max-height:120px;width:auto;height:auto;object-fit:contain}

/* CONTACT */
.contact-section{padding:120px 0;background:var(--white);border-top:1px solid var(--rule)}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:start}
.contact-left .eyebrow{margin-bottom:24px}
.contact-left h2{font-family:var(--fs);font-size:clamp(38px,5vw,64px);font-weight:600;color:var(--navy);margin-bottom:24px;letter-spacing:-0.015em;line-height:1}
.contact-left h2 em{font-style:italic;color:var(--crimson);font-weight:500}
.contact-left .lede{font-size:17px;color:var(--ink-soft);max-width:42ch;margin-bottom:40px;line-height:1.7}
.contact-info{display:flex;flex-direction:column;gap:0;border-top:2px solid var(--navy)}
.contact-info .row{display:flex;align-items:center;gap:18px;padding:20px 0;border-bottom:1px solid var(--rule)}
.contact-info .row svg{width:20px;height:20px;color:var(--crimson);flex-shrink:0}
.contact-info .row .label{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);font-weight:600;margin-bottom:4px}
.contact-info .row .val{font-family:var(--fs);font-size:18px;color:var(--navy);font-weight:600;letter-spacing:-0.005em}
.contact-info .row .val a:hover{color:var(--crimson)}
.contact-form{background:var(--cream);padding:40px;border:2px solid var(--navy)}
.contact-form h3{font-family:var(--fs);font-size:28px;color:var(--navy);margin-bottom:8px;font-weight:600;letter-spacing:-0.01em}
.contact-form h3 em{font-style:italic;color:var(--crimson);font-weight:500}
.contact-form .form-sub{font-size:14px;color:var(--ink-dim);margin-bottom:28px}
.contact-form .field{margin-bottom:18px}
.contact-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-form .field label{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);font-weight:600;margin-bottom:8px}
.contact-form .field input, .contact-form .field textarea{width:100%;padding:14px 16px;border:1px solid var(--rule);background:var(--white);color:var(--ink);font-family:var(--fb);font-size:15px;border-radius:0;transition:border-color .2s}
.contact-form .field input:focus, .contact-form .field textarea:focus{outline:0;border-color:var(--crimson)}
.contact-form .field textarea{min-height:140px;resize:vertical}
.contact-form .honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contact-submit{display:inline-flex;align-items:center;gap:10px;background:var(--crimson);color:var(--white);padding:15px 28px;font-family:var(--fb);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:0;cursor:pointer;transition:all .2s;margin-top:8px;border-radius:4px}
.contact-submit:hover{background:var(--crimson-deep)}

/* FOOTER */
footer{background:var(--navy);color:rgba(251,248,238,0.85);padding:80px 0 32px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1.1fr 1fr;gap:44px;margin-bottom:48px;align-items:start}
.foot-brand .foot-badge{margin-bottom:24px;max-width:200px}
.foot-brand .foot-badge img{width:100%;height:auto;display:block}
.foot-brand p{font-size:14px;color:rgba(251,248,238,0.7);line-height:1.7;max-width:44ch;margin-bottom:14px}
.foot-col h4{font-family:var(--fs);font-size:24px;color:var(--white);font-weight:500;margin-bottom:24px;letter-spacing:-0.01em}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:14px}
.foot-col li a, .foot-col li{font-size:15px;color:rgba(251,248,238,0.85);transition:color .2s}
.foot-col li a:hover{color:var(--gold)}
.foot-col li a.active{color:var(--crimson);font-weight:600}
.foot-contact a{display:block;color:rgba(251,248,238,0.85);font-size:15px;margin-bottom:14px;line-height:1.5}
.foot-contact a:hover{color:var(--gold)}
.foot-linkedin{margin-top:24px;width:40px;height:40px;background:#0a78d4;color:#fff;display:grid;place-items:center;font-weight:700;font-style:italic;font-family:var(--fb);font-size:20px;border-radius:6px}
.foot-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:32px;border-top:1px solid rgba(251,248,238,0.12);font-size:12px;letter-spacing:.04em;color:rgba(251,248,238,0.5)}
.foot-bottom a{color:var(--gold)}
.foot-bottom a:hover{text-decoration:underline}

@media (max-width: 960px){
  .top-links, .top-cta{display:none}.nav-burger{display:flex}
  .utility .wrap{justify-content:center}.utility .right span{display:none}
  .hero{padding:48px 0 64px}.hero-grid{grid-template-columns:1fr;gap:48px}
  .hero-badge img{max-width:280px}
  .tagbar{padding:36px 0}
  .services{padding:72px 0}.svc-row{grid-template-columns:1fr;gap:8px;padding:24px 0}.svc-row .arrow{display:none}
  .industries{padding:72px 0}.ind-grid{grid-template-columns:1fr 1fr;gap:6px}
  .about{padding:72px 0}.about-grid{grid-template-columns:1fr;gap:48px}.about-img img{height:380px}
  .affil{padding:64px 0}.affil-grid{grid-template-columns:1fr}
  .contact-section{padding:72px 0}.contact-grid{grid-template-columns:1fr;gap:48px}
  .contact-form{padding:28px}.contact-form .field-row{grid-template-columns:1fr}
  footer{padding:56px 0 24px}.foot-grid{grid-template-columns:1fr;gap:40px;margin-bottom:32px}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:8px}
}
@media (max-width:560px){.ind-grid{grid-template-columns:1fr}}


.leader{padding:96px 0;background:var(--cream)}
.leader .wrap{max-width:1080px}
.leader .grid{display:grid;grid-template-columns:280px 1fr;gap:48px;align-items:start}
.leader .initials{width:280px;height:340px;background:linear-gradient(135deg, var(--navy) 0%, var(--crimson) 100%);color:#fff;display:grid;place-items:center;border-radius:8px;font-family:var(--fs);font-weight:700;font-size:84px;letter-spacing:-0.02em}
.leader h2{font-family:var(--fs);font-size:clamp(32px,4.4vw,48px);color:var(--navy);font-weight:700;letter-spacing:-0.015em;line-height:1.05;margin-bottom:10px}
.leader h2 em{color:var(--crimson);font-style:italic}
.leader .role{font-size:13px;color:var(--gold-deep);font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:24px;padding-bottom:18px;border-bottom:2px solid var(--gold)}
.leader .bio p{font-size:17px;color:var(--ink-soft);line-height:1.85;margin-bottom:18px}
.leader .stats{display:flex;gap:32px;margin-top:24px;padding-top:24px;border-top:1px solid var(--rule)}
.leader .stats .s .n{font-family:var(--fs);font-size:32px;color:var(--crimson);font-weight:700;letter-spacing:-0.02em;line-height:1}
.leader .stats .s .l{font-size:12px;color:var(--ink-dim);font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-top:6px}

.test{padding:96px 0;background:var(--navy);color:var(--cream)}
.test h2{font-family:var(--fs);font-size:clamp(32px,4.4vw,52px);color:var(--cream);text-align:center;margin-bottom:48px;font-weight:700;letter-spacing:-0.015em;line-height:1.05}
.test h2 em{color:var(--gold);font-style:italic}
.test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1100px;margin:0 auto}
.test-card{padding:32px;background:rgba(253,248,242,0.06);border-left:4px solid var(--gold);border-radius:6px}
.test-card .quote-mark{font-family:var(--fs);font-size:48px;color:var(--gold);line-height:.5;font-weight:700;display:block;margin-bottom:0}
.test-card blockquote{font-size:15px;color:var(--cream);font-style:italic;line-height:1.65;margin-bottom:18px}
.test-card .attribution{padding-top:14px;border-top:1px solid rgba(253,248,242,0.15);font-size:13px;color:var(--gold);font-weight:700;letter-spacing:.02em}

.careers{padding:96px 0;background:var(--cream)}
.careers .wrap{max-width:980px}
.careers .job-card{padding:48px;background:#fff;border-radius:8px;border-top:6px solid var(--crimson);box-shadow:0 8px 24px rgba(13,38,71,0.06)}
.careers .badge{display:inline-block;padding:6px 14px;background:var(--crimson);color:#fff;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin-bottom:18px}
.careers h2{font-family:var(--fs);font-size:clamp(32px,4.4vw,48px);color:var(--navy);font-weight:700;letter-spacing:-0.015em;line-height:1.1;margin-bottom:14px}
.careers h2 em{color:var(--crimson);font-style:italic}
.careers .lede{font-size:17px;color:var(--ink-soft);line-height:1.7;margin-bottom:32px}
.careers .sub-head{font-family:var(--fs);font-size:18px;color:var(--navy);font-weight:700;margin:24px 0 12px;letter-spacing:-0.005em}
.careers ul{list-style:none;display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.careers ul li{font-size:14.5px;color:var(--ink-soft);padding-left:20px;position:relative;line-height:1.55}
.careers ul li::before{content:"→";color:var(--crimson);position:absolute;left:0;top:0;font-weight:700}
.careers .req-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px;padding-top:24px;border-top:1px solid var(--rule)}
.careers .req-grid .col h4{font-size:11px;color:var(--gold-deep);font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin-bottom:10px}
.careers .req-grid .col p{font-size:14px;color:var(--ink-soft);line-height:1.6}
.careers .apply{margin-top:32px;text-align:center}
.careers .apply .btn{display:inline-block;padding:14px 30px;background:var(--crimson);color:#fff;font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;border-radius:4px;text-decoration:none}

@media (max-width:960px){
  .leader .grid{grid-template-columns:1fr;gap:32px}
  .leader .initials{width:100%;max-width:340px;margin:0 auto}
  .test-grid{grid-template-columns:1fr;gap:14px}
  .careers .job-card{padding:32px 24px}
  .careers .req-grid{grid-template-columns:1fr}
}

/* ============================================================
   MULTI-PAGE ADDITIONS
   The site was one page with anchor sections; these cover the
   page-level layouts introduced by the split into six routes.
   ============================================================ */

/* Interior page header */
.page-head{padding:88px 0 72px;background:linear-gradient(180deg, var(--cream) 0%, var(--white) 100%);border-bottom:3px solid var(--crimson)}
.page-head .eyebrow{margin-bottom:24px}
.page-head h1{font-family:var(--fs);font-size:clamp(42px,5.8vw,82px);font-weight:600;line-height:1.03;letter-spacing:-0.015em;color:var(--navy);margin-bottom:22px}
.page-head h1 .crimson{color:var(--crimson)}
.page-head p.lede{font-size:19px;color:var(--ink-soft);max-width:62ch;line-height:1.65}

/* Services detail rows */
.svc-detail-band{padding:104px 0;background:var(--white)}
.svc-detail{display:grid;grid-template-columns:64px 1fr;gap:32px;padding:40px 0;border-bottom:1px solid var(--rule);align-items:start}
.svc-detail.has-photo{grid-template-columns:64px 1fr 300px}
.svc-detail .photo img{width:100%;height:190px;object-fit:cover;border-radius:10px;display:block}
.svc-detail:first-child{border-top:2px solid var(--navy)}
.svc-detail:last-child{border-bottom:2px solid var(--navy)}
.svc-detail .ic{color:var(--crimson);display:flex;padding-top:2px}
.svc-detail .ic svg{width:40px;height:40px}
.svc-detail h3{font-family:var(--fs);font-size:28px;font-weight:600;color:var(--navy);letter-spacing:-0.008em;line-height:1.15;margin-bottom:12px}
.svc-detail p{font-size:16.5px;color:var(--ink-soft);line-height:1.75;max-width:74ch}

/* About: story band */
.prose-band{padding:112px 0;background:var(--white)}
.prose-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:72px;align-items:start}
.prose-img{position:relative;border:1px solid var(--rule);background:var(--white);padding:14px;box-shadow:0 24px 56px -28px rgba(13,38,71,0.25)}
.prose-img img{width:100%;height:460px;object-fit:cover;display:block}
.prose-body .eyebrow{margin-bottom:22px}
.prose-body h2{font-family:var(--fs);font-size:clamp(34px,4.4vw,56px);font-weight:600;color:var(--navy);letter-spacing:-0.015em;line-height:1.05;margin-bottom:24px}
.prose-body h2 em{font-style:italic;color:var(--crimson);font-weight:500}
.prose-body p{font-size:17px;color:var(--ink-soft);line-height:1.8;margin-bottom:20px}

/* About: vision band */
.vision-band{padding:104px 0;background:var(--cream);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.vision-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.vision-grid p{font-size:17px;color:var(--ink-soft);line-height:1.8}

/* Leadership photo (replaces the initials placeholder) */
.leader .leader-photo{width:280px;border:1px solid var(--rule);background:var(--white);padding:12px;box-shadow:0 20px 44px -24px rgba(13,38,71,0.3)}
.leader .leader-photo img{width:100%;height:320px;object-fit:cover;object-position:center top;display:block}

/* Community support logos */
.community{padding:104px 0;background:var(--white)}
.community-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:center;margin-top:48px}
.community-cell{display:grid;place-items:center;padding:28px 20px;border:1px solid var(--rule);border-radius:6px;background:var(--white);transition:border-color .25s, transform .25s}
.community-cell:hover{border-color:var(--gold);transform:translateY(-3px)}
.community-cell img{max-height:76px;width:auto;object-fit:contain}

.affil-cell.affil-text{display:grid;place-items:center;padding:24px;background:var(--navy);color:var(--gold);font-family:var(--fs);font-weight:600;font-size:15px;line-height:1.4;text-align:center;letter-spacing:.02em;border-radius:6px}

/* Closing CTA band */
.cta-band{padding:96px 0;background:var(--navy);color:var(--cream);text-align:center;border-top:8px solid var(--gold)}
.cta-band h2{font-family:var(--fs);font-size:clamp(34px,4.4vw,56px);font-weight:600;color:var(--cream);letter-spacing:-0.015em;line-height:1.05;margin-bottom:18px}
.cta-band h2 em{font-style:italic;color:var(--gold);font-weight:500}
.cta-band p{font-size:17.5px;color:rgba(251,248,238,0.78);max-width:62ch;margin:0 auto 32px;line-height:1.7}

/* Apply forms sit under the job card on careers/internship */
.apply-form{margin-top:40px}
.careers .contact-form{background:var(--white);border-radius:8px}
.careers .job-card .duties-lede{font-size:14.5px;color:var(--ink-soft);line-height:1.65;margin-bottom:14px}

/* Footer hours column */
.foot-hours{list-style:none;display:flex;flex-direction:column;gap:8px}
.foot-hours li{font-size:14px;color:rgba(251,248,238,0.7);line-height:1.5}

@media (max-width:1024px){
  .community-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:960px){
  .prose-grid{grid-template-columns:1fr;gap:40px}
  .prose-img img{height:320px}
  .vision-grid{grid-template-columns:1fr;gap:24px}
  .svc-detail{grid-template-columns:1fr;gap:10px;padding:32px 0}
  .svc-detail.has-photo{grid-template-columns:1fr}
  .svc-detail .photo img{height:220px;margin-top:8px}
  .leader .leader-photo{width:100%;max-width:280px;margin:0 auto}
}
@media (max-width:640px){
  .community-grid{grid-template-columns:repeat(2,1fr)}
  .page-head{padding:64px 0 52px}
}

/* Footer: 4 columns at desktop (brand, menu, contact, hours), 2 at tablet */
@media (min-width:961px) and (max-width:1180px){
  .foot-grid{grid-template-columns:1fr 1fr;gap:40px}
}
/* LinkedIn mark, outlined to sit with the navy footer rather than a raw blue tile */
.foot-linkedin{background:transparent;border:1px solid rgba(251,248,238,0.3);color:rgba(251,248,238,0.85);transition:border-color .2s, color .2s}
.foot-linkedin:hover{border-color:var(--gold);color:var(--gold)}
