/* ---- ported from the seven approved DFY mockups, merged and deduped ---- */
:root{--navy:#023368; --blue:#3170a4; --blue-soft:#eaf0f8; --text:#646464; --text-dark:#414141; --line:#E4E9F0; --slate:#56688A; --slate-deep:#465877; --slate-deeper:#3A4A66; --ground:#F3F5F8; --ink:#0d1b2e;}
*{box-sizing:border-box;margin:0;padding:0;}
html{color-scheme:light;}
body{font-family:'Raleway',sans-serif;color:var(--text);background:#DCE3EA;line-height:1.75;font-size:16px;}
.page{width:100%;background:#fff;overflow:hidden;}
.wrap{max-width:1140px;margin:0 auto;padding:0 20px;}
h1,h2,h3,h4{font-family:'Nunito',sans-serif;color:var(--navy);line-height:1.15;text-wrap:balance;}
h1{font-size:54px;font-weight:800;}
h2{font-size:36px;font-weight:800;}
h3{font-size:20px;font-weight:800;}
h4{font-size:15px;font-weight:800;}
h1 .tone,h2 .tone{color:var(--blue);}
a{color:inherit;text-decoration:none;}
section{position:relative;padding:90px 0;}
.center{text-align:center;}
.center p{max-width:640px;margin-left:auto;margin-right:auto;}
p + p{margin-top:14px;}
.split-head{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:46px;}
.split-head p{font-size:15px;}
.more{display:inline-block;margin-top:10px;font-family:'Nunito',sans-serif;font-weight:800;font-size:14px;color:var(--navy);}
.more::after{content:" \2192";}
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:'Nunito',sans-serif;font-weight:700;font-size:13.5px;white-space:nowrap; padding:0 26px;height:44px;border-radius:5px;border:2px solid transparent;cursor:pointer;transition:.15s;}
.btn-navy{background:var(--navy);color:#fff;}
.btn-navy:hover{background:var(--blue);}
.btn-white{background:#fff;color:var(--navy);}
.btn-white:hover{background:var(--blue-soft);}
.row-btn{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.play{width:46px;height:46px;border-radius:50%;background:var(--navy);display:inline-flex;align-items:center;justify-content:center;flex:none;box-shadow:0 8px 20px rgba(2,51,104,.3);}
.play::after{content:"";border-left:14px solid #fff;border-top:8px solid transparent;border-bottom:8px solid transparent;margin-left:4px;}
.ph-img{position:relative;border:2px dashed var(--blue);border-radius:6px; background:repeating-linear-gradient(45deg,#EEF2F5,#EEF2F5 9px,#E3E9EE 9px,#E3E9EE 18px); display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center; padding:22px;color:#5A6B7A;font-size:13.5px;min-height:200px;}
.ph-img b{color:var(--navy);margin-bottom:4px;}
.ph-inline{background:none;color:inherit;padding:0;font-weight:inherit;}
header.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 40px;position:sticky;top:0;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);z-index:20;gap:20px;border-bottom:1px solid var(--line);}
.logo img{height:58px;width:auto;display:block;}
nav ul{display:flex;gap:30px;list-style:none;font-family:'Nunito',sans-serif;font-size:14px;font-weight:700;color:var(--navy);align-items:center;}
nav li{white-space:nowrap;cursor:pointer;}
nav li.active{color:var(--blue);}
nav li .car::after{content:" \25BE";font-size:11px;}
.socials{display:flex;gap:10px;}
.socials span{width:30px;height:30px;border-radius:50%;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;font-family:'Nunito',sans-serif;font-size:11px;font-weight:800;color:var(--navy);}
.hero{min-height:660px;display:flex;align-items:center;padding:80px 0 120px;background-color:var(--slate);background-size:cover;background-position:center 30%;background-repeat:no-repeat}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,51,104,.9) 0%,rgba(2,51,104,.72) 45%,rgba(2,51,104,.12) 100%);}
.hero .wrap{position:relative;z-index:2;max-width:none;margin:0;padding:0 40px;}
.hero-copy{max-width:600px;}
.hero h1{color:#fff;}
.hero h1 .tone{color:#9CC7EA;}
.hero p{max-width:520px;margin:20px 0 30px;font-size:16px;color:#E6EDF5;}
.hero .btn-white{box-shadow:0 10px 24px rgba(0,0,0,.18);}
.hero .call{color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:14px;display:inline-flex;align-items:center;gap:10px;}
.stats{display:flex;gap:42px;margin-top:8px;}
.stat b{display:block;font-family:'Nunito',sans-serif;font-size:36px;font-weight:800;color:#fff;line-height:1;}
.stat span{font-size:12.5px;font-weight:600;letter-spacing:.04em;color:#C5D5E8;}
.tiles{margin-top:-70px;position:relative;z-index:3;}
.tile-band{background:var(--slate);border-radius:18px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.tile{position:relative;color:#fff;text-align:center;padding:48px 26px;transition:transform .25s ease,background .25s ease,box-shadow .25s ease,border-radius .25s ease;cursor:pointer;}
.tile:first-child{border-radius:18px 0 0 18px;}
.tile:last-child{border-radius:0 18px 18px 0;}
.tile + .tile::before{content:"";position:absolute;left:0;top:28px;bottom:28px;width:1px;background:rgba(255,255,255,.14);}
.tile:hover{background:var(--navy);transform:scale(1.1);box-shadow:0 24px 50px rgba(2,51,104,.35);z-index:2;border-radius:14px;}
.tile:hover::before,.tile:hover + .tile::before{opacity:0;}
.tile .ic{width:44px;height:44px;border-radius:50%;border:2px solid rgba(255,255,255,.45);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.tile h3{color:#fff;font-size:17px;margin-bottom:8px;}
.tile p{font-size:13.5px;color:#DCE4F0;}
.about{padding-top:110px;}
.about-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:0;align-items:stretch;border-radius:18px;overflow:hidden;box-shadow:0 24px 50px rgba(2,51,104,.18);}
.about-media{position:relative;min-height:560px;background:var(--blue-soft);}
.about-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.about-panel{background:var(--slate);color:#E6ECF5;padding:64px 60px;display:flex;flex-direction:column;justify-content:center;}
.about-panel h2{color:#fff;font-size:40px;margin-bottom:20px;}
.about-panel p{font-size:16px;line-height:1.8;}
.about-panel .btn{margin-top:26px;align-self:flex-start;}
.why{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:0;margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 40px rgba(2,51,104,.06);align-items:center;}
.why .lead{padding:26px 28px;border-right:1px solid var(--line);}
.why .lead h3{font-size:18px;margin-bottom:4px;}
.why .lead p{font-size:13.5px;max-width:200px;}
.why-item{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:26px 24px;}
.why-item + .why-item{border-left:1px solid var(--line);}
.why-item .ic{width:44px;height:44px;border-radius:10px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;}
.why-item b{display:block;font-family:'Nunito',sans-serif;font-weight:800;color:var(--navy);font-size:15px;}
.why-item span{font-size:13.5px;}
.partners{padding:20px 0 90px;position:relative;}
.partners .head{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:30px;}
.partners p{font-size:14.5px;}
.ins-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;}
.ins{background:#fff;border:1px solid var(--line);border-radius:10px;height:74px;display:flex;align-items:center;justify-content:center;padding:0 14px;text-align:center;transition:transform .2s,box-shadow .2s;}
.ins:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(2,51,104,.1);}
.ins span{font-family:'Nunito',sans-serif;font-weight:800;font-size:15px;letter-spacing:-.01em;line-height:1.15;}
.ins-note{font-size:13px;margin-top:16px;color:#8a8a8a;}
.svc-band{background:var(--ground);}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;align-items:center;}
.svc{position:relative;width:310px;height:310px;margin:0 auto;border-radius:50%;text-align:center;padding:40px 34px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;color:var(--text);transition:color .3s;}
.svc::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--slate);transform:scale(.6);opacity:0;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .3s;z-index:0;box-shadow:0 24px 50px rgba(2,51,104,.25);}
.svc::after{content:"";position:absolute;inset:-16px;border-radius:50%;border:2px solid rgba(86,104,138,.3);transform:scale(.8);opacity:0;transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .3s;}
.svc > *{position:relative;z-index:1;}
.svc .ic{width:52px;height:52px;border-radius:50%;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;transition:background .3s;}
.svc .ic svg{stroke:#023368;transition:stroke .3s;}
.svc h3{margin-bottom:10px;transition:color .3s;}
.svc p{font-size:14px;margin-bottom:16px;}
.svc .btn{background:var(--navy);color:#fff;transition:background .3s,color .3s;}
.svc.circle{color:#fff;}
.svc.circle::before{transform:scale(1);opacity:1;}
.svc.circle::after{transform:scale(1);opacity:1;}
.svc.circle h3,.svc.circle p{color:#fff;}
.svc.circle .ic{background:rgba(255,255,255,.15);}
.svc.circle .ic svg{stroke:#fff;}
.svc.circle .btn{background:#fff;color:var(--navy);}
.svc-list{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 26px;margin-top:56px;padding-top:34px;border-top:1px solid var(--line);}
.svc-list a{font-family:'Nunito',sans-serif;font-weight:700;font-size:14.5px;color:var(--navy);display:flex;align-items:center;gap:10px;padding:5px 0;}
.svc-list a::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue);flex:none;}
.form-band{background:var(--slate);color:#E6ECF5;padding:0;}
.form-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;align-items:center;padding:90px 0 0;}
.form-band h2{color:#fff;font-size:34px;}
.form-band p{font-size:14.5px;margin:16px 0 26px;}
.form-band .photo{align-self:end;}
.form-band .photo img{width:100%;height:470px;object-fit:cover;object-position:center top;border-radius:160px 160px 0 0;display:block;box-shadow:0 -10px 40px rgba(0,0,0,.15);background:var(--slate-deep);}
.lead-form{padding:0 0 90px;}
.lead-form h3{color:#fff;margin-bottom:14px;}
.fld{margin-bottom:12px;}
.fld input,.fld select,.fld textarea{width:100%;height:44px;border:1px solid rgba(255,255,255,.35);border-radius:5px;padding:0 14px;font:14px 'Raleway',sans-serif;color:var(--ink);background:#fff;}
.fld textarea{height:96px;padding:12px 14px;resize:vertical;}
.steps{display:grid;grid-template-columns:1fr 40px 1fr 40px 1fr;gap:18px;align-items:center;}
.step{background:var(--ground);border-radius:14px;padding:34px 26px;text-align:center;}
.step .ic{width:54px;height:54px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;margin:-62px auto 14px;border:4px solid #fff;box-shadow:0 8px 20px rgba(2,51,104,.12);}
.step h3{margin-bottom:8px;}
.step p{font-size:13.5px;}
.step.hi{background:var(--slate);color:#E6ECF5;transform:scale(1.06);box-shadow:0 24px 50px rgba(2,51,104,.25);}
.step.hi h3{color:#fff;}
.arrow{color:#B7C1D0;font-size:26px;text-align:center;}
.test-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;border-radius:14px;overflow:hidden;box-shadow:0 24px 50px rgba(2,51,104,.15);}
.test-grid img{width:100%;height:100%;min-height:380px;object-fit:cover;display:block;background:var(--blue-soft);}
.rev-card{background:var(--navy);color:#DCE4F0;padding:46px 44px 70px;position:relative;}
.rev{display:none;}
.rev.active{display:block;}
.rev .stars{color:#F5B301;letter-spacing:3px;font-size:16px;margin-bottom:14px;}
.rev p{font-family:'Nunito',sans-serif;font-weight:600;font-size:17px;line-height:1.6;color:#fff;}
.rev .who{display:flex;align-items:center;gap:12px;margin-top:22px;}
.rev .who .av{width:44px;height:44px;border-radius:50%;background:var(--slate);}
.rev .who b{display:block;font-family:'Nunito',sans-serif;color:#fff;font-size:14px;}
.rev .who span{font-size:12.5px;}
.rev-card .q{position:absolute;right:30px;bottom:14px;font-family:Georgia,serif;font-size:80px;line-height:1;color:rgba(255,255,255,.18);}
.rev-nav{position:absolute;left:44px;bottom:30px;display:flex;gap:8px;}
.rev-nav span{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.35);cursor:pointer;}
.rev-nav span.active{background:#fff;}
.cta-band{background-size:cover;background-position:center;background-repeat:no-repeat;background:var(--slate);text-align:center;color:#E6ECF5;}
.cta-band::before{content:"";position:absolute;inset:0;background:var(--slate);opacity:.88}
.cta-band .wrap{position:relative;z-index:2;}
.cta-band h2{color:#fff;font-size:36px;}
.cta-band p{max-width:560px;margin:14px auto 28px;font-size:15px;}
.cta-band .row-btn{justify-content:center;}
.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:46px;max-width:860px;margin-left:auto;margin-right:auto;}
.office{display:grid;grid-template-columns:1fr 1.2fr;gap:0;margin:40px auto 0;max-width:860px;background:var(--ground);border-radius:14px;overflow:hidden;align-items:center;}
.office .media{height:100%;min-height:260px;position:relative;background:var(--blue-soft);}
.office .media img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0;}
.office .body{padding:34px 36px;}
.office .body h3{margin-bottom:8px;}
.office .body p{font-size:14.5px;}
.office .hrs{display:inline-block;background:var(--navy);color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;padding:6px 12px;border-radius:8px;margin-bottom:12px;}
.card{background:#fff;border-radius:14px;position:relative;}
.card .media{height:230px;border-radius:14px;overflow:hidden;position:relative;background:var(--blue-soft);}
.card .media img{width:100%;height:100%;object-fit:cover;display:block;}
.card .media .ph-img{height:100%;border-radius:14px;}
.card .badge{position:absolute;left:16px;top:200px;background:var(--navy);color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;padding:8px 12px;border-radius:8px;line-height:1.1;text-align:center;}
.card .body{padding:30px 6px 0;}
.card .tag{font-size:12px;font-weight:600;color:var(--blue);letter-spacing:.04em;display:block;margin-bottom:6px;}
.card h3{margin-bottom:8px;}
.card p{font-size:14px;}
.faq-wrap{max-width:820px;margin:40px auto 0;}
.faq{background:#fff;border-radius:12px;margin-bottom:12px;padding:0 24px;}
.faq h3{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;cursor:pointer;font-size:17px;}
.faq h3 span{width:28px;height:28px;border-radius:50%;background:var(--blue-soft);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:18px;flex:none;transition:.2s;}
.faq p{display:block;padding:0 0 20px;max-width:720px;font-size:14.5px;}
/* Answers ship EXPANDED (spec 7: no interaction-gated content). The .dfy-js
   class is set by an inline script in wp_head, so the accordion collapses
   before first paint for humans and never for a crawler with JS off. */
.dfy-js .faq:not(.open) p{display:none}
.dfy-js .faq h3{cursor:pointer}
.faq h3{cursor:default}
.faq.open h3 span{transform:rotate(45deg);background:var(--navy);color:#fff;}
footer.base{background:var(--slate);color:#DCE4F0;position:relative;}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:40px;padding:50px 0 46px;}
.f-grid h4{color:#fff;margin-bottom:14px;}
.f-grid ul{list-style:none;line-height:2.05;font-size:14px;}
.f-grid p{font-size:14px;}
.f-logo{background:#fff;padding:8px 12px;border-radius:6px;display:inline-block;margin-bottom:14px;}
.f-logo img{height:48px;display:block;}
.f-copy{background:var(--slate-deeper);padding:16px 0;font-size:12.5px;text-align:center;color:#B7C1D0;}
.f-copy a{color:#DCE4F0;}
.ph-inline{background:#FFF3C4;color:#6B4F00;padding:0 5px;border-radius:3px;font-weight:600;}
.stat .ph-inline{font-size:30px;padding:0 6px;}
.about{padding-top:130px;}
.about-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:30px;align-items:stretch;}
.about-media{position:relative;min-height:520px;}
.about-media img{position:absolute;left:0;top:70px;width:62%;height:340px;object-fit:cover;border-radius:14px;box-shadow:0 20px 40px rgba(2,51,104,.15);background:var(--blue-soft);}
.about-panel{position:absolute;right:0;top:-30px;width:58%;background:var(--slate);color:#E6ECF5;border-radius:14px;padding:38px 34px 34px;box-shadow:0 24px 50px rgba(2,51,104,.25);z-index:3;}
.about-panel h2{color:#fff;font-size:30px;margin-bottom:16px;}
.about-panel p{font-size:14.5px;}
.about-panel .btn{margin-top:22px;}
.why{background:#fff;border:1px solid var(--line);border-radius:14px;padding:34px 30px;box-shadow:0 20px 40px rgba(2,51,104,.06);}
.why h3{font-size:18px;margin-bottom:8px;}
.why > p{font-size:14px;margin-bottom:22px;}
.why-item{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:14px 0;border-top:1px solid var(--line);}
.partners .row{display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:center;}
.partners h3{margin-bottom:6px;}
.partners p{font-size:14px;}
.logos{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;}
.logos div{font-family:'Nunito',sans-serif;font-weight:800;font-size:17px;color:#B7C1D0;letter-spacing:.02em;display:flex;align-items:center;gap:8px;}
.logos div::before{content:"";width:26px;height:26px;border-radius:50%;border:3px solid #C9D2DE;}
.banner{background:var(--navy);padding:64px 0 72px;text-align:center;overflow:hidden;}
.banner::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 20%,rgba(49,112,164,.55),transparent 45%),radial-gradient(circle at 85% 80%,rgba(86,104,138,.6),transparent 45%);}
.banner::after{content:"";position:absolute;left:50%;bottom:-140px;width:900px;height:220px;transform:translateX(-50%);border-radius:50%;border:1px solid rgba(255,255,255,.12);}
.banner .wrap{position:relative;z-index:2;}
.crumbs{font-family:'Nunito',sans-serif;font-size:12.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#9CC7EA;margin-bottom:14px;}
.crumbs span{color:#fff;}
.banner h1{color:#fff;font-size:44px;}
.banner p{color:#C5D5E8;max-width:620px;margin:14px auto 0;font-size:16px;}
.office-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:0;align-items:stretch;border-radius:18px;overflow:hidden;box-shadow:0 24px 50px rgba(2,51,104,.18);}
.office-media{position:relative;min-height:560px;background:var(--blue-soft);}
.office-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.office-panel{background:var(--slate);color:#E6ECF5;padding:64px 60px;display:flex;flex-direction:column;justify-content:center;}
.office-panel h2{color:#fff;font-size:40px;margin-bottom:20px;}
.office-panel p{font-size:16px;line-height:1.8;}
.office-panel .btn{margin-top:26px;align-self:flex-start;}
.visit{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 40px rgba(2,51,104,.06);}
.visit .row{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:26px 24px;}
.visit .row + .row{border-left:1px solid var(--line);}
.visit .row .ic{width:44px;height:44px;border-radius:10px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;}
.visit b{display:block;font-family:'Nunito',sans-serif;font-weight:800;color:var(--navy);font-size:15px;}
.visit span{font-size:13.5px;}
.pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}
.pillar{background:#fff;border-radius:14px;padding:30px 28px;display:grid;grid-template-columns:52px 1fr;gap:18px;align-items:start;transition:transform .25s,box-shadow .25s;}
.pillar:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(2,51,104,.12);}
.pillar .ic{width:52px;height:52px;border-radius:50%;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;}
.pillar h3{margin-bottom:6px;font-size:18px;}
.pillar p{font-size:14px;}
.doc-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:46px;}
.doc{display:grid;grid-template-columns:220px 1fr;gap:26px;align-items:start;background:var(--ground);border-radius:14px;padding:26px;}
.doc .ph-img{min-height:260px;border-radius:12px;}
.doc h3{margin-bottom:2px;}
.doc .cred{display:block;font-family:'Nunito',sans-serif;font-size:12.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:12px;}
.doc p{font-size:14.5px;}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:46px;}
.member{text-align:center;}
.member .photo{height:280px;border-radius:14px;overflow:hidden;background:var(--blue-soft);margin-bottom:14px;position:relative;}
.member .photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;}
.member .photo .ph-img{height:100%;}
.member h3{font-size:17px;margin-bottom:2px;}
.member span{font-size:13px;color:var(--blue);font-weight:600;}
.hands{background-size:cover;background-position:center;background-repeat:no-repeat;background:var(--slate);color:#E6ECF5;}
.hands::before{content:"";position:absolute;inset:0;background:var(--slate);opacity:.88}
.hands .wrap{position:relative;z-index:2;}
.hands-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;}
.hands h2{color:#fff;}
.hands p{font-size:15px;}
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:40px;}
.loc{background:#fff;border-radius:14px;padding:30px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;border:1px solid var(--line);}
.loc h3{margin-bottom:4px;}
.loc p{font-size:14px;}
.loc .tag{display:block;font-size:12px;font-weight:700;color:var(--blue);letter-spacing:.04em;margin-bottom:4px;}
.cities{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;justify-content:center;}
.cities a{background:var(--blue-soft);color:var(--navy);font-family:'Nunito',sans-serif;font-weight:800;font-size:13.5px;padding:10px 18px;border-radius:100px;}
.appt{background:var(--ground);}
.appt-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center;}
.eyebrow{display:block;font-family:'Nunito',sans-serif;font-size:12.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:10px;}
.appt-points{list-style:none;margin-top:26px;display:grid;gap:14px;}
.appt-points li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:baseline;padding-left:18px;position:relative;font-size:14px;}
.appt-points li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;background:var(--blue);}
.appt-points b{font-family:'Nunito',sans-serif;font-weight:800;color:var(--navy);font-size:15px;}
.appt-card{background:#fff;border-radius:16px;padding:34px 34px 30px;box-shadow:0 24px 50px rgba(2,51,104,.12);border-top:6px solid var(--navy);}
.appt-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:18px;flex-wrap:wrap;}
.appt-card-head span{font-size:13px;color:var(--blue);font-weight:600;}
.appt-card .fld label{display:block;font-family:'Nunito',sans-serif;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);margin-bottom:6px;}
.appt-card .fld input,.appt-card .fld select,.appt-card .fld textarea{border:1px solid #D5DCE4;background:#FBFCFD;}
.appt-card .two{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.intro-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center;}
.intro-grid h2{font-size:38px;}
.intro-grid p{font-size:16px;}
.cat-pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px;}
.cat-pills a{background:var(--blue-soft);color:var(--navy);font-family:'Nunito',sans-serif;font-weight:800;font-size:13.5px;padding:10px 18px;border-radius:100px;transition:.15s;}
.cat-pills a:hover{background:var(--navy);color:#fff;}
.intro-photo{border-radius:18px;overflow:hidden;height:400px;background:var(--blue-soft);box-shadow:0 24px 50px rgba(2,51,104,.15);}
.intro-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px;}
.sgrid.four{grid-template-columns:repeat(4,1fr);gap:20px;}
.sgrid.four .scard{padding:26px 22px 22px;}
.sgrid.four .scard h3{font-size:17px;}
.scard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px 28px 26px;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s,background .25s;}
.scard::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--navy);transform:scaleX(0);transform-origin:left;transition:transform .3s;}
.scard:hover{transform:translateY(-5px);box-shadow:0 24px 50px rgba(2,51,104,.14);}
.scard:hover::after{transform:scaleX(1);}
.scard .ico{width:64px;height:64px;border-radius:14px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;margin-bottom:18px;padding:10px;}
.scard .ico img{max-width:100%;max-height:100%;display:block;}
.scard h3{font-size:19px;margin-bottom:8px;}
.scard p{font-size:14px;flex:1;}
.scard .go{margin-top:16px;font-family:'Nunito',sans-serif;font-weight:800;font-size:13.5px;color:var(--blue);}
.group-head{display:flex;align-items:center;gap:16px;margin-top:56px;}
.group-head h2{font-size:26px;white-space:nowrap;}
.group-head::after{content:"";flex:1;height:1px;background:var(--line);}
.group-head:first-of-type{margin-top:0;}
.more-svc{margin-top:46px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 30px;display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:center;}
.more-svc b{font-family:'Nunito',sans-serif;font-weight:800;color:var(--navy);font-size:16px;white-space:nowrap;}
.more-svc .list{display:flex;flex-wrap:wrap;gap:8px 22px;}
.more-svc .list a{font-family:'Nunito',sans-serif;font-weight:700;font-size:14px;color:var(--navy);display:flex;align-items:center;gap:8px;}
.more-svc .list a::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue);}
.ins-band{background:var(--navy);color:#C5D5E8;padding:34px 0;}
.ins-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;}
.ins-band b{font-family:'Nunito',sans-serif;font-weight:800;color:#fff;font-size:20px;display:block;}
.ins-band span{font-size:14px;}
.fix-band{background:var(--navy);color:#C5D5E8;}
.fix-band h2{color:#fff;}
.fix-band .center p{color:#C5D5E8;}
.fix-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px;}
.fix{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:24px 20px;display:flex;align-items:center;gap:14px;transition:background .2s,transform .2s;}
.fix:hover{background:var(--slate);transform:translateY(-3px);}
.fix .ic{width:46px;height:46px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex:none;}
.fix span{font-family:'Nunito',sans-serif;font-weight:800;color:#fff;font-size:15px;line-height:1.3;}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px;}
.gallery div{border-radius:14px;overflow:hidden;height:220px;background:var(--blue-soft);}
.gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s;}
.gallery div:hover img{transform:scale(1.05);}
.why-cos{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.why-list{display:grid;gap:16px;margin-top:8px;}
.why-list > div{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;}
.why-list .ic{width:44px;height:44px;border-radius:10px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;}
.why-list b{display:block;font-family:'Nunito',sans-serif;font-weight:800;color:var(--navy);font-size:15.5px;}
.why-list span{font-size:14px;}
.why-photo{border-radius:18px;overflow:hidden;height:460px;background:var(--blue-soft);box-shadow:0 24px 50px rgba(2,51,104,.15);}
.why-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:start;}
.info-stack{display:grid;gap:16px;}
.info{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 24px;display:grid;grid-template-columns:48px 1fr;gap:16px;align-items:start;transition:transform .2s,box-shadow .2s;}
.info:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(2,51,104,.1);}
.info .ic{width:48px;height:48px;border-radius:12px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;}
.info b{display:block;font-family:'Nunito',sans-serif;font-weight:800;color:var(--navy);font-size:16px;margin-bottom:2px;}
.info span{font-size:14px;display:block;}
.info .hrs{display:grid;grid-template-columns:auto 1fr;gap:2px 16px;font-size:14px;margin-top:4px;}
.info .hrs b{font-size:13.5px;margin:0;}
.routes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px;}
.route{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px 28px;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;}
.route:hover{transform:translateY(-5px);box-shadow:0 24px 50px rgba(2,51,104,.12);}
.route .tag{display:inline-block;align-self:flex-start;background:var(--blue-soft);color:var(--navy);font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border-radius:100px;margin-bottom:14px;}
.route h3{margin-bottom:8px;}
.route p{font-size:14px;flex:1;}
.route .btn{margin-top:18px;align-self:flex-start;}
.route.hot{background:var(--navy);border-color:var(--navy);}
.route.hot .tag{background:rgba(255,255,255,.15);color:#fff;}
.route.hot h3{color:#fff;}
.route.hot p{color:#C5D5E8;}
.map-wrap{border-radius:18px;overflow:hidden;box-shadow:0 24px 50px rgba(2,51,104,.15);border:1px solid var(--line);}
.map-wrap iframe{width:100%;height:440px;border:0;display:block;}
.map-wrap .ph-img{min-height:440px;border-radius:0;}
.map-grid{display:grid;grid-template-columns:1fr 2fr;gap:40px;align-items:center;}
.cities{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
.q-band{background:var(--slate);color:#E6ECF5;}
.q-band h2{color:#fff;}
.q-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:center;}
.q-band .big{font-family:'Nunito',sans-serif;font-weight:800;font-size:34px;color:#fff;display:block;line-height:1.1;}
.bring{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px;}
.bring > div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 22px;text-align:center;transition:transform .2s,box-shadow .2s;}
.bring > div:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(2,51,104,.1);}
.bring .ic{width:54px;height:54px;border-radius:50%;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;}
.bring b{display:block;font-family:'Nunito',sans-serif;font-weight:800;color:var(--navy);font-size:15.5px;margin-bottom:4px;}
.bring span{font-size:13.5px;}
.timeline{position:relative;margin-top:50px;display:grid;gap:0;}
.timeline::before{content:"";position:absolute;left:31px;top:20px;bottom:20px;width:2px;background:var(--line);}
.tl{display:grid;grid-template-columns:64px 1fr;gap:26px;align-items:start;padding:22px 0;position:relative;}
.tl .n{width:64px;height:64px;border-radius:50%;background:#fff;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;position:relative;z-index:1;transition:.2s;}
.tl:hover .n{background:var(--navy);border-color:var(--navy);}
.tl:hover .n svg{stroke:#fff;}
.tl .body{background:var(--ground);border-radius:14px;padding:24px 28px;}
.tl h3{margin-bottom:6px;}
.tl p{font-size:14.5px;}
.tl .mins{display:inline-block;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);margin-bottom:8px;}
.know-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.know-photo{border-radius:18px;overflow:hidden;height:460px;background:var(--blue-soft);box-shadow:0 24px 50px rgba(2,51,104,.15);}
.know-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.forms-band{background:var(--navy);color:#C5D5E8;}
.forms-band h2{color:#fff;}
.forms-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center;}
.forms-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:30px;}
.forms-card h3{color:#fff;margin-bottom:8px;}
.forms-card p{font-size:14px;}
.forms-card ul{list-style:none;margin:16px 0 20px;display:grid;gap:8px;}
.forms-card li{display:flex;gap:10px;align-items:center;font-size:14px;color:#fff;font-family:'Nunito',sans-serif;font-weight:700;}
.forms-card li::before{content:"\2713";color:#9CC7EA;}
.filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:0 0 40px;}
.filters a{background:#fff;border:1px solid var(--line);color:var(--navy);font-family:'Nunito',sans-serif;font-weight:800;font-size:13.5px;padding:10px 18px;border-radius:100px;cursor:pointer;transition:.15s;}
.filters a.on,.filters a:hover{background:var(--navy);border-color:var(--navy);color:#fff;}
.post{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s;}
.post:hover{transform:translateY(-5px);box-shadow:0 24px 50px rgba(2,51,104,.12);}
.pimg{position:relative;height:210px;background:var(--blue-soft);}
.pimg .ph-img{height:100%;border-radius:0;border:none;}
.pimg .cat{position:absolute;left:16px;top:16px;background:var(--navy);color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border-radius:100px;}
.pbody{padding:24px 26px 26px;display:flex;flex-direction:column;flex:1;}
.pbody .date{font-size:12.5px;font-weight:600;color:var(--blue);letter-spacing:.04em;margin-bottom:8px;}
.pbody h3{font-size:18px;margin-bottom:8px;}
.pbody p{font-size:14px;flex:1;}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.post.feat{display:grid;grid-template-columns:1.15fr .85fr;margin-bottom:26px;}
.post.feat .pimg{height:100%;min-height:360px;}
.post.feat .pbody{padding:44px 44px;justify-content:center;}
.post.feat h3{font-size:30px;}
.post.feat p{font-size:15.5px;flex:0;}
.post.feat .date::before{content:"Latest post \00b7 ";color:var(--navy);font-weight:800;}
.pager{display:flex;justify-content:center;gap:8px;margin-top:46px;}
.pager a{width:42px;height:42px;border-radius:50%;background:#fff;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:'Nunito',sans-serif;font-weight:800;color:var(--navy);font-size:14px;}
.pager a.on{background:var(--navy);border-color:var(--navy);color:#fff;}
.pager a.wide{width:auto;padding:0 18px;border-radius:100px;}
.cta-band h2{color:#fff;}
@media(prefers-reduced-motion:reduce){
*{transition:none!important;}
}
@media(max-width:980px){
section{padding:56px 0;}
h1{font-size:36px;}
h2{font-size:28px;}
header.nav{padding:8px 20px;}
.logo img{height:48px;}
nav ul,.socials{display:none;}
.hero-grid,.split-head,.svc-grid,.form-grid,.test-grid,.card-grid,.office,.partners .head{grid-template-columns:1fr;}
.ins-grid{grid-template-columns:1fr 1fr;}
.hero{min-height:520px;padding:56px 0 100px;background-position:70% center;}
.hero::before{background:linear-gradient(180deg,rgba(2,51,104,.9),rgba(2,51,104,.78));}
.stats{flex-wrap:wrap;gap:24px;}
.hero .wrap{padding:0 20px;}
.tile-band{grid-template-columns:1fr 1fr;}
.tile{padding:28px 18px;}
.tile:first-child,.tile:last-child{border-radius:0;}
.tile:hover{transform:none;}
.about{padding-top:56px;}
.about-grid,.why{grid-template-columns:1fr;}
.about-media{min-height:280px;}
.about-panel{padding:36px 26px;}
.about-panel h2{font-size:30px;}
.why .lead{border-right:none;border-bottom:1px solid var(--line);}
.why-item + .why-item{border-left:none;border-top:1px solid var(--line);}
.svc{width:260px;height:260px;padding:26px;}
.svc::after{display:none;}
.svc-list{grid-template-columns:1fr 1fr;}
.form-grid{padding-top:56px;}
.form-band .photo img{height:300px;}
.steps{grid-template-columns:1fr;gap:40px;}
.arrow{display:none;}
.step.hi{transform:none;}
.test-grid img{min-height:260px;}
.rev-card{padding:34px 24px 60px;}
.rev-nav{left:24px;}
.f-grid{grid-template-columns:1fr 1fr;}
.hero-grid,.split-head,.svc-grid,.form-grid,.test-grid,.card-grid,.office,.partners .row{grid-template-columns:1fr;}
.about-grid{grid-template-columns:1fr;}
.about-media{min-height:0;}
.about-media img{position:static;width:100%;height:260px;}
.about-panel{position:static;width:100%;margin-top:20px;}
.banner{padding:44px 0 52px;}
.appt-grid,.appt-card .two{grid-template-columns:1fr;}
.banner h1{font-size:30px;}
.office-grid,.visit,.pillars,.doc-grid,.doc,.hands-grid,.loc-grid,.loc{grid-template-columns:1fr;}
.visit .row + .row{border-left:none;border-top:1px solid var(--line);}
.office-panel{padding:36px 26px;}
.office-panel h2{font-size:30px;}
.team-grid{grid-template-columns:1fr 1fr;}
.office-media{min-height:280px;}
.intro-grid,.sgrid,.sgrid.four,.more-svc{grid-template-columns:1fr;}
.intro-grid h2{font-size:30px;}
.intro-photo{height:260px;}
.group-head h2{white-space:normal;font-size:22px;}
.fix-grid,.gallery{grid-template-columns:1fr 1fr;}
.why-cos{grid-template-columns:1fr;}
.why-photo{height:280px;}
.contact-grid,.routes,.map-grid,.q-grid{grid-template-columns:1fr;}
.map-wrap iframe,.map-wrap .ph-img{height:300px;min-height:300px;}
.bring{grid-template-columns:1fr 1fr;}
.know-grid,.forms-grid{grid-template-columns:1fr;}
.know-photo{height:280px;}
.timeline::before{display:none;}
.tl{grid-template-columns:1fr;}
.pgrid{grid-template-columns:1fr;}
.post.feat{grid-template-columns:1fr;}
.post.feat .pimg{min-height:220px;}
.post.feat .pbody{padding:28px 24px;}
.post.feat h3{font-size:24px;}
}


/* ---- token bridge -------------------------------------------------------
   The shared LLS machinery CSS (Elementor shim, form, chrome) is written
   against the generic token names. Point them at the DFY palette so one
   palette drives both layers. Design values above are the mockups'.       */
:root{
  --moss:var(--navy);        --moss-dark:#01234a;
  --sage:var(--blue);        --sage-dark:#245780;
  --wash:var(--blue-soft);   --lightsage:var(--blue-soft);
  --cream:var(--ground);     --cream2:#fafbfd;
  --heading:var(--navy);     --body:var(--text);
  --muted:#6b7a90;           --white:#fff;
  --charcoal:var(--slate-deep);
  --radius:14px;
  --shadow:0 24px 55px -24px rgba(2,51,104,.30);
  --shadow-sm:0 12px 30px -16px rgba(2,51,104,.26);
  /* accessible small-text blue. #3170a4 is 4.05:1 on white, under 4.5. */
  --blue-text:#245780;
}


/* ---- corrections applied to the ported mockup CSS -----------------------
   1. The mockups set body{background:#DCE3EA} and wrap the page in .page to
      get a framed preview. On the real site the page IS the document, so the
      body ground is white and .page loses its overflow clip (which would
      otherwise trap the sticky header).
   2. .center{text-align:center} is kept: it is the base rule the DomesticAide
      build was missing, which cost a round of one-off :has() patches.
   3. Small blue text uses --blue-text, not --blue: #3170a4 measures 4.05:1 on
      white and fails WCAG AA. Icons, borders and large headings keep --blue.  */
body{background:#fff}
.page{overflow:visible}
a.more,.svc-list a,.ins small{color:var(--blue-text)}
.dfy-skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--navy);color:#fff;padding:.7rem 1.2rem;border-radius:0 0 8px 0}
.dfy-skip:focus{left:0}


/* ---- Elementor shim + shared machinery (carried from the LLS toolkit) ---- */
.dfy-skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--moss);color:#fff;padding:.7rem 1.2rem;border-radius:0 0 8px 0}
.dfy-skip:focus{left:0}
.dfy-hours{list-style:none;padding:0;margin:0}
.dfy-hours li{display:flex;justify-content:space-between;gap:1rem;font-size:.96rem}
.dfy-hours li b{color:var(--heading);font-weight:600}
.dfy-hours-note{font-size:.88rem;color:var(--muted);margin-top:.3rem}
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.elementor-widget.elementor-widget-heading:not(:last-child){margin-block-end:0}
.elementor-section.elementor-section-boxed > .elementor-container{max-width:100%}
.dfy-page .elementor-widget-html > .elementor-widget-container{overflow:visible}
body.dfy-page [data-dfy-slot="clinic-1"]{background-position:center 38%}
.reviews.rot .rev-rot{position:relative;max-width:720px;margin:0 auto}
.reviews.rot .rev{text-align:center;padding:2.4rem 2rem}
.reviews.rot .rev + .rev{margin-top:1.2rem}
.reviews.rot .rev .rev-context{border-left:none;border-top:3px solid var(--sage);padding:.9rem 0 0;margin-top:.6rem}
.reviews.rot .rev .who2{justify-content:center}
.dfy-js .reviews.rot .rev{position:absolute;top:0;left:0;right:0;margin:0;opacity:0;visibility:hidden;transition:opacity .5s ease}
.dfy-js .reviews.rot .rev.active{opacity:1;visibility:visible}
.dfy-page .elementor-widget:not(:last-child){margin-block-end:0}
.dfy-page .elementor-section > .elementor-container{width:100%}
.dfy-page .dfy-el > .elementor-container{width:min(1180px,92%);margin-inline:auto;display:block}
.dfy-page .dfy-el > .elementor-container > .elementor-column{width:100%}
.dfy-page .dfy-el .elementor-widget-wrap{padding:0}
.dfy-page .pagehead.dfy-el > .elementor-container{padding:92px 0;position:relative;z-index:2}
.dfy-page .prose.dfy-el > .elementor-container{width:min(820px,92%)}
.dfy-page .pullband.dfy-el > .elementor-container{width:min(760px,92%)}
.dfy-page .prose.dfy-el .elementor-widget:first-child h2{margin-top:0}
.dfy-page .dfy-el .elementor-widget-text-editor > .elementor-widget-container > *:last-child{margin-bottom:0}
.dfy-page .dfy-el2 > .elementor-container{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.dfy-page .dfy-el2 > .elementor-container > .elementor-column{width:auto;position:relative}
.dfy-page .svc.rev.dfy-el2 > .elementor-container > .elementor-column:first-child{order:2}
.dfy-page .svc.dfy-el .elementor-widget-image img{display:block;width:100%;aspect-ratio:5/4.6;object-fit:cover;border-radius:18px;box-shadow:var(--shadow-sm)}
.dfy-page .svc.dfy-el .dfy-tag{position:absolute;left:-18px;bottom:-18px;background:var(--moss);color:#fff;border-radius:14px;padding:1rem 1.3rem;box-shadow:var(--shadow);display:flex;gap:.7rem;align-items:center;max-width:230px}
.dfy-page .svc.dfy-el .dfy-tag svg{width:30px;height:30px;stroke:var(--lightsage);fill:none;stroke-width:1.7;flex:0 0 30px}
.dfy-page .svc.dfy-el .dfy-tag b{font-family:'Raleway';font-weight:600;font-size:.98rem;color:#fff;line-height:1.2}
.dfy-page .svc.dfy-el .elementor-widget-html{position:static}
.dfy-page .elementor-widget-button .elementor-button{display:inline-flex;align-items:center;gap:.5rem;font-family:'Raleway',sans-serif;font-weight:600;font-size:.98rem;padding:.92rem 1.9rem;border-radius:8px;background:var(--moss);color:#fff;transition:.25s ease;border:none;line-height:1.2}
.dfy-page .elementor-widget-button .elementor-button:hover{background:var(--moss-dark);color:#fff;transform:translateY(-2px)}
.dfy-page .elementor-widget-button.btn-sage .elementor-button{background:var(--sage)}
.dfy-page .elementor-widget-button.btn-sage .elementor-button:hover{background:var(--sage-dark)}
.dfy-page .elementor-widget-button.btn-white .elementor-button{background:#fff;color:var(--moss)}
.dfy-page .dfy-el .elementor-widget-button{margin-top:1.4rem}
.dfy-page .featband.dfy-el > .elementor-container,.dfy-page .cond.dfy-el > .elementor-container{width:min(1180px,92%)}
.dfy-page .featband.dfy-el .sec-head,.dfy-page .cond.dfy-el .head{max-width:none}
.dfy-page .featband.dfy-el .elementor-widget-heading,.dfy-page .cond.dfy-el .elementor-widget-heading{max-width:720px}
.dfy-page .cond.dfy-el > .elementor-container{text-align:center}
.dfy-page .cond.dfy-el .elementor-widget-heading{margin-inline:auto}
.dfy-page .cond.dfy-el .elementor-widget-text-editor{max-width:70ch;margin-inline:auto}
.dfy-page .featband.dfy-el .elementor-widget-html,.dfy-page .cond.dfy-el .elementor-widget-html{margin-top:2.2rem}
.dfy-el .elementor-section>.elementor-container{width:min(1180px,92%);margin-inline:auto;max-width:none}
.dfy-el .elementor-section{padding:0}
@media(max-width:960px){
.dfy-page .dfy-el2 > .elementor-container{grid-template-columns:1fr;gap:2.6rem}
.dfy-page .svc.rev.dfy-el2 > .elementor-container > .elementor-column:first-child{order:0}
.dfy-page .svc.dfy-el .dfy-tag{position:static;max-width:none;margin-top:1rem}
}
@media(max-width:640px){
.dfy-page .pagehead.dfy-el > .elementor-container{padding:64px 0}
}
/* ---- WordPress menu markup + chrome the mockups do not cover -------------
   The mockups draw the nav as a plain <ul><li>. WordPress emits
   ul.menu > li.menu-item > a, with .sub-menu for children, so the mockup's
   `nav ul` / `nav li` rules are extended rather than replaced.
   Link colours are written at (0,2,1)+ so Elementor's .elementor-kit-N a
   rule (0,1,1), which loads after this file, cannot win.              */
header.nav nav ul.menu{display:flex;gap:30px;list-style:none;font-family:'Nunito',sans-serif;font-size:14px;font-weight:700;align-items:center;margin:0;padding:0}
header.nav nav ul.menu li{white-space:nowrap;position:relative}
header.nav nav a[href]{color:var(--navy);display:block;padding:6px 0}
header.nav nav a[href]:hover,header.nav nav .current-menu-item > a[href]{color:var(--blue-text)}
header.nav nav .menu-item-has-children > a[href]::after{content:" \25BE";font-size:11px}
header.nav .logo{display:block}
header.nav .logo-txt{font-family:'Nunito',sans-serif;font-weight:800;font-size:20px;color:var(--navy)}
header.nav .nav-r{display:flex;align-items:center;gap:14px}
header.nav .socials a{width:30px;height:30px;border-radius:50%;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;font-family:'Nunito',sans-serif;font-size:11px;font-weight:800;color:var(--navy)}

/* dropdowns: present in the HTML, revealed on hover/focus (spec 7) */
header.nav nav .sub-menu{position:absolute;left:0;top:100%;min-width:230px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px -22px rgba(2,51,104,.45);padding:10px 0;list-style:none;display:flex;flex-direction:column;gap:0;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s ease;z-index:40}
header.nav nav li:hover > .sub-menu,header.nav nav li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:none}
header.nav nav .sub-menu a[href]{padding:8px 18px;font-weight:600;white-space:normal}

/* hamburger + drawer (deliberate addition, see dfy-chrome.php) */
.nav-toggle{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;position:relative;cursor:pointer}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:11px;width:20px;height:2px;background:var(--navy);transition:.2s ease}
.nav-toggle span{top:20px}
.nav-toggle span::before{top:-6px;left:0}
.nav-toggle span::after{top:6px;left:0}
.nav-toggle[aria-expanded="true"] span{background:transparent}
.nav-toggle[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}

/* footer additions */
footer.base a[href]{color:#DCE4F0}
footer.base a[href]:hover{color:#fff}
footer.base .f-copy a[href]{color:#DCE4F0;text-decoration:underline}
footer.base .f-grid ul{list-style:none;margin:0;padding:0}
footer.base .dfy-hours{list-style:none;margin:0;padding:0;font-size:14px;line-height:2.05}
footer.base .dfy-hours b{color:#fff;font-weight:700}
footer.base .dfy-hours-note{font-size:12.5px;color:#B7C1D0;line-height:1.6;padding:6px 0}
footer.base .f-addr{padding-top:10px}
footer.base .f-social{margin-top:10px}
footer.base .btn.btn-navy{margin-top:16px}
.f-compliance{font-size:12px;line-height:1.7;color:#B7C1D0;border-top:1px solid rgba(255,255,255,.14);padding:18px 0 26px;margin:0}

@media(max-width:980px){
  header.nav .nav-toggle{display:block}
  header.nav nav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 20px 40px -26px rgba(2,51,104,.5);max-height:0;overflow:hidden;transition:max-height .28s ease}
  header.nav nav.open{max-height:80vh;overflow:auto}
  header.nav nav ul.menu{display:block;padding:8px 20px 18px}
  header.nav nav ul.menu li{white-space:normal}
  header.nav nav a[href]{padding:11px 0;border-bottom:1px solid var(--line)}
  header.nav nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;border:0;box-shadow:none;padding:0 0 0 14px;border-radius:0}
  .f-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .f-grid{grid-template-columns:1fr}
}

/* the accordion button JS injects inside the FAQ h3 */
.faq h3 .faq-btn{all:unset;display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;cursor:pointer;font:inherit;color:inherit}
.faq h3 .faq-btn:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:6px}

/* ==========================================================================
   Bands the section library emits that the mockups do not draw directly.
   Every value here is derived from the mockups' own scale: 14px radius,
   90px section padding, 1140px wrap, Nunito 800 headings, Raleway body,
   navy #023368 / blue #3170a4 / slate #56688A / ground #F3F5F8.
   ========================================================================== */

/* --- image slots ---------------------------------------------------------
   Every photo box is .ph. It is position:relative with the image absolutely
   positioned inside, because an in-flow <img> with height:100% resolves
   against a parent whose height is being derived from that same content, and
   one card in four then renders taller than its siblings.                  */
.ph{position:relative;overflow:hidden;border-radius:14px;background:var(--blue-soft);
  background-size:cover;background-position:center;min-height:100%}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ph:empty::after{content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,var(--blue-soft),#dbe5f2)}

/* --- hero background rotation ------------------------------------------- */
/* The hero scrim is .hero::before. A pseudo-element with z-index:auto is
   painted in DOM order against other positioned children, and ::before comes
   FIRST, so the photo layer was covering the scrim and the white H1 sat on a
   bright photograph. Explicit layers: photo 0, scrim 1, copy 2. */
.hero-bg{position:absolute;inset:0;z-index:0}
.hero::before{z-index:1}
.hero > .wrap{position:relative;z-index:2}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;
  opacity:0;transition:opacity 1.1s ease}
.hero-slide.active{opacity:1}
.hero-dots{position:absolute;right:40px;bottom:28px;z-index:3;display:flex;gap:9px}
.hero-dot{width:10px;height:10px;border-radius:50%;border:2px solid rgba(255,255,255,.8);
  background:transparent;cursor:pointer;padding:0}
.hero-dot.active{background:#fff}

/* --- generic band grounds ------------------------------------------------ */
section.ground,.svc-band.ground,.prose.ground{background:var(--ground)}
.faq-band{background:var(--ground)}
.sec-head{max-width:760px;margin-bottom:38px}
.sec-head h2{margin-bottom:12px}

/* --- prose ---------------------------------------------------------------- */
.prose .wrap{max-width:820px}
.prose h2{margin-bottom:16px}
.prose h3{margin:26px 0 10px}
.prose p{margin-bottom:14px}
.prose ul,.prose ol{margin:0 0 16px 20px}
.prose li{margin-bottom:7px}

/* --- centred pull band ---------------------------------------------------- */
.pullband{background:var(--ground)}
.pullband .wrap{max-width:760px;text-align:center}
.pullband h2{margin-bottom:14px}
.pullband p{margin-bottom:12px}
.ticks{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:9px;text-align:left;
  max-width:520px;margin-inline:auto}
.ticks li{position:relative;padding-left:28px;font-size:14.5px}
.ticks li::before{content:"";position:absolute;left:0;top:7px;width:16px;height:16px;
  border-radius:50%;background:var(--blue-soft);
  box-shadow:inset 0 0 0 2px var(--blue)}

/* --- inline mid-page CTA --------------------------------------------------- */
.inlinecta{background:var(--ground);padding:56px 0}
.inlinecta .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.inlinecta h2{font-size:26px;margin-bottom:6px}
.inlinecta p{font-size:14.5px;margin:0}

/* --- feature / value / includes grids -------------------------------------- */
.feat-grid,.val-grid,.incl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.feat-grid.two{grid-template-columns:repeat(2,1fr)}
.feat,.val,.incl{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px 26px}
section.ground .feat,section.ground .val,section.ground .incl{background:#fff}
.feat .ic,.val .ic,.incl .ic{width:52px;height:52px;border-radius:14px;background:var(--blue-soft);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px}
.feat .ic svg,.val .ic svg,.incl .ic svg{width:24px;height:24px;color:var(--navy)}
.feat h2,.feat h3,.val h3,.incl h3{font-size:19px;margin-bottom:9px}
.feat p,.val p,.incl p{font-size:14.5px;margin-bottom:10px}
.feat p:last-child,.val p:last-child,.incl p:last-child{margin-bottom:0}
.feat ul,.incl ul{margin:0 0 0 18px;font-size:14.5px}

/* --- chip row -------------------------------------------------------------- */
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:26px}
.chip{background:#fff;border:1px solid var(--line);border-radius:200px;
  padding:9px 18px;font-size:14px;font-weight:600;color:var(--navy)}

/* --- split band (the service / location workhorse) ------------------------- */
.svc-split-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.svc-split.rev .svc-media{order:2}
.svc-media .ph{aspect-ratio:5/4.4;min-height:0}
.svc-copy h2{margin-bottom:14px}
.svc-copy p{margin-bottom:13px}
.svc-copy ul{margin:0 0 15px 20px}
.svc-copy li{margin-bottom:7px}
.svc-copy .btn{margin-top:8px}

/* --- credential split ------------------------------------------------------ */
.cert-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}

/* --- quick-contact row ------------------------------------------------------ */
.quick-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.mini-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px 20px;
  display:block;transition:.2s ease}
.mini-card:hover{border-color:var(--blue);transform:translateY(-3px)}
.mini-card .ic{width:44px;height:44px;border-radius:12px;background:var(--blue-soft);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.mini-card .ic svg{width:21px;height:21px;color:var(--navy)}
.mini-card b{display:block;font-family:'Nunito',sans-serif;font-size:16px;color:var(--navy);margin-bottom:4px}
.mini-card span{font-size:13.5px;display:block;color:var(--text)}

/* --- team band (real photos only) ------------------------------------------ */
.tm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.tm{margin:0}
.tm .frame{border-radius:14px;overflow:hidden}
.tm .frame .ph{aspect-ratio:4/3;min-height:0}
.tm figcaption{font-size:13.5px;padding-top:11px;color:var(--text)}

/* --- references ------------------------------------------------------------- */
.ref-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.ref{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}
.ref h3{font-size:18px;margin-bottom:8px}
.ref p{font-size:14.5px;margin:0}

/* --- inset dark card --------------------------------------------------------- */
.inset{background:var(--navy);border-radius:26px;overflow:hidden;display:grid;
  grid-template-columns:1fr 1.1fr;align-items:stretch}
.inset-media .ph{height:100%;border-radius:0;min-height:300px}
.inset-copy{padding:46px 44px;color:#DCE4F0}
.inset-copy h2{color:#fff;margin-bottom:14px}
.inset-copy p{color:#DCE4F0;margin-bottom:13px}
.inset-copy .btn.btn-navy{background:#fff;color:var(--navy)}

/* --- full-bleed category row -------------------------------------------------- */
.cat-row{display:grid;grid-template-columns:repeat(3,1fr)}
.cat-panel{position:relative;min-height:440px;display:flex;align-items:flex-end;overflow:hidden}
.cat-panel .ph{position:absolute;inset:0;border-radius:0}
.cat-panel::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(2,51,104,0) 35%,rgba(2,51,104,.88) 100%)}
.cat-copy{position:relative;z-index:2;padding:34px 30px;color:#fff}
.cat-copy h3{color:#fff;margin-bottom:8px}
.cat-copy p{color:rgba(255,255,255,.88);font-size:14px;margin-bottom:14px}
.pill-btn{display:inline-block;background:#fff;color:var(--navy);font-family:'Nunito',sans-serif;
  font-weight:800;font-size:12px;letter-spacing:.06em;text-transform:uppercase;
  padding:10px 20px;border-radius:200px}

/* --- rating line --------------------------------------------------------------- */
.rating-line{font-size:15px}
.rating-line .stars{color:#F2B705;letter-spacing:2px;margin-right:6px}
.rating-line b{color:var(--navy)}

/* --- screen reader only ---------------------------------------------------------- */
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);
  clip-path:inset(50%);white-space:nowrap}

/* --- responsive ------------------------------------------------------------------ */
@media(max-width:980px){
  .feat-grid,.val-grid,.incl-grid,.tm-grid,.ref-grid{grid-template-columns:repeat(2,1fr)}
  .quick-row{grid-template-columns:repeat(2,1fr)}
  .svc-split-grid,.cert-split,.inset{grid-template-columns:1fr;gap:32px}
  .svc-split.rev .svc-media{order:0}
  .cat-row{grid-template-columns:1fr}
  .cat-panel{min-height:320px}
  .inset-copy{padding:34px 28px}
  .hero-dots{right:20px}
}
@media(max-width:640px){
  .feat-grid,.feat-grid.two,.val-grid,.incl-grid,.tm-grid,.ref-grid,.quick-row{grid-template-columns:1fr}
  .chips{justify-content:flex-start}
  .inlinecta .wrap{flex-direction:column;align-items:flex-start}
}

/* The tile band uses h2, not h3, so the home page has no h1-to-h3 heading
   skip. Size is unchanged: these are still visually small tile titles. */
.tile h2{font-size:20px;font-weight:800;margin-bottom:8px;color:inherit}
.tile.active h2,.tile:hover h2{color:#fff}
/* Review quotes are wrapped in <blockquote> so the style gate's
   customer-words exemption applies. It must add no visual margin. */
.rev blockquote{margin:0;padding:0;border:0}
