:root{
    --ink:#102f2d;
    --ink-soft:#345653;
    --teal:#55bdb3;
    --teal-dark:#278f87;
    --sage:#8eaeaa;
    --mist:#edf4f3;
    --paper:#fbfcfb;
    --white:#ffffff;
    --coral:#e9959d;
    --line:rgba(16,47,45,.11);
    --shadow:0 30px 80px rgba(25,66,62,.12);
    --radius:30px;
}

*{
    box-sizing:border-box;
    margin:0;
    padding:0;
}

html{
    scroll-behavior:smooth;
    scroll-padding-top:105px;
}

body{
    font-family:"DM Sans",Arial,sans-serif;
    color:var(--ink);
    background:var(--paper);
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
}

body.menu-open{
    overflow:hidden;
}

a{
    color:inherit;
    text-decoration:none;
}

img{
    display:block;
    max-width:100%;
}

button,input,textarea{
    font:inherit;
}

button{
    cursor:pointer;
}

::selection{
    background:var(--teal);
    color:white;
}

.section{
    padding:105px 0;
}

.section-container{
    width:min(1380px,calc(100% - 80px));
    margin:auto;
}

.eyebrow{
    display:flex;
    align-items:center;
    gap:12px;
    text-transform:uppercase;
    letter-spacing:2.4px;
    font-size:12px;
    font-weight:800;
    color:var(--teal-dark);
}

.eyebrow>span{
    width:35px;
    height:1px;
    background:currentColor;
}

.eyebrow.centered{
    justify-content:center;
}

.eyebrow.light{
    color:#b8e4df;
}

.reveal{
    opacity:0;
    transform:translateY(35px);
    transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);
}

.reveal.visible{
    opacity:1;
    transform:none;
}


/* LOADER */

.page-loader{
    position:fixed;
    inset:0;
    z-index:9999;
    background:#eef4f3;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:opacity .6s ease,visibility .6s ease;
}

.page-loader img{
    width:120px;
    animation:loaderPulse 1.3s ease-in-out infinite;
}

.page-loader.hide{
    opacity:0;
    visibility:hidden;
}

@keyframes loaderPulse{
    50%{transform:scale(1.08);opacity:.65;}
}


/* HEADER */

.site-header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:1000;
    padding:18px 0;
    transition:.35s ease;
}

.site-header.scrolled{
    padding:8px 0;
    background:rgba(250,252,251,.88);
    backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px);
    box-shadow:0 8px 35px rgba(25,62,59,.08);
    border-bottom:1px solid rgba(16,47,45,.06);
}

.header-inner{
    width:min(1500px,calc(100% - 60px));
    height:76px;
    margin:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:35px;
}

.brand{
    width:125px;
    flex:0 0 125px;
}

.brand img{
    width:100%;
    max-height:74px;
    object-fit:contain;
}

.desktop-nav{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:27px;
    margin-left:auto;
}

.desktop-nav a{
    position:relative;
    font-size:13px;
    font-weight:600;
    white-space:nowrap;
    color:#294744;
    transition:.25s ease;
}

.desktop-nav a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-9px;
    width:0;
    height:2px;
    border-radius:2px;
    background:var(--teal);
    transition:.25s ease;
}

.desktop-nav a:hover,
.desktop-nav a.active{
    color:var(--teal-dark);
}

.desktop-nav a:hover::after,
.desktop-nav a.active::after{
    width:100%;
}

.header-actions{
    display:flex;
    align-items:center;
    gap:15px;
}

.header-cta{
    padding:14px 20px;
    border-radius:100px;
    background:var(--ink);
    color:white;
    font-size:12px;
    font-weight:700;
    white-space:nowrap;
    transition:.3s ease;
}

.header-cta:hover{
    background:var(--teal-dark);
    transform:translateY(-2px);
}

.menu-toggle{
    display:none;
    width:48px;
    height:48px;
    border:0;
    border-radius:50%;
    background:var(--ink);
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
}

.menu-toggle span{
    width:20px;
    height:2px;
    background:white;
    transition:.3s ease;
}

.mobile-menu{
    display:none;
}


/* HERO */

