:root{
    --navy:#1b2a3c;
    --navy-light:#25384f;
    --accent:#5b93b8;
    --accent-dark:#4a7c9c;
    --text:#26313f;
    --muted:#5b6570;
    --bg:#ffffff;
    --bg-alt:#f5f7f9;
    --border:#e3e7eb;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
    margin:0;
    font-family:'Raleway', Arial, sans-serif;
    color:var(--text);
    background:var(--bg);
    line-height:1.65;
}
h1,h2,h3,h4{
    font-family:'Dosis', Arial, sans-serif;
    color:var(--navy);
    line-height:1.2;
    margin-top:0;
}
a{color:var(--accent-dark);}
.skip-link{
    position:absolute;
    left:-999px;
    top:auto;
    background:var(--navy);
    color:#fff;
    padding:10px 16px;
    z-index:1000;
}
.skip-link:focus{left:10px;top:10px;}

/* header */
header.site-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:16px;
    padding:16px 32px;
    border-bottom:1px solid var(--border);
}
.logo{
    display:flex;
    align-items:center;
    gap:10px;
    text-decoration:none;
}
.logo img{height:56px;width:auto;display:block;}
nav.main-nav{
    display:flex;
    flex-wrap:wrap;
    gap:28px;
}
nav.main-nav a{
    text-decoration:none;
    color:var(--navy);
    font-size:0.95rem;
    letter-spacing:.03em;
    text-transform:uppercase;
    padding-bottom:4px;
    border-bottom:2px solid transparent;
}
nav.main-nav a:hover,
nav.main-nav a.active{
    border-bottom-color:var(--accent);
    color:var(--accent-dark);
}

/* hero */
.hero{
    position:relative;
    background-size:cover;
    background-position:center;
    color:#fff;
    text-align:center;
    padding:130px 24px;
}
.hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(27,42,60,.72), rgba(27,42,60,.78));
}
.hero-inner{position:relative;z-index:1;max-width:760px;margin:0 auto;}
.hero h1{color:#fff;font-size:2.6rem;margin-bottom:18px;}
.hero p{font-size:1.15rem;color:#e7edf2;margin-bottom:28px;}
.btn{
    display:inline-block;
    background:var(--accent);
    color:#fff;
    padding:14px 30px;
    border-radius:6px;
    text-decoration:none;
    font-weight:700;
    border:none;
    cursor:pointer;
    font-family:'Raleway',Arial,sans-serif;
    font-size:1rem;
}
.btn:hover{background:var(--accent-dark);}

/* sections */
section{padding:64px 24px;}
.section-inner{max-width:1080px;margin:0 auto;}
.section-alt{background:var(--bg-alt);}
.center{text-align:center;}
.lede{max-width:720px;margin:0 auto 40px;color:var(--muted);font-size:1.05rem;}

.card-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:28px;
    margin-top:36px;
}
.card{
    background:#fff;
    border:1px solid var(--border);
    border-radius:8px;
    padding:26px;
}
.card h3{margin-bottom:10px;font-size:1.15rem;}
.card p{color:var(--muted);font-size:0.95rem;margin:0;}

.two-col{
    display:grid;
    grid-template-columns:1.1fr 0.9fr;
    gap:48px;
    align-items:center;
}
.two-col img{width:100%;border-radius:8px;display:block;}
@media (max-width:820px){
    .two-col{grid-template-columns:1fr;}
}

.check-list{list-style:none;padding:0;margin:20px 0;}
.check-list li{
    padding-left:30px;
    position:relative;
    margin-bottom:12px;
    color:var(--text);
}
.check-list li::before{
    content:"✓";
    position:absolute;
    left:0;
    color:var(--accent-dark);
    font-weight:700;
}

.team-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:28px;
    margin-top:32px;
}
.team-card{
    background:#fff;
    border:1px solid var(--border);
    border-radius:8px;
    padding:26px;
    text-align:center;
}
.team-card h3{margin-bottom:4px;}
.team-card .role{color:var(--accent-dark);font-size:0.9rem;margin-bottom:10px;}

/* contact form */
.contact-form{max-width:560px;margin:0 auto;}
.contact-form label{display:block;font-weight:700;margin-bottom:6px;font-size:0.9rem;}
.contact-form input,
.contact-form textarea{
    width:100%;
    padding:12px;
    margin-bottom:18px;
    border:1px solid var(--border);
    border-radius:6px;
    font-family:inherit;
    font-size:1rem;
}
.contact-form textarea{min-height:140px;resize:vertical;}
.hp-field{position:absolute;left:-9999px;}

.contact-details{
    max-width:560px;
    margin:36px auto 0;
    text-align:center;
    color:var(--muted);
}
.contact-details a{color:var(--navy);font-weight:700;text-decoration:none;}

/* footer */
footer.site-footer{
    background:var(--navy);
    color:#c9d2db;
    padding:40px 24px 24px;
    text-align:center;
    font-size:0.9rem;
}
footer.site-footer .foot-brand{
    font-family:'Dosis', Arial, sans-serif;
    color:#fff;
    font-size:1.2rem;
    margin-bottom:10px;
}
footer.site-footer a{color:#fff;text-decoration:none;}
footer.site-footer .foot-links a{margin:0 10px;opacity:.85;}
footer.site-footer .foot-links a:hover{opacity:1;text-decoration:underline;}
footer.site-footer .copyright{margin-top:18px;opacity:.6;font-size:0.8rem;}

.city-strip{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    justify-content:center;
    margin-top:24px;
}
.city-strip a{
    border:1px solid var(--border);
    padding:8px 16px;
    border-radius:20px;
    text-decoration:none;
    color:var(--navy);
    font-size:0.9rem;
}
.city-strip a:hover{background:var(--accent);color:#fff;border-color:var(--accent);}
