@font-face {
    font-family:"DM Sans";
    font-style:normal;
    font-weight:400 600;
    font-display:swap;
    src:url("../fonts/dm-sans-latin.woff2") format("woff2")
}
@font-face {
    font-family:"Playfair Display";
    font-style:normal;
    font-weight:500 600;
    font-display:swap;
    src:url("../fonts/playfair-display-latin.woff2") format("woff2")
}
:root {
    --navy:#0b3b70;
    --blue:#1769aa;
    --blue-2:#3c86c2;
    --pale:#eef7fd;
    --ice:#f7fbfe;
    --text:#173c66;
    --line:#dbe9f4;
    --white:#fff;
    --serif:"Playfair Display",Georgia,serif;
    --sans:"DM Sans",Arial,sans-serif;
    --shadow:0 18px 60px rgba(20,74,117,.13)
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
body {
    margin:0;
    color:var(--text);
    background:#fff;
    font-family:var(--sans);
    font-size:16px;
    line-height:1.55
}
img {
    max-width:100%;
    display:block
}
a {
    color:inherit;
    text-decoration:none
}
.container {
    width:min(1180px,calc(100% - 48px));
    margin-inline:auto
}
.skip-link {
    position:fixed;
    top:8px;
    left:8px;
    z-index:1000;
    padding:.7rem 1rem;
    background:#fff;
    transform:translateY(-150%)
}
.skip-link:focus {
    transform:none
}
.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
}
.site-header {
    position:relative;
    z-index:30;
    background:#fff
}
.topbar {
    display:flex;
    align-items:center;
    min-height:90px;
    gap:2rem
}
.brand {
    display:flex;
    align-items:center;
    gap:.85rem;
    min-width:280px
}
.brand small {
    display:block;
    margin-top:.26rem;
    font-size:.72rem;
    color:#5c7895
}
.quick-info {
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:2rem;
    font-size:.83rem;
    font-weight:500
}
.quick-info a,.quick-info>span {
    white-space:nowrap
}
.quick-info a span,.quick-info span span {
    margin-right:.4rem;
    color:var(--blue);
    font-size:1rem
}
.quick-info small {
    padding-left:1.5rem
}
.menu-toggle {
    display:none;
    margin-left:auto;
    width:44px;
    height:44px;
    border:0;
    background:0 0;
    padding:10px
}
.menu-toggle span:not(.sr-only) {
    display:block;
    height:2px;
    background:var(--navy);
    margin:6px 0;
    transition:.2s
}
.main-nav {
    border-top:1px solid #edf3f8;
    border-bottom:1px solid #e3edf5
}
.nav-inner {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    min-height:58px
}
.nav-level {
    list-style:none;
    margin:0;
    padding:0
}
.nav-level-1 {
    display:flex;
    align-items:stretch;
    margin-left:auto
}
.nav-level-1>li {
    position:relative;
    display:flex;
    align-items:center
}
.nav-level-1>li>a {
    display:flex;
    align-items:center;
    height:58px;
    padding:0 .82rem;
    font-size:.84rem;
    font-weight:500
}
.nav-level-1>li>a:after {
    content:"";
    position:absolute;
    left:.82rem;
    right:.82rem;
    bottom:0;
    height:2px;
    background:var(--blue);
    transform:scaleX(0);
    transition:.2s
}
.nav-level-1>li.active>a:after,.nav-level-1>li:focus-within>a:after,.nav-level-1>li:hover>a:after {
    transform:scaleX(1)
}
.submenu-toggle {
    border:0;
    background:0 0;
    color:var(--blue);
    padding:.35rem;
    cursor:pointer
}
.nav-level-1>.has-submenu>.submenu-toggle {
    margin-left:-.75rem
}
.nav-level-2,.nav-level-3 {
    position:absolute;
    z-index:15;
    top:calc(100% + 1px);
    left:0;
    min-width:250px;
    background:#fff;
    border:1px solid var(--line);
    box-shadow:var(--shadow);
    opacity:0;
    visibility:hidden;
    transform:translateY(8px);
    transition:.18s
}
.nav-level-2 li {
    position:relative;
    border-bottom:1px solid #edf3f8
}
.nav-level-2 li:last-child {
    border:0
}
.nav-level-2 a,.nav-level-3 a {
    display:block;
    padding:.75rem 1rem;
    font-size:.85rem
}
.nav-level-2 a:hover,.nav-level-3 a:hover {
    background:var(--pale);
    color:var(--blue)
}
.nav-level-3 {
    top:-1px;
    left:100%
}
.has-submenu.open>.nav-level,.has-submenu:focus-within>.nav-level,.has-submenu:hover>.nav-level {
    opacity:1;
    visibility:visible;
    transform:none
}
.nav-level-2>.has-submenu>.submenu-toggle {
    position:absolute;
    top:.4rem;
    right:.35rem
}
.nav-cta {
    margin-left:1rem
}
.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:1.3rem;
    min-height:48px;
    padding:.76rem 1.45rem;
    border:1px solid var(--blue);
    border-radius:999px;
    background:linear-gradient(110deg,var(--blue),var(--blue-2));
    color:#fff;
    font-weight:500;
    transition:transform .2s,box-shadow .2s
}
.button:hover {
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(23,105,170,.22)
}
.button-small {
    min-height:42px;
    padding:.62rem 1.15rem;
    font-size:.88rem
}
.hero {
    position:relative;
    min-height:520px;
    overflow:hidden;
    background:#eaf5fc
}
.hero>img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center
}
.eyebrow {
    margin:0 0 1rem;
    color:var(--blue);
    font-size:.75rem;
    font-weight:600;
    letter-spacing:.23em;
    text-transform:uppercase
}
.hero h1 {
    margin:0;
    font:500 clamp(2.75rem,4.6vw,4.9rem)/1.04 var(--serif);
    letter-spacing:-.025em;
    color:var(--navy)
}
.footer {
    position:relative;
    overflow:hidden;
    background:linear-gradient(100deg,#1b659d,#3b84bd);
    color:#fff
}
.footer-inner {
    position:relative;
    display:grid;
    grid-template-columns:1.15fr .9fr .8fr;
    align-items:center;
    gap:3rem;
    min-height:175px;
    padding-left:31%
}
.footer-cta p {
    margin:0 0 .8rem
}
.button-light {
    background:#fff;
    border-color:#fff;
    color:var(--navy)
}
address {
    display:grid;
    gap:.5rem;
    padding-left:2rem;
    border-left:1px solid rgba(255,255,255,.2);
    font-style:normal;
    font-size:.88rem
}
address a,address>span {
    display:block
}
.legal {
    position:relative;
    display:flex;
    gap:1rem;
    justify-content:flex-end;
    padding-block:.7rem;
    border-top:1px solid rgba(255,255,255,.14);
    font-size:.7rem
}
.legal span {
    margin-right:auto
}
@media (max-width:1050px) {
    .quick-info {
        display:none
    }
    .nav-level-1>li>a {
        padding-inline:.55rem;
        font-size:.78rem
    }
    .nav-level-1>li>a:after {
        left:.55rem;
        right:.55rem
    }
    .footer-inner {
        padding-left:31%;
        gap:1.5rem;
        grid-template-columns:1fr 1fr
    }
}
@media (prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    *,:after,:before {
        transition:none!important
    }
}
@media (max-width:820px) {
    .container {
        width:min(100% - 32px,720px)
    }
    .topbar {
        min-height:78px
    }
    .brand {
        min-width:0
    }
    .brand small {
        font-size:.62rem
    }
    .menu-toggle {
        display:block
    }
    .menu-toggle[aria-expanded=true] span:first-child {
        transform:translateY(8px) rotate(45deg)
    }
    .menu-toggle[aria-expanded=true] span:nth-child(2) {
        opacity:0
    }
    .menu-toggle[aria-expanded=true] span:nth-child(3) {
        transform:translateY(-8px) rotate(-45deg)
    }
    .main-nav {
        display:none;
        position:absolute;
        top:78px;
        left:0;
        right:0;
        background:#fff;
        box-shadow:var(--shadow);
        max-height:calc(100vh - 78px);
        overflow:auto
    }
    .main-nav.open {
        display:block
    }
    .nav-inner {
        display:block;
        width:100%;
        min-height:0
    }
    .nav-level-1 {
        display:block
    }
    .nav-level-1>li {
        display:block;
        border-bottom:1px solid var(--line)
    }
    .nav-level-1>li>a {
        height:auto;
        padding:1rem 52px 1rem 1.25rem;
        font-size:.95rem
    }
    .nav-level-1>li>a:after {
        display:none
    }
    .nav-level-1>.has-submenu>.submenu-toggle,.nav-level-2>.has-submenu>.submenu-toggle {
        position:absolute;
        top:.45rem;
        right:.75rem;
        margin:0;
        width:42px;
        height:42px;
        font-size:1.15rem
    }
    .nav-level-2,.nav-level-3 {
        display:none;
        position:static;
        min-width:0;
        border:0;
        border-top:1px solid var(--line);
        box-shadow:none;
        opacity:1;
        visibility:visible;
        transform:none;
        background:#f5faff
    }
    .nav-level-3 {
        background:#edf6fc
    }
    .has-submenu.open>.nav-level {
        display:block
    }
    .nav-level-2 a,.nav-level-3 a {
        padding:.8rem 3.3rem .8rem 2rem
    }
    .nav-level-3 a {
        padding-left:3rem
    }
    .nav-cta {
        display:flex;
        margin:1rem 1.25rem 1.25rem
    }
    .hero {
        display:flex;
        min-height:0;
        padding-top:360px;
        background:#fff
    }
    .hero>img {
        height:360px;
        object-position:62% center
    }
    .hero h1 {
        font-size:clamp(2.3rem,11vw,3.5rem)
    }
    .footer-inner {
        display:grid;
        grid-template-columns:1fr;
        padding:2rem 0;
        min-height:0
    }
    .footer-cta {
        text-align:center
    }
    address {
        padding:1.5rem 0 0;
        border-left:0;
        border-top:1px solid rgba(255,255,255,.2)
    }
    .legal {
        flex-wrap:wrap;
        justify-content:center
    }
    .legal span {
        width:100%;
        margin:0;
        text-align:center
    }
    .brand-logo {
        width:220px
    }
    .nav-level-2>.has-submenu>.submenu-toggle {
        transform:rotate(0)
    }
    .has-submenu.open>.submenu-toggle {
        transform:rotate(180deg)
    }
}
.subpage .nav-level-2>.has-submenu>.submenu-toggle {
    transform:rotate(-90deg);
    transition:transform .2s
}
.subpage-hero {
    position:relative;
    min-height:300px;
    overflow:hidden;
    background:#eaf5fc
}
.subpage-hero>img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 35%
}
.subpage-overlay {
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(239,248,254,.98),rgba(239,248,254,.82) 42%,rgba(11,59,112,.08))
}
.subpage-hero-content {
    position:relative;
    z-index:1;
    padding-block:36px 50px
}
.breadcrumbs {
    display:flex;
    align-items:center;
    gap:.55rem;
    margin-bottom:2rem;
    font-size:.78rem;
    color:#668099
}
.breadcrumbs a:hover {
    color:var(--blue)
}
.subpage-hero h1 {
    max-width:720px;
    margin:0;
    font:500 clamp(2.5rem,4vw,4.2rem)/1.08 var(--serif);
    color:var(--navy)
}
.subpage-hero-content>p:last-child {
    max-width:620px;
    margin:.8rem 0 0;
    font-size:1.08rem
}
.content-section {
    display:grid;
    grid-template-columns:minmax(0,1fr) 340px;
    gap:5rem;
    padding-block:70px
}
.content-main {
    max-width:760px
}
.contact-card h2,.content-main h2 {
    margin:0 0 1rem;
    font:500 clamp(2rem,3vw,3rem)/1.15 var(--serif);
    color:var(--navy)
}
.content-main h3 {
    margin:2.5rem 0 1rem;
    font:600 1.6rem var(--serif);
    color:var(--navy)
}
.content-main .lead {
    font-size:1.12rem;
    color:#3d5f80
}
.treatment-list {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1rem
}
.treatment-list article {
    padding:1.4rem;
    border:1px solid var(--line);
    border-radius:10px;
    background:var(--ice)
}
.treatment-list h4 {
    margin:0 0 .45rem;
    font:600 1.15rem var(--serif);
    color:var(--navy)
}
.treatment-list p {
    margin:0;
    font-size:.9rem;
    color:#58738d
}
.contact-card {
    align-self:start;
    position:sticky;
    top:24px;
    padding:2rem;
    border-radius:14px;
    background:linear-gradient(145deg,#f4faff,#e6f2fa);
    box-shadow:0 18px 50px rgba(20,74,117,.1)
}
.contact-card h2 {
    font-size:2rem
}
.contact-card .button {
    margin-top:.7rem;
    width:100%
}
.compact-footer .footer-inner {
    padding-left:0;
    grid-template-columns:1fr 1fr
}
@media(max-width:820px) {
    .subpage .nav-level-2>.has-submenu>.submenu-toggle {
        transform:rotate(0)
    }
    .subpage .has-submenu.open>.submenu-toggle {
        transform:rotate(180deg)
    }
    .subpage-hero {
        min-height:260px
    }
    .subpage-hero>img {
        object-position:62% center
    }
    .subpage-overlay {
        background:linear-gradient(90deg,rgba(239,248,254,.98),rgba(239,248,254,.74) 70%,rgba(239,248,254,.28))
    }
    .subpage-hero-content {
        padding-block:24px 36px
    }
    .breadcrumbs {
        margin-bottom:1.35rem
    }
    .subpage-hero h1 {
        font-size:2.45rem
    }
    .subpage-hero-content>p:last-child {
        font-size:1rem;
        max-width:90%
    }
    .content-section {
        grid-template-columns:1fr;
        gap:2rem;
        padding-block:42px
    }
    .treatment-list {
        grid-template-columns:1fr
    }
    .contact-card {
        position:static
    }
    .compact-footer .footer-inner {
        grid-template-columns:1fr
    }
}
.brand-logo {
    display:block;
    width:280px;
    height:auto
}
@media (max-width:820px) {
    .brand-logo {
        width:220px
    }
}
@media (max-width:390px) {
    .brand-logo {
        width:195px
    }
}
.submenu-toggle {
    transition:transform .2s
}
.nav-level-2>.has-submenu>.submenu-toggle {
    transform:rotate(-90deg)
}
@media (max-width:820px) {
    .nav-level-2>.has-submenu>.submenu-toggle {
        transform:rotate(0)
    }
    .has-submenu.open>.submenu-toggle {
        transform:rotate(180deg)
    }
}