.hero{
    position:relative;
    min-height:940px;
    padding:150px 0 80px;
    display:flex;
    align-items:center;
    background:
        radial-gradient(circle at 15% 25%,rgba(85,189,179,.14),transparent 30%),
        radial-gradient(circle at 83% 70%,rgba(233,149,157,.12),transparent 28%),
        linear-gradient(135deg,#f6faf9 0%,#edf4f3 55%,#f9fafa 100%);
    overflow:hidden;
}

.hero::before{
    content:"";
    position:absolute;
    width:650px;
    height:650px;
    border:1px solid rgba(85,189,179,.14);
    border-radius:50%;
    right:-230px;
    top:-180px;
}

.hero::after{
    content:"";
    position:absolute;
    width:430px;
    height:430px;
    border:1px solid rgba(16,47,45,.08);
    border-radius:50%;
    left:-200px;
    bottom:-190px;
}

.hero-orb{
    position:absolute;
    border-radius:50%;
    filter:blur(2px);
    pointer-events:none;
}

.hero-orb-one{
    width:110px;
    height:110px;
    background:rgba(85,189,179,.13);
    top:24%;
    left:6%;
}

.hero-orb-two{
    width:70px;
    height:70px;
    background:rgba(233,149,157,.18);
    right:8%;
    bottom:17%;
}

.hero-inner{
    width:min(1450px,calc(100% - 80px));
    margin:auto;
    display:grid;
    grid-template-columns:1.04fr .96fr;
    gap:80px;
    align-items:center;
    position:relative;
    z-index:2;
}

.hero-content{
    padding-top:25px;
}

.hero h1{
    margin-top:27px;
    max-width:780px;
    font-family:"Manrope",sans-serif;
    font-size:clamp(60px,5.5vw,94px);
    line-height:.99;
    letter-spacing:-5px;
    font-weight:600;
    color:var(--ink);
}

.hero h1 span{
    display:block;
    color:var(--teal-dark);
}

.hero-description{
    max-width:650px;
    margin-top:30px;
    font-size:20px;
    line-height:1.7;
    color:#55706e;
}

.hero-buttons{
    display:flex;
    align-items:center;
    gap:14px;
    margin-top:40px;
}

.btn-primary,
.btn-secondary{
    min-height:58px;
    padding:0 27px;
    border-radius:100px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:13px;
    font-size:14px;
    font-weight:700;
    transition:.3s ease;
}

.btn-primary{
    background:var(--ink);
    color:white;
    box-shadow:0 15px 30px rgba(16,47,45,.17);
}

.btn-primary:hover{
    background:var(--teal-dark);
    transform:translateY(-3px);
    box-shadow:0 20px 35px rgba(39,143,135,.23);
}

.btn-primary .material-symbols-outlined{
    font-size:19px;
}

.btn-secondary{
    border:1px solid rgba(16,47,45,.18);
    background:rgba(255,255,255,.5);
}

.btn-secondary:hover{
    background:white;
    transform:translateY(-3px);
}

.hero-trust{
    margin-top:65px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    max-width:720px;
    border-top:1px solid rgba(16,47,45,.12);
    padding-top:23px;
}

.hero-trust div{
    padding:0 17px;
    border-right:1px solid rgba(16,47,45,.1);
}

.hero-trust div:first-child{
    padding-left:0;
}

.hero-trust div:last-child{
    border:0;
}

.hero-trust strong,
.hero-trust span{
    display:block;
}

.hero-trust strong{
    font-size:13px;
    margin-bottom:4px;
}

.hero-trust span{
    font-size:10px;
    color:#78908e;
}

.hero-visual{
    position:relative;
    height:690px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.hero-image-frame{
    width:570px;
    height:650px;
    position:relative;
    border-radius:290px 290px 35px 35px;
    overflow:hidden;
    box-shadow:0 40px 90px rgba(25,72,68,.18);
    background:#dce9e7;
}

.hero-image-bg{
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 70% 25%,rgba(255,255,255,.8),transparent 30%),
        linear-gradient(160deg,#d4e4e2,#b6cecb);
}

.hero-image-frame img{
    position:absolute;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    z-index:1;
}

.floating-card{
    position:absolute;
    z-index:5;
    display:flex;
    align-items:center;
    gap:13px;
    padding:17px 20px;
    background:rgba(255,255,255,.84);
    backdrop-filter:blur(18px);
    border:1px solid rgba(255,255,255,.7);
    border-radius:18px;
    box-shadow:0 18px 45px rgba(31,76,72,.13);
    animation:floatCard 5s ease-in-out infinite;
}

.floating-card .material-symbols-outlined{
    width:42px;
    height:42px;
    border-radius:12px;
    display:grid;
    place-items:center;
    background:#dff1ef;
    color:var(--teal-dark);
}

.floating-card strong,
.floating-card small{
    display:block;
}

.floating-card strong{
    font-size:14px;
}

.floating-card small{
    color:#708785;
    font-size:10px;
    margin-top:3px;
}

.floating-card-top{
    top:17%;
    left:-60px;
}

.floating-card-bottom{
    right:-45px;
    bottom:16%;
    animation-delay:-2.3s;
}

@keyframes floatCard{
    50%{transform:translateY(-10px);}
}

.hero-scroll{
    position:absolute;
    bottom:35px;
    left:50%;
    transform:translateX(-50%);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:2px;
    color:#708785;
}

.hero-scroll div{
    width:1px;
    height:35px;
    background:linear-gradient(var(--teal),transparent);
}


/* TRUST STRIP */

.trust-strip{
    background:var(--ink);
    color:white;
}

.trust-strip-inner{
    width:min(1300px,calc(100% - 80px));
    margin:auto;
    min-height:130px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
}

.trust-message{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:16px;
    border-right:1px solid rgba(255,255,255,.09);
}

.trust-message:last-child{
    border-right:0;
}

.trust-message>.material-symbols-outlined{
    color:#80d2ca;
    font-size:29px;
}

.trust-message strong,
.trust-message small{
    display:block;
}

.trust-message strong{
    font-size:14px;
}

.trust-message small{
    margin-top:4px;
    color:#9cb3b1;
    font-size:11px;
}


/* SECTION HEADING */

.section-heading{
    max-width:820px;
    margin:0 auto 65px;
    text-align:center;
}

.section-heading h2,
.insurance-heading h2{
    margin-top:18px;
    font-family:"Manrope",sans-serif;
    font-size:clamp(36px,3.5vw,54px);
    line-height:1.08;
    letter-spacing:-2.5px;
    font-weight:600;
}

.section-heading p,
.insurance-heading p{
    max-width:760px;
    margin:22px auto 0;
    color:#647b79;
    font-size:17px;
    line-height:1.7;
}


/* SERVICES */

.services-section{
    background:#fbfcfb;
}

.services-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
}

.service-card{
    position:relative;
    min-height:285px;
    padding:30px 26px;
    border:1px solid var(--line);
    border-radius:22px;
    background:white;
    overflow:hidden;
    transition:.4s cubic-bezier(.2,.7,.2,1);
}

.service-card::after{
    content:"";
    position:absolute;
    width:130px;
    height:130px;
    border-radius:50%;
    right:-80px;
    bottom:-80px;
    background:rgba(85,189,179,.1);
    transition:.4s ease;
}

.service-card:hover{
    transform:translateY(-9px);
    border-color:rgba(85,189,179,.35);
    box-shadow:0 25px 60px rgba(30,74,70,.1);
}

.service-card:hover::after{
    transform:scale(2.3);
}

.service-card.featured{
    grid-column:span 2;
    background:var(--ink);
    color:white;
}

.service-card.featured::after{
    width:240px;
    height:240px;
    background:rgba(85,189,179,.15);
}

.service-number{
    position:absolute;
    top:28px;
    right:28px;
    font-size:11px;
    letter-spacing:2px;
    color:#9ab0ae;
}

.service-icon{
    position:relative;
    z-index:2;
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    border-radius:15px;
    background:#e7f4f2;
    color:var(--teal-dark);
    font-size:27px;
}

.featured .service-icon{
    background:rgba(255,255,255,.1);
    color:#80d2ca;
}

.service-card h3{
    position:relative;
    z-index:2;
    margin-top:27px;
    max-width:380px;
    font-family:"Manrope",sans-serif;
    font-size:20px;
    line-height:1.2;
    letter-spacing:-.5px;
}

.service-card p{
    position:relative;
    z-index:2;
    margin-top:15px;
    color:#6b817f;
    line-height:1.65;
    font-size:14px;
}

.featured p{
    max-width:620px;
    color:#b6c8c6;
}

.service-audience{
    position:relative;
    z-index:2;
    margin-top:25px;
    color:#81d4cc;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:1.3px;
    font-weight:700;
}

.services-footer{
    margin-top:45px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:25px;
    color:#647b79;
}

.services-footer a{
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:700;
    color:var(--teal-dark);
}

.services-footer .material-symbols-outlined{
    font-size:18px;
}


/* ABOUT */

.about-section{
    position:relative;
    background:#eaf2f1;
    overflow:hidden;
}

.about-decoration{
    position:absolute;
    width:600px;
    height:600px;
    border-radius:50%;
    border:1px solid rgba(39,143,135,.13);
    right:-270px;
    top:-260px;
}

.about-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:100px;
    align-items:center;
}

