@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');
:root {
  --navy:#08253d;
  --navy-dark:#041a2c;
  --silver:#bfc6ce;
  --paper:#f7f7f3;
  --white:#fff;
  --ink:#08253d;
  --gray:#526271;
  --line:#d7dddf;
  --display:'Barlow Condensed','Arial Narrow',Impact,sans-serif;
  --body:'DM Sans',Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1)
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:105px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:15px/1.65 var(--body);
  -webkit-font-smoothing:antialiased
}
button,input,textarea,select {
  font:inherit
}
button,a,input,summary,select {
  -webkit-tap-highlight-color:transparent
}
button,a {
  touch-action:manipulation
}
button {
  cursor:pointer
}
a {
  color:inherit;
  text-decoration:none
}
a,button {
  transition:color .2s,background .2s,transform .2s
}
h1,h2,h3,p {
  margin:0
}
h1,h2 {
  font-family:var(--display);
  font-weight:600;
  line-height:.97;
  letter-spacing:-.025em
}
h2 {
  font-size:clamp(45px,5.6vw,76px)
}
h3 {
  line-height:1.2
}
p {
  color:var(--gray)
}
.wrap {
  width:min(1240px,88%);
  margin-inline:auto
}
.section {
  padding-block:100px
}
.eyebrow {
  font-size:10px;
  font-weight:700;
  letter-spacing:1.8px;
  line-height:1.5;
  margin-bottom:23px;
  color:var(--navy)
}
.eyebrow.light,.light {
  color:#f1f4f6
}
.micro {
  font-size:9px;
  font-weight:600;
  letter-spacing:1.5px
}
.muted {
  color:#667480
}
.btn {
  display:inline-flex;
  justify-content:space-between;
  align-items:center;
  gap:34px;
  padding:16px 24px;
  min-height:54px;
  font-size:12px;
  line-height:1.3;
  font-weight:700;
  border:1px solid transparent;
  border-radius:2px;
  cursor:pointer
}
.btn>span {
  font-size:18px;
  font-weight:400
}
.btn:hover {
  transform:translateY(-2px)
}
.btn-navy {
  background:var(--navy);
  color:white
}
.btn-navy:hover {
  background:#164464
}
.btn-silver {
  background:var(--silver);
  color:var(--navy)
}
.btn-silver:hover {
  background:#dbe0e5
}
.text-link {
  display:inline-flex;
  gap:28px;
  align-items:center;
  font-size:12px;
  font-weight:600;
  padding-block:8px;
  border-bottom:1px solid currentColor
}
.text-link:hover {
  gap:35px
}
.text-link span {
  font-size:18px
}
.skip {
  position:fixed;
  top:-100px;
  left:20px;
  background:white;
  padding:15px;
  z-index:100
}
.skip:focus {
  top:5px
}
.preview-note {
  background:var(--navy-dark);
  color:#dce3e9;
  font-size:9px;
  letter-spacing:1px;
  text-align:center;
  padding:7px 15px
}
.preview-note span {
  margin-left:18px;
  letter-spacing:0;
  color:#bfc6ce
}
.header {
  position:sticky;
  top:0;
  z-index:30;
  display:flex;
  align-items:center;
  gap:25px;
  justify-content:space-between;
  background:#f7f7f3f5;
  backdrop-filter:blur(14px);
  padding:10px 4.5%;
  min-height:92px;
  border-bottom:1px solid #08253d12
}
.logo {
  display:block;
  flex-shrink:0;
  width:190px
}
.logo img {
  display:block;
  width:100%;
  height:auto;
  max-height:78px;
  object-fit:contain
}
.header nav {
  display:flex;
  align-items:center;
  gap:30px;
  margin-left:auto
}
.header nav a {
  font-size:11px;
  font-weight:600;
  white-space:nowrap
}
.header nav a:hover {
  color:#4d6c85
}
.header-contact {
  font-size:11px;
  font-weight:600;
  margin-left:14px;
  white-space:nowrap
}
.header-contact span {
  margin-left:15px
}
.header-cta {
  font-size:11px;
  padding:14px 19px;
  min-height:45px
}
.menu-toggle {
  display:none
}
.hero {
  min-height:710px;
  height:calc(100svh - 120px);
  max-height:900px;
  position:relative;
  background:var(--navy);
  overflow:hidden
}
.hero-image,.hero-shade {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover
}
.hero-image {
  object-position:70% 50%
}
.hero-shade {
  background:linear-gradient(90deg,#041a2ce8 0%,#041a2cbd 32%,#041a2c33 63%,#041a2c08),linear-gradient(0deg,#041a2c91,transparent 40%)
}
.hero-inner {
  position:relative;
  color:white;
  padding-top:70px;
  height:100%;
  padding-bottom:34px;
  display:flex;
  flex-direction:column;
  align-items:flex-start
}
.status-dot {
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--silver);
  margin-right:7px;
  vertical-align:middle
}
.hero h1 {
  font-size:clamp(85px,8.5vw,133px);
  font-weight:600;
  line-height:.88;
  letter-spacing:-.018em
}
.hero h1 span {
  color:#c3cbd2
}
.hero-copy {
  color:#d9e1e7;
  font-size:16px;
  line-height:1.6;
  margin-top:26px
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:33px;
  margin-top:31px
}
.hero-actions .text-link {
  border-bottom-color:#ffffff66
}
.hero-footer {
  margin-top:auto;
  width:100%;
  display:flex;
  justify-content:space-between;
  padding-top:42px;
  font-size:9px;
  letter-spacing:1.6px;
  color:#e0e5e9
}
.photo-tag {
  position:absolute;
  right:30px;
  top:50%;
  writing-mode:vertical-rl;
  color:#ffffffb8;
  letter-spacing:2px;
  font-size:8px
}
.trust-strip {
  border-bottom:1px solid var(--line);
  background:#e9eceb
}
.trust-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding-block:26px
}
.trust-inner>p {
  font-size:12px;
  line-height:1.4
}
.trust-inner strong {
  font-weight:600;
  color:var(--navy)
}
.trust-inner>span {
  font-size:11px;
  font-weight:500;
  display:flex;
  align-items:center;
  gap:13px
}
.trust-inner svg {
  width:24px;
  height:24px;
  fill:none;
  stroke:var(--navy);
  stroke-width:1.2
}
.trust-inner>a {
  font-size:10px;
  font-weight:600;
  border-bottom:1px solid var(--navy);
  padding-block:5px;
  white-space:nowrap
}
.trust-inner>a span {
  margin-left:10px
}
.intro {
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:13%;
  padding-bottom:55px
}
.intro-copy {
  padding-top:42px;
  max-width:480px
}
.lead {
  font-size:21px;
  line-height:1.45;
  color:var(--navy);
  margin-bottom:20px
}
.intro-copy>p:not(.lead) {
  font-size:14px;
  line-height:1.85
}
.intro-copy .text-link {
  margin-top:22px
}
.intro-line {
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-top:25px;
  margin-top:65px;
  font-size:9px;
  font-weight:600;
  letter-spacing:1.5px
}
.services-section {
  background:#e9edee
}
.section-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:70px;
  margin-bottom:46px
}
.section-head>p,.section-head>div:last-child:not(:first-child) {
  max-width:370px
}
.section-head p:not(.eyebrow) {
  font-size:13px;
  line-height:1.85
}
.services-layout {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:75px;
  align-items:start
}
.service-feature {
  background:var(--navy);
  color:white
}
.service-feature>div:last-child {
  padding:32px 35px 35px
}
.service-feature h3 {
  font-family:var(--display);
  font-size:37px;
  font-weight:500;
  margin:12px 0 15px;
  line-height:1.05
}
.service-feature p {
  color:#d0dbe4;
  font-size:13px;
  line-height:1.8
}
.service-feature .text-link {
  margin-top:19px
}
.atlas-image {
  position:relative;
  overflow:hidden;
  aspect-ratio:3/2;
  background:#c7ced1
}
.atlas-image>img {
  position:absolute;
  width:200%;
  height:200%;
  max-width:none;
  object-fit:fill
}
.detail-image {
  aspect-ratio:1.6
}
.detail-image>img {
  left:0;
  top:-100%
}
.service-list details {
  border-bottom:1px solid #b9c4cb
}
.service-list details:first-child {
  border-top:1px solid #b9c4cb
}
.service-list summary {
  display:flex;
  align-items:center;
  gap:25px;
  padding:25px 0;
  cursor:pointer;
  list-style:none
}
.service-list summary::-webkit-details-marker,.faqs summary::-webkit-details-marker {
  display:none
}
.service-number {
  font-size:10px;
  color:#5a6d7d
}
.service-list h3 {
  font-family:var(--display);
  font-size:31px;
  line-height:1;
  font-weight:500
}
.plus {
  margin-left:auto;
  font-size:25px;
  font-weight:400
}
.service-list details[open] .plus {
  transform:rotate(45deg)
}
.service-body {
  padding:0 40px 25px
}
.service-body p {
  font-size:13px;
  line-height:1.85
}
.service-body a {
  display:inline-block;
  font-size:11px;
  font-weight:600;
  margin-top:15px;
  border-bottom:1px solid var(--navy);
  padding-bottom:3px
}
.projects-section .section-head {
  align-items:flex-end
}
.disclosure {
  font-size:10px!important;
  line-height:1.6!important;
  margin-top:15px;
  color:#5c6a75
}
.project-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:44px 27px
}
.project {
  min-width:0
}
.comparison {
  aspect-ratio:3/2;
  position:relative;
  overflow:hidden;
  background:#e0e5e8;
  --position:50%;
  border-radius:3px;
  isolation:isolate;
  touch-action:pan-y
}
.comparison figure {
  position:absolute;
  inset:0;
  margin:0;
  overflow:hidden
}
.comparison .after {
  clip-path:inset(0 0 0 var(--position))
}
.comparison figure img {
  width:200%;
  height:200%;
  max-width:none;
  position:absolute;
  object-fit:fill;
  pointer-events:none
}
.comparison .q0 {
  left:0;
  top:0
}
.comparison .q1 {
  left:-100%;
  top:0
}
.comparison .q2 {
  left:0;
  top:-100%
}
.comparison .q3 {
  left:-100%;
  top:-100%
}
.compare-label {
  position:absolute;
  top:17px;
  padding:5px 10px;
  background:#041a2cd9;
  color:white;
  font-size:8px;
  letter-spacing:1px;
  z-index:3;
  pointer-events:none
}
.compare-label.before-label {
  left:17px
}
.compare-label.after-label {
  right:17px
}
.compare-line {
  position:absolute;
  inset:0 auto 0 var(--position);
  width:2px;
  background:white;
  transform:translateX(-50%);
  z-index:3;
  pointer-events:none
}
.compare-handle {
  position:absolute;
  left:var(--position);
  top:50%;
  transform:translate(-50%,-50%);
  width:44px;
  height:44px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  font-size:17px;
  background:white;
  color:var(--navy);
  z-index:3;
  pointer-events:none;
  box-shadow:0 3px 15px #0003
}
.compare-range {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:.001;
  cursor:ew-resize;
  z-index:5;
  margin:0;
  touch-action:pan-y
}
.comparison:focus-within {
  outline:3px solid #3b779b;
  outline-offset:4px
}
.project-meta {
  display:flex;
  justify-content:space-between;
  gap:15px;
  margin-top:17px
}
.project h3 {
  font-family:var(--display);
  font-weight:500;
  font-size:26px;
  line-height:1.05
}
.project-meta>span {
  font-size:9px;
  letter-spacing:1px;
  padding-top:4px
}
.project-caption {
  font-size:10px;
  margin-top:8px
}
.slider-hint {
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:1.4px;
  color:#6b7780;
  margin-top:10px
}
.care-section {
  background:#ecefea
}
.care-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10%;
  align-items:center
}
.care-photo {
  position:relative
}
.action-image {
  aspect-ratio:.85
}
.action-image img {
  left:-100%;
  top:0
}
.image-caption {
  display:block;
  font-size:8px;
  letter-spacing:1.5px;
  padding-top:15px
}
.care-copy h2 {
  font-size:clamp(47px,5vw,66px);
  margin-bottom:33px
}
.reason {
  display:flex;
  gap:20px;
  border-top:1px solid #ccd3d1;
  padding:20px 0
}
.reason>span {
  font-size:9px;
  color:#647583;
  padding-top:2px
}
.reason h3 {
  font-size:15px;
  font-weight:600;
  margin-bottom:9px
}
.reason p {
  font-size:12px;
  line-height:1.8
}
.process-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:35px;
  margin-top:15px
}
.process-grid article {
  border-top:1px solid #bec8cf;
  padding-top:25px
}
.process-grid article>span {
  font-family:var(--display);
  font-size:43px;
  font-weight:500;
  color:#6a7b89;
  line-height:1
}
.process-grid h3 {
  font-size:16px;
  line-height:1.4;
  margin:28px 0 12px;
  max-width:180px
}
.process-grid p {
  font-size:12px;
  line-height:1.85
}
.stat-strip {
  display:grid;
  grid-template-columns:1fr 1fr 1.5fr 1.5fr;
  align-items:center;
  gap:40px;
  margin-top:70px;
  padding-top:40px;
  border-top:1px solid var(--line)
}
.stat-strip strong {
  font:600 70px/.9 var(--display);
  display:block
}
.stat-strip span {
  display:block;
  font-size:8px;
  letter-spacing:1px;
  margin-top:12px
}
.stat-strip p {
  font-size:15px;
  line-height:1.6;
  text-align:right
}
.people-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  background:var(--navy);
  color:white
}
.people-photo {
  aspect-ratio:1.06;
  min-height:550px
}
.team-image img {
  left:0;
  top:0
}
.people-copy {
  padding:75px 12% 50px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center
}
.people-copy h2 {
  font-size:clamp(44px,4.8vw,68px);
  line-height:1
}
.people-copy>p:not(.eyebrow) {
  color:#c5d0da;
  font-size:13px;
  line-height:1.85;
  margin-top:25px;
  max-width:400px
}
.people-copy .btn {
  margin-top:32px
}
.people-copy .small-note {
  font-size:9px!important;
  color:#b7c3cd!important;
  margin-top:25px!important
}
.reviews-section {
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:90px;
  align-items:center
}
.review-title h2 {
  font-size:clamp(43px,4.5vw,61px);
  line-height:1.03
}
.review-title .disclosure {
  max-width:330px
}
.review-carousel {
  border-left:1px solid var(--line);
  padding-left:60px
}
.quote-mark {
  font-family:Georgia,serif;
  color:#93a6b4;
  font-size:90px;
  line-height:.8
}
.review-quote {
  font-size:22px;
  line-height:1.6;
  letter-spacing:-.3px;
  color:var(--navy);
  min-height:175px
}
.review-name {
  font-size:10px;
  letter-spacing:.7px;
  font-weight:700;
  margin-top:22px;
  color:var(--navy)
}
.review-context {
  font-size:10px;
  margin-top:5px
}
.review-controls {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:25px
}
.circle-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border-radius:50%;
  border:1px solid #bac6ce;
  background:transparent;
  color:var(--navy);
  font-size:18px
}
.circle-btn:hover {
  background:var(--navy);
  color:white
}
.review-controls .circle-btn {
  margin-left:7px
}
.review-dot {
  width:7px;
  height:7px;
  padding:0;
  border:0;
  background:#c7d0d6;
  border-radius:50%;
  margin-right:9px
}
.review-dot[aria-current=true] {
  background:var(--navy)
}
.review-dot:before {
  content:'';
  display:block;
  width:25px;
  height:25px;
  transform:translate(-9px,-9px)
}
.area-section {
  background:var(--navy);
  color:white
}
.area-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12%;
  align-items:center
}
.area-grid h2 {
  font-size:clamp(47px,5.5vw,73px)
}
.area-grid>div>p:not(.eyebrow) {
  color:#cad5df;
  font-size:13px;
  margin-top:25px;
  max-width:450px
}
.area-grid .text-link {
  margin-top:20px
}
.area-list {
  border:1px solid #526677;
  padding:35px
}
.area-list>p {
  color:#becdd9
}
.area-list>div {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:17px 20px;
  margin-top:30px
}
.area-list>div span {
  font-size:14px;
  border-bottom:1px solid #314c62;
  padding-bottom:12px
}
.area-list>p:last-child {
  font-size:10px!important;
  margin-top:20px!important
}
.faq-section {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:13%
}
.faq-heading {
  position:sticky;
  top:140px;
  align-self:start
}
.faq-heading p:not(.eyebrow) {
  font-size:13px;
  margin-top:22px
}
.faq-heading .text-link {
  margin-top:20px
}
.faqs details {
  border-bottom:1px solid var(--line)
}
.faqs details:first-child {
  border-top:1px solid var(--line)
}
.faqs summary {
  list-style:none;
  padding:23px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-size:14px;
  font-weight:600;
  cursor:pointer;
  line-height:1.5
}
.faqs summary>span {
  font-size:23px;
  font-weight:400
}
.faqs details[open] summary>span {
  transform:rotate(45deg)
}
.faqs p {
  padding:0 30px 25px 0;
  font-size:12px;
  line-height:1.9
}
.inspection-section {
  background:var(--navy-dark);
  color:white
}
.inspection-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10%;
  align-items:start
}
.inspection-copy {
  padding-top:20px
}
.inspection-copy h2 {
  font-size:clamp(60px,6.5vw,90px)
}
.inspection-copy h2 em {
  color:var(--silver);
  font-style:normal
}
.inspection-copy>p:not(.eyebrow) {
  font-size:14px;
  color:#bdcbd6;
  line-height:1.85;
  max-width:350px;
  margin-top:30px
}
.inspection-points {
  display:flex;
  flex-direction:column;
  gap:12px;
  border-block:1px solid #304659;
  padding-block:25px;
  margin-top:30px;
  font-size:12px;
  color:#e2e9ef
}
.contact-direct {
  display:block;
  font-size:11px;
  color:#c2d0dc;
  margin-top:24px
}
.form-panel {
  background:var(--paper);
  color:var(--navy);
  padding:35px 35px 28px;
  border-radius:3px
}
.form-panel .eyebrow {
  font-size:9px;
  margin-bottom:13px
}
.form-panel h3 {
  font:500 37px/.98 var(--display);
  letter-spacing:-.5px
}
.form-description {
  font-size:10px;
  margin-top:15px;
  margin-bottom:20px
}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:17px
}
form label {
  display:block;
  font-size:10px;
  font-weight:600;
  margin-bottom:7px;
  margin-top:13px
}
input,textarea,select {
  display:block;
  width:100%;
  min-height:43px;
  border:1px solid #bfc9d0;
  border-radius:2px;
  background:#fff;
  color:var(--navy);
  padding:9px 11px;
  font-size:13px
}
textarea {
  resize:vertical;
  min-height:80px
}
input:hover,textarea:hover,select:hover {
  border-color:#6c8699
}
input[aria-invalid=true],select[aria-invalid=true] {
  border-color:#9b2631
}
textarea::placeholder {
  color:#76838d;
  font-size:11px
}
.consent {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-weight:400;
  font-size:10px;
  line-height:1.7;
  margin-top:20px
}
.consent input {
  width:16px;
  min-height:16px;
  height:16px;
  margin:2px 0 0;
  flex-shrink:0;
  accent-color:var(--navy)
}
.field-error {
  display:block;
  color:#9b2631;
  font-size:10px;
  line-height:1.5;
  margin-top:4px
}
.field-error:empty {
  display:none
}
.form-mode {
  padding:12px;
  background:#e6ebee;
  font-size:10px;
  line-height:1.7;
  margin:18px 0
}
.form-panel .btn {
  width:100%;
  font-size:11px
}
.privacy-line {
  font-size:9px;
  margin-top:15px;
  text-align:center
}
.privacy-line button {
  background:none;
  border:0;
  color:var(--navy);
  font-size:9px;
  padding:0;
  text-decoration:underline
}
.honeypot {
  display:none
}
.form-success {
  padding:50px 0;
  min-height:500px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center
}
.form-success[hidden] {
  display:none
}
.success-icon {
  width:60px;
  height:60px;
  border:1px solid #96aab9;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:24px;
  margin-bottom:30px
}
.form-success h3 {
  font-size:52px
}
.form-success p:not(.eyebrow) {
  font-size:13px;
  margin:25px 0;
  line-height:1.85
}
.form-success .text-link {
  background:none;
  border:0;
  border-bottom:1px solid currentColor;
  margin-top:20px;
  font-size:11px;
  padding-inline:0
}
.footer {
  background:var(--navy-dark);
  color:white;
  border-top:1px solid #243e52;
  padding:50px 0 20px
}
.footer-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-bottom:42px;
  border-bottom:1px solid #294052
}
.footer .logo {
  width:220px
}
.logo-light img {
  filter:brightness(0) invert(1)
}
.footer-top>p {
  font:500 36px/1 var(--display);
  color:#c3d0da;
  margin-left:auto;
  margin-right:15%
}
.footer .circle-btn {
  color:white;
  border-color:#546c7e
}
.footer .circle-btn:hover {
  background:var(--silver);
  color:var(--navy)
}
.footer-grid {
  display:grid;
  grid-template-columns:1.25fr .9fr 1.15fr 1.1fr;
  gap:55px;
  padding-block:38px
}
.footer-grid h3 {
  font-size:8px;
  font-weight:500;
  letter-spacing:1.4px;
  margin-bottom:17px;
  color:#acbfcd
}
.footer-grid p {
  color:#b9c8d3;
  font-size:10px;
  line-height:1.8
}
.footer-grid .micro {
  font-size:8px;
  color:#acbfcd;
  margin-bottom:15px
}
.footer-grid a,.footer-grid button {
  display:block;
  font-size:10px;
  color:#d4dfe7;
  margin-bottom:8px
}
.footer-grid>div:first-child>a {
  margin-top:20px
}
.footer-grid button,.footer-bottom button {
  padding:0;
  border:0;
  background:none;
  text-align:left;
  font:inherit;
  color:inherit
}
.footer-bottom {
  border-top:1px solid #294052;
  padding-top:18px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  font-size:8px;
  color:#9eb1bf
}
.footer-bottom>span:nth-child(2) {
  max-width:450px
}
.footer-bottom button {
  font-size:8px;
  text-decoration:underline
}
.mobile-contact {
  display:none
}
.svg-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}
dialog {
  background:var(--paper);
  color:var(--navy);
  border:0;
  border-radius:4px;
  padding:45px;
  width:min(600px,90%);
  max-height:85svh;
  overflow:auto
}
dialog::backdrop {
  background:#001727b8;
  backdrop-filter:blur(3px)
}
dialog h2 {
  font-size:47px;
  margin-bottom:24px
}
dialog p:not(.eyebrow),dialog li {
  font-size:13px;
  line-height:1.9;
  color:var(--gray);
  margin-top:15px
}
.dialog-close {
  position:absolute;
  top:10px;
  right:15px;
  border:0;
  background:none;
  color:var(--navy);
  font-size:28px
}
dialog ul {
  padding-left:18px
}
:focus-visible {
  outline:3px solid #4c90b8;
  outline-offset:4px
}
button:disabled {
  opacity:.65;
  cursor:wait
}
.reveal {
  opacity:1;
  transform:none
}
.motion-ready .reveal {
  opacity:0;
  transform:translateY(24px);
  transition:opacity .7s var(--ease),transform .7s var(--ease)
}
.motion-ready .reveal.visible {
  opacity:1;
  transform:none
}
@media(min-width:1500px) {
  .hero-inner {
    padding-top:90px
  }
  .hero {
    min-height:790px
  }
  .hero h1 {
    font-size:146px
  }
}
@media(max-width:1200px) {
  .header {
    gap:18px
  }
  .header nav {
    gap:22px
  }
  .logo {
    width:165px
  }
  .header-contact {
    display:none
  }
  .services-layout {
    gap:40px
  }
  .people-copy {
    padding:60px 9%
  }
  .reviews-section {
    gap:50px
  }
  .review-carousel {
    padding-left:40px
  }
  .footer-grid {
    gap:30px
  }
}
@media(max-width:900px) {
  .header nav {
    gap:16px
  }
  .header nav a {
    font-size:10px
  }
  .header-cta {
    font-size:10px;
    padding:12px 15px;
    gap:20px
  }
  .hero {
    min-height:690px
  }
  .hero h1 {
    font-size:100px
  }
  .hero-inner {
    padding-top:60px
  }
  .trust-inner {
    flex-wrap:wrap;
    justify-content:center;
    gap:20px 35px
  }
  .trust-inner>p {
    display:none
  }
  .trust-inner>span {
    font-size:10px
  }
  .trust-inner>a {
    display:none
  }
  .section {
    padding-block:75px
  }
  .intro {
    column-gap:8%
  }
  .services-layout {
    gap:30px
  }
  .service-feature>div:last-child {
    padding:25px
  }
  .service-list summary {
    gap:18px
  }
  .service-list h3 {
    font-size:27px
  }
  .section-head {
    gap:30px
  }
  .section-head>p,.section-head>div:last-child:not(:first-child) {
    max-width:300px
  }
  .care-grid {
    gap:7%
  }
  .care-copy h2 {
    font-size:48px
  }
  .reason {
    padding:15px 0;
    gap:14px
  }
  .reason h3 {
    font-size:14px
  }
  .reason p {
    font-size:11px
  }
  .process-grid {
    gap:22px
  }
  .process-grid h3 {
    font-size:14px
  }
  .process-grid p {
    font-size:11px
  }
  .stat-strip {
    gap:20px
  }
  .stat-strip p {
    font-size:12px
  }
  .people-photo {
    min-height:480px;
    aspect-ratio:auto
  }
  .people-copy h2 {
    font-size:46px
  }
  .reviews-section {
    gap:35px
  }
  .review-carousel {
    padding-left:30px
  }
  .review-quote {
    font-size:19px
  }
  .area-grid {
    gap:7%
  }
  .area-list {
    padding:25px
  }
  .faq-section {
    gap:8%
  }
  .inspection-grid {
    gap:7%
  }
  .form-panel {
    padding:28px 24px
  }
  .inspection-copy h2 {
    font-size:65px
  }
  .footer-grid {
    gap:25px
  }
  .footer-top>p {
    margin-right:10%;
    font-size:30px
  }
}
@media(max-width:680px) {
  html {
    scroll-padding-top:85px
  }
  .wrap {
    width:88%
  }
  .section {
    padding-block:64px
  }
  .preview-note {
    font-size:8px;
    padding:6px 10px;
    letter-spacing:.6px
  }
  .preview-note span {
    display:none
  }
  .header {
    min-height:76px;
    padding:9px 6%;
    gap:12px
  }
  .logo {
    width:140px
  }
  .header-cta {
    margin-left:auto;
    font-size:9px;
    min-height:38px;
    padding:10px 12px;
    gap:14px
  }
  .header-cta>span {
    font-size:15px
  }
  .menu-toggle {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:30px;
    height:40px;
    border:0;
    padding:4px;
    background:none;
    z-index:2
  }
  .menu-toggle span {
    display:block;
    width:22px;
    height:1.5px;
    background:var(--navy);
    transition:transform .2s
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(3.25px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-3.25px) rotate(-45deg)
  }
  .header nav {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    padding:25px 6% 30px;
    background:var(--paper);
    box-shadow:0 10px 15px #08253d15;
    margin:0;
    flex-direction:column;
    align-items:stretch;
    gap:0
  }
  .header nav.open {
    display:flex
  }
  .header nav a {
    font-size:16px;
    padding:15px 0;
    border-bottom:1px solid var(--line)
  }
  .hero {
    height:auto;
    min-height:690px;
    max-height:none
  }
  .hero-image {
    object-position:67% 50%
  }
  .hero-shade {
    background:linear-gradient(90deg,#041a2cdd,#041a2c77 55%,#041a2c0a),linear-gradient(0deg,#041a2cbb,transparent 70%)
  }
  .hero-inner {
    min-height:690px;
    padding-top:57px;
    padding-bottom:28px
  }
  .hero .eyebrow {
    font-size:8px;
    letter-spacing:1.4px;
    margin-bottom:30px
  }
  .hero h1 {
    font-size:96px;
    line-height:.9
  }
  .hero-copy {
    font-size:14px;
    line-height:1.65;
    margin-top:27px
  }
  .hero-actions {
    margin-top:28px;
    flex-direction:column;
    align-items:flex-start;
    gap:14px
  }
  .hero-actions .btn {
    font-size:11px;
    min-height:51px;
    padding:15px 20px;
    gap:28px
  }
  .hero-actions .text-link {
    font-size:11px
  }
  .hero-footer {
    font-size:7px;
    letter-spacing:.8px;
    padding-top:33px
  }
  .hero-footer>span:last-child {
    display:none
  }
  .photo-tag {
    right:14px;
    font-size:7px
  }
  .trust-inner {
    display:grid;
    grid-template-columns:1fr;
    gap:17px;
    padding-block:25px
  }
  .trust-inner>span {
    font-size:11px;
    gap:15px
  }
  .trust-inner svg {
    width:21px;
    height:21px
  }
  .intro {
    grid-template-columns:1fr
  }
  .intro-copy {
    padding-top:30px;
    max-width:none
  }
  .intro-copy .lead {
    font-size:20px
  }
  .intro-copy>p:not(.lead) {
    font-size:13px
  }
  .intro-line {
    gap:18px;
    margin-top:38px;
    padding-top:20px;
    font-size:7px;
    letter-spacing:.7px
  }
  .intro-line>span {
    max-width:95px
  }
  .eyebrow {
    font-size:8px;
    letter-spacing:1.4px;
    margin-bottom:18px
  }
  h2 {
    font-size:55px
  }
  .section-head {
    display:block;
    margin-bottom:32px
  }
  .section-head>p,.section-head>div:last-child:not(:first-child) {
    max-width:none;
    margin-top:22px
  }
  .section-head p:not(.eyebrow) {
    font-size:12px;
    line-height:1.85
  }
  .services-layout {
    grid-template-columns:1fr;
    gap:30px
  }
  .service-feature>div:last-child {
    padding:28px
  }
  .detail-image {
    aspect-ratio:1.8
  }
  .service-feature h3 {
    font-size:35px
  }
  .service-list summary {
    padding:22px 0;
    gap:20px
  }
  .service-list h3 {
    font-size:29px
  }
  .service-body {
    padding-left:35px;
    padding-right:15px
  }
  .service-body p {
    font-size:12px
  }
  .project-grid {
    grid-template-columns:1fr;
    gap:34px
  }
  .project h3 {
    font-size:26px
  }
  .project-meta>span {
    font-size:8px
  }
  .project-caption {
    font-size:9px
  }
  .compare-label {
    font-size:7px;
    top:12px;
    padding:4px 8px
  }
  .compare-label.before-label {
    left:12px
  }
  .compare-label.after-label {
    right:12px
  }
  .compare-handle {
    width:39px;
    height:39px
  }
  .care-grid {
    grid-template-columns:1fr;
    gap:42px
  }
  .action-image {
    aspect-ratio:1.1
  }
  .care-copy h2 {
    font-size:55px;
    margin-bottom:26px
  }
  .reason h3 {
    font-size:15px
  }
  .reason p {
    font-size:12px
  }
  .reason {
    padding:20px 0;
    gap:18px
  }
  .process-grid {
    grid-template-columns:repeat(2,1fr);
    gap:30px 24px
  }
  .process-grid h3 {
    font-size:14px;
    margin-top:18px
  }
  .process-grid p {
    font-size:11px
  }
  .process-grid article>span {
    font-size:40px
  }
  .stat-strip {
    grid-template-columns:1fr 1fr 1.35fr;
    gap:20px;
    margin-top:45px;
    padding-top:30px
  }
  .stat-strip strong {
    font-size:58px
  }
  .stat-strip span {
    font-size:7px;
    letter-spacing:.6px;
    line-height:1.5
  }
  .stat-strip p {
    grid-column:1/-1;
    text-align:left;
    font-size:14px;
    margin-top:15px
  }
  .stat-strip p br {
    display:none
  }
  .people-section {
    grid-template-columns:1fr
  }
  .people-photo {
    aspect-ratio:1.3;
    min-height:0
  }
  .people-copy {
    padding:48px 6%
  }
  .people-copy h2 {
    font-size:54px
  }
  .people-copy>p:not(.eyebrow) {
    font-size:12px;
    margin-top:24px
  }
  .people-copy .btn {
    margin-top:28px
  }
  .reviews-section {
    grid-template-columns:1fr;
    gap:35px
  }
  .review-title h2 {
    font-size:47px
  }
  .review-carousel {
    border-left:0;
    border-top:1px solid var(--line);
    padding:30px 0 0
  }
  .review-quote {
    font-size:21px;
    min-height:160px
  }
  .quote-mark {
    font-size:80px
  }
  .review-controls {
    margin-top:25px
  }
  .area-grid {
    grid-template-columns:1fr;
    gap:35px
  }
  .area-grid h2 {
    font-size:57px
  }
  .area-grid>div>p:not(.eyebrow) {
    font-size:12px;
    margin-top:23px
  }
  .area-list {
    padding:25px
  }
  .area-list>div {
    gap:14px 20px
  }
  .area-list>div span {
    font-size:12px
  }
  .faq-section {
    grid-template-columns:1fr;
    gap:35px
  }
  .faq-heading {
    position:static
  }
  .faq-heading h2 {
    font-size:55px
  }
  .faqs summary {
    font-size:13px;
    padding:21px 0
  }
  .faqs p {
    font-size:12px
  }
  .inspection-grid {
    grid-template-columns:1fr;
    gap:40px
  }
  .inspection-copy {
    padding-top:0
  }
  .inspection-copy h2 {
    font-size:75px
  }
  .inspection-copy>p:not(.eyebrow) {
    font-size:13px;
    max-width:320px
  }
  .inspection-points {
    margin-top:25px;
    font-size:11px
  }
  .contact-direct {
    font-size:10px
  }
  .form-panel {
    padding:28px 23px
  }
  .form-panel h3 {
    font-size:35px
  }
  .form-row {
    gap:13px
  }
  .form-panel label {
    font-size:10px
  }
  input,select,textarea {
    font-size:16px;
    min-height:45px
  }
  .consent {
    font-size:9px!important
  }
  .form-panel .btn {
    font-size:10px
  }
  .footer {
    padding-bottom:95px;
    padding-top:30px
  }
  .footer-top {
    align-items:center;
    padding-bottom:30px;
    gap:25px
  }
  .footer .logo {
    width:170px
  }
  .footer-top>p {
    display:none
  }
  .footer-top .circle-btn {
    margin-left:auto
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:30px 25px;
    padding-block:30px
  }
  .footer-grid>div:first-child {
    grid-column:1/-1
  }
  .footer-grid>div:first-child p br {
    display:none
  }
  .footer-grid h3 {
    font-size:8px
  }
  .footer-grid p,.footer-grid a,.footer-grid button {
    font-size:10px
  }
  .footer-grid>div:last-child {
    grid-column:1/-1
  }
  .footer-grid>div:last-child>p {
    max-width:280px
  }
  .footer-bottom {
    flex-wrap:wrap;
    font-size:8px;
    line-height:1.7;
    gap:12px
  }
  .footer-bottom>span:nth-child(2) {
    max-width:none;
    order:3
  }
  .mobile-contact {
    position:fixed;
    z-index:25;
    bottom:0;
    left:0;
    right:0;
    padding:10px 6% max(10px,env(safe-area-inset-bottom));
    display:flex;
    background:var(--navy);
    border-top:1px solid #3e586c;
    justify-content:space-between;
    gap:18px;
    align-items:center;
    box-shadow:0 -5px 25px #08253d20
  }
  .mobile-phone {
    font-size:11px;
    font-weight:600;
    color:white;
    white-space:nowrap
  }
  .mobile-contact .btn {
    font-size:10px;
    min-height:40px;
    padding:12px 19px;
    gap:20px
  }
  dialog {
    padding:35px 25px
  }
  dialog h2 {
    font-size:43px
  }
  dialog p:not(.eyebrow),dialog li {
    font-size:12px
  }
  .form-success {
    min-height:450px
  }
  .form-success h3 {
    font-size:48px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important
  }
  .motion-ready .reveal {
    opacity:1;
    transform:none
  }
}
@media print {
  .header,.mobile-contact,.preview-note,.hero,.footer,.services-section,.people-section {
    display:none
  }
  .section {
    padding-block:25px
  }
  .reveal {
    opacity:1!important;
    transform:none!important
  }
  .form-panel {
    border:1px solid #bbb
  }
  .wrap {
    width:95%
  }
}
/* Keep photographic atlas quadrants proportional when used in tall layouts. */
.hero-image {
  object-position:70% 0%
}
.atlas-image>img {
  height:200%;
  width:auto;
  left:50%;
  transform:translateX(-25%)
}
.detail-image>img {
  left:50%;
  top:-100%;
  transform:translateX(-25%)
}
.action-image>img {
  left:50%;
  top:0;
  transform:translateX(-75%)
}
.team-image>img {
  left:50%;
  top:0;
  transform:translateX(-25%)
}
@media(max-width:680px) {
  .hero h1 {
    font-size:clamp(59px,19vw,78px);
    line-height:.94
  }
}
/* Replacement-led conversion and region update. */
:root {
  --action:#1b60d3;
  --action-hover:#124cad;
  --action-light:#e5edfb
}
.btn {
  border-radius:7px;
  font-size:13px;
  min-height:54px;
  font-weight:700;
  box-shadow:0 5px 0 #03182c17,0 10px 25px #08253d12
}
.btn-navy,.btn-silver {
  background:var(--action);
  color:white;
  border:1px solid #ffffff30
}
.btn-navy:hover,.btn-silver:hover {
  background:var(--action-hover);
  box-shadow:0 7px 0 #03182c17,0 15px 30px #08253d22
}
.btn>span {
  border-radius:50%;
  background:#ffffff21;
  width:29px;
  height:29px;
  display:grid;
  place-items:center;
  font-size:19px
}
.header-cta {
  font-size:11px;
  gap:18px;
  min-height:46px;
  padding:9px 14px 9px 19px
}
.header-cta>span {
  width:25px;
  height:25px
}
.text-link {
  background:var(--action-light);
  border:1px solid #b4c8e5;
  border-radius:6px;
  color:var(--navy);
  padding:12px 17px;
  gap:20px;
  min-height:45px
}
.text-link:hover {
  background:#d2e2fc;
  gap:20px
}
.text-link.light {
  color:white;
  background:#ffffff14;
  border-color:#ffffff70
}
.text-link.light:hover {
  background:#ffffff25
}
.hero-actions .text-link {
  border:1px solid #ffffff80
}
.hero h1 {
  font-size:clamp(72px,7.5vw,115px);
  line-height:.94;
  max-width:720px
}
.hero h1 span {
  color:white
}
.hero-copy {
  max-width:500px;
  font-size:16px;
  line-height:1.75
}
.hero-inner {
  padding-top:57px
}
.hero {
  min-height:790px
}
.hero-proof {
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
  margin-top:32px;
  padding-top:22px;
  border-top:1px solid #ffffff3a
}
.hero-proof>span {
  display:flex;
  align-items:center;
  gap:9px;
  color:#e4edf4;
  font-size:10px
}
.hero-proof svg {
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5
}
.hero-footer {
  padding-top:25px
}
.replacement-focus {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-bottom:32px
}
.replacement-focus article {
  background:#f7f9f8;
  border:1px solid #cbd4d8;
  padding:22px;
  display:flex;
  align-items:flex-start;
  gap:16px;
  border-radius:5px
}
.replacement-focus svg {
  width:30px;
  height:30px;
  flex-shrink:0;
  fill:none;
  stroke:var(--action);
  stroke-width:1.4;
  stroke-linecap:round;
  stroke-linejoin:round
}
.replacement-focus h3 {
  font-size:14px;
  margin-bottom:8px
}
.replacement-focus p {
  font-size:11px;
  line-height:1.7
}
.service-icon {
  width:27px;
  height:27px;
  fill:none;
  stroke:var(--action);
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex-shrink:0
}
.service-list summary {
  gap:17px
}
.service-list h3 {
  font-size:29px
}
.service-body a {
  background:var(--action-light);
  color:var(--action);
  border:1px solid #a9bfe0;
  border-radius:5px;
  padding:10px 14px;
  font-size:11px
}
.service-body a:hover {
  background:var(--action);
  color:white
}
.standalone-photo {
  position:relative;
  display:block;
  overflow:hidden;
  width:100%;
  min-width:0;
  background:#d4dce0
}
.standalone-photo>img {
  display:block;
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:100%;
  object-fit:cover;
  transform:none
}
.standalone-photo.detail-image {
  aspect-ratio:1.5
}
.people-section {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  overflow:hidden;
  align-items:stretch
}
.people-photo.standalone-photo {
  min-height:0;
  aspect-ratio:auto;
  width:100%;
  height:100%;
  min-width:0;
  isolation:isolate
}
.people-photo.standalone-photo>img {
  object-position:50% 50%;
  z-index:0
}
.people-copy {
  position:relative;
  min-width:0;
  padding:65px clamp(30px,5vw,80px);
  z-index:1;
  background:var(--navy)
}
.people-copy h2 {
  font-size:clamp(43px,4.5vw,67px);
  line-height:1.04
}
.people-copy .btn {
  font-size:12px;
  gap:20px
}
.people-copy>p:not(.eyebrow) {
  max-width:470px
}
.stat-strip>div>svg {
  width:24px;
  height:24px;
  fill:none;
  stroke:var(--action);
  stroke-width:1.4;
  display:block;
  margin-bottom:16px
}
.stat-strip strong {
  font-size:60px
}
.stat-strip .stat-word {
  font-size:45px;
  letter-spacing:-1px
}
.stat-strip>p>small {
  display:block;
  font-size:8px;
  line-height:1.5;
  margin-top:18px
}
.reviews-section {
  gap:70px
}
.review-carousel {
  padding:35px;
  border:1px solid #cbd4df;
  border-radius:9px;
  background:white;
  box-shadow:0 15px 45px #08253d08;
  min-width:0
}
.review-stars {
  display:flex;
  gap:4px;
  color:#b07917
}
.review-stars svg {
  width:20px;
  height:20px;
  fill:currentColor;
  stroke:currentColor;
  stroke-width:1
}
.review-preview-tag {
  font-size:8px;
  letter-spacing:1px;
  color:#627385;
  margin:11px 0 20px
}
.review-quote {
  font-size:21px;
  min-height:160px
}
.review-person {
  display:flex;
  align-items:center;
  gap:13px;
  margin-top:24px;
  border-top:1px solid #e0e6e9;
  padding-top:20px
}
.review-avatar {
  width:58px;
  height:58px;
  flex-shrink:0;
  background-image:url('assets/example-homeowner-portraits.jpg');
  background-size:200% 200%;
  border-radius:50%;
  border:2px solid #e0e7eb
}
.review-avatar.avatar-0 {
  background-position:0 0
}
.review-avatar.avatar-1 {
  background-position:100% 0
}
.review-avatar.avatar-2 {
  background-position:0 100%
}
.review-name {
  margin:0;
  font-size:14px;
  letter-spacing:0
}
.review-context {
  font-size:10px;
  line-height:1.5;
  margin-top:4px
}
.review-person .example-label {
  display:block;
  font-size:8px;
  letter-spacing:.4px;
  color:#6f7f8b;
  margin-top:4px
}
.area-header {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:10%;
  align-items:end;
  margin-bottom:50px
}
.area-header h2 {
  font-size:clamp(48px,5vw,70px);
  line-height:1.03
}
.area-header>div:last-child>p {
  color:#cfdae3;
  font-size:13px;
  line-height:1.9;
  margin-bottom:15px
}
.area-header .btn {
  margin-top:14px
}
.regional-map-layout {
  display:grid;
  grid-template-columns:1.45fr 1fr;
  gap:30px;
  align-items:start
}
.regional-map {
  border-radius:9px;
  background:#eaf0f2;
  overflow:hidden;
  padding-bottom:15px;
  color:var(--navy);
  border:1px solid #aac1cc
}
.coverage-map-svg {
  display:block;
  width:100%;
  height:auto;
  overflow:visible
}
.coverage-map-svg text {
  font-family:var(--body);
  font-size:12px;
  font-weight:600;
  fill:var(--navy);
  paint-order:stroke;
  stroke:#e4ece5;
  stroke-width:3px;
  stroke-linejoin:round
}
.coverage-map-svg .map-region-name {
  font-size:9px;
  letter-spacing:1.2px;
  stroke:none;
  fill:#506778
}
.coverage-map-svg .map-ocean-name {
  fill:#899eaa;
  font-size:12px;
  letter-spacing:3px;
  font-weight:400;
  stroke:none
}
.coverage-map-svg .map-county-name {
  fill:#73897f;
  font-size:8px;
  letter-spacing:1px;
  font-weight:500;
  stroke:none
}
.map-city {
  cursor:pointer
}
.map-city .map-hit {
  fill:transparent;
  stroke:none
}
.map-city .map-halo {
  fill:white;
  stroke:#8ca9bc;
  stroke-width:1
}
.map-city .map-dot {
  fill:var(--action);
  stroke:white;
  stroke-width:1
}
.map-city.extended .map-dot {
  fill:#6e899b
}
.map-city[aria-pressed=true] .map-halo,.map-city:hover .map-halo {
  fill:#b6d1ff;
  stroke:var(--action);
  stroke-width:2
}
.map-city[aria-pressed=true] .map-dot {
  fill:var(--navy)
}
.map-city:focus-visible {
  outline:none
}
.map-city:focus-visible .map-halo {
  stroke:#003caa;
  stroke-width:4
}
.map-key {
  display:flex;
  flex-wrap:wrap;
  gap:12px 20px;
  padding:0 22px;
  font-size:8px;
  color:#2c4d64
}
.map-key>span {
  display:flex;
  align-items:center;
  gap:7px
}
.map-key i {
  width:7px;
  height:7px;
  display:inline-block;
  background:var(--action);
  border-radius:50%
}
.map-key>span:last-child i {
  background:#6e899b
}
.map-caption {
  font-size:8px;
  padding:0 22px;
  margin-top:12px;
  line-height:1.6
}
.coverage-panel {
  padding:22px 0 0 10px
}
.coverage-pin {
  width:33px;
  height:33px;
  fill:none;
  stroke:#9ebfec;
  stroke-width:1.4;
  margin-bottom:17px
}
.coverage-panel .eyebrow {
  font-size:9px;
  margin-bottom:12px
}
.coverage-panel h3 {
  font:500 37px/1.05 var(--display);
  letter-spacing:-.3px
}
.coverage-panel>p:not(.eyebrow) {
  font-size:12px;
  color:#c8d8e4;
  line-height:1.8;
  margin-top:20px
}
.area-pills {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-block:22px
}
.area-pills button {
  color:#e8f0f6;
  border:1px solid #597286;
  background:#ffffff09;
  border-radius:4px;
  padding:7px 10px;
  font-size:9px;
  min-height:32px
}
.area-pills button:hover,.area-pills button[aria-pressed=true] {
  background:#dce9ff;
  color:var(--navy);
  border-color:#dce9ff
}
.coverage-panel .btn {
  font-size:11px;
  gap:18px;
  padding:13px 18px
}
.inspection-copy h2 {
  font-size:clamp(55px,5.9vw,84px)
}
.form-panel .btn {
  font-size:12px
}
.service-feature,.service-list,.people-copy,.review-title,.form-panel {
  min-width:0
}
.footer-bottom {
  align-items:center
}
.mobile-contact .btn {
  box-shadow:none
}
.services-layout {
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)
}
.hero-image {
  object-position:75% 0%
}
.hero-shade {
  background:linear-gradient(90deg,#041a2cf2 0%,#041a2cd9 30%,#041a2c66 58%,#041a2c05),linear-gradient(0deg,#041a2caa,transparent 50%)
}
@media(min-width:1600px) {
  .people-copy {
    padding-block:90px;
    min-height:650px
  }
}
@media(max-width:1100px) {
  .hero h1 {
    font-size:99px
  }
  .replacement-focus article {
    padding:18px;
    gap:12px
  }
  .replacement-focus h3 {
    font-size:12px
  }
  .replacement-focus p {
    font-size:10px
  }
  .replacement-focus svg {
    width:24px;
    height:24px
  }
  .regional-map-layout {
    grid-template-columns:1.3fr 1fr;
    gap:25px
  }
  .area-header {
    gap:7%
  }
  .coverage-panel {
    padding-top:7px
  }
  .coverage-panel h3 {
    font-size:32px
  }
  .coverage-panel .btn {
    width:100%;
    font-size:10px
  }
  .area-pills {
    gap:6px
  }
  .area-pills button {
    font-size:8px;
    padding:6px 8px
  }
  .service-icon {
    width:23px;
    height:23px
  }
  .service-list summary {
    gap:13px
  }
  .service-list h3 {
    font-size:26px
  }
  .people-copy h2 {
    font-size:48px
  }
  .review-quote {
    font-size:19px
  }
  .stat-strip strong {
    font-size:51px
  }
  .stat-strip .stat-word {
    font-size:37px
  }
}
@media(max-width:850px) {
  .regional-map-layout {
    grid-template-columns:1fr
  }
  .coverage-panel {
    padding:15px 0 0
  }
  .coverage-panel h3 br {
    display:none
  }
  .area-pills button {
    font-size:10px;
    padding:8px 12px
  }
  .coverage-panel .btn {
    width:auto
  }
  .coverage-pin {
    float:right
  }
  .area-header h2 {
    font-size:53px
  }
  .review-carousel {
    padding:25px
  }
  .reviews-section {
    gap:35px
  }
  .hero-proof {
    gap:12px
  }
  .hero-proof>span {
    font-size:9px
  }
  .people-copy {
    padding:45px 30px
  }
  .people-copy h2 {
    font-size:42px
  }
}
@media(max-width:680px) {
  .btn {
    font-size:11px;
    min-height:52px;
    padding:13px 19px;
    gap:20px
  }
  .btn>span {
    width:27px;
    height:27px
  }
  .header-cta {
    font-size:9px;
    min-height:40px;
    padding:8px 11px;
    gap:10px
  }
  .header-cta>span {
    width:22px;
    height:22px;
    font-size:16px
  }
  .hero {
    min-height:820px
  }
  .hero-inner {
    min-height:820px;
    padding-top:46px;
    padding-bottom:26px
  }
  .hero h1 {
    font-size:clamp(62px,18.9vw,81px);
    line-height:.99;
    letter-spacing:-1px
  }
  .hero h1 span {
    white-space:nowrap
  }
  .hero-copy {
    font-size:13px;
    margin-top:25px;
    max-width:325px;
    line-height:1.8
  }
  .hero-actions {
    gap:16px;
    margin-top:27px
  }
  .hero-actions .btn {
    font-size:11px;
    min-height:54px;
    padding:13px 18px;
    gap:18px
  }
  .hero-actions .text-link {
    padding:11px 16px;
    font-size:10px;
    min-height:44px
  }
  .hero-proof {
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
    margin-top:27px;
    padding-top:20px
  }
  .hero-proof>span {
    font-size:10px
  }
  .hero-proof svg {
    width:18px;
    height:18px
  }
  .hero-footer {
    padding-top:25px
  }
  .hero-image {
    object-position:68% 0%
  }
  .hero-shade {
    background:linear-gradient(90deg,#041a2ce8,#041a2ca8 55%,#041a2c51),linear-gradient(0deg,#041a2ce6,transparent 70%)
  }
  .replacement-focus {
    grid-template-columns:1fr;
    gap:10px;
    margin-bottom:26px
  }
  .replacement-focus article {
    padding:18px;
    gap:15px
  }
  .replacement-focus h3 {
    font-size:14px;
    margin-bottom:5px
  }
  .replacement-focus p {
    font-size:11px
  }
  .replacement-focus svg {
    width:28px;
    height:28px
  }
  .services-layout {
    grid-template-columns:minmax(0,1fr)
  }
  .service-list h3 {
    font-size:27px
  }
  .service-list summary {
    gap:13px
  }
  .service-number {
    font-size:9px
  }
  .service-icon {
    width:24px;
    height:24px
  }
  .people-section {
    grid-template-columns:minmax(0,1fr)
  }
  .people-photo.standalone-photo {
    height:auto;
    aspect-ratio:1.3;
    min-height:0
  }
  .people-copy {
    padding:45px 6%;
    width:100%
  }
  .people-copy h2 {
    font-size:50px
  }
  .people-copy .btn {
    font-size:11px
  }
  .stat-strip {
    grid-template-columns:1fr 1.2fr;
    gap:25px
  }
  .stat-strip>div:nth-child(3) {
    grid-column:1/-1;
    display:grid;
    grid-template-columns:29px auto;
    align-items:center;
    column-gap:13px
  }
  .stat-strip>div:nth-child(3)>svg {
    margin:0;
    grid-row:1/3
  }
  .stat-strip>div:nth-child(3)>strong {
    font-size:35px
  }
  .stat-strip>div:nth-child(3)>span {
    margin-top:8px
  }
  .stat-strip strong {
    font-size:50px
  }
  .stat-strip>p {
    margin:0
  }
  .stat-strip>p>small {
    margin-top:12px
  }
  .review-carousel {
    padding:26px 22px;
    border-radius:8px
  }
  .review-quote {
    font-size:20px;
    min-height:190px
  }
  .review-name {
    font-size:13px
  }
  .review-context {
    font-size:9px
  }
  .review-avatar {
    width:52px;
    height:52px
  }
  .review-person {
    gap:11px
  }
  .review-controls {
    margin-top:22px
  }
  .area-header {
    grid-template-columns:1fr;
    gap:28px;
    margin-bottom:32px
  }
  .area-header h2 {
    font-size:49px
  }
  .area-header>div:last-child>p {
    font-size:12px;
    line-height:1.85
  }
  .area-header .btn {
    font-size:11px
  }
  .regional-map {
    margin-inline:-3%;
    border-radius:6px;
    padding-bottom:14px
  }
  .coverage-map-svg {
    min-height:240px
  }
  .map-key {
    font-size:7px;
    padding:0 13px;
    gap:10px
  }
  .map-caption {
    font-size:7px;
    padding:0 13px
  }
  .coverage-map-svg text {
    font-size:14px;
    stroke-width:3.5px
  }
  .coverage-map-svg .map-region-name {
    font-size:9px
  }
  .coverage-map-svg .map-county-name {
    font-size:9px
  }
  .coverage-map-svg .map-ocean-name {
    font-size:12px
  }
  .coverage-panel {
    padding-top:5px
  }
  .coverage-panel h3 {
    font-size:36px
  }
  .coverage-panel>p:not(.eyebrow) {
    font-size:12px
  }
  .area-pills {
    gap:7px
  }
  .area-pills button {
    font-size:9px;
    padding:7px 10px
  }
  .coverage-panel .btn {
    font-size:11px
  }
  .inspection-copy h2 {
    font-size:62px
  }
  .form-panel .btn {
    font-size:11px
  }
  .mobile-contact .btn {
    font-size:10px;
    min-height:42px;
    padding:12px 18px
  }
  .text-link {
    font-size:11px;
    padding:11px 15px
  }
  .text-link span {
    font-size:17px
  }
}
.people-photo.standalone-photo {
  align-self:center;
  aspect-ratio:1.3;
  height:auto
}
.people-photo.standalone-photo>img {
  object-position:center
}
html {
  scroll-behavior:auto
}
@media(max-width:680px) {
  .coverage-map-svg .map-city text {
    font-size:20px
  }
  .coverage-map-svg .map-city.extended text {
    display:none
  }
  .coverage-map-svg .map-city[data-area="Ventura"] text,.coverage-map-svg .map-city[data-area="Long Beach"] text,.coverage-map-svg .map-city[data-area="Irvine"] text {
    display:block;
    font-size:18px
  }
  .coverage-map-svg .map-county-name {
    font-size:12px
  }
}
/* Elevated design system: navy, royal blue, warm paper, one shared icon language. */
:root {
  --navy:#08253d;
  --navy-dark:#041a2c;
  --action:#215ed3;
  --paper:#f8f7f2;
  --gold:#a77b28;
  --radius:10px
}
svg:not(.coverage-map-svg):not(.svg-library) {
  stroke-linecap:round;
  stroke-linejoin:round
}
svg use {
  stroke-width:1.5
}
.header {
  gap:18px;
  padding-inline:3%;
  min-height:88px
}
.header .logo {
  width:158px
}
.header nav {
  gap:18px
}
.header nav a {
  font-size:10px
}
.header-contact {
  font-size:10px;
  margin-left:0
}
.header-cta {
  font-size:10px
}
.license-strip {
  padding:9px 6%;
  background:#e6ebef;
  font-size:10px;
  letter-spacing:.5px;
  text-align:center;
  font-weight:600
}
.license-strip span {
  font-weight:400;
  margin-left:20px;
  color:#526271
}
.hero-shade {
  background:linear-gradient(90deg,#041a2cfc 0%,#041a2cf2 30%,#041a2cbd 49%,#041a2c28 74%),linear-gradient(0deg,#041a2cb3,transparent 55%)
}
.hero-copy {
  max-width:460px
}
.hero h1 {
  font-size:clamp(76px,7.2vw,110px);
  max-width:620px
}
.hero-actions {
  gap:18px;
  flex-wrap:wrap;
  max-width:560px
}
.hero-actions .text-link {
  font-size:11px
}
.hero-inner {
  padding-top:60px
}
.hero-proof {
  gap:20px
}
.hero-proof>span {
  font-size:9px
}
.trust-inner svg {
  stroke:var(--action);
  stroke-width:1.5;
  flex-shrink:0
}
.intro {
  column-gap:10%;
  align-items:center
}
.intro-copy {
  padding-top:20px
}
.intro-photo {
  height:180px;
  max-width:420px;
  margin-top:28px;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:0 14px 28px #08253d12
}
.intro-photo img {
  width:100%;
  height:110%;
  object-fit:cover;
  object-position:50% 55%;
  will-change:transform
}
.intro-line>span {
  display:flex;
  align-items:center;
  gap:12px
}
.intro-line svg {
  width:25px;
  height:25px;
  fill:none;
  stroke:var(--action);
  stroke-width:1.5;
  flex-shrink:0
}
.services-layout {
  align-items:stretch;
  gap:6%
}
.service-feature {
  display:flex;
  flex-direction:column;
  border-radius:var(--radius);
  overflow:hidden
}
.service-feature .detail-image {
  flex:1;
  min-height:250px;
  aspect-ratio:auto
}
.service-feature>div:last-child {
  flex:0 0 auto;
  padding:32px
}
.service-list details {
  overflow:hidden
}
.service-list summary {
  min-height:91px;
  padding-block:23px
}
.service-list summary .service-icon {
  width:28px;
  height:28px
}
.service-body {
  animation:accordion-in .3s ease
}
.service-list details::details-content,.faqs details::details-content {
  block-size:0;
  overflow:hidden;
  transition:block-size .35s,content-visibility .35s;
  transition-behavior:allow-discrete
}
.service-list details[open]::details-content,.faqs details[open]::details-content {
  block-size:auto
}
@supports(interpolate-size:allow-keywords) {
  :root {
    interpolate-size:allow-keywords
  }
}
@keyframes accordion-in {
  from {
    opacity:0;
    transform:translateY(-5px)
  }
  to {
    opacity:1;
    transform:none
  }
}
.comparison {
  border-radius:var(--radius)
}
.comparison figure img {
  width:100%;
  height:100%;
  object-fit:cover;
  inset:0
}
.project-meta>span {
  color:var(--action);
  background:#e8eefb;
  padding:6px 9px;
  border-radius:4px;
  font-size:8px;
  align-self:start;
  white-space:nowrap
}
.project-caption {
  font-size:11px
}
.people-section {
  align-items:stretch
}
.people-photo.standalone-photo {
  align-self:stretch;
  aspect-ratio:auto;
  height:auto;
  min-height:100%
}
.people-photo:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent 65%,#08253d80 90%,#08253d);
  pointer-events:none
}
.people-copy {
  padding-block:72px
}
.people-copy .small-note {
  line-height:1.6
}
.care-grid {
  align-items:stretch
}
.care-copy {
  align-self:center
}
.care-photo .action-image {
  height:100%;
  min-height:580px
}
.care-photo .image-caption {
  position:absolute;
  bottom:20px;
  left:22px;
  color:white;
  background:#08253dce;
  padding:8px 12px;
  border-radius:4px
}
.reason>span svg {
  display:block;
  width:26px;
  height:26px;
  fill:none;
  stroke:var(--action);
  margin-top:13px
}
.process-grid {
  gap:0;
  position:relative
}
.process-grid article {
  border:0;
  padding-right:26px;
  position:relative
}
.process-grid article:before {
  content:'';
  position:absolute;
  left:25px;
  right:-25px;
  height:1px;
  top:50px;
  background:#b4c7dc
}
.process-grid article:last-child:before {
  display:none
}
.step-top {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px
}
.step-top svg {
  width:51px;
  height:51px;
  fill:none;
  stroke:var(--action);
  padding:13px;
  background:var(--paper);
  border:1px solid #b4c7dc;
  border-radius:50%;
  z-index:1
}
.step-top span {
  font:500 34px/1 var(--display);
  color:#748898
}
.process-grid h3 {
  margin-top:25px
}
.stat-strip {
  align-items:start;
  grid-template-columns:1fr 1fr 1.3fr 1.2fr
}
.stat-strip>div>svg {
  height:26px;
  width:26px;
  margin-bottom:20px
}
.stat-strip>p {
  padding-top:46px
}
.stat-strip .stat-word {
  font-size:47px
}
.reviews-section {
  align-items:stretch;
  gap:7%
}
.review-title {
  display:flex;
  flex-direction:column;
  justify-content:center
}
.rating-summary {
  display:flex;
  gap:20px;
  align-items:center;
  margin-top:30px
}
.rating-summary>strong {
  font:600 72px/1 var(--display)
}
.rating-summary strong span {
  font:400 16px var(--body);
  color:var(--gray);
  margin-left:6px
}
.gold-stars {
  color:var(--gold);
  letter-spacing:3px
}
.rating-summary p {
  font-size:10px;
  line-height:1.6;
  margin-top:6px
}
.review-intro {
  font-size:13px;
  line-height:1.8;
  margin-top:22px;
  max-width:390px
}
.trust-badges {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:18px
}
.trust-badges>span {
  border:1px solid #cad4dc;
  border-radius:4px;
  padding:6px 9px;
  font-size:9px
}
.review-carousel {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:35px
}
.review-quote {
  min-height:150px;
  font-size:21px;
  line-height:1.65
}
.review-person {
  margin-top:18px;
  padding-top:18px
}
.review-controls {
  gap:8px;
  flex-wrap:wrap;
  margin-top:24px
}
.review-controls>div:last-child {
  white-space:nowrap
}
.review-dot {
  margin-right:8px;
  width:6px;
  height:6px
}
.review-controls #review-pause {
  border:0;
  background:transparent;
  color:var(--gray);
  font-size:10px;
  text-decoration:underline;
  padding:10px 5px
}
.review-avatar {
  background-image:url('assets/homeowner-casual-profiles.jpg');
  background-size:400% 300%;
  width:64px;
  height:64px
}
.area-section {
  background:#061d30;
  color:white
}
.area-range {
  color:#a7bdd0;
  font-size:9px;
  letter-spacing:1.4px
}
.area-header {
  grid-template-columns:1.2fr 1fr;
  align-items:end;
  gap:8%
}
.area-header h2 {
  font-size:clamp(45px,4.7vw,67px)
}
.regional-map-layout {
  grid-template-columns:1.4fr 1fr;
  align-items:stretch;
  gap:30px
}
.regional-map {
  background:#071e32;
  border:1px solid #304d65;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-block:24px
}
.coverage-map-svg {
  overflow:visible
}
.coverage-map-svg .route {
  fill:none;
  stroke:#4489e9;
  stroke-width:1;
  stroke-opacity:.55;
  stroke-dasharray:5 5;
  animation:route-flow 30s linear infinite
}
.coverage-map-svg text {
  font-size:12px;
  fill:#dce9f5;
  stroke:#071e32;
  stroke-width:4px;
  paint-order:stroke;
  letter-spacing:0
}
.coverage-map-svg .map-region-name {
  font-size:9px;
  fill:#9fb7ca;
  stroke:none;
  letter-spacing:1px
}
.coverage-map-svg .map-ocean-name {
  fill:#7895ae;
  stroke:none;
  font-size:11px;
  letter-spacing:2px
}
.coverage-map-svg .map-city text {
  display:block;
  font-size:12px
}
.map-city .map-halo {
  fill:#2774dc20;
  stroke:#327be9;
  stroke-width:1;
  transform-box:fill-box;
  transform-origin:center;
  animation:marker-pulse 3.5s ease-out infinite
}
.map-city .map-dot {
  fill:#9ac5ff;
  stroke:#c7e1ff;
  stroke-width:1
}
.map-city[data-area="Santa Clarita"] .map-dot {
  fill:#fff
}
.map-city[data-area="Santa Clarita"] text {
  font-weight:700;
  fill:#fff
}
.map-city:hover .map-halo,.map-city[aria-pressed=true] .map-halo {
  fill:#72a7ff60;
  stroke:#b3d4ff
}
.map-city:hover text,.map-city[aria-pressed=true] text {
  fill:white
}
.map-city[aria-pressed=true] .map-dot {
  fill:white
}
.map-key {
  color:#c4d6e5;
  margin-top:15px;
  font-size:9px
}
.map-caption {
  color:#9db5c8;
  font-size:9px
}
.coverage-panel {
  padding:5px 0;
  display:flex;
  flex-direction:column;
  justify-content:center
}
.coverage-panel>p:not(.eyebrow) {
  margin-top:15px
}
.coverage-panel .btn {
  align-self:flex-start;
  width:auto;
  margin-top:7px
}
.area-pills {
  margin-block:20px
}
.area-pills button {
  font-size:10px;
  min-height:35px;
  padding:7px 10px
}
.coverage-panel label {
  font-size:11px;
  color:#cbdce9
}
.coverage-panel input {
  margin:7px 0 18px
}
#map-other-wrap[hidden],#project-other-wrap[hidden] {
  display:none
}
.faq-contact {
  margin-top:30px;
  padding:24px;
  border:1px solid #d1d9df;
  border-radius:8px;
  background:#edf1f2
}
.faq-contact .micro {
  font-size:8px;
  margin:0 0 15px
}
.faq-contact a {
  display:block;
  font-size:12px;
  font-weight:600;
  margin:12px 0;
  color:var(--action)
}
.faq-contact p:last-child {
  font-size:10px;
  margin-top:19px;
  line-height:1.8
}
.faqs summary {
  padding-block:18px
}
.contact-actions {
  display:flex;
  align-items:center;
  gap:15px;
  margin-top:30px;
  flex-wrap:wrap
}
.contact-actions .btn,.contact-actions .text-link {
  font-size:11px
}
.form-panel {
  border-radius:var(--radius)
}
.form-panel button[aria-busy=true]:after {
  content:'…'
}
[hidden] {
  display:none!important
}
.desktop-contact {
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:40;
  display:flex;
  gap:10px;
  align-items:center
}
.floating-call,#chat-toggle {
  background:var(--action);
  color:white;
  border:1px solid #7398db;
  min-height:50px;
  padding:13px 19px;
  border-radius:30px;
  font-size:12px;
  font-weight:600;
  box-shadow:0 6px 25px #041a2c35
}
#chat-toggle {
  display:flex;
  align-items:center;
  gap:9px;
  background:var(--navy)
}
#chat-toggle svg {
  height:23px;
  width:23px;
  fill:none;
  stroke:white
}
.whatsapp-panel {
  position:fixed;
  bottom:88px;
  right:22px;
  z-index:45;
  width:355px;
  max-height:calc(100svh - 110px);
  overflow:auto;
  background:var(--paper);
  color:var(--navy);
  padding:22px;
  border:1px solid #bfcbd5;
  box-shadow:0 20px 80px #041a2c50;
  border-radius:14px
}
.chat-heading {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  border-bottom:1px solid #d0dbe2;
  padding-bottom:17px
}
.chat-heading h3 {
  font:600 29px/1 var(--display);
  margin-top:6px
}
.chat-heading .micro {
  font-size:8px;
  color:var(--gray)
}
#chat-close {
  border:0;
  background:none;
  font-size:25px;
  color:var(--navy);
  padding:0 5px
}
.whatsapp-panel>p {
  font-size:12px;
  margin-top:16px;
  line-height:1.7
}
.chat-quick {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin:17px 0 12px
}
.chat-quick button {
  border:1px solid #b1c6e3;
  background:#e6eefb;
  color:var(--navy);
  padding:7px 10px;
  border-radius:20px;
  font-size:10px;
  min-height:34px
}
.chat-quick button[aria-pressed=true] {
  background:var(--action);
  color:white
}
.whatsapp-panel form .btn {
  font-size:11px;
  width:100%;
  margin-top:15px;
  padding:12px
}
.whatsapp-panel small {
  display:block;
  font-size:9px;
  line-height:1.7;
  color:var(--gray);
  margin-top:14px
}
#whatsapp-fallback {
  display:block;
  text-decoration:underline;
  font-size:11px;
  margin-top:16px
}
.footer-bottom {
  padding-bottom:60px
}
@keyframes marker-pulse {
  0%,100% {
    opacity:.7;
    transform:scale(.9)
  }
  50% {
    opacity:1;
    transform:scale(1.25)
  }
}
@keyframes route-flow {
  to {
    stroke-dashoffset:-100
  }
}
@media(max-width:1250px) {
  .header nav {
    gap:13px
  }
  .header-contact {
    display:none
  }
  .header .logo {
    width:155px
  }
  .hero h1 {
    font-size:92px
  }
  .hero-copy {
    max-width:420px
  }
  .hero-actions {
    max-width:480px
  }
  .hero-actions .text-link {
    font-size:10px
  }
}
@media(max-width:950px) {
  .header nav {
    gap:10px
  }
  .header nav a {
    font-size:9px
  }
  .header .logo {
    width:135px
  }
  .header {
    gap:12px
  }
  .header-cta {
    gap:10px
  }
  .regional-map-layout {
    grid-template-columns:1fr
  }
  .coverage-panel {
    padding-top:20px
  }
  .coverage-panel h3 br {
    display:none
  }
  .care-photo .action-image {
    min-height:550px
  }
  .reviews-section {
    gap:30px
  }
  .rating-summary {
    gap:13px
  }
  .review-quote {
    font-size:19px
  }
  .review-carousel {
    padding:25px
  }
  .stat-strip .stat-word {
    font-size:40px
  }
}
@media(max-width:760px) {
  .header nav {
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:100%;
    padding:24px 6%;
    background:var(--paper);
    border-bottom:1px solid #c8d3db;
    box-shadow:0 12px 20px #08253d12;
    flex-direction:column;
    align-items:flex-start;
    gap:0
  }
  .header nav.open {
    display:flex
  }
  .header nav a {
    font-size:14px;
    padding:12px 0;
    width:100%
  }
  .menu-toggle {
    display:flex;
    width:34px;
    height:40px;
    flex-direction:column;
    gap:6px;
    justify-content:center;
    background:none;
    border:0;
    padding:7px
  }
  .menu-toggle span {
    display:block;
    width:20px;
    height:1.5px;
    background:var(--navy)
  }
  .header .logo {
    width:145px
  }
  .header-cta {
    margin-left:auto
  }
  .header {
    padding-inline:6%;
    min-height:78px
  }
  .services-layout {
    gap:30px
  }
  .service-feature>div:last-child {
    padding:25px
  }
  .hero-proof {
    max-width:450px
  }
}
@media(max-width:680px) {
  html {
    scroll-padding-top:95px
  }
  .header .logo {
    width:137px
  }
  .license-strip {
    font-size:9px;
    padding:9px 5%
  }
  .license-strip span {
    display:block;
    margin-left:0;
    font-size:8px;
    margin-top:2px
  }
  .hero {
    min-height:850px;
    height:auto
  }
  .hero-inner {
    min-height:850px;
    padding-top:46px
  }
  .hero h1 {
    font-size:clamp(60px,18.3vw,78px);
    max-width:100%
  }
  .hero-copy {
    font-size:13px;
    max-width:310px
  }
  .hero-shade {
    background:linear-gradient(90deg,#041a2cf5 0%,#041a2ccf 48%,#041a2c7a 100%),linear-gradient(0deg,#041a2c,transparent 70%)
  }
  .hero-actions {
    gap:14px
  }
  .hero-proof {
    gap:12px
  }
  .hero-proof>span {
    font-size:10px
  }
  .intro-photo {
    height:170px;
    max-width:none
  }
  .intro-line {
    gap:15px
  }
  .intro-line>span {
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    font-size:7px;
    max-width:100px
  }
  .intro-line svg {
    width:23px;
    height:23px
  }
  .service-feature .detail-image {
    min-height:220px;
    flex:auto;
    aspect-ratio:1.6
  }
  .service-list summary {
    min-height:80px;
    padding-block:20px
  }
  .service-list h3 {
    font-size:26px
  }
  .people-photo.standalone-photo {
    min-height:0;
    height:340px;
    aspect-ratio:auto
  }
  .people-photo:after {
    background:linear-gradient(0deg,#08253d,transparent 25%)
  }
  .people-copy {
    padding-top:20px;
    padding-bottom:45px
  }
  .people-copy h2 {
    font-size:48px
  }
  .care-photo .action-image {
    min-height:420px;
    height:auto;
    aspect-ratio:1
  }
  .process-grid {
    grid-template-columns:1fr 1fr;
    gap:30px 20px
  }
  .process-grid article {
    padding-right:0
  }
  .process-grid article:before {
    top:50px;
    right:-20px
  }
  .process-grid article:nth-child(2):before {
    display:none
  }
  .step-top {
    justify-content:flex-start;
    gap:16px
  }
  .step-top span {
    font-size:28px
  }
  .process-grid h3 {
    margin-top:20px;
    font-size:14px
  }
  .stat-strip {
    grid-template-columns:1fr 1fr
  }
  .stat-strip>div:nth-child(3) {
    display:block;
    grid-column:1/-1
  }
  .stat-strip>div:nth-child(3)>svg {
    margin-bottom:18px
  }
  .stat-strip>div:nth-child(3)>span {
    margin-top:12px
  }
  .stat-strip>p {
    padding-top:0
  }
  .review-title .disclosure {
    max-width:none
  }
  .rating-summary {
    margin-top:24px
  }
  .rating-summary>strong {
    font-size:65px
  }
  .review-carousel {
    padding:24px
  }
  .review-quote {
    min-height:150px;
    font-size:19px
  }
  .review-controls {
    gap:8px
  }
  .review-controls .circle-btn {
    width:36px;
    height:36px;
    margin-left:3px
  }
  .review-dot {
    margin-right:7px
  }
  .review-controls #review-pause {
    font-size:9px;
    padding:6px 0
  }
  .review-avatar {
    width:56px;
    height:56px
  }
  .review-name {
    font-size:13px
  }
  .review-context {
    font-size:9px
  }
  .area-header {
    grid-template-columns:1fr;
    gap:26px
  }
  .area-header h2 {
    font-size:48px
  }
  .regional-map {
    padding-block:18px;
    margin-inline:-4%;
    border-radius:8px
  }
  .coverage-map-svg {
    min-height:0
  }
  .coverage-map-svg .map-city text {
    font-size:13px;
    display:block
  }
  .coverage-map-svg .map-ocean-name {
    font-size:11px
  }
  .map-key {
    font-size:8px
  }
  .map-caption {
    font-size:8px
  }
  .coverage-panel .btn {
    width:100%
  }
  .area-pills button {
    min-height:36px;
    font-size:10px
  }
  .faq-contact {
    margin-top:25px
  }
  .desktop-contact {
    right:16px;
    bottom:86px
  }
  .floating-call {
    display:none
  }
  #chat-toggle {
    padding:13px;
    border-radius:50%;
    min-height:50px;
    width:50px
  }
  #chat-toggle span {
    display:none
  }
  .whatsapp-panel {
    right:4%;
    width:92%;
    bottom:146px;
    max-height:calc(100svh - 170px);
    padding:20px
  }
  .whatsapp-panel input,.whatsapp-panel textarea {
    font-size:16px
  }
  .mobile-contact {
    z-index:42;
    gap:20px
  }
  .mobile-contact>a {
    width:50%;
    text-align:center;
    justify-content:center;
    font-size:12px
  }
  .footer-bottom {
    padding-bottom:0
  }
  .contact-actions .btn {
    font-size:11px
  }
  .review-person .example-label {
    font-size:8px
  }
}
@media(prefers-reduced-motion:reduce) {
  .coverage-map-svg .route,.map-city .map-halo {
    animation:none
  }
  .intro-photo img {
    transform:none!important
  }
}
.review-avatar {
  background-size:400% 400%
}
.care-grid {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)
}
.care-photo,.care-copy {
  min-width:0
}
@media(max-width:680px) {
  .care-grid {
    grid-template-columns:minmax(0,1fr)
  }
  .care-photo .action-image {
    height:420px;
    min-height:0;
    aspect-ratio:auto;
    width:100%
  }
  .hero {
    min-height:0;
    height:auto
  }
  .hero-inner {
    min-height:0;
    padding-bottom:390px
  }
  .hero-image {
    top:auto;
    bottom:0;
    height:365px;
    object-position:70% 35%
  }
  .hero-shade {
    background:linear-gradient(0deg,#041a2c25 0%,#041a2c15 18%,#041a2c 34%,#041a2c 100%)
  }
  .hero-footer {
    display:none
  }
  .hero-proof {
    margin-top:26px
  }
  .hero h1 {
    font-size:clamp(60px,18.3vw,78px)
  }
}
.header {
  background:var(--paper);
  backdrop-filter:none;
  -webkit-backdrop-filter:none
}
/* White surfaces, tighter rhythm and scroll choreography. */
:root { --paper:#fff; --surface:#edf2f7; --section-space:76px; }
body,.header { background:#fff; }
.section { padding-block:var(--section-space); }
.eyebrow { margin-bottom:18px; }
.section-head { margin-bottom:36px; }
.trust-strip { background:#edf2f7; }
.license-strip { background:#e6edf4; }
.intro { padding-top:72px; padding-bottom:42px; }
.intro-line { margin-top:34px; padding-top:23px; }
.intro-photo { margin-top:24px; }
.services-section { background:#edf2f7; padding-top:64px; }
.replacement-focus article { background:#fff; }
.projects-section { padding-bottom:64px; }
.care-section { background:#fff; }
.care-grid { gap:6%; align-items:stretch; }
.care-photo { border-radius:16px; overflow:hidden; box-shadow:0 18px 45px #08253d10; }
.care-photo .action-image { width:100%; height:100%; min-height:560px; aspect-ratio:auto; border-radius:16px; }
.care-photo .action-image>img { position:absolute; inset:0; width:100%; height:100%; max-width:100%; object-fit:cover; object-position:50% 38%; transform:none; }
.care-photo .image-caption { left:22px; right:22px; bottom:22px; padding:12px 15px; border:1px solid #ffffff30; background:#08253de8; border-radius:7px; font-size:8px; letter-spacing:1px; }
.care-copy { align-self:center; padding-block:10px; }
.care-copy h2 { margin-bottom:25px; }
.reason { padding-block:17px; }
.reason>span { width:29px; flex-shrink:0; }
.reason>span svg { margin-top:9px; }
.reason h3 { font-size:15px; }
.reason p { font-size:12px; line-height:1.8; }
.people-section { grid-template-columns:1.08fr 1fr; }
.people-photo.standalone-photo { height:auto; min-height:100%; align-self:stretch; aspect-ratio:auto; }
.people-photo.standalone-photo>img { object-fit:cover; object-position:54% 40%; }
.people-photo:after { display:none; }
.people-copy { padding:48px clamp(32px,4.5vw,70px); }
.people-copy h2 { font-size:clamp(40px,4vw,58px); line-height:1.05; }
.people-copy>p:not(.eyebrow) { margin-top:19px; font-size:12px; line-height:1.8; }
.people-copy .btn { margin-top:24px; font-size:11px; }
.people-copy .small-note { margin-top:20px!important; }
.process-section .section-head { align-items:end; margin-bottom:36px; }
.process-section h2 { font-size:clamp(44px,5vw,68px); }
.process-section .section-head>p { max-width:320px; }
.process-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; padding-top:24px; margin-top:0; }
.process-grid:before { content:''; position:absolute; top:4px; left:12%; right:12%; height:2px; background:linear-gradient(90deg,#215ed3,#8fb4ec); transform-origin:left; }
.process-grid article { padding:23px 22px; border:1px solid #d9e3ec; border-radius:13px; background:#f7f9fc; position:relative; }
.process-grid article:before { display:block; content:''; position:absolute; top:-25px; left:calc(50% - 5px); right:auto; width:10px; height:10px; background:#215ed3; border:3px solid white; border-radius:50%; box-shadow:0 0 0 1px #b2c8e7; }
.process-grid article:last-child:before { display:block; }
.step-top { justify-content:space-between; align-items:center; gap:10px; }
.step-top svg { width:42px; height:42px; padding:9px; background:white; border-color:#cbdbee; }
.step-top span { font:700 9px/1.3 var(--body); letter-spacing:1.2px; color:#526d85; }
.process-grid h3 { max-width:none; margin:21px 0 11px; font-size:15px; line-height:1.4; }
.process-grid p { font-size:11px; line-height:1.8; }
.stat-strip { margin-top:36px; padding-top:30px; gap:28px; }
.stat-strip>div>svg { margin-bottom:15px; }
.stat-strip strong { font-size:54px; }
.stat-strip .stat-word { font-size:43px; }
.stat-strip>p { padding-top:39px; font-size:12px; }
.reviews-section { display:block; width:100%; margin:0; background:#eaf0f6; }
.reviews-layout { display:grid; grid-template-columns:.95fr 1.05fr; gap:7%; align-items:center; }
.review-carousel { background:#fff; box-shadow:0 18px 45px #08253d08; border-color:#cfdae5; padding:30px; }
.review-quote { min-height:138px; font-size:20px; }
.review-person { margin-top:12px; padding-top:16px; }
.review-controls { margin-top:22px; }
.review-title .disclosure { max-width:390px; }
.review-intro { margin-top:18px; }
.rating-summary { margin-top:24px; }
.faq-section { padding-block:70px; }
.reading-progress { position:fixed; left:0; right:0; top:0; height:3px; z-index:70; pointer-events:none; }
.reading-progress span { display:block; width:100%; height:100%; background:#3675e3; transform:scaleX(0); transform-origin:left; box-shadow:0 0 8px #3675e355; }
.motion-ready .reveal { transition:opacity .75s var(--ease),transform .85s var(--ease); transition-delay:var(--reveal-delay,0ms); transform:translateY(24px); }
.motion-ready .reveal.visible { transform:none; }
.motion-ready .photo-reveal { clip-path:inset(0 0 9% 0 round 16px); transition:clip-path 1.1s var(--ease),opacity .85s var(--ease),transform 1s var(--ease); }
.motion-ready .photo-reveal.visible,.motion-ready .intro-heading.visible .photo-reveal { clip-path:inset(0 0 0 0 round 16px); }
.motion-ready .people-photo.photo-reveal { clip-path:inset(0 8% 0 0); }
.motion-ready .people-photo.photo-reveal.visible { clip-path:inset(0); }
.motion-ready .process-grid:before { transform:scaleX(0); transition:transform 1.2s var(--ease) .2s; }
.motion-ready .process-grid.visible:before { transform:scaleX(1); }
.service-feature,.replacement-focus article,.process-grid article { transition:box-shadow .3s,transform .3s; }
@media(hover:hover) { .replacement-focus article:hover,.process-grid article.visible:hover { transform:translateY(-4px); box-shadow:0 12px 25px #08253d0d; } .project .comparison img { transition:filter .35s; } }
@media(max-width:1050px) { .process-grid { gap:12px; } .process-grid article { padding:20px 16px; } .people-copy { padding:36px 28px; } .people-copy h2 { font-size:43px; } .people-copy>p:not(.eyebrow) { font-size:11px; } .care-grid { gap:5%; } .care-photo .action-image { min-height:550px; } }
@media(max-width:900px) { .people-section { grid-template-columns:minmax(0,1fr); } .people-photo.standalone-photo { width:100%; height:auto; min-height:0; aspect-ratio:3/2; } .people-photo.standalone-photo>img { object-fit:cover; object-position:center; } .people-copy { padding:38px 6% 42px; display:grid; grid-template-columns:1fr 1fr; column-gap:7%; align-items:start; } .people-copy .eyebrow,.people-copy h2 { grid-column:1; } .people-copy h2 { grid-row:2/5; font-size:48px; } .people-copy>p:not(.eyebrow) { grid-column:2; margin:0; font-size:12px; } .people-copy .btn { grid-column:2; margin-top:20px; } .people-copy .small-note { grid-column:2; } .care-photo .action-image { min-height:570px; } .reviews-layout { gap:30px; } .review-carousel { padding:25px; } .process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; padding-top:0; } .process-grid:before,.process-grid article:before,.process-grid article:last-child:before { display:none; } .process-grid article { padding:23px; } }
@media(max-width:680px) { :root { --section-space:54px; } .intro { padding-top:54px; padding-bottom:32px; } .intro-line { margin-top:28px; padding-top:22px; } .services-section { padding-top:50px; } .section-head { margin-bottom:28px; } .projects-section { padding-bottom:48px; } .people-photo.standalone-photo { height:auto; min-height:0; aspect-ratio:3/2; } .people-copy { display:flex; padding:34px 6% 38px; } .people-copy h2 { font-size:46px; } .people-copy>p:not(.eyebrow) { margin-top:20px; font-size:12px; } .people-copy .btn { margin-top:23px; } .care-grid { gap:30px; } .care-photo .action-image { height:420px; min-height:0; aspect-ratio:auto; } .care-photo .action-image>img { object-position:50% 35%; } .care-copy { padding:0; } .care-photo .image-caption { left:16px; right:16px; bottom:16px; font-size:7px; padding:10px 12px; } .care-copy h2 { font-size:52px; margin-bottom:22px; } .reason { padding-block:17px; } .process-section .section-head { margin-bottom:25px; } .process-section h2 { font-size:48px; } .process-grid { gap:12px; } .process-grid article { padding:18px 15px; } .step-top { gap:8px; } .step-top svg { width:34px; height:34px; padding:7px; } .step-top span { font-size:8px; letter-spacing:.7px; } .process-grid h3 { font-size:14px; margin-top:17px; } .process-grid p { font-size:11px; } .stat-strip { gap:22px; margin-top:30px; padding-top:26px; } .stat-strip>p { padding-top:0; } .reviews-layout { grid-template-columns:minmax(0,1fr); gap:30px; } .review-quote { font-size:19px; min-height:140px; } .review-carousel { padding:24px; } .faq-section { padding-block:54px; } .motion-ready .photo-reveal { clip-path:inset(0 0 5% 0 round 16px); } }
@media(prefers-reduced-motion:reduce) { .reading-progress { display:none; } .motion-ready .reveal,.motion-ready .photo-reveal { opacity:1; transform:none; clip-path:none; transition:none; } .motion-ready .process-grid:before { transform:none; } }
.care-section{padding-bottom:38px}.process-section{padding-top:58px}.care-photo .action-image>img{object-position:50% 0%}
@media(max-width:680px){.care-section{padding-bottom:26px}.process-section{padding-top:40px}.care-photo .action-image>img{object-position:50% 25%}}
/* Distribute navigation through the available bar; align the process rail to node centers. */
@media(min-width:761px){
  .header{display:grid;grid-template-columns:170px minmax(0,1fr) auto auto;column-gap:26px;padding-inline:4%}
  .header nav{display:flex;width:100%;margin:0;gap:4px;justify-content:space-evenly;align-items:center}
  .header nav>a{display:inline-flex;flex:1;align-items:center;justify-content:center;min-height:44px;padding:10px 6px;font-size:11px;white-space:nowrap}
  .header-contact{display:block;margin:0;font-size:10px}
  .header .logo{width:158px}
}
@media(min-width:761px) and (max-width:1250px){
  .header{grid-template-columns:155px minmax(0,1fr) auto;column-gap:18px;padding-inline:3%}
  .header-contact{display:none}
  .header nav>a{font-size:10px;padding-inline:4px}
  .header .logo{width:145px}
}
@media(min-width:761px) and (max-width:950px){
  .header{grid-template-columns:135px minmax(0,1fr) auto;column-gap:12px;padding-inline:2.5%}
  .header .logo{width:130px}
  .header nav>a{font-size:9px;padding-inline:3px}
}
.process-grid{--step-gap:18px;--rail-y:8px}
.process-grid:before{top:calc(var(--rail-y) - 1px);left:calc(12.5% - var(--step-gap)*.375);right:calc(12.5% - var(--step-gap)*.375)}
.process-grid article:before{box-sizing:border-box;width:16px;height:16px;left:calc(50% - 8px);top:calc(var(--rail-y) - 33px)}
@media(max-width:1050px){.process-grid{--step-gap:12px}}

/* Compact, readable disclosure on fictional review designs. */
.reviews-section .disclosure,.reviews-section .review-preview-tag,.reviews-section .example-label,.reviews-section .rating-summary p{font-size:12px;line-height:1.5;color:#40576a;letter-spacing:0}.reviews-section .review-preview-tag{margin:0 0 12px}

/* Crisp monochrome directional icons, independent of emoji rendering. */
.icon-arrow{display:inline-block;width:19px;height:19px;flex:0 0 19px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.btn>.icon-arrow,.text-link>.icon-arrow{width:20px;height:20px;flex-basis:20px;background:none;border:0;border-radius:0;padding:0}
.circle-btn>.icon-arrow{width:20px;height:20px}
@media(max-width:680px){
 .hero{background:#041a2c}
 .hero-image{-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.08) 8%,rgba(0,0,0,.5) 24%,#000 46%,#000 100%);mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.08) 8%,rgba(0,0,0,.5) 24%,#000 46%,#000 100%)}
 .hero-shade{background:linear-gradient(to bottom,transparent 65%,#041a2c12 100%)}
 .mobile-contact{gap:12px;padding-inline:5%}
 .mobile-contact>a.btn{display:inline-flex;align-items:center;justify-content:center;flex:1;min-width:0;width:auto;min-height:48px;padding:12px 14px;gap:12px;border-radius:10px;background:var(--action);border:1px solid #ffffff40;color:#fff;font-size:12px;box-shadow:0 3px 0 #00000018}
 .mobile-contact>a.btn:hover{background:var(--action-hover)}
}

/* Land meets the card boundary; only the true coastline is outlined. */
.regional-map{padding-top:0;justify-content:flex-start;overflow:hidden}
.coverage-map-svg{overflow:hidden;flex-shrink:0}
@media(max-width:760px){
 .mobile-contact,.desktop-contact{opacity:1;visibility:hidden;pointer-events:none;transition:transform .58s cubic-bezier(.22,1,.36,1),visibility 0s linear .58s;will-change:transform}
 .mobile-contact{transform:translate3d(0,calc(100% + 14px),0)}
 .desktop-contact{transform:translate3d(0,calc(100% + 120px),0)}
 .contact-actions-visible .mobile-contact,.contact-actions-visible .desktop-contact{visibility:visible;pointer-events:auto;transform:translate3d(0,0,0);transition:transform .58s cubic-bezier(.22,1,.36,1),visibility 0s}
}
@media(prefers-reduced-motion:reduce){.mobile-contact,.desktop-contact{transition:none!important}}

@media(max-width:760px){.desktop-contact,.whatsapp-panel{display:none!important}}
