:root { --navy:#092957; --gold:#a87316; --ink:#172033; --cream:#f8f6f1; --line:#d9d2c4; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--cream); font:17px/1.65 Georgia, 'Times New Roman', serif; }
a { color:var(--navy); }
.site-header { background:#fff; border-bottom:4px solid var(--gold); }
.header-inner, .page, .footer-inner { width:min(1120px, calc(100% - 40px)); margin:auto; }
.brand { display:block; padding:20px 0 14px; }
.brand img { display:block; width:min(100%, 940px); height:auto; margin:auto; }
.nav { background:var(--navy); }
.nav ul { display:flex; flex-wrap:wrap; gap:4px 20px; padding:0; margin:0; list-style:none; }
.nav a { display:block; color:#fff; padding:12px 0; text-decoration:none; font-family:Arial,sans-serif; font-size:.93rem; font-weight:bold; letter-spacing:.04em; }
.nav a:hover,.nav a[aria-current='page'] { color:#f4cf7e; }
.page { padding:54px 0; }
.hero { display:grid; grid-template-columns:220px 1fr; gap:42px; align-items:center; padding-bottom:42px; border-bottom:1px solid var(--line); }
.portrait { width:100%; border-radius:4px; box-shadow:0 12px 24px #09142635; }
h1,h2,h3 { color:var(--navy); line-height:1.18; }
h1 { font-size:clamp(2rem,4vw,3.3rem); margin:0 0 14px; }
h2 { font-size:1.65rem; margin:42px 0 15px; }
h3 { font-size:1.2rem; margin:0 0 10px; }
.eyebrow { color:#856219; font-family:Arial,sans-serif; font-weight:bold; letter-spacing:.09em; text-transform:uppercase; font-size:.78rem; margin:0 0 10px; }
.lead { font-size:1.22rem; max-width:760px; }
.button { display:inline-block; background:var(--gold); color:#fff; padding:12px 20px; border-radius:3px; font-family:Arial,sans-serif; font-weight:bold; text-decoration:none; margin:8px 12px 0 0; }
.button.secondary { background:var(--navy); }
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin:26px 0; }
.card { background:#fff; border-top:4px solid var(--gold); padding:25px; box-shadow:0 4px 14px #13223b12; }
.card p { margin-bottom:0; }
.details { max-width:780px; }
.notice { background:#fff4d9; border-left:4px solid var(--gold); padding:18px 20px; margin-top:30px; }
.contact-box { background:#fff; border:1px solid var(--line); padding:28px; max-width:620px; }
.contact-box p { margin:8px 0; font-size:1.1rem; }
.faq { margin-top:52px; }
.timeline { list-style:none; padding:0; margin:26px 0; counter-reset:step; }
.timeline li { position:relative; padding:0 0 26px 62px; counter-increment:step; }
.timeline li::before { content:counter(step); position:absolute; left:0; top:0; width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:var(--navy); color:#fff; font:bold 1rem Arial,sans-serif; }
.timeline li:not(:last-child)::after { content:''; position:absolute; left:18px; top:42px; bottom:0; border-left:2px solid var(--gold); }
.faq details { background:#fff; border:1px solid var(--line); margin:12px 0; padding:0 20px; }
.faq summary { cursor:pointer; color:var(--navy); font-weight:bold; padding:17px 25px 17px 0; }
.home-faq { margin-top:52px; padding-top:12px; border-top:1px solid var(--line); }
.faq-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:22px 0; }
.faq-grid details,.faq-page details { background:#fff; border:1px solid var(--line); padding:0 20px; }
.faq-grid summary,.faq-page summary { cursor:pointer; color:var(--navy); font-weight:bold; padding:17px 25px 17px 0; }
.faq-page section { scroll-margin-top:20px; }
.faq-topics { display:flex; flex-wrap:wrap; gap:10px; margin:28px 0 42px; }
.faq-topics a { background:#fff; border:1px solid var(--line); border-radius:999px; padding:8px 15px; font:600 .9rem Arial,sans-serif; text-decoration:none; }
.source-box { background:#fff; border-top:4px solid var(--gold); padding:8px 24px 20px; margin-top:42px; }
.regional-intro,.service-area-callout { max-width:850px; margin-top:42px; }
.smaller-cases { max-width:900px; margin:42px 0; padding:26px; background:#fff; border-top:4px solid var(--gold); box-shadow:0 4px 14px #13223b12; }
.smaller-cases h2 { margin-top:0; }
.service-area-callout { background:#fff; border-left:4px solid var(--gold); padding:22px 26px; }
.service-area-callout h2 { margin-top:0; }
.region-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin:24px 0 42px; }
.region-grid article { background:#fff; border:1px solid var(--line); padding:22px; }
.region-grid h3 { margin-top:0; }
.local-faq { margin-top:42px; }
.local-faq details { background:#fff; border:1px solid var(--line); margin:12px 0; padding:0 20px; }
.local-faq summary { cursor:pointer; color:var(--navy); font-weight:bold; padding:17px 25px 17px 0; }
.cta { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:52px; padding:28px; background:var(--navy); color:#fff; }
.cta h2,.cta .eyebrow { color:#fff; margin-top:0; }
.cta p { margin-bottom:0; }
.site-footer { background:#071c3c; color:#fff; padding:30px 0; font-size:.92rem; }
.site-footer a { color:#f4cf7e; }
@media (max-width:700px) { .header-inner,.page,.footer-inner { width:min(100% - 28px,1120px); } .brand { padding:12px 0; } .nav ul { justify-content:flex-start; gap:0 16px; } .nav a { font-size:.8rem; padding:10px 0; } .page { padding:34px 0; } .hero { grid-template-columns:1fr; gap:22px; } .portrait { max-width:190px; } .cards,.faq-grid,.region-grid { grid-template-columns:1fr; } .cta { align-items:flex-start; flex-direction:column; } }