.about-visual{
    position:relative;
}

.about-image-wrap{
    height:690px;
    border-radius:260px 35px 35px 35px;
    overflow:hidden;
    box-shadow:var(--shadow);
}

.about-image-wrap img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.about-experience{
    position:absolute;
    right:-35px;
    bottom:45px;
    width:270px;
    padding:27px;
    background:var(--ink);
    color:white;
    border-radius:22px;
    box-shadow:0 25px 50px rgba(16,47,45,.22);
}

.about-experience strong,
.about-experience span{
    display:block;
}

.about-experience strong{
    font-family:"Manrope",sans-serif;
    font-size:19px;
}

.about-experience span{
    margin-top:7px;
    font-size:12px;
    color:#a9c0bd;
}

.about-content{
    max-width:610px;
}

.about-content h2{
    margin-top:22px;
    font-family:"Manrope",sans-serif;
    font-size:clamp(46px,4.4vw,68px);
    letter-spacing:-4px;
    line-height:1;
    font-weight:600;
}

.about-content>p{
    margin-top:20px;
    color:#607875;
    line-height:1.75;
    font-size:16px;
}

.about-content .about-lead{
    margin-top:30px;
    font-size:21px;
    line-height:1.55;
    color:var(--ink);
    font-weight:500;
}

.about-signature{
    margin-top:38px;
    display:flex;
    align-items:center;
    gap:22px;
}

.about-signature img{
    width:120px;
    height:55px;
    object-fit:contain;
}

.about-signature strong,
.about-signature span{
    display:block;
}

.about-signature strong{
    font-size:14px;
}

.about-signature span{
    max-width:260px;
    margin-top:4px;
    color:#718784;
    font-size:11px;
}

.about-badges{
    margin-top:35px;
    display:flex;
    gap:15px;
}

.about-badges div{
    padding:12px 15px;
    border:1px solid rgba(16,47,45,.1);
    border-radius:12px;
    display:flex;
    align-items:center;
    gap:8px;
    font-size:11px;
    font-weight:700;
    background:rgba(255,255,255,.4);
}

.about-badges .material-symbols-outlined{
    color:var(--teal-dark);
    font-size:20px;
}


/* TEAM */

.team-section{
    background:#fbfcfb;
}

.team-heading{
    display:grid;
    grid-template-columns:1fr .7fr;
    gap:80px;
    align-items:end;
    margin-bottom:60px;
}

