@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root {
    --navy:#102b37;
    --ink:#183542;
    --muted:#657984;
    --line:#e3e9e9;
    --light:#f5f8f7;
    --green:#18745a;
    --green-light:#e9f3ef;
    --white:#fff;
    --max:1180px
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
body {
    margin:0;
    color:var(--ink);
    font-family:'DM Sans',Arial,sans-serif;
    line-height:1.65;
    background:#fff
}
h1,h2,h3,h4 {
    font-family:Manrope,Arial,sans-serif;
    line-height:1.17;
    letter-spacing:-.035em;
    margin:0 0 17px
}
h1 {
    font-size:clamp(2.5rem,5vw,4.9rem);
    font-weight:800
}
h2 {
    font-size:clamp(2rem,3.4vw,3.15rem)
}
h3 {
    font-size:1.25rem
}
p {
    margin:0 0 18px
}
a {
    text-decoration:none;
    color:inherit
}
img {
    max-width:100%;
    display:block
}
button,input,select,textarea {
    font:inherit
}
button {
    cursor:pointer
}
.container {
    width:min(var(--max),calc(100% - 48px));
    margin:auto
}
.topline {
    background:#102b37;
    color:#d8e7e5;
    font-size:12px;
    padding:8px 0
}
.topline .container {
    display:flex;
    justify-content:space-between;
    gap:20px
}
.site-header {
    height:86px;
    display:flex;
    align-items:center;
    border-bottom:1px solid var(--line);
    background:#fff;
    position:sticky;
    top:0;
    z-index:99
}
.header-row {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:22px
}
.brand img {
    height:58px;
    width:auto;
    max-width:138px;
    object-fit:contain
}
.nav {
    display:flex;
    align-items:center;
    gap:27px;
    font-size:14px;
    font-weight:700
}
.nav>a,.dropdown>a {
    padding:12px 0
}
.nav a:hover,.nav a.active {
    color:var(--green)
}
.dropdown {
    position:relative
}
.dropdown-menu {
    display:none;
    position:absolute;
    top:100%;
    left:-18px;
    background:white;
    box-shadow:0 14px 40px #0e2c3822;
    border:1px solid var(--line);
    min-width:238px;
    border-radius:10px;
    padding:11px;
    z-index:5
}
.dropdown:hover .dropdown-menu,.dropdown:focus-within .dropdown-menu {
    display:grid
}
.dropdown-menu a {
    font-weight:500;
    padding:9px 13px;
    border-radius:6px
}
.dropdown-menu a:hover {
    background:var(--light)
}
.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    background:var(--green);
    color:#fff;
    border:1px solid var(--green);
    padding:13px 23px;
    border-radius:6px;
    font-weight:700;
    line-height:1.2;
    transition:transform .2s,background .2s
}
.btn:hover {
    transform:translateY(-2px);
    background:#105741;
    color:#fff
}
.btn-outline {
    background:transparent;
    color:var(--ink);
    border-color:#a9b8bb
}
.btn-outline:hover {
    background:#f4f7f7;
    color:var(--ink)
}
.btn-light {
    background:white;
    color:var(--navy);
    border-color:white
}
.eyebrow {
    text-transform:uppercase;
    letter-spacing:.16em;
    font-weight:800;
    color:var(--green);
    font-size:12px;
    display:block;
    margin-bottom:19px
}
.lead {
    font-size:1.14rem;
    line-height:1.85;
    color:var(--muted);
    max-width:650px
}
.section {
    padding:94px 0
}
.section-soft {
    background:var(--light)
}
.section-head {
    max-width:770px;
    margin:0 0 40px
}
.section-head p {
    color:var(--muted);
    font-size:1.06rem
}
.grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px
}
.card {
    background:white;
    border:1px solid var(--line);
    border-radius:10px;
    padding:30px;
    transition:transform .2s,box-shadow .2s
}
.card:hover {
    transform:translateY(-4px);
    box-shadow:0 15px 35px #14313d10
}
.card p {
    color:var(--muted);
    font-size:15px
}
.card a {
    font-weight:700;
    color:var(--green)
}
.icon-wrap {
    display:inline-grid;
    place-items:center;
    width:50px;
    height:50px;
    border-radius:8px;
    background:var(--green-light);
    color:var(--green);
    margin-bottom:23px
}
.icon-wrap svg {
    width:25px;
    height:25px;
    stroke:currentColor;
    fill:none;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round
}
.checklist {
    padding:0;
    list-style:none
}
.checklist li {
    position:relative;
    padding-left:31px;
    margin:14px 0
}
.checklist li:before {
    content:'✓';
    position:absolute;
    left:0;
    top:0;
    color:var(--green);
    font-weight:800
}
.cta {
    background:var(--navy);
    color:#fff;
    padding:65px 0
}
.cta .container {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:35px
}
.cta p {
    color:#c6d7dc;
    max-width:590px
}
.cta h2 {
    font-size:clamp(1.8rem,3vw,2.7rem)
}
.footer {
    padding:65px 0 25px;
    background:#0d2530;
    color:#c9d7dc
}
.footer-grid {
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1.5fr;
    gap:36px
}
.footer h4 {
    color:#fff;
    font-size:15px;
    letter-spacing:0
}
.footer a {
    display:block;
    margin:9px 0;
    font-size:14px
}
.footer a:hover {
    color:white
}
.footer p {
    font-size:14px
}
.footer img {
    width:100px;
    background:white;
    border-radius:6px;
    padding:5px;
    margin-bottom:18px
}
.footer-bottom {
    border-top:1px solid #36515b;
    margin-top:45px;
    padding-top:22px;
    font-size:13px
}
.menu-button {
    display:none;
    background:none;
    border:0;
    color:var(--navy);
    font-size:27px
}
.breadcrumbs {
    font-size:13px;
    color:var(--muted);
    margin-bottom:23px
}
.breadcrumbs a {
    color:var(--green)
}
.page-hero {
    padding:92px 0 80px;
    background:var(--light)
}
.page-hero h1 {
    font-size:clamp(2.5rem,4.3vw,4.4rem);
    max-width:800px
}
.page-hero .lead {
    max-width:740px
}
.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px
}
.field {
    display:flex;
    flex-direction:column;
    gap:6px;
    margin-bottom:18px
}
.field label {
    font-weight:700;
    font-size:13px
}
.field input,.field select,.field textarea {
    width:100%;
    border:1px solid #ccd7da;
    border-radius:6px;
    padding:13px 14px;
    color:var(--ink);
    background:#fff
}
.field textarea {
    min-height:140px;
    resize:vertical
}
.small {
    font-size:13px;
    color:var(--muted)
}
@media(max-width:900px) {
    .nav {
        gap:13px;
        font-size:12px
    }
    .header-cta {
        display:none
    }
    .grid {
        grid-template-columns:repeat(2,1fr)
    }
    .footer-grid {
        grid-template-columns:1fr 1fr
    }
}
@media(max-width:700px) {
    .container {
        width:min(100% - 32px,var(--max))
    }
    .topline {
        display:none
    }
    .site-header {
        height:75px
    }
    .brand img {
        height:50px
    }
    .menu-button {
        display:block
    }
    .nav {
        display:none;
        position:absolute;
        top:75px;
        left:0;
        right:0;
        background:#fff;
        border-bottom:1px solid var(--line);
        padding:20px 24px;
        box-shadow:0 20px 30px #0012;
        flex-direction:column;
        align-items:stretch;
        gap:7px
    }
    .nav.open {
        display:flex
    }
    .dropdown-menu {
        display:grid;
        position:static;
        box-shadow:none;
        border:0;
        padding:0 0 0 15px;
        min-width:0
    }
    .nav>a,.dropdown>a {
        display:block;
        padding:9px 0
    }
    .section {
        padding:60px 0
    }
    .grid {
        grid-template-columns:1fr
    }
    .cta .container {
        align-items:start;
        flex-direction:column
    }
    .footer-grid {
        grid-template-columns:1fr 1fr;
        gap:24px
    }
    .form-grid {
        grid-template-columns:1fr
    }
    .page-hero {
        padding:55px 0
    }
}
/* Footer redesign shared by all pages. */ .footer-upgraded {
    padding:72px 0 22px;
    background:#0d2732;
    color:#c5d5da;
}
.footer-upgraded .footer-top {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    padding-bottom:40px;
    border-bottom:1px solid rgba(255,255,255,.14);
    margin-bottom:44px;
}
.footer-upgraded .footer-logo {
    width:218px;
    max-width:100%;
    height:auto;
    max-height:85px;
    object-fit:contain;
    object-position:left center;
    background:transparent;
    border:0;
    border-radius:0;
    padding:0;
    margin:0 0 18px;
    filter:none;
}
.footer-upgraded .footer-identity p {
    font-size:14px;
    line-height:1.5;
    margin:0;
    color:#c7d8dc;
}
.footer-upgraded .footer-tagline {
    text-align:right;
    max-width:360px;
}
.footer-upgraded .footer-tagline .eyebrow {
    color:#9bd4bf;
    font-size:11px;
    margin:0 0 8px;
}
.footer-upgraded .footer-tagline strong {
    display:block;
    font-family:Manrope,Arial,sans-serif;
    font-size:clamp(1.15rem,2vw,1.75rem);
    line-height:1.33;
    letter-spacing:-.03em;
    color:#fff;
}
.footer-upgraded .footer-grid {
    display:grid;
    grid-template-columns:1.45fr .78fr 1.1fr 1.15fr;
    gap:40px;
}
.footer-upgraded .footer-grid h4 {
    color:#fff;
    margin-bottom:18px;
    font-size:14px;
    letter-spacing:.01em;
}
.footer-upgraded .footer-grid a {
    font-size:14px;
    margin:9px 0;
    color:#c5d5da;
    transition:color .2s;
}
.footer-upgraded .footer-grid a:hover {
    color:#fff;
}
.footer-upgraded .footer-description p {
    line-height:1.85;
    max-width:290px;
}
.footer-upgraded .footer-email {
    overflow-wrap:anywhere;
    color:#fff !important;
    font-weight:600;
}
.footer-upgraded .footer-contact-link {
    display:inline-flex!important;
    width:max-content;
    border-bottom:1px solid #90baaa;
    padding-bottom:5px;
    font-weight:700;
    color:#fff!important;
}
.footer-upgraded .footer-bottom {
    margin-top:55px;
    display:flex;
    gap:16px;
    justify-content:space-between;
    color:#9cb2ba;
}
.footer-upgraded .footer-grid p {
    color:#c5d5da;
}
@media(max-width:900px) {
    .footer-upgraded .footer-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:34px;
    }
}
@media(max-width:650px) {
    .footer-upgraded {
        padding:52px 0 25px
    }
    .footer-upgraded .footer-top {
        display:block;
        padding-bottom:30px;
        margin-bottom:32px
    }
    .footer-upgraded .footer-tagline {
        margin-top:30px;
        text-align:left
    }
    .footer-upgraded .footer-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:30px 20px
    }
    .footer-upgraded .footer-description {
        grid-column:span 2
    }
    .footer-upgraded .footer-bottom {
        display:block;
        line-height:2;
        margin-top:30px
    }
    .footer-upgraded .footer-bottom span {
        display:block
    }
    .footer-upgraded .footer-logo {
        width:198px
    }
}
@media(max-width:380px) {
    .footer-upgraded .footer-grid {
        grid-template-columns:1fr
    }
    .footer-upgraded .footer-description {
        grid-column:auto
    }
}
/* Keep the primary CTA together on desktop and mobile. */ .cta .btn {
    flex-shrink:0;
    white-space:nowrap;
}
