@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(inter-400.ttf) format("truetype")}
@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(inter-500.ttf) format("truetype")}
@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(inter-600.ttf) format("truetype")}
@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(inter-700.ttf) format("truetype")}
:root{--ink:#091727;--surface:#112237;--blue:#1238e2;--sky:#91b9ff;--paper:#f5f7fa;--muted:#596574;--line:#dce2e9;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #5587ff;outline-offset:6px}img{display:block;max-width:100%}.wrap{width:min(1280px,calc(100% - 112px));margin:auto}.topline{background:#06101e;color:#afbdcd;font-size:10px;letter-spacing:1.8px}.topline .wrap{display:flex;justify-content:space-between;padding:9px 0}.topline a{color:#fff;letter-spacing:.8px}header{position:sticky;top:0;z-index:20;background:#091727f5;border-bottom:1px solid #ffffff1a;backdrop-filter:blur(16px);color:#fff}.nav{display:flex;align-items:center;justify-content:space-between;height:98px}.logo{width:260px;height:auto}.nav nav{display:flex;align-items:center;gap:36px;font-size:13px}.nav nav>a{position:relative;padding:12px 0}.nav nav>a:not(.nav-call):after{content:'';position:absolute;left:0;bottom:6px;width:0;height:2px;background:var(--sky);transition:width .25s}.nav nav>a:hover:after,.nav nav>a[aria-current]:after{width:100%}.nav-call{border:1px solid #ffffff4a;padding:12px 22px!important;display:flex;gap:25px}.menu-toggle{display:none}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:10px}.skip:focus{top:10px}.eyebrow{display:block;font-family:Consolas,'Courier New',monospace;font-size:11px;font-weight:600;line-height:1.6;letter-spacing:1.7px;text-transform:uppercase;margin-bottom:24px}.hero{position:relative;min-height:720px;height:calc(100svh - 132px);max-height:1000px;color:#fff;overflow:hidden;background:#102838}.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-image{object-position:center 56%;animation:arrival 1.7s ease-out both}.hero-shade{background:linear-gradient(90deg,rgba(4,16,31,.88),rgba(4,16,31,.54) 52%,rgba(4,16,31,.08)),linear-gradient(0deg,#0615259c,transparent 35%)}.hero-content{position:relative;padding-top:100px;padding-bottom:130px}.hero .eyebrow{color:#d1e0f9;display:flex;align-items:center;gap:12px}.eyebrow i{display:inline-block;width:6px;height:6px;background:#9cc4ff;border-radius:50%;box-shadow:0 0 0 5px #b8d5ff16}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.06;letter-spacing:-.055em}h1{font-size:clamp(64px,7.7vw,116px);font-weight:700}.hero h1 span{color:#b4d1ff}.hero-content>p{max-width:480px;font-size:17px;line-height:1.8;color:#e0e6ee;margin:30px 0 34px}.actions{display:flex;gap:14px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;min-height:56px;padding:15px 24px;background:var(--blue);color:white;border:1px solid transparent;font-size:13px;font-weight:600;cursor:pointer;transition:background .25s,transform .25s}.button span,.text-link span{display:inline-block;transition:transform .25s}.button:hover{background:#244eff;transform:translateY(-2px)}.button:hover span,.text-link:hover span{transform:translate(3px,-3px)}.button.secondary{background:#ffffff08;border-color:#ffffff65}.button.secondary:hover{background:#ffffff20}.hero-bottom{position:absolute;bottom:30px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.8px}.hero-bottom a{font-size:11px;letter-spacing:.4px}.hero-bottom a span{margin-left:30px;font-size:20px}.trust-strip{background:white;border-bottom:1px solid var(--line)}.trust-strip .wrap{display:grid;grid-template-columns:repeat(3,1fr) 1.15fr;padding:30px 0;gap:25px;align-items:center}.trust-strip .wrap>span,.trust-strip a{font-size:12px;color:var(--muted);display:flex;gap:13px;align-items:center}.trust-strip b{font-size:28px;color:var(--ink);letter-spacing:-1px}.trust-strip a{border-left:1px solid var(--line);padding-left:28px;flex-wrap:wrap;gap:10px}.trust-strip a b{font-size:18px}.stars{color:var(--blue);letter-spacing:3px;font-size:14px}.section{padding-top:112px;padding-bottom:112px}h2{font-size:clamp(34px,4.1vw,58px);font-weight:600}h3{font-size:26px;font-weight:600}.about{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.about>div>p{color:var(--muted);margin:30px 0;max-width:520px}.image-pair{position:relative;padding:0 36px 30px 0}.image-pair img{height:520px;width:100%;object-fit:cover}.image-caption{position:absolute;right:0;bottom:0;background:var(--blue);color:white;font-family:Consolas,monospace;font-size:12px;letter-spacing:1.4px;padding:25px 32px}.values{border-block:1px solid var(--line)}.values>.wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;padding-block:48px}.values p{color:var(--muted);font-size:14px}.values .eyebrow{margin-bottom:14px;color:var(--blue)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:50px}.text-link{font-size:13px;font-weight:600;white-space:nowrap;display:inline-block}.text-link span{margin-left:20px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{padding:32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .3s,color .3s;display:flex;flex-direction:column;align-items:flex-start}.card-index{display:flex;justify-content:space-between;width:100%;color:var(--blue);font-family:monospace;font-size:12px;margin-bottom:42px}.card-index span{font-size:23px}.service-card h3{max-width:240px}.service-card p{font-size:14px;color:var(--muted);margin:20px 0 30px}.service-card .text-link{margin-top:auto}.service-card:hover{background:var(--ink);color:white}.service-card:hover p{color:#bfccdc}.service-card:hover .card-index{color:var(--sky)}.photo-band{height:440px;position:relative;overflow:hidden;color:white;display:flex;align-items:flex-end}.photo-band img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 56%}.photo-band:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#061525bd,transparent)}.photo-band .wrap{z-index:1;padding-bottom:55px}.reviews{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}.review{margin:0;padding:34px 40px 34px 0;border-bottom:1px solid var(--line)}.review:nth-child(even){padding-left:40px;border-left:1px solid var(--line)}blockquote{margin:22px 0 28px;font-size:18px;line-height:1.7;letter-spacing:-.3px}figcaption{font-size:13px;font-weight:600}figcaption span{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:4px}.rating{display:grid;grid-template-columns:auto auto;gap:0 12px;align-items:center}.rating b{font-size:42px;letter-spacing:-3px}.rating small{grid-column:2;font-size:10px;margin-top:-15px;color:var(--muted)}.cta{background:var(--blue);color:#fff;padding:75px 0}.cta>.wrap{display:flex;align-items:center;justify-content:space-between;gap:50px}.cta h2{font-size:clamp(34px,4vw,56px)}.cta p{max-width:550px;font-size:14px;color:#e0e7ff;margin-top:24px}.cta .button{background:white;color:var(--ink);flex-shrink:0}.cta .button:hover{background:#e2ebff}footer{background:var(--ink);color:#a9b8c9;padding:70px 0 25px;font-size:13px}.footer-grid{display:grid;grid-template-columns:1.2fr 1.1fr .5fr;gap:80px}.footer-grid p{max-width:340px;font-size:13px;margin-top:25px}.footer-grid>div>a:not(:has(img)){display:block;margin:12px 0;color:white}.footer-grid .eyebrow{color:#8298b1;margin-bottom:24px}.footer-grid .logo{width:235px}.email{overflow-wrap:anywhere}.coverage{margin-top:50px;padding:30px 0;border-block:1px solid #ffffff20;display:grid;grid-template-columns:1fr 3fr;gap:30px}.coverage .eyebrow{margin:0;color:#8298b1}.legal{display:flex;justify-content:space-between;gap:20px;font-size:10px;padding-top:26px}.legal>div{display:flex;gap:25px}footer a:hover{color:white;text-decoration:underline}.page-intro{padding-top:85px;padding-bottom:65px}.page-intro h1{font-size:clamp(56px,7vw,96px)}.page-intro .eyebrow{color:var(--blue)}.intro-copy{display:grid;grid-template-columns:1.4fr 1fr;gap:80px;margin:35px 0}.intro-copy p,.lead{color:var(--muted);max-width:800px}.lead{margin-top:32px;font-size:18px}.service-jump{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px}.service-jump a{padding:22px 15px;border-right:1px solid var(--line)}.service-jump a:hover{background:#e3e9f4}.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:95px;align-items:center;border-bottom:1px solid var(--line)}.service-detail:nth-of-type(even)>img{order:-1}.service-detail>img{height:640px;width:100%;object-fit:cover}.service-detail>div>p{margin:25px 0;color:var(--muted)}.service-detail h2{font-size:44px}.accordion{margin:30px 0}details{border-bottom:1px solid var(--line)}summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none;font-size:14px;font-weight:600;padding:20px 0}summary::-webkit-details-marker{display:none}summary span{font-size:22px;font-weight:400;color:var(--blue)}details[open] summary span{transform:rotate(45deg)}details p{font-size:14px;color:var(--muted);padding-bottom:22px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:95px;padding-bottom:80px}.contact-info .phone{font-size:clamp(24px,2.7vw,38px);letter-spacing:-1px;display:block;font-weight:600}.contact-info .email{display:block;font-size:14px;margin:15px 0 35px}.contact-info img{height:310px;width:100%;object-fit:cover}form{padding:36px;background:white;border:1px solid var(--line)}form h2{font-size:32px}form>p{font-size:13px;color:var(--muted);margin:15px 0 25px}label{display:block;font-size:12px;font-weight:600;margin-bottom:20px}input,textarea{display:block;width:100%;border:0;border-bottom:1px solid #bfc9d6;background:#f5f7fa;padding:13px;margin-top:8px;border-radius:0;color:var(--ink);min-width:0}textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}form .form-note{font-size:11px;margin-bottom:0}.form-note a{text-decoration:underline}.area-section{border-top:1px solid var(--line)}.area-section p{max-width:700px;color:var(--muted);margin-top:30px}.policy{max-width:850px;padding-bottom:100px;overflow-wrap:anywhere}.policy h2{font-size:28px;letter-spacing:-1px;margin:40px 0 18px}.policy p,.policy li{font-size:15px;color:var(--muted);margin-bottom:18px}.policy a{text-decoration:underline}.js-motion .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.js-motion .reveal.visible{opacity:1;transform:none}@keyframes arrival{from{transform:scale(1.045)}to{transform:scale(1)}}
@media(min-width:1600px){.hero-content{padding-top:140px}}@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.about,.service-detail,.contact-layout{gap:45px}.footer-grid{gap:35px}.trust-strip .wrap{gap:15px}.trust-strip .wrap>span{flex-direction:column;align-items:flex-start;gap:0}.trust-strip a{padding-left:20px}.nav nav{gap:25px}.service-card{padding:25px}.hero{min-height:680px}.image-pair img{height:480px}.service-detail h2{font-size:38px}.service-detail>img{height:600px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.topline{font-size:8px;letter-spacing:1px}.nav{height:80px}.logo{width:220px}.menu-toggle{display:flex;align-items:center;gap:15px;color:white;background:none;border:1px solid #ffffff40;padding:7px 12px;font-size:12px}.nav nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--ink);padding:20px;gap:8px;border-bottom:1px solid #ffffff30;box-shadow:0 20px 20px #0002}.nav nav.open{display:flex;flex-direction:column;align-items:stretch}.nav nav>a{padding:12px}.nav-call{margin-top:10px;justify-content:space-between}.hero{height:auto;min-height:690px}.hero-content{padding-top:80px;padding-bottom:140px}.hero h1{font-size:clamp(56px,11.7vw,86px)}.hero .eyebrow{font-size:9px;letter-spacing:1.1px}.hero-content>p{font-size:15px;max-width:390px}.hero-image{object-position:62% center}.hero-shade{background:linear-gradient(90deg,#061525e0,#0615255c),linear-gradient(0deg,#061525a0,transparent)}.hero-bottom{font-size:8px;letter-spacing:1px}.hero-bottom a{font-size:10px}.hero-bottom a span{margin-left:8px}.button{padding:14px 20px;gap:25px;font-size:12px}.trust-strip .wrap{grid-template-columns:1fr 1fr;padding:22px 0;gap:25px}.trust-strip .wrap>span{flex-direction:row;gap:12px;align-items:center;font-size:11px}.trust-strip a{padding:0;border:0;font-size:10px}.trust-strip b{font-size:24px}.section{padding-block:70px}.about,.service-detail,.contact-layout{grid-template-columns:1fr;gap:40px}.about .image-pair{max-width:540px}.image-pair img{height:430px}.image-caption{font-size:10px;padding:22px}.about>div>p{font-size:15px}.values>.wrap{grid-template-columns:1fr;gap:28px;padding-block:35px}.section-heading{display:block;margin-bottom:32px}.section-heading>.text-link{margin-top:25px}.service-grid{grid-template-columns:1fr 1fr}.service-card{padding:23px}.service-card h3{font-size:23px}.service-card p{font-size:13px}.card-index{margin-bottom:27px}.service-card .text-link{font-size:11px}.photo-band{height:330px}.reviews{grid-template-columns:1fr}.review,.review:nth-child(even){padding:28px 0;border-left:0}blockquote{font-size:17px}.rating{display:inline-grid;margin-top:25px}.cta{padding:55px 0}.cta>.wrap{display:block}.cta .button{margin-top:30px}.footer-grid{grid-template-columns:1fr 1fr;gap:40px 20px}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid .eyebrow{font-size:10px}.coverage{grid-template-columns:1fr;gap:14px;margin-top:35px}.legal{flex-direction:column;gap:15px}.page-intro{padding-top:60px;padding-bottom:45px}.page-intro h1{font-size:58px}.intro-copy{grid-template-columns:1fr;gap:20px;margin:28px 0}.service-jump{grid-template-columns:1fr 1fr}.service-jump a{font-size:10px;border-bottom:1px solid var(--line);padding-left:0}.service-detail>img{height:420px;order:0!important}.service-detail h2{font-size:36px}.contact-layout{padding-bottom:55px}.lead{font-size:16px}.contact-info img{height:270px}form{padding:25px}.policy h2{font-size:26px}}@media(max-width:420px){.logo{width:190px}.service-grid{grid-template-columns:1fr}.hero-content{padding-top:64px}.hero{min-height:680px}.hero h1{font-size:56px}.hero-bottom>span{max-width:130px}.trust-strip .wrap>span{font-size:10px;gap:8px}.trust-strip b{font-size:23px}.trust-strip .stars{font-size:10px;letter-spacing:1px}.image-pair img{height:360px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.form-grid{grid-template-columns:1fr;gap:0}.page-intro h1{font-size:48px}.button{gap:18px}.hero .actions{gap:10px}.hero .actions .button{padding-inline:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}}

/* Keep the service index in view, with a clear current-section indicator. */
:root{--header-height:99px;--service-nav-height:84px}
html:has(.service-jump){scroll-padding-top:calc(var(--header-height) + var(--service-nav-height) + 16px)}
.service-jump{position:sticky;top:var(--header-height);z-index:15;background:var(--paper);isolation:isolate;transition:box-shadow .25s ease}
.service-jump::before{content:'';position:absolute;inset:0 calc((100vw - 100%)/-2);background:var(--paper);border-block:1px solid var(--line);z-index:-1}
.service-jump.is-stuck{box-shadow:0 12px 24px -20px #09172770}
.service-jump a{position:relative;display:flex;align-items:center;min-height:72px;padding:18px 16px;border-bottom:0;transition:color .25s,background .25s;font-weight:500;line-height:1.5}
.service-jump a:first-child{border-left:1px solid var(--line)}
.service-jump a::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.service-jump a[aria-current="location"]{color:var(--blue);background:#1238e20c;font-weight:700}
.service-jump a[aria-current="location"]::after{transform:scaleX(1)}
@media(max-width:760px){:root{--header-height:81px;--service-nav-height:112px}.service-jump a{min-height:56px;padding:12px;font-size:10px;border-bottom:1px solid var(--line)}.service-jump a:nth-child(3){border-left:1px solid var(--line)}}
@media(prefers-reduced-motion:reduce){.service-jump,.service-jump a,.service-jump a::after{transition:none}}

/* Disclosure motion shares the same gentle timing as the rest of the site. */
summary span{transition:transform .3s cubic-bezier(.22,1,.36,1),color .2s}
details[data-expanded="true"] summary span{transform:rotate(45deg)}
details[data-expanded="false"] summary span{transform:rotate(0)}
.menu-toggle{transition:background .2s,border-color .2s}
.menu-toggle[aria-expanded="true"]{background:#ffffff14;border-color:#91b9ff}
.menu-toggle span{display:inline-block;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.menu-toggle[aria-expanded="true"] span{transform:rotate(90deg)}
@media(max-width:760px){
 .nav nav{display:flex;flex-direction:column;align-items:stretch;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px);transition:opacity .25s ease,transform .3s cubic-bezier(.22,1,.36,1),visibility 0s linear .3s}
 .nav nav.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition:opacity .25s ease,transform .3s cubic-bezier(.22,1,.36,1),visibility 0s}
}
@media(prefers-reduced-motion:reduce){summary span,.menu-toggle,.menu-toggle span,.nav nav,.nav nav.open{transition:none!important}}

/* Quiet motion accents: progress, editorial reveals, and photographic depth. */
.reading-progress{position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:var(--sky);transform:scaleX(0);transform-origin:left;pointer-events:none;z-index:2}
.motion-depth img{will-change:transform}
.photo-band.motion-depth img{height:116%;top:-8%}
.image-pair.motion-depth>img{clip-path:inset(0);transform-origin:center}
.js-motion .service-card.reveal,.js-motion .review.reveal,.js-motion .values .reveal{transition-delay:var(--reveal-delay,0ms)}
.section-heading .eyebrow,.about .eyebrow,.service-detail .eyebrow{color:var(--blue)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .image-pair{overflow:hidden}
 .image-caption{transition:transform .45s cubic-bezier(.22,1,.36,1)}
 .image-pair:hover .image-caption{transform:translateY(-6px)}
 .service-card .text-link{transition:transform .3s ease}
 .service-card:hover .text-link{transform:translateX(5px)}
}
@media(prefers-reduced-motion:reduce){
 .reading-progress{display:none}
 .motion-depth img{transform:none!important;will-change:auto}
 .js-motion .service-card.reveal,.js-motion .review.reveal,.js-motion .values .reveal{transition-delay:0ms}
}
.js-motion .service-card.reveal{transition-property:opacity,transform,background,color;transition-duration:.7s,.7s,.3s,.3s;transition-delay:var(--reveal-delay,0ms),var(--reveal-delay,0ms),0ms,0ms}

/* A slightly quieter brand mark across screen sizes. */
.logo{width:230px}
.footer-grid .logo{width:210px}
@media(max-width:760px){.logo{width:195px}}
@media(max-width:420px){.logo{width:170px}}

/* Visible contact number and a dedicated mobile contact drawer. */
.header-phone{margin-left:auto;margin-right:32px;line-height:1.5;white-space:nowrap}
.header-phone span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:1.4px;color:#acbed6}
.header-phone strong{font-size:17px;letter-spacing:.2px;font-weight:600}
.header-phone:hover strong{color:var(--sky)}
.mobile-drawer{position:fixed;inset:0 0 0 auto;margin:0;border:0;padding:30px;max-width:none;max-height:none;width:min(440px,calc(100% - 24px));height:100dvh;background:var(--ink);color:#fff;overflow-y:auto;overscroll-behavior:contain;transform:translateX(100%);transition:transform .36s cubic-bezier(.22,1,.36,1);box-shadow:-20px 0 80px #0004}
.mobile-drawer[open]{display:flex;flex-direction:column}
.mobile-drawer.open{transform:translateX(0)}
.mobile-drawer::backdrop{background:#020b1600;backdrop-filter:blur(0);transition:background .36s,backdrop-filter .36s}
.mobile-drawer.open::backdrop{background:#020b1699;backdrop-filter:blur(4px)}
.drawer-top{display:flex;align-items:center;justify-content:space-between;gap:20px}
.drawer-top .logo{width:195px}
.drawer-close{border:1px solid #ffffff40;background:transparent;color:white;font-size:29px;line-height:1;width:42px;height:42px;flex-shrink:0;cursor:pointer;transition:background .2s}
.drawer-close:hover{background:#ffffff20}
.drawer-intro{font-size:12px;color:#a9bdd5;margin:20px 0 24px}
.drawer-links{display:flex;flex-direction:column;border-top:1px solid #ffffff24}
.drawer-links a{display:flex;justify-content:space-between;font-size:30px;font-weight:600;letter-spacing:-1px;padding:15px 0;border-bottom:1px solid #ffffff24;line-height:1.4}
.drawer-links a::after{content:'↗';font-size:22px;color:#8ca4c2}
.drawer-links a[aria-current]{color:var(--sky)}
.drawer-trust{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:28px 0;border-bottom:1px solid #ffffff24}
.drawer-trust .eyebrow{grid-column:1/-1;margin:0;font-size:9px;color:#a9bdd5}
.drawer-trust>div:not(.drawer-rating){display:flex;flex-direction:column}
.drawer-trust strong{font-size:28px;font-weight:600;letter-spacing:-1px;line-height:1.3}
.drawer-trust span:not(.eyebrow):not(.stars){font-size:11px;color:#c0ccdb}
.drawer-rating{grid-column:1/-1;display:flex;gap:16px;align-items:center}
.drawer-rating .stars{color:var(--sky)}
.drawer-contact{padding:28px 0}
.drawer-contact .eyebrow{font-size:9px;margin-bottom:12px;color:#a9bdd5}
.drawer-phone{display:flex;align-items:center;justify-content:space-between;font-size:27px;font-weight:600;letter-spacing:-.8px;line-height:1.4;margin-bottom:10px}
.drawer-contact .email{font-size:12px;display:block;color:#d8e5f7}
.drawer-contact p{font-size:11px;color:#a9bdd5;line-height:1.8;margin-top:14px}
.drawer-contact p+.eyebrow{margin-top:24px}
.drawer-legal{display:flex;gap:25px;margin-top:auto;padding-top:16px;border-top:1px solid #ffffff24;font-size:10px;color:#a9bdd5}
@media(min-width:761px) and (max-width:1100px){.nav nav .nav-call{display:none}.header-phone{margin-right:24px}.nav nav{gap:20px}}
@media(max-width:760px){
 .nav{height:auto;min-height:80px;flex-wrap:wrap;padding-block:14px;gap:12px}
 .menu-toggle{margin-left:auto}
 .header-phone{order:3;width:100%;margin:0;display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid #ffffff24}
 .header-phone span{font-size:9px}.header-phone strong{font-size:17px}
 .nav #navigation{display:none!important}
 .topline .wrap>a{font-size:11px;letter-spacing:.5px}
 :root{--header-height:127px}
}
@media(max-width:380px){.mobile-drawer{padding:24px}.drawer-top .logo{width:170px}.drawer-phone{font-size:25px}}
@media(prefers-reduced-motion:reduce){.mobile-drawer,.mobile-drawer::backdrop{transition:none}}
html{scroll-padding-top:calc(var(--header-height) + 16px)}
html:has(.service-jump){scroll-padding-top:calc(var(--header-height) + var(--service-nav-height) + 16px)}

/* Compact drawer: keep navigation, reassurance and contact together. */
.mobile-drawer{padding:22px 26px}
.drawer-top .logo{width:170px}
.drawer-close{width:36px;height:36px;font-size:25px}
.drawer-intro{font-size:11px;margin:10px 0 14px}
.drawer-links a{font-size:22px;letter-spacing:-.5px;padding:10px 0;line-height:1.3}
.drawer-links a::after{font-size:18px}
.drawer-trust{padding:17px 0;gap:8px 14px}
.drawer-trust .eyebrow{font-size:8px;letter-spacing:1.2px}
.drawer-trust strong{font-size:24px}
.drawer-trust span:not(.eyebrow):not(.stars){font-size:10px}
.drawer-rating{gap:12px}
.drawer-rating .stars{font-size:12px}
.drawer-contact{padding:17px 0 14px}
.drawer-contact .eyebrow{font-size:8px;letter-spacing:1.2px;margin-bottom:7px}
.drawer-phone{font-size:24px;margin-bottom:5px}
.drawer-contact .email{font-size:11px}
.drawer-contact p{font-size:10px;line-height:1.55;margin-top:8px}
.drawer-contact p+.eyebrow{margin-top:13px}
.drawer-legal{font-size:9px;padding-top:12px;gap:20px}
@media(max-width:380px){.mobile-drawer{padding:18px 20px}.drawer-top .logo{width:155px}.drawer-phone{font-size:23px}}
@media(max-height:700px){
 .mobile-drawer{padding-block:16px}
 .drawer-top .logo{width:150px}
 .drawer-intro{margin:7px 0 10px;font-size:10px}
 .drawer-links a{font-size:20px;padding:8px 0}
 .drawer-trust{padding:12px 0;gap:6px 12px}
 .drawer-trust strong{font-size:21px}
 .drawer-contact{padding:12px 0 10px}
 .drawer-contact p{font-size:9px;line-height:1.5;margin-top:6px}
 .drawer-contact p+.eyebrow{margin-top:9px}
 .drawer-phone{font-size:22px}
 .drawer-legal{padding-top:9px}
}

/* Consistent hover transitions, limited to the properties each control changes. */
a{transition:color .22s ease,background-color .22s ease,border-color .22s ease,opacity .22s ease,text-decoration-color .22s ease}
.button{transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .25s ease}
.nav nav>a{transition:color .22s ease,background-color .22s ease,border-color .22s ease}
.service-card p,.service-card .card-index,.header-phone strong{transition:color .25s ease}
.service-card{transition:background-color .3s ease,color .3s ease}
.service-card .text-link{transition:color .25s ease,transform .3s ease}
.service-jump a{transition:color .25s ease,background-color .25s ease,border-color .25s ease}
footer a{text-decoration-line:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:color .22s ease,text-decoration-color .22s ease}
footer a:hover{text-decoration-color:currentColor}
.drawer-links a{transition:color .22s ease,background-color .22s ease}
.drawer-links a::after{transition:color .22s ease,transform .22s ease}
.drawer-links a:hover{color:var(--sky)}
.drawer-links a:hover::after{color:var(--sky);transform:translate(2px,-2px)}
.drawer-contact a{transition:color .22s ease}
.drawer-contact a:hover{color:var(--sky)}
.drawer-legal a{transition:color .22s ease}
.drawer-legal a:hover{color:#fff}
@media(prefers-reduced-motion:reduce){a,.button,.nav nav>a,.service-card,.service-card p,.service-card .card-index,.service-card .text-link,.header-phone strong,.service-jump a,footer a,.drawer-links a,.drawer-links a::after,.drawer-contact a,.drawer-legal a{transition:none!important}}

/* A sharp landscape photograph and stronger contrast behind the section copy. */
.photo-band::after{background:linear-gradient(90deg,rgba(4,16,31,.84),rgba(4,16,31,.48)),linear-gradient(0deg,rgba(4,16,31,.35),transparent 85%)}
.photo-band .eyebrow,.photo-band h2{color:#fff;text-shadow:0 2px 12px #0003}
.photo-band img{object-position:center 66%}
@media(max-width:760px){.photo-band img{object-position:48% 64%}}

/* Inner-page introductions continue the header's navy surface. */
.page-intro{position:relative;isolation:isolate;background:var(--ink);color:#fff}
.page-intro::before{content:'';position:absolute;inset:0 calc((100vw - 100%)/-2);background:var(--ink);z-index:-1}
.page-intro .eyebrow{color:var(--sky)}
.page-intro .intro-copy p,.page-intro .lead{color:#c3cfdf}
.page-intro .button{background:#244bf0}
.page-intro .button:hover{background:#365dff}
header{background:var(--ink)}

/* Compact header preserves access to the phone number as readers move on. */
.nav{transition:height .3s ease,padding .3s ease}
header .logo{transition:width .3s ease}
@media(min-width:761px){
 header.is-compact .nav{height:76px}
 header.is-compact .logo{width:205px}
}
@media(max-width:760px){
 header.is-compact .nav{padding-block:9px;min-height:70px;gap:8px}
 header.is-compact .logo{width:175px}
 header.is-compact .header-phone{padding-top:5px}
}
@media(max-width:420px){header.is-compact .logo{width:155px}}
@media(min-width:1101px) and (min-height:700px){
 .service-detail{align-items:start}
 .service-detail>img{position:sticky;top:calc(var(--header-height) + var(--service-nav-height) + 24px);height:clamp(320px,calc(100svh - var(--header-height) - var(--service-nav-height) - 64px),640px);object-fit:cover}
}
.trust-strip b{font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){.nav,header .logo{transition:none}}
@media(max-width:420px){.topline .wrap{gap:8px}.topline .wrap>span{font-size:7px;letter-spacing:.5px}.topline .wrap>a{font-size:9px;letter-spacing:0}}

/* A consistent navy tint, with an optional rotating service headline. */
.photo-band::after{background:rgba(4,16,31,.76)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.season-typewriter{min-height:1.12em}
.typewriter-text::after{content:'';display:inline-block;width:2px;height:.8em;background:currentColor;margin-left:7px;vertical-align:baseline;opacity:.6}
.typewriter-pause{margin-top:18px;padding:5px 0;color:#d4dfec;background:none;border:0;border-bottom:1px solid #ffffff60;font-size:11px;cursor:pointer;transition:color .22s,border-color .22s}
.typewriter-pause:hover{color:white;border-color:white}
@media(max-width:760px){.season-typewriter{min-height:2.12em}.photo-band .wrap{padding-bottom:32px}}
@media(prefers-reduced-motion:reduce){.typewriter-text::after{display:none}.typewriter-pause{display:none!important}}

/* The closing invitation and footer form one sticky, compacting surface. */
.footer-stage{position:relative;min-height:var(--footer-stage-height,0px)}
.footer-section{position:sticky;top:var(--footer-stick-top,var(--header-height));background:var(--ink);z-index:10}
.footer-section .cta{transition:background-color .4s ease,padding-top .4s ease,padding-bottom .4s ease}
.footer-section.is-stuck .cta{background:var(--ink);padding-top:0;padding-bottom:0}
.footer-section.is-stuck .cta>.wrap{border-bottom:1px solid #ffffff24}
.footer-section .cta>.wrap{border-bottom:1px solid transparent;transition:border-color .4s ease}
@media(prefers-reduced-motion:reduce){.footer-section .cta,.footer-section .cta>.wrap{transition:none}}
.footer-stage{background:var(--ink)}

/* Keep the closing section full-height, with its legal row at the base. */
.footer-section{min-height:calc(100svh - var(--header-height));display:flex;flex-direction:column}
.footer-section.is-stuck .cta{padding-top:37.5px;padding-bottom:0}
.footer-section .cta>.wrap,.footer-section.is-stuck .cta>.wrap{border:0}
.footer-section>footer{flex:1;display:flex;flex-direction:column}
.footer-section>footer>.legal{margin-top:auto}
@media(max-width:760px){.footer-section.is-stuck .cta{padding-top:27.5px}}
.footer-section>footer>.footer-grid{margin-top:0;margin-bottom:0}
.footer-section>footer>.coverage{margin-bottom:0}
.footer-section>footer>.legal{margin-bottom:0}

/* Five-second holds and two-second dissolves: three seven-second slots. */
.pool-slideshow{position:absolute;inset:0;overflow:hidden;background:var(--ink)}
.photo-band .pool-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:pool-dissolve 21s linear infinite both;animation-play-state:paused;will-change:opacity,transform}
.photo-band .pool-slide:nth-child(2){animation-delay:-14s;object-position:center 65%}
.photo-band .pool-slide:nth-child(3){animation-delay:-7s;object-position:center 65%}
.pool-slideshow.is-playing .pool-slide{animation-play-state:running}
@keyframes pool-dissolve{
 0%{opacity:1;transform:scale(1.01)}
 23.8095%{opacity:1;transform:scale(1.035)}
 33.3333%{opacity:0;transform:scale(1.045)}
 33.334%{opacity:0;transform:scale(1)}
 90.4762%{opacity:0;transform:scale(1)}
 100%{opacity:1;transform:scale(1.01)}
}
@media(prefers-reduced-motion:reduce){.photo-band .pool-slide{animation:none;transform:none;opacity:0;will-change:auto}.photo-band .pool-slide:first-child{opacity:1}}

/* Progress follows the brand blue, then merges with the sticky footer. */
.reading-progress{background:var(--blue);transition:background-color .4s ease}
header.footer-active .reading-progress{background:var(--ink)}
@media(prefers-reduced-motion:reduce){.reading-progress{transition:none}}
.contact-layout{padding-top:80px}
@media(max-width:760px){.contact-layout{padding-top:50px}}

/* A quiet, accessible theme switch; the brand header remains navy. */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0;padding:8px;margin-left:auto;margin-right:18px;border:1px solid #ffffff20;background:transparent;color:#91a3ba;cursor:pointer;transition:color .22s,background-color .22s,border-color .22s}
.theme-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:opacity .22s,color .22s}
.theme-toggle .theme-sun{color:#fff}.theme-toggle .theme-moon{opacity:.5}
.theme-toggle:hover{background:#ffffff0c;border-color:#ffffff50;color:white}
[data-theme="dark"] .theme-toggle .theme-sun{color:inherit;opacity:.5}
[data-theme="dark"] .theme-toggle .theme-moon{color:white;opacity:1}
.header-phone{margin-left:0}
@media(max-width:760px){.theme-toggle{margin-left:auto;margin-right:0}.menu-toggle{margin-left:0}}
[data-theme="dark"]{color-scheme:dark;--paper:#0d1c2c;--ink:#091727;--muted:#a9b9cc;--line:#2b3c50;--map-water:#0b1929;--map-land:#15283c;--map-fill:#91b9ff;--map-ink:#eaf1fb}
[data-theme="dark"] body{color:#eaf1fb}
[data-theme="dark"] .trust-strip{background:#132438}
[data-theme="dark"] .trust-strip b{color:#eaf1fb}
[data-theme="dark"] .values .eyebrow,[data-theme="dark"] .section-heading .eyebrow,[data-theme="dark"] .about .eyebrow,[data-theme="dark"] .service-detail .eyebrow,[data-theme="dark"] .card-index,[data-theme="dark"] .stars,[data-theme="dark"] summary span{color:var(--sky)}
[data-theme="dark"] .service-card:hover{background:#182d44}
[data-theme="dark"] .service-jump a:hover{background:#1c324b}
[data-theme="dark"] .service-jump a[aria-current="location"]{color:var(--sky);background:#91b9ff12}
[data-theme="dark"] .service-jump a::after{background:var(--sky)}
[data-theme="dark"] form{background:#132438}
[data-theme="dark"] input,[data-theme="dark"] textarea{background:#0d1c2c;color:#eaf1fb;border-color:#40536d}
[data-theme="dark"] .coverage-design .eyebrow,[data-theme="dark"] .coverage-check a,[data-theme="dark"] .town-directory a:hover{color:var(--sky)}
[data-theme="dark"] .coverage-four{background:#132438}
[data-theme="dark"] .coverage-five{background:#0d1c2c}
[data-theme="dark"] .coverage-four h2 span{color:var(--sky)}
[data-theme="dark"] .area-tags span{background:#14263a}
[data-theme="dark"] .option-heading,[data-theme="dark"] .options-intro>a{color:var(--sky)}
[data-theme="dark"] .options-intro nav a:hover{background:#1c324b}
[data-theme="dark"] .map-caption{color:#a9b9cc}
[data-theme="dark"] .skip{background:#132438;color:white}
@media(prefers-reduced-motion:reduce){.theme-toggle,.theme-toggle svg{transition:none}}

/* Desktop theme control sits quietly alongside the email address. */
.topbar-contact{display:flex;align-items:center;gap:16px}
.topbar-contact .theme-toggle{margin:0;padding:0 0 0 16px;border:0;border-left:1px solid #ffffff30;gap:9px;min-height:18px;background:transparent}
.topbar-contact .theme-toggle:hover{background:transparent;border-left-color:#ffffff60}
.topbar-contact .theme-toggle svg{width:14px;height:14px}
@media(max-width:760px){.topbar-contact .theme-toggle{display:none}.topbar-contact{gap:0}}

/* Desktop navigation leads into the right-aligned phone contact. */
@media(min-width:761px){
 .nav #navigation{margin-left:auto;margin-right:38px}
 .nav .header-phone{margin:0;text-align:right}
}

/* Phone, page links and theme icons read as three quiet desktop groups. */
@media(min-width:761px){
 .nav .header-phone{margin-left:auto;margin-right:28px;padding-right:28px;border-right:1px solid #ffffff30;text-align:left}
 .nav #navigation{margin:0;gap:28px}
 .nav>.theme-toggle{margin:0 0 0 28px;padding:0 0 0 24px;border:0;border-left:1px solid #ffffff30;background:transparent;min-height:32px;gap:9px}
 .nav>.theme-toggle:hover{background:transparent;border-left-color:#ffffff60}
}
@media(min-width:761px) and (max-width:1000px){
 .nav .header-phone{margin-right:18px;padding-right:18px}
 .nav #navigation{gap:18px}
 .nav>.theme-toggle{margin-left:18px;padding-left:18px}
}
@media(max-width:760px){.nav>.theme-toggle{display:none}}

/* Residential garden hero: one new photograph every seven seconds. */
.hero-slideshow{position:absolute;inset:0;overflow:hidden;background:var(--ink)}
.hero .hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;opacity:0;animation:pool-dissolve 21s linear infinite both;animation-play-state:paused;will-change:opacity,transform}
.hero .hero-slide:nth-child(2){animation-delay:-14s;object-position:center 66%}
.hero .hero-slide:nth-child(3){animation-delay:-7s;object-position:center 66%}
.hero-slideshow.is-playing .hero-slide{animation-play-state:running}
.hero-slideshow-pause{border:0;border-bottom:1px solid #ffffff50;padding:4px 0;background:transparent;color:#d9e4f4;font-size:10px;cursor:pointer;transition:color .22s,border-color .22s}
.hero-slideshow-pause:hover{color:white;border-color:white}
@media(max-width:760px){.hero-bottom{flex-wrap:wrap;gap:16px}.hero-slideshow-pause{order:3;font-size:9px}.hero .hero-slide{object-position:58% center}}
@media(prefers-reduced-motion:reduce){.hero .hero-slide{animation:none;transform:none;opacity:0;will-change:auto}.hero .hero-slide:first-child{opacity:1}.hero-slideshow-pause{display:none!important}}

/* Discreet shared pause/play controls, clear of the section copy. */
.hero .motion-control,.photo-band .motion-control{position:absolute;top:22px;right:clamp(20px,4vw,56px);z-index:3;display:flex;align-items:center;justify-content:center;width:38px;height:38px;padding:9px;margin:0;border:1px solid #ffffff25;background:#09172725;color:#ffffff9c;cursor:pointer;transition:color .22s,background-color .22s,border-color .22s;order:initial}
.motion-control svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.motion-control .play-symbol{display:none;fill:currentColor;stroke:none}
.motion-control[aria-pressed="true"] .pause-symbol{display:none}
.motion-control[aria-pressed="true"] .play-symbol{display:block}
.hero .motion-control:hover,.photo-band .motion-control:hover{background:#09172766;color:#fff;border-color:#ffffff70}
.hero .motion-control[hidden],.photo-band .motion-control[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.hero .motion-control,.photo-band .motion-control{display:none!important;transition:none}}

/* The opening mobile screen includes the top bar, header and complete hero. */
@media(max-width:760px){
 .hero{height:calc(100svh - var(--hero-opening-header,158px));min-height:0;max-height:none}
 .hero-content{padding-top:clamp(32px,6svh,65px);padding-bottom:105px}
 .hero h1{font-size:clamp(46px,10.8vw,78px)}
 .hero-content>p{margin:22px 0 24px;font-size:14px;line-height:1.7}
 .hero-bottom{bottom:max(20px,env(safe-area-inset-bottom));flex-wrap:nowrap;gap:12px}
 .hero-bottom>span{max-width:none;white-space:nowrap;font-size:8px;letter-spacing:.8px}
 .hero-bottom a{white-space:nowrap;font-size:9px}
 .hero-bottom a span{margin-left:7px}
}
@media(max-width:420px){.hero h1{font-size:clamp(43px,11.4vw,50px)}.hero .eyebrow{font-size:8px}.hero-bottom>span{font-size:7px;letter-spacing:.6px}}
@media(max-width:760px) and (max-height:700px){
 .hero-content{padding-top:25px;padding-bottom:74px}
 .hero h1{font-size:clamp(36px,10vw,54px)}
 .hero .eyebrow{margin-bottom:14px}
 .hero-content>p{font-size:13px;line-height:1.55;margin:16px 0 18px}
 .hero .actions .button{min-height:46px;padding-block:11px}
 .hero-bottom{bottom:16px}
}
@media(max-width:760px) and (max-height:500px){
 .hero h1{font-size:30px}.hero-content{padding-top:14px}.hero .eyebrow{margin-bottom:8px;font-size:7px}.hero-content>p{font-size:11px;line-height:1.4;margin:10px 0}.hero .actions .button{min-height:34px;padding-block:6px}.hero-bottom{bottom:9px}
}

/* Original content hierarchy, with a compact three-line service headline. */
.hero h1{font-size:clamp(58px,6.3vw,94px);line-height:1.04}
@media(max-width:760px){.hero h1{font-size:clamp(39px,8.7vw,64px)}}
@media(max-width:420px){.hero h1{font-size:clamp(35px,9.4vw,40px)}}
@media(max-width:760px) and (max-height:700px){.hero h1{font-size:clamp(31px,8.5vw,46px)}}
@media(max-width:760px) and (max-height:500px){.hero h1{font-size:26px}}

/* Apply only during theme changes so existing interaction timing is preserved. */
html.theme-changing,html.theme-changing *,html.theme-changing *::before,html.theme-changing *::after{
 transition-property:background-color,color,border-color,fill,stroke,box-shadow,text-decoration-color!important;
 transition-duration:200ms!important;
 transition-timing-function:ease!important;
 transition-delay:0ms!important;
}
@media(prefers-reduced-motion:reduce){html.theme-changing,html.theme-changing *,html.theme-changing *::before,html.theme-changing *::after{transition-duration:0ms!important}}

/* Mobile theme preference lives beside the drawer close control. */
.drawer-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
.drawer-actions .theme-toggle{display:inline-flex;margin:0;padding:6px 10px 6px 0;min-height:32px;border:0;border-right:1px solid #ffffff30;background:transparent;gap:7px}
.drawer-actions .theme-toggle:hover{background:transparent;border-right-color:#ffffff60}
.drawer-actions .theme-toggle svg{width:14px;height:14px}
@media(max-width:380px){.drawer-top{gap:12px}.drawer-top .logo{width:135px}.drawer-actions{gap:9px}.drawer-actions .theme-toggle{padding-right:8px}}

/* Calmer desktop headings; the homepage headline occupies two lines. */
@media(min-width:761px){
 .hero h1{font-size:clamp(48px,4.5vw,68px);max-width:1050px;line-height:1.08}
 .page-intro h1{font-size:clamp(48px,4.4vw,66px);line-height:1.08}
}