.team-heading h2{
    margin-top:20px;
    font-family:"Manrope",sans-serif;
    font-size:clamp(40px,4vw,62px);
    line-height:1.03;
    letter-spacing:-3px;
    font-weight:600;
}

.team-heading>p{
    color:#637b78;
    line-height:1.7;
    max-width:520px;
    padding-bottom:8px;
}

.team-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
}

.provider-card{
    background:#eef4f3;
    border-radius:24px;
    overflow:hidden;
    transition:.4s ease;
}

.provider-card:hover{
    transform:translateY(-8px);
    box-shadow:0 25px 55px rgba(30,72,68,.12);
}

.provider-image{
    height:385px;
    position:relative;
    overflow:hidden;
    background:#9db9b5;
}

.provider-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:top center;
    transition:transform .7s cubic-bezier(.2,.7,.2,1);
}

.provider-card:hover .provider-image img{
    transform:scale(1.035);
}

.provider-overlay{
    position:absolute;
    inset:auto 18px 18px 18px;
    display:flex;
    justify-content:flex-start;
}

.provider-overlay span{
    padding:9px 13px;
    background:rgba(255,255,255,.82);
    backdrop-filter:blur(12px);
    border-radius:100px;
    font-size:10px;
    font-weight:700;
    color:#315653;
}

.provider-info{
    padding:22px 24px 25px;
}

.provider-info>span{
    display:block;
    min-height:30px;
    color:var(--teal-dark);
    text-transform:uppercase;
    letter-spacing:1.2px;
    font-size:11px;
    font-weight:800;
}

.provider-info h3{
    margin-top:8px;
    font-family:"Manrope",sans-serif;
    font-size:20px;
    letter-spacing:-.5px;
}

.provider-info p{
    margin-top:5px;
    color:#657d7a;
    font-size:13px;
}


/* TESTIMONIALS */

.testimonial-section{
    position:relative;
    background:var(--ink);
    color:white;
    overflow:hidden;
}

.testimonial-bg-word{
    position:absolute;
    right:-40px;
    bottom:-100px;
    font-family:"Manrope",sans-serif;
    font-size:330px;
    line-height:1;
    font-weight:800;
    color:rgba(255,255,255,.025);
    pointer-events:none;
}

.testimonial-layout{
    display:grid;
    grid-template-columns:.72fr 1.28fr;
    gap:100px;
    align-items:center;
    min-height:550px;
}

.testimonial-intro h2{
    margin-top:20px;
    max-width:520px;
    font-family:"Manrope",sans-serif;
    font-size:clamp(40px,3.6vw,58px);
    line-height:1.05;
    letter-spacing:-3px;
    font-weight:600;
}

.testimonial-intro>p{
    margin-top:23px;
    max-width:480px;
    color:#a7bcba;
    line-height:1.7;
}

.testimonial-controls{
    display:flex;
    gap:10px;
    margin-top:35px;
}

.testimonial-controls button{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.18);
    background:transparent;
    color:white;
    transition:.25s ease;
}

.testimonial-controls button:hover{
    background:var(--teal);
    border-color:var(--teal);
}

.testimonial-controls .material-symbols-outlined{
    font-size:20px;
}

.testimonial-stage{
    position:relative;
    min-height:420px;
    display:flex;
    align-items:center;
}

.testimonial-slide{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    opacity:0;
    transform:translateX(30px);
    pointer-events:none;
    transition:.5s ease;
}

.testimonial-slide.active{
    opacity:1;
    transform:none;
    pointer-events:auto;
}

.quote-icon{
    font-family:Georgia,serif;
    font-size:110px;
    line-height:.7;
    color:#69c9c0;
}

.testimonial-slide blockquote{
    max-width:760px;
    margin-top:25px;
    font-family:"Manrope",sans-serif;
    font-size:clamp(26px,2.5vw,40px);
    line-height:1.35;
    letter-spacing:-1px;
    font-weight:400;
}

.testimonial-author{
    margin-top:40px;
    display:flex;
    align-items:center;
    gap:14px;
}

.testimonial-author>div{
    width:45px;
    height:45px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#63c7be;
    color:var(--ink);
    font-weight:800;
}

.testimonial-author strong,
.testimonial-author small{
    display:block;
}

.testimonial-author strong{
    font-size:13px;
}

.testimonial-author small{
    margin-top:3px;
    color:#8ea9a6;
    font-size:10px;
}


/* INSURANCE */

.insurance-section{
    background:white;
    overflow:hidden;
}

.insurance-heading{
    text-align:center;
    max-width:850px;
    margin:auto;
}

.insurance-marquee{
    margin-top:65px;
    overflow-x:auto;
    overflow-y:hidden;
    position:relative;
    scroll-behavior:smooth;
    scrollbar-width:none;
    -ms-overflow-style:none;
}

.insurance-marquee::-webkit-scrollbar{
    display:none;
}

.insurance-carousel{
    width:min(1500px,calc(100% - 40px));
    margin:65px auto 0;
    position:relative;
    display:flex;
    align-items:center;
    gap:14px;
}

.insurance-carousel .insurance-marquee{
    margin-top:0;
    flex:1;
}

.insurance-marquee::before,
.insurance-marquee::after{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    width:170px;
    z-index:3;
    pointer-events:none;
}

.insurance-marquee::before{
    left:0;
    background:linear-gradient(90deg,white,transparent);
}

