:root{--navy:#092f66;--blue:#09a8e8;--amber:#f5a510;--ink:#122038;--cream:#f7f2e9;--white:#fff;--muted:#556374;--line:#d7dfe3;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;background:var(--cream)}a{color:inherit}.skip-link{position:absolute;left:-999px;top:auto}.skip-link:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.5rem 1rem}.site-header{background:rgba(255,255,255,.98);border-bottom:4px solid var(--blue);position:sticky;top:0;z-index:10}.header-inner{max-width:1200px;margin:auto;min-height:83px;padding:10px 28px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;min-width:max-content}.brand img{width:52px;height:52px;object-fit:contain;border-radius:5px}.brand-name,.footer-brand span{line-height:1;display:grid;gap:5px}.brand-name strong,.footer-brand strong{font-size:1.28rem;letter-spacing:.11em;color:var(--navy)}.brand-name small,.footer-brand small{font-size:.52rem;letter-spacing:.16em;font-weight:700;color:var(--amber)}nav{margin-left:auto;display:flex;gap:26px}nav a{font-size:.8rem;letter-spacing:.08em;font-weight:700;text-decoration:none;text-transform:uppercase}nav a:hover,.text-link:hover{color:var(--blue)}.header-phone{font-weight:800;font-size:1.05rem;text-decoration:none;color:var(--navy);border-left:1px solid var(--line);padding-left:24px;line-height:1.1}.header-phone span{display:block;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:4px}.menu-toggle{display:none}.hero{position:relative;overflow:hidden;background:var(--navy);color:var(--white);min-height:575px}.hero-pattern{position:absolute;inset:0;background:linear-gradient(115deg,transparent 0 57%,rgba(9,168,232,.17) 57% 58%,transparent 58% 63%,rgba(245,165,16,.16) 63% 64%,transparent 64%),radial-gradient(circle at 87% 67%,rgba(255,255,255,.14) 0 2px,transparent 3px);background-size:auto,28px 28px}.hero:after{content:'';position:absolute;right:-7rem;bottom:-13rem;width:35rem;height:35rem;border:2px solid rgba(255,255,255,.17);border-radius:50%;box-shadow:0 0 0 40px rgba(255,255,255,.05),0 0 0 80px rgba(255,255,255,.035)}.hero-inner{position:relative;z-index:1;max-width:1200px;margin:auto;padding:100px 28px 88px;display:grid;grid-template-columns:1.3fr .7fr;gap:72px;align-items:center}.eyebrow{color:var(--amber);font-weight:800;letter-spacing:.12em;font-size:.71rem;margin:0 0 18px}.eyebrow.dark{color:var(--navy)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);line-height:1.02}h1{font-size:clamp(3rem,6vw,5.7rem);max-width:800px;letter-spacing:-.055em;margin-bottom:25px}.hero-text{font-size:1.15rem;max-width:565px;color:#e5edf8;margin-bottom:30px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;gap:15px;padding:14px 20px;text-decoration:none;font-size:.82rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border:2px solid transparent}.button-amber{background:var(--amber);color:#142137}.button-amber:hover{background:#ffc544}.button-outline{border-color:rgba(255,255,255,.7);color:#fff}.button-outline:hover{border-color:var(--blue);background:var(--blue)}.trust-list{list-style:none;padding:0;margin:32px 0 0;display:flex;gap:22px;flex-wrap:wrap;font-size:.88rem;font-weight:700}.trust-dot{display:inline-grid;place-items:center;width:19px;height:19px;margin-right:7px;border-radius:50%;background:var(--blue);font-size:.72rem}.hero-panel{align-self:stretch;min-height:315px;padding:33px;background:rgba(4,25,57,.7);border:1px solid rgba(255,255,255,.24);display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.hero-panel:before{content:'';position:absolute;left:0;top:0;width:100%;height:7px;background:var(--amber)}.hero-panel p{font-family:var(--serif);font-size:2.1rem;line-height:1.04;margin:0}.hero-panel em{font-style:normal;color:var(--blue)}.hero-panel span{font-size:.9rem;letter-spacing:.25em;font-weight:700;margin-top:22px}.panel-lines{position:absolute;top:30px;right:-22px;transform:rotate(-22deg);display:flex;gap:7px}.panel-lines i{width:7px;height:220px;background:var(--blue);display:block}.panel-lines i:last-child{background:var(--amber)}.intro{max-width:1200px;margin:auto;padding:92px 28px 100px}.section-kicker{display:flex;align-items:center;gap:12px;font-size:.7rem;font-weight:800;letter-spacing:.15em;color:var(--navy)}.section-kicker span{width:42px;height:3px;background:var(--amber)}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:120px;margin-top:28px}.intro h2,.section-heading h2,.areas h2,.quote h2{font-size:clamp(2.5rem,4.2vw,4.35rem);letter-spacing:-.055em;margin-bottom:0}.intro-grid p{color:var(--muted);font-size:1.08rem;margin:5px 0 22px}.text-link{font-size:.8rem;color:var(--navy);font-weight:800;letter-spacing:.08em;text-transform:uppercase;text-decoration:none}.services{background:#fff;padding:95px max(28px,calc((100vw - 1144px)/2)) 110px}.section-heading{display:grid;grid-template-columns:1.3fr .7fr;gap:80px;align-items:end;margin-bottom:46px}.section-heading>p{color:var(--muted);max-width:345px;margin:0}.service-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:15px}.service-card{min-height:325px;padding:27px 22px;background:var(--cream);border-top:5px solid var(--blue);grid-column:span 2;display:flex;flex-direction:column}.service-card.featured{background:var(--navy);color:#fff;border-top-color:var(--amber)}.service-card:nth-child(4){grid-column:2/span 2}.service-card:nth-child(5){grid-column:4/span 2}.service-icon{width:52px;height:52px;margin-bottom:auto;color:var(--navy)}.featured .service-icon{color:var(--amber)}.service-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}.card-number{font-size:.7rem;letter-spacing:.13em;font-weight:800;color:var(--blue);margin:22px 0 10px}.featured .card-number{color:var(--amber)}.service-card h3{font-size:1.65rem;letter-spacing:-.04em;margin:0 0 10px}.service-card>p:last-child{font-size:.88rem;line-height:1.5;color:var(--muted);margin:0}.featured>p:last-child{color:#d3dfef}.areas{background:var(--navy);color:#fff;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.areas-copy{padding:110px max(28px,calc((100vw - 1144px)/2)) 110px 70px;max-width:670px}.areas-copy>p:not(.eyebrow){color:#dbe7f6;max-width:490px}.areas-copy ul{list-style:none;padding:0;margin:26px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:10px 28px;font-size:.88rem;font-weight:700}.areas-copy li:before{content:'+';color:var(--amber);margin-right:10px}.areas-art{position:relative;min-height:430px;background:linear-gradient(135deg,#0a426f,#087dae);overflow:hidden}.ring{position:absolute;border:1px solid rgba(255,255,255,.3);border-radius:50%}.ring-a{width:330px;height:330px;left:16%;top:10%}.ring-b{width:500px;height:500px;left:4%;top:-10%}.ring-c{width:680px;height:680px;left:-10%;top:-25%}.map-pin{position:absolute;width:34px;height:34px;border:8px solid var(--amber);border-radius:50% 50% 50% 0;transform:rotate(-45deg);left:44%;top:37%;box-shadow:0 0 0 12px rgba(245,165,16,.16)}.quote{position:relative;background:var(--cream);overflow:hidden}.quote-inner{position:relative;z-index:1;max-width:900px;margin:auto;text-align:center;padding:110px 28px}.quote-inner>p:not(.eyebrow){font-size:1.08rem;color:var(--muted);max-width:620px;margin:23px auto 34px}.quote-lines{position:absolute;inset:0;background:linear-gradient(70deg,transparent 0 8%,rgba(9,168,232,.11) 8% 8.35%,transparent 8.35% 11%,rgba(245,165,16,.14) 11% 11.35%,transparent 11.35% 100%)}.contact-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;text-align:left}.contact-card{background:#fff;border-bottom:4px solid var(--blue);text-decoration:none;padding:20px 23px;display:grid;gap:5px}.contact-card:hover{border-color:var(--amber);transform:translateY(-2px)}.contact-card span{font-size:.68rem;font-weight:800;letter-spacing:.13em;color:var(--muted)}.contact-card strong{font-size:clamp(.93rem,2.2vw,1.22rem);color:var(--navy);overflow-wrap:anywhere}.site-footer{background:#061f46;color:#fff}.footer-inner{max-width:1200px;margin:auto;padding:34px 28px;display:flex;align-items:center;gap:34px;flex-wrap:wrap}.footer-brand img{width:45px;height:45px}.footer-brand strong{color:#fff}.footer-brand small{color:var(--amber)}.footer-inner p{margin:0;font-size:.79rem;color:#c8d4e4}.footer-inner p:last-child{margin-left:auto}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:800px){.header-inner{min-height:73px;padding:9px 20px;gap:12px}.brand img{width:45px;height:45px}.brand-name strong{font-size:1.07rem}.header-phone{display:none}.menu-toggle{display:flex;margin-left:auto;width:43px;height:43px;border:0;background:transparent;flex-direction:column;justify-content:center;gap:5px;padding:10px}.menu-toggle span:not(.visually-hidden){width:100%;height:2px;background:var(--navy);display:block}nav{display:none;position:absolute;left:0;right:0;top:100%;padding:17px 20px;background:#fff;border-bottom:3px solid var(--blue);flex-direction:column;gap:14px}nav.open{display:flex}.hero{min-height:auto}.hero-inner{padding:70px 24px 60px;grid-template-columns:1fr;gap:35px}.hero-panel{min-height:190px}.hero-panel p{font-size:1.7rem}.intro{padding:70px 24px}.intro-grid,.section-heading{grid-template-columns:1fr;gap:25px}.services{padding:70px 24px}.service-grid{grid-template-columns:1fr;gap:12px}.service-card,.service-card:nth-child(4),.service-card:nth-child(5){grid-column:auto;min-height:235px}.areas{grid-template-columns:1fr}.areas-art{min-height:280px;order:2}.areas-copy{padding:70px 24px;max-width:none}.quote-inner{padding:70px 24px}.contact-actions{grid-template-columns:1fr}.footer-inner{padding:31px 24px;display:grid;gap:17px}.footer-inner p:last-child{margin-left:0}h1{font-size:3.2rem}.trust-list{gap:12px 18px}}
.map-panel{position:relative;min-height:430px;overflow:hidden;background:#dfe7e9}.coverage-map{width:100%;height:100%;min-height:430px;border:0;display:block;filter:saturate(.8) contrast(1.04)}.map-label{position:absolute;padding:8px 10px;background:rgba(9,47,102,.93);border-left:4px solid var(--amber);color:#fff;font-size:.67rem;line-height:1.18;font-weight:800;letter-spacing:.09em;box-shadow:0 5px 16px rgba(0,0,0,.2);pointer-events:none}.label-east{left:10%;top:22%}.label-north{right:8%;bottom:23%}.map-credit{position:absolute;right:8px;bottom:5px;font-size:.62rem;background:rgba(255,255,255,.8);padding:2px 4px}.map-credit a{color:#20354f;text-decoration:none}@media(max-width:800px){.map-panel{min-height:310px;order:2}.coverage-map{min-height:310px}}

.gutter-offer {
  position: relative;
  align-self: center;
  min-height: 470px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .28);
  border-top: 5px solid var(--amber);
  background: #061f46;
  box-shadow: 18px 18px 0 rgba(0, 0, 0, .14);
  color: #fff;
}

.gutter-offer::after {
  position: absolute;
  inset: 0;
  z-index: 1;
  content: '';
  background: linear-gradient(180deg, rgba(6, 31, 70, .06) 0%, rgba(6, 31, 70, .18) 34%, rgba(6, 31, 70, .94) 100%);
}

.gutter-offer-art {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.gutter-offer-copy {
  position: relative;
  z-index: 2;
  min-height: 470px;
  padding: 34px 30px 30px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.gutter-offer-kicker {
  margin: 0 0 10px;
  color: var(--amber);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .13em;
}

.gutter-offer h2 {
  margin: 0 0 12px;
  font-size: clamp(2rem, 3.1vw, 2.8rem);
  letter-spacing: -.055em;
}

.gutter-offer-copy > p:not(.gutter-offer-kicker) {
  max-width: 24rem;
  margin: 0 0 20px;
  color: #e2eaf4;
  font-size: .94rem;
  line-height: 1.45;
}

.gutter-offer-button {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  align-self: flex-start;
  padding: 12px 14px;
  background: var(--amber);
  color: #142137;
  text-decoration: none;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.gutter-offer-button:hover {
  background: #ffc544;
}

@media (max-width: 800px) {
  .gutter-offer {
    width: min(100%, 450px);
    min-height: 500px;
    justify-self: center;
  }

  .gutter-offer-copy {
    min-height: 500px;
  }
}

.surface-showcase {
  background: var(--cream);
  padding: 32px 28px;
}

.surface-showcase-inner {
  max-width: 1144px;
  margin: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.surface-image {
  display: block;
  position: relative;
  min-height: 240px;
  margin: 0;
  overflow: hidden;
  background: #061f46;
}

.surface-image::after {
  position: absolute;
  inset: 0;
  content: '';
  background: linear-gradient(180deg, transparent 52%, rgba(6, 31, 70, .84) 100%);
}

.surface-image img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  display: block;
  object-fit: cover;
  object-position: center 52%;
}

.patio-image img {
  object-position: center 58%;
}

.window-image img {
  object-position: center 46%;
}

.gutter-image img {
  object-position: center 48%;
}

.surface-caption {
  position: absolute;
  z-index: 1;
  left: 22px;
  bottom: 17px;
  color: #fff;
  font-family: var(--serif);
  font-size: clamp(1.5rem, 2.7vw, 2rem);
  letter-spacing: -.04em;
}

.surface-caption small {
  display: block;
  margin-top: 8px;
  font-family: var(--sans);
  font-size: .69rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #fff;
}
.surface-caption small span { margin-left: 8px; color: var(--amber); }
.surface-image img { transition: transform 240ms ease; }
.surface-image:hover img { transform: scale(1.025); }
.surface-image:focus-visible { outline: 4px solid var(--amber); outline-offset: 4px; }
.surface-image::after { background: linear-gradient(180deg, transparent 35%, rgba(6,31,70,.93) 100%); pointer-events: none; }
.service-card h3 a { text-decoration: none; }
.service-card a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  .surface-image img { transition: none; }
  .surface-image:hover img { transform: none; }
}

@media (max-width: 800px) {
  .surface-showcase {
    padding: 18px 20px;
  }

  .surface-showcase-inner {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .surface-image {
    min-height: 220px;
  }
}

/* The slides share a grid cell so the tallest one reserves the banner height. */
.hero-slides {
  position: relative;
  z-index: 1;
  display: grid;
  max-width: 1200px;
  margin: auto;
}

.hero-slide {
  grid-area: 1 / 1;
  width: 100%;
  min-width: 0;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 600ms ease, visibility 600ms;
}

.hero-slide.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.hero-title {
  font-size: clamp(3rem, 6vw, 5.7rem);
  max-width: 800px;
  letter-spacing: -.055em;
  margin-bottom: 25px;
}

.driveway-offer::after,
.softwash-offer::after {
  background: linear-gradient(180deg, rgba(6, 31, 70, .04) 0%, rgba(6, 31, 70, .3) 30%, rgba(6, 31, 70, .94) 70%, #061f46 100%);
}

.driveway-offer .gutter-offer-art { object-position: center 65%; }
.softwash-offer .gutter-offer-art { object-position: 65% center; }

.hero-controls {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: -54px auto 0;
  padding: 0 28px 24px;
  display: flex;
  align-items: center;
  gap: 24px;
}

.hero-controls[hidden] { display: none; }

.hero-controls button {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 0;
  background: transparent;
  color: #fff;
  font-family: var(--sans);
  cursor: pointer;
  transition: background 160ms ease, border-color 160ms ease;
}

.hero-controls button:hover {
  border-color: var(--amber);
  background: rgba(255, 255, 255, .09);
}

.hero a:focus-visible,
.hero button:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
}

.hero-controls .hero-rotation {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 9px;
  width: 92px;
  padding: 0 12px;
  font-size: .75rem;
  font-weight: 700;
}

.hero-rotation-icon { font-size: .85rem; }
.hero-pagination, .hero-arrows { display: flex; align-items: center; gap: 6px; }
.hero-arrows { margin-left: auto; }
.hero-arrows button { font-size: 1.3rem; }

.hero-controls .hero-dot { border-color: transparent; padding: 10px; }
.hero-dot span {
  display: block;
  width: 10px;
  height: 10px;
  margin: auto;
  border: 1px solid #fff;
  border-radius: 50%;
  transition: background 160ms ease, border-color 160ms ease;
}
.hero-dot[aria-current="true"] span { background: var(--amber); border-color: var(--amber); }

@media (max-width: 800px) {
  .hero-title { font-size: 3.2rem; }
  .hero-slide { padding-bottom: 84px; }
  .hero-controls { margin-top: -62px; padding: 0 24px 18px; gap: 10px; }
  .hero-pagination { gap: 0; }
}

@media (max-width: 380px) {
  .hero-controls { padding-right: 16px; padding-left: 16px; gap: 4px; }
  .hero-controls .hero-rotation { width: 44px; padding: 0 6px; }
  .hero-rotation-text { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide, .hero-controls button, .hero-dot span { transition: none; }
}

.facebook-panel { scroll-margin-top:110px; }
.facebook-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:88px; align-items:center; }
.facebook-copy .section-kicker { margin-bottom:27px; }
.facebook-copy h2 { margin-bottom:25px; }
.facebook-copy > p:not(.section-kicker) { max-width:450px; color:var(--muted); font-size:1.08rem; }
.facebook-copy .button { margin-top:8px; }
.facebook-copy > .facebook-welcome { margin:18px 0 0; font-size:.88rem; }
.facebook-page-card { display:block; min-width:0; text-decoration:none; background:#fff; border-bottom:5px solid var(--blue); box-shadow:14px 14px 0 #eae4d9; }
.facebook-card-cover { height:205px; position:relative; overflow:hidden; background:var(--navy); }
.facebook-card-cover > img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 44%; }
.facebook-card-label { position:absolute; top:18px; left:18px; display:flex; align-items:center; gap:20px; padding:9px 12px; background:var(--navy); color:#fff; font-size:.64rem; font-weight:800; letter-spacing:.11em; }
.facebook-card-label > span { color:var(--amber); font-size:1rem; }
.facebook-card-content { padding:28px; }
.facebook-card-brand { display:flex; align-items:center; gap:16px; margin-bottom:23px; }
.facebook-card-brand > img { flex:0 0 64px; width:64px; height:64px; border-radius:4px; }
.facebook-card-brand h3 { font-family:var(--sans); font-size:1.1rem; line-height:1.35; margin:0; color:var(--navy); }
.facebook-card-content > p { margin:0 0 5px; font-size:.98rem; font-weight:700; }
.facebook-card-content > .facebook-card-area { color:var(--muted); font-size:.83rem; font-weight:400; }
.facebook-card-link { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:22px; margin-top:22px; border-top:1px solid var(--line); color:var(--navy); font-size:.75rem; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.facebook-card-link > span { font-size:1.3rem; color:var(--navy); }
.facebook-page-card:hover { border-bottom-color:var(--amber); }
.facebook-page-card:hover .facebook-card-link { color:#075b9c; }
.facebook-panel a:focus-visible { outline:3px solid var(--navy); outline-offset:6px; }
@media(max-width:1000px) { .facebook-layout { gap:45px; } .facebook-card-brand { gap:12px; } .facebook-card-brand h3 { font-size:1rem; } }
@media(max-width:800px) {
  .facebook-layout { grid-template-columns:1fr; gap:38px; }
  .facebook-copy > p:not(.section-kicker) { max-width:550px; }
  .facebook-page-card { max-width:540px; width:100%; box-shadow:8px 8px 0 #eae4d9; }
  .facebook-card-cover { height:190px; }
}
@media(max-width:380px) {
  .facebook-copy .button { gap:9px; font-size:.72rem; padding:14px; letter-spacing:.035em; }
  .facebook-card-content { padding:21px; }
  .facebook-card-brand > img { flex-basis:48px; width:48px; height:48px; }
  .facebook-card-brand h3 { font-size:.91rem; }
}

#services { scroll-margin-top:100px; }
a.service-card { text-decoration:none; transition:transform 160ms ease,box-shadow 160ms ease; }
.service-card .service-card-description { font-size:.88rem; line-height:1.55; color:var(--muted); margin:0 0 22px; }
.service-card.featured .service-card-description { color:#d3dfef; }
.service-card-cta { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:16px; border-top:1px solid var(--line); color:var(--navy); font-size:.68rem; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.featured .service-card-cta { border-color:rgba(255,255,255,.25); color:var(--amber); }
.service-card-cta > span { font-size:1.2rem; }
a.service-card:hover { transform:translateY(-4px); box-shadow:0 8px 22px rgba(9,47,102,.1); border-top-color:var(--amber); }
a.service-card:hover .service-card-cta { text-decoration:underline; text-underline-offset:4px; }
a.service-card:focus-visible { outline:3px solid var(--navy); outline-offset:5px; }
@media(prefers-reduced-motion:reduce) { a.service-card { transition:none; } a.service-card:hover { transform:none; } }

.site-header { background:#fff; border-bottom:0; box-shadow:0 3px 18px rgba(6,31,70,.09); }
.site-header::after { content:""; position:absolute; bottom:0; left:0; right:0; height:4px; background:linear-gradient(110deg,var(--blue) 0 73%,var(--amber) 73% 100%); pointer-events:none; }
.site-header .header-inner { min-height:98px; max-width:1240px; gap:28px; padding:0 28px; }
.site-header .brand { gap:13px; position:relative; isolation:isolate; align-self:stretch; padding:18px 0; }
.site-header .brand::before { content:""; position:absolute; inset:0 -60px 0 -50vw; z-index:-1; background:var(--navy); clip-path:polygon(0 0,100% 0,calc(100% - 34px) 100%,0 100%); pointer-events:none; }
.site-header .brand img { width:57px; height:57px; border-radius:7px; }
.site-header .brand-name strong { font-family:"Segoe UI Variable Display","Segoe UI",system-ui,sans-serif; font-size:1.8rem; font-weight:800; letter-spacing:-.045em; line-height:1; color:#fff; }
.site-header .brand-name small { font-size:.56rem; letter-spacing:.12em; }
.site-header #site-nav { align-items:center; gap:4px; }
.site-header #site-nav a { position:relative; padding:12px 11px; font-size:.78rem; letter-spacing:0; text-transform:none; white-space:nowrap; border-radius:4px; transition:color .18s ease; }
.site-header #site-nav a::after { content:""; position:absolute; left:11px; right:11px; bottom:5px; height:2px; background:var(--blue); transform:scaleX(0); transform-origin:left; transition:transform .18s ease; }
.site-header #site-nav a:hover,.site-header #site-nav a:focus-visible { color:var(--navy); }
.site-header #site-nav a:hover::after,.site-header #site-nav a:focus-visible::after { transform:scaleX(1); }
.site-header #site-nav a:last-child { padding:14px 18px; margin-left:7px; background:var(--amber); color:var(--ink); box-shadow:0 3px 8px rgba(245,165,16,.16); transition:background .18s ease,transform .18s ease,box-shadow .18s ease; }
.site-header #site-nav a:last-child::after { display:none; }
.site-header #site-nav a:last-child:hover { background:#ffc544; transform:translateY(-2px); box-shadow:0 5px 12px rgba(245,165,16,.22); }
.site-header .header-phone { position:relative; border:1px solid #dbe7f1; border-radius:5px; background:#f2f7fb; padding:12px 14px 12px 46px; font-size:.95rem; white-space:nowrap; transition:background .18s ease,border-color .18s ease; }
.site-header .header-phone::before { content:""; position:absolute; left:14px; top:50%; width:20px; height:20px; transform:translateY(-50%); background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23092f66' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 2 .7 2.9a2 2 0 0 1-.5 2.1L8 10a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.5c.9.3 1.9.6 2.9.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.site-header .header-phone:hover { background:#e6f3fc; border-color:#9bcced; }
.site-header .header-phone span { font-size:.58rem; letter-spacing:.1em; margin-bottom:6px; }
.site-header a:focus-visible,.site-header button:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
.launch-banner { margin:0; padding:12px 24px; background:#edf5fb; color:var(--navy); font-size:.82rem; display:flex; align-items:center; justify-content:center; gap:18px; flex-wrap:wrap; border-bottom:1px solid #d5e5f2; }
.launch-date { padding:5px 10px; background:var(--navy); color:#fff; font-size:.7rem; font-weight:800; letter-spacing:.035em; border-left:3px solid var(--amber); }
.launch-banner a { font-weight:700; text-decoration:none; white-space:nowrap; }
.launch-banner a:hover { text-decoration:underline; text-underline-offset:3px; }
.about-panel,.inspiration-panel { max-width:1200px; margin:auto; padding:80px 28px; }
.about-layout,.inspiration-layout { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:72px; }
.about-panel h2,.inspiration-panel h2 { font-size:clamp(2.5rem,4.2vw,4.35rem); letter-spacing:-.055em; margin-bottom:24px; }
.about-copy > p:not(.eyebrow),.inspiration-copy > p:not(.eyebrow) { color:var(--muted); font-size:1.04rem; }
.about-card { padding:38px; background:var(--navy); color:#fff; border-top:5px solid var(--amber); }
.about-card img { width:72px; height:72px; margin-bottom:24px; }
.about-card h3 { font-size:2.4rem; margin-bottom:12px; }
.about-card p { color:#dce7f6; margin-bottom:0; }
.about-card .about-signoff { margin-top:26px; font-weight:700; color:#fff; }
.about-copy .about-owner-quote { margin:26px 0; padding:26px 28px; border-top-width:3px; }
.about-owner-quote h3 { font-size:1.75rem; line-height:1.2; margin:0 0 16px; }
.about-owner-quote blockquote { margin:0; }
.about-owner-quote blockquote p { font-size:1rem; line-height:1.7; }
.about-owner-quote .about-signoff { margin-top:18px; font-size:.9rem; }
.about-portrait { width:100%; max-width:430px; margin:0 auto; background:var(--navy); border-top:5px solid var(--amber); box-shadow:0 16px 38px rgba(9,47,102,.13); overflow:hidden; }
.about-portrait picture,.about-portrait img { display:block; width:100%; }
.about-portrait img { height:auto; }
.about-portrait figcaption { padding:20px 24px; color:#fff; }
.about-portrait figcaption strong { display:block; font-size:1.25rem; margin-bottom:4px; }
.about-portrait figcaption span { display:block; font-size:.82rem; color:#dce7f6; line-height:1.5; }
.inspiration-panel { border-top:1px solid var(--line); }
.inspiration-panel figure { margin:0; min-width:0; }
.inspiration-panel figure img { width:100%; height:auto; display:block; border-top:5px solid var(--blue); }
.inspiration-panel figcaption { font-size:.8rem; color:var(--muted); margin-top:13px; }
.quote .quote-inner { max-width:1050px; }
.quote .contact-actions { margin-top:28px; }
.quote-form { margin:34px auto 0; padding:34px; background:#fff; border-top:5px solid var(--amber); text-align:left; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.quote-form label,.quote-form legend { display:block; font-size:.91rem; font-weight:700; margin-bottom:7px; }
.quote-form input:not([type=checkbox]),.quote-form select,.quote-form textarea { display:block; width:100%; padding:13px 12px; border:1px solid #aab8c8; border-radius:2px; background:#fff; color:var(--ink); font:inherit; font-size:1rem; }
.quote-form textarea { resize:vertical; min-height:104px; }
.quote-form input:focus-visible,.quote-form select:focus-visible,.quote-form textarea:focus-visible { outline:3px solid var(--blue); outline-offset:2px; }
.quote-form fieldset { border:0; padding:0; margin:25px 0; min-width:0; }
.quote-form .service-choices { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.quote-form .service-choice { display:flex; align-items:center; gap:10px; padding:12px; margin:0; background:var(--cream); cursor:pointer; font-size:.86rem; }
.service-choice input { flex:none; width:18px; height:18px; accent-color:var(--navy); }
.form-hint,.form-privacy,.photo-followup { font-size:.83rem; color:var(--muted); line-height:1.6; }
.form-hint { margin:0 0 13px; }
.form-privacy { margin:22px 0 16px; }
.form-privacy a,.photo-followup a { color:var(--navy); text-underline-offset:3px; }
.photo-followup { margin:18px 0 0; }
.quote-form button { cursor:pointer; }
.quote-form button:disabled { opacity:.65; cursor:wait; }
.form-status { padding:14px; background:#edf7fc; color:var(--navy); font-size:.91rem; margin:18px 0 0; }
.form-status:empty { display:none; }
.form-status[data-state=error] { background:#fff0ec; color:#832616; }
.form-trap { display:none; }
.form-preview-note { background:#fff6df; padding:10px 13px; color:#5b4107; font-size:.83rem; }
.form-preview-note[hidden] { display:none; }
#quote-form,#about,#inspiration { scroll-margin-top:110px; }
.online-quote-link { margin:18px 0 4px; }
.service-contact .button-amber { color:var(--ink); }
.footer-details { max-width:1200px; margin:auto; padding:0 28px 28px; color:#c8d4e4; font-size:.78rem; display:flex; flex-wrap:wrap; align-items:center; gap:12px 26px; }
.footer-details p { margin:0; }
.footer-details a { color:#fff; text-underline-offset:3px; }
.footer-details .footer-links { display:flex; gap:20px; flex-wrap:wrap; }
.mobile-contact { display:none; }
.privacy-content { max-width:880px; margin:auto; padding:65px 28px 80px; }
.privacy-content h1 { font-size:clamp(2.7rem,5vw,4.4rem); }
.privacy-content h2 { font-size:1.9rem; margin:35px 0 16px; }
.privacy-content p,.privacy-content li { color:var(--muted); line-height:1.75; }
.privacy-content a { color:var(--navy); text-underline-offset:3px; }
.map-panel .map-label { pointer-events:none; }
.service-card:not(.featured) .card-number { color:#006797; }
.service-hero-media { display:block; min-width:0; width:100%; }
.footer-services { max-width:1200px; margin:auto; padding:0 28px 28px; display:flex; flex-wrap:wrap; gap:12px 24px; font-size:.8rem; }
.footer-services a { color:#fff; text-underline-offset:3px; }
@media(max-width:1080px) { .site-header .header-phone { display:none; } }
@media(max-width:960px) {
  .site-header .header-inner { min-height:82px; padding:0 24px; }
  .site-header .brand { padding:12px 0; }
  .site-header .brand::before { right:-48px; }
  .site-header .menu-toggle { display:flex; margin-left:auto; width:44px; height:44px; flex-direction:column; justify-content:center; gap:5px; padding:11px; border:1px solid #d7e3ef; border-radius:5px; background:#edf5fb; cursor:pointer; }
  .site-header .menu-toggle span:not(.visually-hidden) { display:block; width:100%; height:2px; background:var(--navy); }
  .site-header #site-nav { display:none; position:absolute; left:0; right:0; top:100%; margin:0; padding:16px 24px; background:#fff; border-bottom:3px solid var(--blue); flex-direction:column; align-items:stretch; gap:5px; }
  .site-header #site-nav.open { display:flex; }
  .site-header #site-nav a { padding:13px; font-size:.95rem; }
  .site-header #site-nav a:last-child { margin:5px 0 0; text-align:center; }
}
@media(max-width:800px) {
  html { scroll-padding-bottom:85px; }
  .site-header .header-inner { gap:10px; padding:0 20px; }
  .site-header .brand { padding:16px 0; }
  .site-header .brand::before { right:-34px; clip-path:polygon(0 0,100% 0,calc(100% - 24px) 100%,0 100%); }
  .site-header .brand img { width:46px; height:46px; }
  .site-header .brand-name strong { font-size:1.55rem; }
  .site-header .brand-name small { font-size:.49rem; letter-spacing:.08em; }
  .launch-banner { font-size:.77rem; padding:12px 20px; gap:8px 12px; }
  .launch-banner > span:nth-child(2) { display:none; }
  .about-panel,.inspiration-panel { padding:52px 24px; }
  .about-layout,.inspiration-layout { grid-template-columns:1fr; gap:30px; }
  .about-card { padding:28px; }
  .quote-form { padding:24px 18px; }
  .form-grid { grid-template-columns:1fr; gap:18px; }
  .footer-details { padding:0 24px 28px; }
  body { padding-bottom:calc(75px + env(safe-area-inset-bottom,0px)); }
  .mobile-contact { position:fixed; display:grid; grid-template-columns:1fr 1.5fr; gap:10px; bottom:0; left:0; right:0; z-index:30; padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px)); background:#fff; border-top:1px solid var(--line); box-shadow:0 -3px 14px rgba(9,47,102,.1); }
  .mobile-contact a { text-align:center; padding:13px 12px; text-decoration:none; font-size:.83rem; font-weight:800; background:var(--navy); color:#fff; }
  .mobile-contact a:last-child { background:var(--amber); color:var(--ink); }
  .mobile-contact:has(a:focus-visible) { outline:2px solid var(--blue); outline-offset:-2px; }
  body:has(.quote-form input:focus,.quote-form textarea:focus,.quote-form select:focus) .mobile-contact { display:none; }
  .privacy-content { padding:45px 24px 55px; }
}
@media(prefers-reduced-motion:reduce) {
  .site-header #site-nav a,.site-header #site-nav a::after,.site-header .header-phone { transition:none; }
  .site-header #site-nav a:last-child:hover { transform:none; }
}
@media(max-width:380px) {
  .site-header .brand { gap:9px; }
  .site-header .brand-name strong { font-size:1.4rem; }
  .site-header .brand-name small { font-size:.44rem; }
  .site-header .brand img { width:42px; height:42px; }
  .site-header .menu-toggle { flex:none; }
  .quote-form .service-choices { grid-template-columns:1fr; }
  .service-heading h1 { font-size:2.5rem; overflow-wrap:anywhere; }
  .service-contact .button-amber { max-width:100%; font-size:.72rem; letter-spacing:.025em; }
}
