:root {
    --primary: #24458b;
    --primary-dark: #173160;
    --accent: #d63e34;
    --ink: #1f2937;
    --muted: #5f6b7a;
    --bg: #ffffff;
    --bg-soft: #f3f7fb;
    --line: #d9e2ec;
    --shadow: 0 16px 40px rgba(18, 38, 63, 0.12);
    --radius: 18px;
    --container: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: 'Source Sans 3', Arial, sans-serif;
    color: var(--ink);
    line-height: 1.6;
    background: var(--bg);
}
a { color: var(--primary); text-decoration: none; }
a:hover { color: var(--accent); }
img { max-width: 100%; display: block; }
h1,h2,h3,h4 { font-family: 'Montserrat', Arial, sans-serif; line-height: 1.15; margin: 0 0 .75rem; }
p, ul { margin: 0 0 1rem; }
.container { width: min(calc(100% - 2rem), var(--container)); margin: 0 auto; }
.skip-link {
    position: absolute; left: -9999px; top: auto;
}
.skip-link:focus { left: 1rem; top: 1rem; background: #fff; padding: .75rem 1rem; z-index: 1000; }
.topbar { background: var(--primary-dark); color: #fff; }
.topbar a { color: #fff; font-weight: 600; }
.topbar-inner { display: flex; justify-content: flex-end; gap: 1.5rem; padding: .65rem 0; flex-wrap: wrap; }
.site-header { position: sticky; top: 0; background: rgba(255,255,255,.97); backdrop-filter: blur(8px); z-index: 50; box-shadow: 0 2px 16px rgba(0,0,0,.04); }
.nav-wrap { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; }
.brand img { width: min(320px, 100%); height: auto; }
.site-nav { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.site-nav a {
    padding: .8rem 1rem;
    border-radius: 999px;
    color: var(--ink);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: .88rem;
}
.site-nav a.active, .site-nav a:hover { background: var(--primary); color: #fff; }
.nav-toggle {
    display: none; background: transparent; border: 0; padding: .5rem; cursor: pointer;
}
.nav-toggle span { display:block; width: 28px; height: 3px; background: var(--primary-dark); margin: 5px 0; border-radius: 999px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hero, .page-hero { position: relative; min-height: 560px; display: grid; align-items: center; overflow: clip; }
.hero-media, .page-hero-media { position: absolute; inset: 0; }
.hero-media::after, .page-hero-media::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(10,24,52,.82), rgba(10,24,52,.55) 50%, rgba(10,24,52,.25));
}
.hero-media img, .page-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.hero-content, .page-hero-content { position: relative; z-index: 1; padding: 5rem 0; }
.hero-card {
    max-width: 650px; color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2);
    border-radius: calc(var(--radius) + 8px); padding: 2rem; box-shadow: var(--shadow); backdrop-filter: blur(6px);
}
.hero h1, .page-hero h1 { color: #fff; font-size: clamp(2.2rem, 4vw, 4.4rem); }
.page-hero-content { max-width: 780px; color:#fff; }
.page-hero-content p { max-width: 60ch; }
.eyebrow { text-transform: uppercase; letter-spacing: .16em; font-size: .82rem; font-weight: 800; color: #b9d1ff; margin-bottom: 1rem; }
.button-row { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.5rem; }
.button {
    display:inline-flex; align-items:center; justify-content:center; background: var(--accent); color:#fff;
    padding: .95rem 1.3rem; border-radius: 999px; font-weight: 700; border: 0; cursor: pointer;
    box-shadow: var(--shadow);
}
.button:hover { background: #b82e26; color: #fff; }
.button-secondary { background: #fff; color: var(--primary-dark); }
.section { padding: 5rem 0; }
.section-alt { background: var(--bg-soft); }
.grid-two { display: grid; grid-template-columns: 1.05fr .95fr; gap: 2.5rem; align-items: center; }
.image-card img, .card, .contact-card, .contact-form, .map-embed { border-radius: var(--radius); }
.image-card img { box-shadow: var(--shadow); }
.section-heading { margin-bottom: 2rem; max-width: 760px; }
.cards { display: grid; gap: 1.5rem; }
.cards-3 { grid-template-columns: repeat(3, 1fr); }
.cards-2 { grid-template-columns: repeat(2, 1fr); }
.card { background: #fff; padding: 1.6rem; box-shadow: var(--shadow); border: 1px solid var(--line); }
.cta-strip { background: linear-gradient(135deg, var(--primary), var(--primary-dark)); color: #fff; }
.cta-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.check-list { padding-left: 1.2rem; }
.check-list li { margin-bottom: .4rem; }
.columns { columns: 2; column-gap: 2rem; }
.contact-layout { display: grid; grid-template-columns: .95fr 1.05fr; gap: 2rem; align-items: start; }
.contact-card, .contact-form { background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); padding: 1.5rem; }
.contact-form { display:grid; gap: 1rem; }
.contact-form label { display:grid; gap: .4rem; font-weight: 700; }
.contact-form input, .contact-form textarea {
    width: 100%; border: 1px solid #c8d3df; border-radius: 12px; padding: .85rem 1rem; font: inherit;
}
.contact-form input:focus, .contact-form textarea:focus { outline: 2px solid rgba(36,69,139,.18); border-color: var(--primary); }
.map-embed { overflow:hidden; min-height: 360px; margin-top: 1rem; box-shadow: var(--shadow); }
.map-embed iframe { width: 100%; min-height: 360px; border: 0; }
.alert { padding: 1rem 1.2rem; border-radius: 14px; margin-bottom: 1rem; }
.alert-success { background: #e8f7ea; color: #0f5e22; }
.alert-error { background: #fdecec; color: #8b1d1d; }
.site-footer { background: #0f1b33; color: rgba(255,255,255,.92); padding-top: 4rem; }
.site-footer a { color: #fff; }
.footer-grid { display:grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 2rem; }
.footer-list { padding-left: 1.2rem; margin: 0; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.12); margin-top: 2rem; padding: 1rem 0 2rem; }
@media (max-width: 980px) {
    .grid-two, .cards-3, .cards-2, .contact-layout, .footer-grid { grid-template-columns: 1fr; }
    .cta-inner { flex-direction: column; align-items: flex-start; }
    .columns { columns: 1; }
    .site-nav {
        display: none; position: absolute; top: calc(100% + 1px); left: 1rem; right: 1rem; background: #fff;
        padding: 1rem; border-radius: 18px; box-shadow: var(--shadow); border:1px solid var(--line);
    }
    .site-nav.open { display: grid; }
    .nav-toggle { display: block; }
}
@media (max-width: 720px) {
    .topbar-inner { justify-content: center; }
    .hero, .page-hero { min-height: 500px; }
    .hero-card { padding: 1.35rem; }
    .section { padding: 3.75rem 0; }
}