.insurance-marquee::after{
    right:0;
    background:linear-gradient(-90deg,white,transparent);
}

.insurance-track{
    width:max-content;
    display:flex;
    gap:22px;
    animation:none;
}

.insurance-logo{
    width:210px;
    height:125px;
    flex:0 0 210px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:27px;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
}

.insurance-logo img{
    max-width:145px;
    max-height:70px;
    object-fit:contain;
    filter:saturate(.85);
    transition:.3s ease;
}

.insurance-logo:hover img{
    filter:none;
    transform:scale(1.06);
}

.insurance-arrow{
    flex:0 0 48px;
    width:48px;
    height:48px;
    border:0;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--ink);
    color:white;
    box-shadow:0 10px 25px rgba(16,47,45,.16);
    transition:.25s ease;
    z-index:5;
}

.insurance-arrow:hover{
    background:var(--teal-dark);
    transform:translateY(-2px);
}

.insurance-arrow .material-symbols-outlined{
    font-size:26px;
}

.insurance-note{
    margin:35px auto 0;
    text-align:center;
    color:#80918f;
    font-size:11px;
}


/* CONTACT */

.contact-section{
    position:relative;
    background:#dceae8;
    overflow:hidden;
}

.contact-orb{
    position:absolute;
    width:750px;
    height:750px;
    border-radius:50%;
    background:rgba(255,255,255,.23);
    left:-300px;
    bottom:-350px;
}

.contact-grid{
    position:relative;
    display:grid;
    grid-template-columns:.82fr 1.18fr;
    gap:90px;
    align-items:center;
    z-index:2;
}

.contact-content h2{
    margin-top:20px;
    max-width:560px;
    font-family:"Manrope",sans-serif;
    font-size:clamp(50px,4.8vw,75px);
    line-height:1;
    letter-spacing:-4px;
    font-weight:600;
}

.contact-content>p{
    max-width:540px;
    margin-top:25px;
    color:#526f6c;
    font-size:17px;
    line-height:1.7;
}

.contact-details{
    margin-top:42px;
    display:grid;
    gap:13px;
}

.contact-details>a{
    display:flex;
    align-items:center;
    gap:15px;
    width:max-content;
}

.contact-details>a>.material-symbols-outlined{
    width:43px;
    height:43px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.65);
    color:var(--teal-dark);
}

.contact-details small,
.contact-details strong{
    display:block;
}

.contact-details small{
    color:#6e8582;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:1.2px;
}

.contact-details strong{
    margin-top:3px;
    font-size:14px;
}

.location-cards{
    margin-top:40px;
    display:grid;
    gap:10px;
}

.location-card{
    display:flex;
    align-items:flex-start;
    gap:13px;
    padding:15px 0;
}

.location-card>.material-symbols-outlined{
    color:var(--teal-dark);
}

.location-card small,
.location-card strong,
.location-card span{
    display:block;
}

.location-card small{
    color:var(--teal-dark);
    text-transform:uppercase;
    letter-spacing:1.3px;
    font-size:9px;
    font-weight:800;
}

.location-card strong{
    margin-top:4px;
    font-size:13px;
}

.location-card div>span{
    margin-top:2px;
    color:#6a817e;
    font-size:12px;
}

.contact-form-wrap{
    padding:55px;
    border-radius:30px;
    background:rgba(255,255,255,.91);
    box-shadow:0 35px 90px rgba(31,76,72,.13);
    border:1px solid rgba(255,255,255,.75);
}

.contact-form-heading>span{
    color:var(--teal-dark);
    text-transform:uppercase;
    letter-spacing:2px;
    font-size:10px;
    font-weight:800;
}

.contact-form-heading h3{
    margin-top:8px;
    font-family:"Manrope",sans-serif;
    font-size:31px;
    letter-spacing:-1px;
}

.contact-form{
    margin-top:35px;
}

.form-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.field{
    margin-bottom:20px;
}

.field label{
    display:block;
    margin:0 0 8px 3px;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:1.2px;
    font-weight:800;
    color:#5d7774;
}

.field input,
.field textarea{
    width:100%;
    border:1px solid rgba(16,47,45,.12);
    border-radius:14px;
    background:#f9fbfa;
    color:var(--ink);
    outline:none;
    transition:.25s ease;
}

.field input{
    height:55px;
    padding:0 17px;
}

.field textarea{
    height:145px;
    padding:17px;
    resize:vertical;
}

.field input:focus,
.field textarea:focus{
    background:white;
    border-color:var(--teal);
    box-shadow:0 0 0 4px rgba(85,189,179,.1);
}

.field input::placeholder,
.field textarea::placeholder{
    color:#a3afae;
}

.form-submit{
    width:100%;
    height:58px;
    border:0;
    border-radius:100px;
    background:var(--ink);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    font-weight:700;
    transition:.3s ease;
}

.form-submit:hover{
    background:var(--teal-dark);
    transform:translateY(-2px);
}

.form-submit .material-symbols-outlined{
    font-size:19px;
}

.form-privacy{
    margin-top:15px;
    text-align:center;
    color:#8a9997;
    font-size:9px;
    line-height:1.5;
}


/* LOCATIONS */

.locations-section{
    padding:115px 0;
    background:#f8faf9;
}

.locations-heading{
    margin-bottom:50px;
}

