
:root { --navy:#152d46; --ink:#122c48; --muted:#566579; --blue:#609bc2; --line:#b0bac5; --pale:#edf0f2; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.6; color:var(--ink); background:var(--white); }
a { color:inherit; text-underline-offset:4px; }
a:hover { text-decoration:underline; }
a:focus-visible,summary:focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
.container { width:min(1200px,calc(100% - 80px)); margin-inline:auto; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:1.15; }
h1 { font-size:clamp(34px,4.1vw,56px); letter-spacing:-1.7px; margin-bottom:22px; }
h2 { font-size:30px; letter-spacing:-.6px; margin-bottom:12px; }
h3 { font-size:22px; letter-spacing:-.3px; margin-bottom:7px; }
p { color:var(--muted); margin-bottom:18px; }
.skip-link { position:absolute; top:-70px; left:20px; padding:10px 20px; background:var(--navy); color:white; z-index:5; }
.skip-link:focus { top:10px; }
.site-header { background:white; }
.header-inner { min-height:92px; display:flex; align-items:center; gap:38px; }
.brand { text-decoration:none; display:inline-flex; flex-direction:column; line-height:1.2; flex-shrink:0; }
.brand:hover { text-decoration:none; }
.brand span { font-size:27px; font-weight:700; letter-spacing:.4px; }
.brand small { font-size:12px; font-weight:700; color:var(--blue); letter-spacing:2.6px; margin-top:3px; }
.header-inner nav { display:flex; align-items:center; gap:30px; margin-left:auto; }
.header-inner nav a { text-decoration:none; font-size:15px; padding:12px 4px; border-bottom:1px solid transparent; }
.header-inner nav a[aria-current=page],.header-inner nav a:hover { border-color:var(--navy); }
.button { display:inline-flex; align-items:center; justify-content:center; background:var(--navy); color:white; padding:13px 25px; text-decoration:none; font-size:16px; font-weight:700; line-height:1.4; border:1px solid var(--navy); }
.button:hover { background:#284761; text-decoration:none; }
.header-contact { font-size:15px; padding:11px 23px; }
.hero { background:var(--pale); }
.hero-inner { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:32px; padding-top:25px; padding-bottom:25px; }
.hero-copy { padding:30px 0; }
.hero-copy h1 { font-size:clamp(34px,4vw,54px); line-height:1.14; letter-spacing:-1.7px; }
.hero-copy p { font-size:20px; line-height:1.5; max-width:530px; margin-bottom:24px; }
.hero-actions { display:flex; align-items:center; gap:26px; }
.text-link { font-size:16px; }
.hero-image { width:100%; height:350px; object-fit:cover; display:block; }
.disciplines-section { padding-top:33px; padding-bottom:34px; }
.section-intro { font-size:17px; line-height:1.5; margin-bottom:24px; }
.disciplines { display:grid; grid-template-columns:repeat(4,1fr); gap:34px; }
.discipline { border-top:1px solid #7d90a3; padding-top:10px; }
.number { display:block; color:var(--blue); font-size:15px; font-weight:700; margin-bottom:5px; }
.discipline h3 a { text-decoration:none; }
.discipline h3 a:hover { text-decoration:underline; }
.discipline p { font-size:15px; line-height:1.5; margin:0; }
.contact-band { background:var(--navy); color:white; }
.contact-inner { display:flex; justify-content:space-between; align-items:center; gap:25px; padding-top:22px; padding-bottom:22px; }
.contact-inner h2 { font-size:26px; margin:0; }
.contact-inner a { font-weight:700; font-size:16px; }
.copyright { font-size:11px; color:var(--muted); padding-bottom:18px; }
.page-heading { background:var(--pale); padding:48px 0 36px; }
.page-heading h1 { font-size:46px; margin-bottom:16px; }
.page-heading p { font-size:20px; max-width:690px; margin:0; }
.services-content,.about-content { padding-top:38px; padding-bottom:42px; }
.services-intro { max-width:850px; font-size:18px; }
.service-index { display:flex; gap:28px; flex-wrap:wrap; margin:24px 0 35px; }
.service-index a { font-weight:700; }
.service-row { display:grid; grid-template-columns:1fr 1.6fr; gap:70px; padding:30px 0; border-top:1px solid var(--line); }
.service-row h2 { max-width:300px; font-size:28px; }
.service-row p { margin-bottom:12px; }
.service-row ul { margin:0; padding-left:18px; color:var(--muted); }
.service-row li { margin:4px 0; padding-left:3px; }
.scope-note { border-top:1px solid var(--line); padding-top:24px; margin:0; font-size:15px; }
.about-intro { display:grid; grid-template-columns:1fr 1.6fr; gap:70px; padding-bottom:24px; }
.about-intro h2 { font-size:30px; }
.about-intro p:first-child { font-size:20px; color:var(--ink); }
.mission-vision { display:grid; grid-template-columns:1fr 1fr; gap:70px; border-top:1px solid var(--line); padding-top:32px; padding-bottom:20px; }
.mission-vision p { max-width:510px; }
.approach { border-top:1px solid var(--line); padding-top:30px; }
.approach-list { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:24px; }
.approach h3 { font-size:19px; }
.approach p { margin:0; }
@media(min-width:1450px) { .hero-inner { padding-top:35px; padding-bottom:35px; }.hero-image { height:370px; } }
@media(max-width:1000px) { .container { width:calc(100% - 48px); }.header-inner { gap:24px; }.brand span { font-size:23px; }.brand small { font-size:10px; letter-spacing:2.1px; }.header-inner nav { gap:18px; }.header-contact { padding:10px 16px; }.hero-copy h1 { font-size:40px; }.hero-copy p { font-size:18px; }.hero-actions { gap:20px; flex-wrap:wrap; }.hero-image { height:330px; }.disciplines { gap:24px; }.contact-inner h2 { font-size:24px; }.footer-inner { flex-wrap:wrap; }.footer-inner p { display:none; } }
@media(max-width:700px) { .container { width:calc(100% - 40px); }.header-inner { padding:20px 0 12px; flex-wrap:wrap; gap:14px; justify-content:space-between; }.brand span { font-size:21px; }.header-contact { font-size:13px; padding:9px 12px; }.header-inner nav { order:3; width:100%; justify-content:flex-start; margin:0; gap:26px; }.header-inner nav a { font-size:15px; padding:5px 0; }.hero-inner { grid-template-columns:1fr; gap:24px; padding-top:27px; padding-bottom:24px; }.hero-copy { padding:0; }.hero-copy h1 { font-size:38px; letter-spacing:-1.2px; margin-bottom:18px; }.hero-copy p { font-size:18px; margin-bottom:22px; }.hero-actions { gap:24px; }.button { font-size:15px; padding:12px 20px; }.header-contact { font-size:13px; padding:9px 12px; }.text-link { font-size:14px; }.hero-image { height:auto; aspect-ratio:7/4; }.disciplines-section { padding:30px 0; }h2 { font-size:27px; }.section-intro { font-size:16px; }.disciplines { grid-template-columns:1fr 1fr; gap:24px; }h3 { font-size:21px; }.discipline p { font-size:15px; }.contact-inner { flex-direction:column; align-items:flex-start; gap:12px; padding-top:25px; padding-bottom:25px; }.contact-inner h2 { font-size:24px; }.contact-inner a { font-size:15px; overflow-wrap:anywhere; }.footer-inner { align-items:flex-start; gap:21px; padding-top:25px; }.footer-inner nav { margin:0; width:100%; }.copyright { padding-top:8px; }.page-heading { padding:32px 0; }.page-heading h1 { font-size:38px; }.page-heading p { font-size:18px; }.services-content,.about-content { padding-top:28px; padding-bottom:32px; }.service-index { gap:15px 24px; font-size:15px; }.service-row,.about-intro { grid-template-columns:1fr; gap:12px; }.service-row { padding:25px 0; }.service-row h2 { max-width:none; font-size:26px; margin:0 0 5px; }.about-intro h2 { margin-bottom:5px; }.mission-vision { grid-template-columns:1fr; gap:10px; padding-top:27px; }.approach-list { grid-template-columns:1fr; gap:22px; }.services-intro { font-size:17px; } }
@media(max-width:360px) { .header-contact { display:none; }.hero-copy h1 { font-size:33px; }.hero-actions { gap:15px; }.disciplines { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Simple legal pages and footer links. */
.footer-bottom { padding-top:18px; display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px 24px; padding-bottom:18px; }
.footer-bottom .copyright { padding:0; }
.legal-links { display:flex; gap:20px; font-size:12px; }
.legal-links a { color:var(--muted); }
.legal-content { max-width:850px; padding-top:32px; padding-bottom:40px; }
.legal-updated { font-size:13px; margin-bottom:28px; }
.legal-content section + section { margin-top:26px; }
.legal-content h2 { font-size:23px; margin-bottom:10px; }
.legal-content p { overflow-wrap:anywhere; }
@media(max-width:700px) { .footer-bottom { padding-top:8px; }.legal-content { padding-top:26px; }.legal-content h2 { font-size:22px; } }