.locations-heading>span{
    color:var(--teal-dark);
    text-transform:uppercase;
    letter-spacing:2px;
    font-size:10px;
    font-weight:800;
}

.locations-heading h2{
    margin-top:12px;
    font-family:"Manrope",sans-serif;
    font-size:44px;
    letter-spacing:-2px;
    font-weight:600;
}

.locations-grid{
    display:grid;
    grid-template-columns:1fr 1fr .85fr;
    gap:20px;
}

.office-card,
.office-message{
    min-height:380px;
    border-radius:25px;
}

.office-card{
    position:relative;
    padding:38px;
    background:white;
    border:1px solid var(--line);
    transition:.35s ease;
}

.office-card:hover{
    transform:translateY(-6px);
    box-shadow:0 22px 50px rgba(28,69,65,.09);
}

.office-number{
    position:absolute;
    right:32px;
    top:30px;
    font-size:11px;
    letter-spacing:2px;
    color:#a2b2b0;
}

.office-icon{
    width:55px;
    height:55px;
    display:grid;
    place-items:center;
    border-radius:16px;
    background:#e4f2f0;
    color:var(--teal-dark);
}

.office-card>small{
    display:block;
    margin-top:45px;
    text-transform:uppercase;
    color:var(--teal-dark);
    font-size:9px;
    letter-spacing:1.5px;
    font-weight:800;
}

.office-card h3{
    margin-top:12px;
    font-family:"Manrope",sans-serif;
    font-size:23px;
    line-height:1.25;
}

.office-card p{
    margin-top:10px;
    color:#738986;
    font-size:13px;
}

.office-card>a{
    position:absolute;
    left:38px;
    bottom:35px;
    display:flex;
    align-items:center;
    gap:8px;
    font-size:12px;
    font-weight:800;
    color:var(--teal-dark);
}

.office-card>a .material-symbols-outlined{
    font-size:16px;
}

.office-message{
    padding:38px;
    background:var(--ink);
    color:white;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.office-message img{
    width:75px;
    margin-bottom:25px;
}

.office-message h3{
    font-family:"Manrope",sans-serif;
    font-size:27px;
    line-height:1.2;
}

.office-message p{
    margin-top:14px;
    color:#a9bfbc;
    line-height:1.65;
    font-size:13px;
}

.office-message>a{
    margin-top:25px;
    color:#7bd1c9;
    font-size:12px;
    font-weight:800;
}


/* CRISIS */

.crisis-banner{
    background:#e79ca2;
    color:#3d282a;
}

.crisis-inner{
    min-height:100px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px;
}

.crisis-inner>div{
    display:flex;
    align-items:center;
    gap:14px;
}

.crisis-inner .material-symbols-outlined{
    font-size:30px;
}

.crisis-inner p{
    font-size:13px;
    line-height:1.5;
}


/* FOOTER */

.site-footer{
    padding:80px 0 25px;
    background:#0b2725;
    color:white;
}

.footer-main{
    display:grid;
    grid-template-columns:2fr .7fr .8fr 1.25fr;
    gap:70px;
    padding-bottom:65px;
}

.footer-brand img{
    width:125px;
    filter:brightness(1.18);
}

.footer-brand p{
    max-width:370px;
    margin-top:25px;
    color:#d3e1df;
    line-height:1.7;
    font-size:15px;
}

.footer-column{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:13px;
}

.footer-column h4{
    margin-bottom:10px;
    color:#8fe1d8;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:2px;
}

.footer-column a,
.footer-column p{
    color:#d2e0de;
    font-size:14px;
    transition:.2s ease;
}

.footer-column a:hover{
    color:white;
}

.footer-contact a{
    word-break:break-word;
}

.footer-bottom{
    min-height:65px;
    border-top:1px solid rgba(255,255,255,.08);
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:end;
    padding-top:25px;
    color:#b9cecb;
    font-size:12px;
}

.footer-social{
    display:flex;
    gap:9px;
}

.footer-social a{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.13);
    border-radius:50%;
    color:#e5f0ee;
    font-size:18px;
    font-weight:700;
    transition:.25s ease;
}

.footer-social a:hover{
    background:var(--teal);
    border-color:var(--teal);
    color:var(--ink);
}

.aavv-credit{
    text-align:right;
}

.aavv-credit strong{
    color:#ffffff;
}


/* BACK TO TOP */

.back-to-top{
    position:fixed;
    right:25px;
    bottom:25px;
    width:48px;
    height:48px;
    z-index:500;
    border:0;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--ink);
    color:white;
    box-shadow:0 12px 30px rgba(16,47,45,.2);
    opacity:0;
    visibility:hidden;
    transform:translateY(15px);
    transition:.3s ease;
}

.back-to-top.show{
    opacity:1;
    visibility:visible;
    transform:none;
}

.back-to-top:hover{
    background:var(--teal-dark);
}

.back-to-top .material-symbols-outlined{
    font-size:20px;
}


/* RESPONSIVE */

@media(max-width:1280px){

    .desktop-nav{
        gap:17px;
    }

    .desktop-nav a{
        font-size:11px;
    }

    .header-cta{
        padding:13px 16px;
        font-size:10px;
    }

    .hero-inner{
        gap:45px;
    }

    .hero-image-frame{
        width:500px;
        height:590px;
    }

    .services-grid{
        grid-template-columns:repeat(3,1fr);
    }

}

@media(max-width:1050px){

    .desktop-nav,
    .header-cta{
        display:none;
    }

    .menu-toggle{
        display:flex;
    }

    .mobile-menu{
        position:fixed;
        inset:0;
        z-index:-1;
        background:rgba(238,245,244,.98);
        padding:130px 35px 40px;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:22px;
        opacity:0;
        visibility:hidden;
        transition:.35s ease;
    }

    .mobile-menu.open{
        opacity:1;
        visibility:visible;
    }

    .mobile-menu a{
        font-family:"Manrope",sans-serif;
        font-size:25px;
        font-weight:600;
    }

    .mobile-menu .mobile-cta{
        margin-top:15px;
        padding:16px 25px;
        border-radius:100px;
        background:var(--ink);
        color:white;
        font-family:"DM Sans",sans-serif;
        font-size:13px;
    }

    .menu-toggle.active span:nth-child(1){
        transform:translateY(7px) rotate(45deg);
    }

    .menu-toggle.active span:nth-child(2){
        opacity:0;
    }

    .menu-toggle.active span:nth-child(3){
        transform:translateY(-7px) rotate(-45deg);
    }

    .hero{
        min-height:auto;
        padding:160px 0 90px;
    }

    .hero-inner{
        grid-template-columns:1fr;
        text-align:center;
    }

    .hero-content{
        display:flex;
        flex-direction:column;
        align-items:center;
    }

    .hero h1{
        max-width:800px;
    }

    .hero-description{
        max-width:650px;
    }

    .hero-visual{
        margin-top:30px;
    }

    .hero-trust{
        width:100%;
    }

    .hero-scroll{
        display:none;
    }

    .trust-strip-inner{
        grid-template-columns:1fr 1fr;
    }

    .trust-message{
        min-height:100px;
        border-bottom:1px solid rgba(255,255,255,.08);
    }

    .services-grid{
        grid-template-columns:1fr 1fr;
    }

    .about-grid{
        grid-template-columns:1fr;
        gap:65px;
    }

    .about-image-wrap{
        height:600px;
    }

    .about-content{
        max-width:800px;
    }

    .team-grid{
        grid-template-columns:1fr 1fr;
    }

    .testimonial-layout{
        grid-template-columns:1fr;
        gap:30px;
    }

    .testimonial-stage{
        min-height:390px;
    }

    .contact-grid{
        grid-template-columns:1fr;
    }

    .locations-grid{
        grid-template-columns:1fr 1fr;
    }

    .office-message{
        grid-column:span 2;
        min-height:300px;
    }

    .footer-main{
        grid-template-columns:1.5fr 1fr 1fr;
    }

    .footer-contact{
        grid-column:2 / 4;
    }

}

@media(max-width:700px){

    .section{
        padding:85px 0;
    }

    .section-container,
    .hero-inner,
    .header-inner,
    .trust-strip-inner{
        width:calc(100% - 36px);
    }

    .site-header{
        padding:8px 0;
    }

    .header-inner{
        height:66px;
    }

    .brand{
        width:92px;
        flex-basis:92px;
    }

    .menu-toggle{
        width:44px;
        height:44px;
    }

    .hero{
        padding:125px 0 70px;
    }

    .hero h1{
        margin-top:22px;
        font-size:48px;
        line-height:1.02;
        letter-spacing:-3px;
    }

    .hero-description{
        font-size:16px;
        line-height:1.65;
    }

    .hero-buttons{
        width:100%;
        flex-direction:column;
    }

    .btn-primary,
    .btn-secondary{
        width:100%;
    }

    .hero-trust{
        grid-template-columns:1fr 1fr;
        gap:0;
        margin-top:45px;
    }

    .hero-trust div{
        padding:15px;
        border-bottom:1px solid rgba(16,47,45,.09);
    }

    .hero-trust div:nth-child(2){
        border-right:0;
    }

    .hero-visual{
        height:500px;
        margin-top:20px;
    }

    .hero-image-frame{
        width:100%;
        height:485px;
        border-radius:200px 200px 28px 28px;
    }

    .floating-card{
        padding:12px 13px;
    }

    .floating-card-top{
        left:-8px;
        top:18%;
    }

    .floating-card-bottom{
        right:-8px;
        bottom:12%;
    }

    .floating-card .material-symbols-outlined{
        width:34px;
        height:34px;
        font-size:18px;
    }

    .floating-card strong{
        font-size:10px;
    }

    .floating-card small{
        font-size:8px;
    }

    .trust-strip-inner{
        grid-template-columns:1fr;
    }

    .trust-message{
        justify-content:flex-start;
        padding:0 20px;
        border-right:0;
    }

    .section-heading{
        margin-bottom:45px;
    }

    .section-heading h2,
    .insurance-heading h2{
        font-size:39px;
        letter-spacing:-2px;
    }

    .section-heading p,
    .insurance-heading p{
        font-size:15px;
    }

    .services-grid{
        grid-template-columns:1fr;
    }

    .service-card.featured{
        grid-column:auto;
    }

    .service-card{
        min-height:290px;
    }

    .services-footer{
        flex-direction:column;
        text-align:center;
        gap:10px;
    }

    .about-grid{
        gap:55px;
    }

    .about-image-wrap{
        height:480px;
        border-radius:160px 25px 25px 25px;
    }

    .about-experience{
        right:12px;
        bottom:18px;
        width:235px;
    }

    .about-content h2{
        font-size:50px;
        letter-spacing:-3px;
    }

    .about-content .about-lead{
        font-size:18px;
    }

    .about-signature{
        align-items:flex-start;
        flex-direction:column;
    }

    .about-badges{
        flex-direction:column;
    }

    .team-heading{
        grid-template-columns:1fr;
        gap:20px;
    }

    .team-heading h2{
        font-size:43px;
    }

    .team-grid{
        grid-template-columns:1fr;
    }

    .provider-image{
        height:470px;
    }

    .testimonial-layout{
        min-height:700px;
    }

    .testimonial-intro h2{
        font-size:42px;
    }

    .testimonial-stage{
        min-height:380px;
    }

    .testimonial-slide blockquote{
        font-size:26px;
    }

    .testimonial-bg-word{
        font-size:170px;
        bottom:-45px;
    }

    .insurance-marquee::before,
    .insurance-marquee::after{
        width:50px;
    }

    .insurance-logo{
        width:160px;
        height:105px;
        flex-basis:160px;
    }

    .contact-grid{
        gap:55px;
    }

    .contact-content h2{
        font-size:48px;
        letter-spacing:-3px;
    }

    .contact-form-wrap{
        padding:30px 20px;
        border-radius:23px;
    }

    .contact-form-heading h3{
        font-size:26px;
    }

    .form-row{
        grid-template-columns:1fr;
        gap:0;
    }

    .contact-details>a{
        width:100%;
    }

    .contact-details strong{
        font-size:12px;
        word-break:break-word;
    }

    .locations-section{
        padding:85px 0;
    }

    .locations-heading h2{
        font-size:40px;
    }

    .locations-grid{
        grid-template-columns:1fr;
    }

    .office-message{
        grid-column:auto;
    }

    .crisis-inner{
        min-height:150px;
        padding:25px 0;
        flex-direction:column;
        align-items:flex-start;
        justify-content:center;
        gap:13px;
    }

    .footer-main{
        grid-template-columns:1fr 1fr;
        gap:45px 30px;
    }

    .footer-brand{
        grid-column:span 2;
    }

    .footer-contact{
        grid-column:span 2;
    }

    .footer-bottom{
        grid-template-columns:1fr;
        gap:20px;
        align-items:start;
    }

    .aavv-credit{
        text-align:left;
    }

}

@media(prefers-reduced-motion:reduce){

    html{
        scroll-behavior:auto;
    }

    *,
    *::before,
    *::after{
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.01ms !important;
    }

}

/* FINAL HOME POLISH */
.insurance-marquee::before,
.insurance-marquee::after{
    display:none;
}

@media(max-width:1050px){
    .provider-image{height:360px;}
}

@media(max-width:700px){
    .section-heading h2,
    .insurance-heading h2{font-size:34px;}
    .team-heading h2{font-size:38px;}
    .about-content h2{font-size:44px;}
    .locations-heading h2{font-size:36px;}
    .provider-image{height:390px;}
    .insurance-carousel{width:calc(100% - 20px);gap:8px;}
    .insurance-arrow{flex-basis:42px;width:42px;height:42px;}
    .insurance-logo{width:150px;height:100px;flex-basis:150px;}
    .footer-brand p{font-size:14px;}
    .footer-column a,.footer-column p{font-size:14px;}
    .footer-bottom{font-size:12px;}
}


/* =========================================================
   DOVE HOME - FINAL CORRECTIONS
   ========================================================= */

/* SERVICES: keep all 12 cards balanced with no orphan card */
.services-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:20px !important;
}
.service-card,
.service-card.featured{
    grid-column:auto !important;
    grid-row:auto !important;
    min-height:285px;
}
.service-card.featured{
    width:auto !important;
}

/* FOOTER: one solid background, no dark-blue blocks/patches */
.site-footer{
    background:#0b2725 !important;
    background-image:none !important;
    color:#ffffff !important;
    isolation:isolate;
}
.site-footer::before,
.site-footer::after,
.footer-main::before,
.footer-main::after,
.footer-bottom::before,
.footer-bottom::after{
    content:none !important;
    display:none !important;
}
.site-footer .section-container,
.site-footer .footer-main,
.site-footer .footer-brand,
.site-footer .footer-column,
.site-footer .footer-contact,
.site-footer .footer-bottom,
.site-footer .footer-social,
.site-footer .aavv-credit{
    background:transparent !important;
    background-image:none !important;
    box-shadow:none !important;
}
.footer-brand p{
    color:#dbe8e6 !important;
}
.footer-column h4{
    color:#75d7ce !important;
}
.footer-column a,
.footer-column p{
    color:#e1ecea !important;
}
.footer-bottom{
    color:#c5d8d5 !important;
}
.footer-social a{
    color:#ffffff !important;
    background:transparent !important;
}
.footer-social a:hover{
    background:#55bdb3 !important;
    color:#0b2725 !important;
}
.aavv-credit,
.aavv-credit strong{
    color:#ffffff !important;
}

@media(max-width:1050px){
    .services-grid{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}

@media(max-width:700px){
    .services-grid{
        grid-template-columns:1fr !important;
    }
}
