/*
Theme Name: Harbor Decking Pro
Theme URI: https://harbordecking.com/
Author: Codex
Description: Lightweight premium WordPress theme for Harbor Decking.
Version: 1.0.72
Text Domain: harbor-decking-pro
*/

:root {
  --hd-navy: #031c3a;
  --hd-blue: #0b5f99;
  --hd-sky: #dceef7;
  --hd-slate: #536475;
  --hd-charcoal: #17222d;
  --hd-muted: #f3f7fa;
  --hd-line: #d8e2ea;
  --hd-white: #ffffff;
  --hd-wood: #b9834d;
  --hd-shadow: 0 18px 45px rgba(6, 36, 61, 0.16);
  --hd-radius: 8px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  margin: 0;
  color: var(--hd-charcoal);
  font-family: Manrope, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
  background: #031827;
  overflow-x: hidden;
}
a { color: inherit; }
img { max-width: 100%; display: block; height: auto; }
.hd-wrap { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.hd-site-main { background: var(--hd-white); }
.hd-site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid rgba(216, 226, 234, 0.9);
  backdrop-filter: blur(14px);
  box-shadow: 0 12px 30px rgba(6, 36, 61, 0.06);
  transition: background 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
body.hd-scrolled .hd-site-header {
  background: rgba(3, 24, 39, .94);
  border-bottom-color: rgba(123,208,255,.18);
  box-shadow: 0 18px 46px rgba(0,0,0,.28);
}
body.hd-scrolled .hd-site-header .hd-primary-nav > ul > li > a {
  color: rgba(244,251,255,.88);
}
body.hd-scrolled .hd-site-header .hd-primary-nav > ul > li > a:hover,
body.hd-scrolled .hd-site-header .hd-primary-nav .current-menu-item > a {
  color: #fff;
  background: rgba(123,208,255,.12);
}
body.hd-scrolled .hd-header-row {
  min-height: 74px;
}
.hd-floating-call {
  position: fixed;
  right: 18px;
  top: 50%;
  z-index: 99;
  display: inline-grid;
  place-items: center;
  width: 62px;
  height: 62px;
  padding: 0;
  border-radius: 999px;
  color: #fff;
  text-decoration: none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.14), transparent 52%),
    linear-gradient(135deg, #0b79bd, #043458);
  border: 1px solid rgba(123,208,255,.5);
  box-shadow: 0 22px 44px rgba(3,28,58,.28), 0 0 0 6px rgba(123,208,255,.08), 0 0 30px rgba(63,178,244,.28);
  opacity: 0;
  pointer-events: none;
  transform: translate(18px, -50%) scale(.94);
  transition: opacity 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}
.hd-floating-call::before {
  content: "";
  position: absolute;
  inset: -9px;
  border-radius: inherit;
  border: 1px solid rgba(123,208,255,.58);
  opacity: 0;
  animation: hdFloatingCallPulse 2.25s ease-out infinite;
}
.hd-floating-call:hover,
.hd-floating-call:focus-visible {
  box-shadow: 0 24px 48px rgba(3,28,58,.34), 0 0 0 7px rgba(123,208,255,.1), 0 0 38px rgba(63,178,244,.42);
}
body.hd-scrolled .hd-floating-call {
  opacity: 1;
  pointer-events: auto;
  transform: translate(0, -50%) scale(1);
}
.hd-floating-call strong,
.hd-floating-call em {
  display: none !important;
}
.hd-floating-call .hd-phone-icon {
  width: 36px;
  height: 36px;
  flex-basis: 36px;
  background: rgba(255,255,255,.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 0 18px rgba(123,208,255,.4);
}
.hd-floating-call .hd-phone-icon::before {
  width: 18px;
  height: 18px;
}
.hd-topbar {
  background: var(--hd-navy);
  color: var(--hd-sky);
  font-size: 13px;
}
.hd-topbar .hd-wrap {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 7px 0;
}
.hd-header-row {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 34px;
  min-height: 86px;
}
.hd-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  min-width: 148px;
}
.hd-brand-mark {
  width: 66px;
  height: 66px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--hd-white);
  font-weight: 800;
  letter-spacing: 0;
  background: linear-gradient(135deg, var(--hd-navy), var(--hd-blue));
  box-shadow: 0 8px 20px rgba(12, 92, 143, 0.24);
}
.hd-brand-text strong {
  display: block;
  font-size: 24px;
  line-height: 1;
  color: var(--hd-navy);
}
.hd-brand-logo img {
  display: block;
  max-width: 160px !important;
  max-height: 118px !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain;
}
.hd-brand-logo .custom-logo {
  display: block;
  max-width: 160px !important;
  max-height: 118px !important;
  width: auto !important;
  height: auto !important;
}
.hd-brand-text span {
  display: block;
  font-size: 13px;
  color: var(--hd-slate);
  margin-top: 4px;
}
.hd-menu-toggle, .hd-menu-button, .hd-mobile-menu { display: none; }
.hd-primary-nav { justify-self: end; }
.hd-primary-nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 3px;
}
.hd-primary-nav li { position: relative; }
.hd-primary-nav a {
  display: block;
  padding: 12px 10px;
  text-decoration: none;
  font-weight: 700;
  font-size: 14px;
  color: var(--hd-charcoal);
  border-radius: var(--hd-radius);
}
.hd-primary-nav a:hover, .hd-primary-nav .current-menu-item > a {
  background: var(--hd-muted);
  color: var(--hd-blue);
}
.hd-primary-nav .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 250px;
  display: grid;
  gap: 2px;
  padding: 10px;
  background: var(--hd-white);
  border: 1px solid var(--hd-line);
  box-shadow: var(--hd-shadow);
  border-radius: var(--hd-radius);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: 160ms ease;
}
.hd-primary-nav li:hover > .sub-menu,
.hd-primary-nav li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.hd-header-actions {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.hd-btn {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  padding: 11px 18px;
  border-radius: var(--hd-radius);
  text-decoration: none;
  font-weight: 800;
  border: 1px solid transparent;
  line-height: 1.2;
  text-align: center;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}
.hd-btn--primary {
  background: linear-gradient(135deg, var(--hd-blue), #0878b7);
  color: var(--hd-white);
  box-shadow: 0 12px 22px rgba(12, 92, 143, 0.24);
}
.hd-btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 34px rgba(11, 95, 153, 0.34);
}
.hd-btn--primary::after {
  content: "";
  position: absolute;
  inset: -40% auto -40% -65%;
  width: 44%;
  transform: skewX(-20deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.34), transparent);
  transition: left 520ms ease;
  pointer-events: none;
}
.hd-btn--primary:hover::after {
  left: 118%;
}
.hd-btn > span {
  position: relative;
  z-index: 1;
}
.hd-btn--call {
  animation: hdCallBreath 2.35s ease-in-out infinite, hdCallShake 4.8s ease-in-out infinite;
}
.hd-btn--call::after {
  animation: hdCallSweep 3.4s ease-in-out infinite;
}
.hd-phone-icon {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  border-radius: 999px;
  color: inherit;
  background: rgba(255,255,255,.16);
}
.hd-phone-icon::before {
  content: "";
  width: 15px;
  height: 15px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1C10.61 21 3 13.39 3 4c0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1C10.61 21 3 13.39 3 4c0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.hd-header-review-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 12px;
  border-radius: 999px;
  color: var(--hd-navy);
  background: rgba(232,247,255,.78);
  border: 1px solid rgba(11,95,153,.22);
  box-shadow: 0 12px 28px rgba(3,28,58,.09), inset 0 1px 0 rgba(255,255,255,.72);
  font-weight: 900;
  white-space: nowrap;
}
.hd-google-mark {
  display: block;
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
}
.hd-header-review-badge strong {
  color: #ffc247;
  letter-spacing: 0;
  line-height: 1;
}
.hd-header-review-badge .hd-google-word {
  color: var(--hd-navy);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.hd-header-review-badge .hd-google-rating {
  color: var(--hd-navy);
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
}
@keyframes hdCallBreath {
  0%, 100% { box-shadow: 0 14px 26px rgba(11,95,153,.28), 0 0 0 0 rgba(123,208,255,.24); }
  50% { box-shadow: 0 22px 38px rgba(11,95,153,.4), 0 0 0 8px rgba(123,208,255,0); }
}
@keyframes hdCallShake {
  0%, 72%, 100% { transform: translateX(0) rotate(0); }
  76% { transform: translateX(-2px) rotate(-1deg); }
  80% { transform: translateX(2px) rotate(1deg); }
  84% { transform: translateX(-1px) rotate(-.6deg); }
  88% { transform: translateX(1px) rotate(.6deg); }
}
@keyframes hdCallSweep {
  0%, 42% { left: -65%; opacity: 0; }
  54% { opacity: 1; }
  72%, 100% { left: 118%; opacity: 0; }
}
@keyframes hdFloatingCallPulse {
  0% { opacity: .58; transform: scale(.86); }
  70%, 100% { opacity: 0; transform: scale(1.18); }
}
@keyframes hdBadgeSweep {
  0%, 35% { left: -42%; opacity: 0; }
  48% { opacity: 1; }
  68%, 100% { left: 118%; opacity: 0; }
}
@keyframes hdLedTitleShine {
  0%, 24% { background-position: -175% 50%; opacity: 0; }
  40% { opacity: .68; }
  58% { background-position: 74% 50%; opacity: 1; }
  82%, 100% { background-position: 190% 50%; opacity: 0; }
}
@keyframes hdTitleGlow {
  0%, 100% { text-shadow: 0 2px 0 rgba(1,18,34,.88), 0 0 16px rgba(123,208,255,.28), 0 0 34px rgba(6,98,155,.2); }
  50% { text-shadow: 0 2px 0 rgba(1,18,34,.88), 0 0 22px rgba(145,224,255,.46), 0 0 46px rgba(20,139,208,.28); }
}
@keyframes hdServiceAreaPulse {
  0%, 100% { box-shadow: inset 0 0 0 1px rgba(123,208,255,.34), 0 0 18px rgba(123,208,255,.14), 0 0 0 0 rgba(123,208,255,.2); }
  50% { box-shadow: inset 0 0 0 1px rgba(123,208,255,.78), 0 0 30px rgba(80,190,255,.34), 0 0 0 7px rgba(123,208,255,0); }
}
.hd-btn--secondary {
  background: var(--hd-sky);
  color: var(--hd-navy);
}
.hd-btn--ghost {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.48);
  color: var(--hd-white);
}
.hd-header-actions .hd-btn--ghost {
  color: var(--hd-navy);
  background: var(--hd-muted);
  border-color: var(--hd-line);
}
.hd-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 24px;
}
.hd-home-hero, .hd-page-hero {
  position: relative;
  isolation: isolate;
  min-height: 680px;
  display: grid;
  align-items: stretch;
  color: var(--hd-white);
  background: var(--hd-navy) center/cover no-repeat;
  background-image: linear-gradient(90deg, rgba(6, 36, 61, .92), rgba(6, 36, 61, .62), rgba(6, 36, 61, .22)), var(--hero-image);
}
.hd-page-hero {
  min-height: 520px;
}
.hd-home-hero__shade, .hd-page-hero__shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(6, 36, 61, .08), rgba(6, 36, 61, .54)),
    radial-gradient(circle at 20% 20%, rgba(12, 92, 143, .22), transparent 34%);
}
.hd-home-hero__grid, .hd-page-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, .72fr);
  gap: 44px;
  align-items: center;
  padding: 72px 0 82px;
}
.hd-home-hero__copy h1, .hd-page-hero__copy h1 {
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(42px, 6vw, 72px);
  line-height: 1.02;
  margin: 14px 0 18px;
  letter-spacing: 0;
  max-width: 820px;
  overflow-wrap: normal;
  text-wrap: balance;
}
.hd-page-hero__copy h1 { font-size: clamp(36px, 5vw, 58px); }
.hd-home-hero__copy p, .hd-page-hero__copy p {
  font-size: 19px;
  max-width: 720px;
  color: rgba(255, 255, 255, .88);
}
.hd-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #6fbce6;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .11em;
}
.hd-eyebrow::before {
  content: "";
  width: 34px;
  height: 2px;
  background: currentColor;
}
.hd-hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}
.hd-hero-badges span {
  border: 1px solid rgba(255, 255, 255, .24);
  background: rgba(255, 255, 255, .11);
  color: rgba(255, 255, 255, .92);
  padding: 9px 12px;
  border-radius: var(--hd-radius);
  font-weight: 700;
  font-size: 13px;
}
.hd-hero-form, .hd-form-shell {
  background: var(--hd-white);
  color: var(--hd-charcoal);
  border-radius: var(--hd-radius);
  box-shadow: var(--hd-shadow);
  border: 1px solid rgba(255, 255, 255, .3);
}
.hd-hero-form { padding: 24px; }
.hd-form-shell { padding: 26px; }
.hd-section { padding: 86px 0; }
.hd-section--cool { background: var(--hd-muted); }
.hd-section--navy {
  background: linear-gradient(135deg, var(--hd-navy), #0b4168);
  color: var(--hd-white);
}
.hd-section-head {
  max-width: 760px;
  margin-bottom: 34px;
}
.hd-section-head h2, .hd-split h2, .hd-cta-band h2 {
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.1;
  margin: 12px 0 14px;
  color: var(--hd-navy);
}
.hd-section-head p, .hd-split p {
  font-size: 17px;
  color: var(--hd-slate);
}
.hd-section--navy .hd-section-head h2,
.hd-section--navy .hd-section-head p,
.hd-section--navy .hd-eyebrow,
.hd-cta-band h2 { color: inherit; }
.hd-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr);
  gap: 54px;
  align-items: center;
}
.hd-image-frame {
  margin: 0;
  border-radius: var(--hd-radius);
  overflow: hidden;
  box-shadow: var(--hd-shadow);
}
.hd-image-frame img {
  width: 100%;
  min-height: 410px;
  object-fit: cover;
}
.hd-band--trust {
  padding: 0;
  background: var(--hd-white);
  border-bottom: 1px solid var(--hd-line);
}
.hd-trust-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  padding: 18px 0;
}
.hd-mini-card {
  background: var(--hd-muted);
  border: 1px solid var(--hd-line);
  border-radius: var(--hd-radius);
  padding: 16px;
  color: var(--hd-navy);
  font-weight: 800;
}
.hd-card-grid, .hd-feature-grid, .hd-process-grid, .hd-stat-grid, .hd-area-card-grid, .hd-related-grid, .hd-testimonial-grid {
  display: grid;
  gap: 22px;
}
.hd-card-grid--services { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hd-service-card, .hd-feature-grid article, .hd-process-grid article, .hd-area-card-grid article, .hd-related-grid a, .hd-testimonial-grid article, .hd-contact-card {
  background: var(--hd-white);
  border: 1px solid var(--hd-line);
  border-radius: var(--hd-radius);
  padding: 22px;
  box-shadow: 0 8px 24px rgba(6, 36, 61, .06);
}
.hd-service-card {
  position: relative;
  overflow: hidden;
  padding: 0 0 22px;
}
.hd-service-card img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}
.hd-service-card h3, .hd-service-card p, .hd-service-card a {
  margin-left: 20px;
  margin-right: 20px;
}
.hd-service-card h3, .hd-feature-grid h3, .hd-process-grid h3, .hd-area-card-grid h3 {
  color: var(--hd-navy);
  margin-bottom: 8px;
}
.hd-service-card p, .hd-feature-grid p, .hd-process-grid p, .hd-area-card-grid p {
  color: var(--hd-slate);
}
.hd-service-card a, .hd-area-card-grid a, .hd-related-grid a {
  color: var(--hd-blue);
  font-weight: 900;
  text-decoration: none;
}
.hd-card-number {
  position: absolute;
  top: 14px;
  left: 14px;
  color: var(--hd-white);
  background: linear-gradient(135deg, #0b79bd, #7bd0ff);
  padding: 5px 9px;
  border-radius: 999px;
  font-weight: 900;
}
.hd-feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hd-process-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hd-process-grid span {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--hd-sky);
  color: var(--hd-blue);
  font-weight: 900;
}
.hd-stat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hd-stat-grid div {
  border-left: 2px solid rgba(111, 188, 230, .6);
  padding-left: 18px;
}
.hd-stat-grid strong {
  display: block;
  font-size: 21px;
}
.hd-stat-grid span {
  display: block;
  color: rgba(255, 255, 255, .78);
  margin-top: 6px;
}
.hd-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.hd-gallery-grid figure {
  margin: 0;
  position: relative;
  overflow: hidden;
  border-radius: var(--hd-radius);
  background: var(--hd-muted);
}
.hd-gallery-grid img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}
.hd-gallery-grid figcaption {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  padding: 8px 10px;
  border-radius: var(--hd-radius);
  background: rgba(6, 36, 61, .82);
  color: var(--hd-white);
  font-size: 13px;
  font-weight: 800;
}
.hd-partner-panel {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(320px, 1fr);
  gap: 40px;
  align-items: center;
}
.hd-logo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.hd-logo-grid span, .hd-filter-row span, .hd-location-list span {
  display: block;
  border: 1px solid var(--hd-line);
  border-radius: var(--hd-radius);
  background: var(--hd-white);
  padding: 14px;
  font-weight: 900;
  color: var(--hd-navy);
}
.hd-cta-band {
  padding: 70px 0;
  color: var(--hd-white);
  background: linear-gradient(135deg, var(--hd-navy), var(--hd-blue));
}
.hd-cta-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: center;
}
.hd-check-list {
  display: grid;
  gap: 10px;
  padding: 0;
  list-style: none;
  margin-top: 22px;
}
.hd-check-list li {
  position: relative;
  padding-left: 30px;
  font-weight: 800;
  color: var(--hd-navy);
}
.hd-check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .45em;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--hd-blue);
}
.hd-related-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hd-related-grid a span {
  display: block;
  color: var(--hd-slate);
  font-weight: 500;
  margin-top: 6px;
}
.hd-faq-list {
  display: grid;
  gap: 12px;
}
.hd-faq-list details {
  border: 1px solid var(--hd-line);
  background: var(--hd-white);
  border-radius: var(--hd-radius);
  padding: 18px 20px;
}
.hd-faq-list summary {
  cursor: pointer;
  font-weight: 900;
  color: var(--hd-navy);
}
.hd-faq-list p { color: var(--hd-slate); margin-bottom: 0; }
.hd-area-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hd-location-directory__group { margin-top: 34px; }
.hd-location-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.hd-hamptons-highlight {
  background: linear-gradient(135deg, #e8f5fb, #ffffff);
}
.hd-map-placeholder {
  min-height: 320px;
  display: grid;
  place-items: center;
  text-align: center;
  border: 1px solid var(--hd-line);
  border-radius: var(--hd-radius);
  background:
    linear-gradient(135deg, rgba(12,92,143,.12), rgba(255,255,255,.8)),
    repeating-linear-gradient(35deg, rgba(12,92,143,.08) 0 2px, transparent 2px 18px);
}
.hd-map-placeholder span {
  display: block;
  color: var(--hd-navy);
  font-size: 28px;
  font-weight: 900;
}
.hd-testimonial-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hd-testimonial-grid p {
  color: var(--hd-charcoal);
  font-size: 18px;
}
.hd-testimonial-grid span {
  color: var(--hd-slate);
  font-weight: 800;
}
.hd-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 20px;
}
.hd-filter-row span { padding: 9px 12px; }
.hd-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(360px, 1fr);
  gap: 44px;
  align-items: start;
}
.hd-contact-card {
  margin-top: 14px;
  display: grid;
  gap: 4px;
}
.hd-contact-card strong { color: var(--hd-navy); }
.hd-contact-card span { color: var(--hd-slate); }
.hd-contact-fast-call {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 12px 0 8px;
  padding: 10px 12px;
  border-radius: 999px;
  background: #eef7fc;
  border: 1px solid rgba(12,92,143,.16);
}
.hd-contact-fast-call span {
  color: var(--hd-slate);
  font-weight: 800;
}
.hd-contact-fast-call a {
  color: var(--hd-blue);
  font-weight: 900;
  text-decoration: none;
}
.hd-form-shell--contact {
  padding: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 100% 0%, rgba(123,208,255,.2), transparent 34%),
    linear-gradient(180deg, #061f35, #031827);
  border: 1px solid rgba(123,208,255,.18);
  box-shadow: 0 28px 64px rgba(3,28,58,.16);
}
.hd-contact-form-note {
  display: grid;
  gap: 2px;
  padding: 18px 20px;
  color: #fff;
  background: linear-gradient(135deg, #031827, #0b5f99);
}
.hd-contact-form-note strong {
  font-family: Sora, Manrope, sans-serif;
  font-weight: 900;
}
.hd-contact-form-note span {
  color: rgba(235,248,255,.78);
}
.hd-form-shell--contact .hd-estimate-form--multi {
  border-radius: 0 0 18px 18px;
  border: 0;
  background:
    radial-gradient(circle at 16% 0%, rgba(123,208,255,.22), transparent 34%),
    radial-gradient(circle at 94% 8%, rgba(39,145,210,.34), transparent 30%),
    linear-gradient(145deg, rgba(6,45,75,.96), rgba(3,24,39,.98));
  box-shadow: none;
}
.hd-form-shell--contact .hd-estimate-form--multi::before {
  opacity: .66;
}
.hd-form-shell--contact .hd-estimate-form--multi h3,
.hd-form-shell--contact .hd-form-topline span {
  text-shadow: 0 0 18px rgba(123,208,255,.42);
}
.hd-form-shell--contact .hd-step-meter span,
.hd-form-shell--contact .hd-service-options span,
.hd-form-shell--contact .hd-estimate-form--multi input,
.hd-form-shell--contact .hd-estimate-form--multi select,
.hd-form-shell--contact .hd-estimate-form--multi textarea {
  background-color: rgba(2,20,34,.38);
}
.hd-form-shell--contact .hd-service-options input:checked + span {
  background: linear-gradient(135deg, #ffffff, #eaf8ff);
}
.hd-thank-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .8fr);
  gap: 22px;
  align-items: stretch;
}
.hd-thank-card {
  padding: 28px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(12,92,143,.12);
  box-shadow: 0 20px 42px rgba(6,36,61,.1);
}
.hd-thank-card--primary {
  color: #fff;
  background:
    radial-gradient(circle at 92% 12%, rgba(123,208,255,.24), transparent 34%),
    linear-gradient(135deg, #031827, #0b5f99);
}
.hd-thank-card--primary h2,
.hd-thank-card--primary p {
  color: inherit;
}
.hd-thank-card h3 {
  margin-top: 0;
  color: var(--hd-navy);
  font-family: Sora, Manrope, sans-serif;
}
.hd-placeholder-note {
  border-left: 4px solid var(--hd-wood);
  background: #fff8f1;
  padding: 16px 18px;
  border-radius: var(--hd-radius);
  color: #5c3b1b;
}
.hd-nearby-links {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.hd-nearby-links a {
  text-decoration: none;
  color: var(--hd-blue);
  background: var(--hd-muted);
  border: 1px solid var(--hd-line);
  border-radius: var(--hd-radius);
  padding: 12px;
  font-weight: 800;
}
.hd-estimate-form h3 {
  margin: 0 0 6px;
  color: var(--hd-navy);
  font-size: 26px;
}
.hd-estimate-form p {
  color: var(--hd-slate);
  margin-top: 0;
}
.hd-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.hd-field--full { grid-column: 1 / -1; }
.hd-estimate-form label {
  display: grid;
  gap: 6px;
  color: var(--hd-navy);
  font-weight: 800;
  font-size: 14px;
}
.hd-estimate-form input,
.hd-estimate-form select,
.hd-estimate-form textarea {
  width: 100%;
  border: 1px solid var(--hd-line);
  border-radius: var(--hd-radius);
  min-height: 44px;
  padding: 10px 12px;
  font: inherit;
  color: var(--hd-charcoal);
  background: var(--hd-white);
}
.hd-estimate-form textarea { min-height: 114px; resize: vertical; }
.hd-estimate-form .hd-consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-weight: 600;
  color: var(--hd-slate);
}
.hd-estimate-form .hd-consent input {
  width: 18px;
  min-height: 18px;
  margin-top: 4px;
}
.hd-honeypot { position: absolute; left: -5000px; width: 1px; height: 1px; overflow: hidden; }
.hd-form-success, .hd-form-error {
  padding: 14px;
  border-radius: var(--hd-radius);
  margin-bottom: 16px;
  font-weight: 800;
}
.hd-form-success { background: #e8f7ee; color: #155b33; }
.hd-form-error { background: #fff0f0; color: #7a1b1b; }
.hd-form-submit { width: 100%; cursor: pointer; }
.hd-site-footer {
  color: rgba(255, 255, 255, .78);
  background: var(--hd-navy);
  padding: 64px 0 0;
  margin-bottom: 0;
}
.hd-footer-grid {
  display: grid;
  grid-template-columns: minmax(280px, 1.15fr) repeat(2, minmax(180px, .55fr));
  gap: 36px;
  align-items: center;
}
.hd-site-footer h3, .hd-site-footer strong {
  color: var(--hd-white);
}
.hd-site-footer ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 9px;
}
.hd-site-footer a {
  color: rgba(255, 255, 255, .8);
  text-decoration: none;
}
.hd-footer-bottom {
  display: flex;
  justify-content: center;
  gap: 20px;
  border-top: 1px solid rgba(255, 255, 255, .14);
  margin-top: 36px;
  padding: 18px 0;
  font-size: 13px;
}

/* Premium v2 contractor presentation */
.hd-site-header {
  box-shadow: 0 10px 30px rgba(6, 36, 61, .08);
}
.hd-topbar {
  background: linear-gradient(90deg, #041b2e, #0b4f7d);
}
.hd-primary-nav > ul > li > a {
  text-transform: uppercase;
  letter-spacing: .02em;
  font-size: 13px;
}
.hd-primary-nav .sub-menu {
  min-width: 295px;
  border-top: 4px solid #0c76b2;
}
.hd-primary-nav .sub-menu a {
  padding: 11px 12px;
  font-weight: 800;
}
.hd-home-hero--v2 {
  min-height: 760px;
  background-image:
    linear-gradient(90deg, rgba(4, 27, 46, .96) 0%, rgba(6, 36, 61, .84) 43%, rgba(6, 36, 61, .34) 100%),
    var(--hero-image);
}
.hd-home-hero__texture {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(6,36,61,.38)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 86px);
  mix-blend-mode: soft-light;
}
.hd-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 9px 13px;
  border: 1px solid rgba(111, 188, 230, .42);
  background: rgba(12, 92, 143, .28);
  border-radius: 999px;
  color: #b9e7ff;
  font-weight: 900;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: .08em;
}
.hd-home-hero__copy h1 mark {
  position: relative;
  display: inline-block;
  color: #dff7ff;
  background: none;
  border: 0;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
  white-space: nowrap;
  font-size: .78em;
  line-height: .98;
  text-shadow: 0 2px 0 rgba(1,18,34,.88), 0 0 16px rgba(123,208,255,.28), 0 0 34px rgba(6,98,155,.2);
  -webkit-text-fill-color: #dff7ff;
  animation: hdTitleGlow 4.8s ease-in-out infinite;
}
.hd-home-hero__copy h1 mark::after {
  content: attr(data-hd-title);
  position: absolute;
  inset: 0;
  pointer-events: none;
  color: transparent;
  background: linear-gradient(102deg, transparent 0%, transparent 35%, rgba(255,255,255,.96) 47%, rgba(123,220,255,.82) 52%, transparent 64%, transparent 100%);
  background-size: 230% 100%;
  background-position: -175% 50%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: none;
  animation: hdLedTitleShine 4.2s ease-in-out infinite;
}
.hd-mobile-title-break {
  display: inline;
}
.hd-hero-review-badge {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 9px 12px;
  margin-bottom: 14px;
  border-radius: 999px;
  color: #fff;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 14px 34px rgba(0,0,0,.14);
}
.hd-hero-review-badge strong {
  color: #fff;
  font-weight: 900;
  white-space: nowrap;
}
.hd-hero-review-badge span {
  color: rgba(255,255,255,.76);
  font-size: 13px;
}
.hd-hero-proof {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  max-width: 720px;
  margin-top: 26px;
}
.hd-hero-proof div {
  border-left: 3px solid #77c7ef;
  background: rgba(255,255,255,.1);
  padding: 14px 16px;
  border-radius: var(--hd-radius);
}
.hd-hero-proof strong,
.hd-hero-proof span {
  display: block;
}
.hd-hero-proof span {
  color: rgba(255,255,255,.78);
  font-size: 14px;
}
.hd-source-style-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}
.hd-source-style-line span {
  color: rgba(255,255,255,.88);
  border: 1px solid rgba(255,255,255,.22);
  padding: 7px 10px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 13px;
}
.hd-hero-stack {
  display: grid;
  gap: 0;
  align-self: center;
}
.hd-hero-stack .hd-hero-form {
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.hd-offer-card {
  background: linear-gradient(135deg, #ffffff, #e9f7ff);
  color: var(--hd-navy);
  border-radius: var(--hd-radius);
  padding: 22px 24px;
  box-shadow: var(--hd-shadow);
  border-top: 5px solid var(--hd-wood);
}
.hd-offer-card span {
  display: inline-block;
  color: var(--hd-blue);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .1em;
}
.hd-offer-card strong {
  display: block;
  font-size: 26px;
  line-height: 1.1;
  margin-top: 6px;
}
.hd-offer-card p {
  margin-bottom: 0;
  color: var(--hd-slate);
}
.hd-quick-strip {
  background: #ffffff;
  border-bottom: 1px solid var(--hd-line);
  box-shadow: 0 16px 28px rgba(6,36,61,.06);
}
.hd-quick-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}
.hd-quick-grid article {
  padding: 22px 24px;
  border-right: 1px solid var(--hd-line);
}
.hd-quick-grid article:first-child {
  border-left: 1px solid var(--hd-line);
}
.hd-quick-grid span {
  display: block;
  color: var(--hd-blue);
  font-weight: 900;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .1em;
  overflow-wrap: anywhere;
}
.hd-quick-grid strong {
  display: block;
  color: var(--hd-navy);
  font-size: 17px;
  line-height: 1.25;
  margin-top: 5px;
}
.hd-section--authority {
  background:
    linear-gradient(90deg, #fff 0%, #fff 52%, #eef7fc 52%, #eef7fc 100%);
}
.hd-authority-grid,
.hd-gallery-showcase__grid,
.hd-review-grid,
.hd-why-layout {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(420px, 1fr);
  gap: 58px;
  align-items: center;
}
.hd-lead {
  font-size: 20px;
  color: var(--hd-navy);
  font-weight: 700;
}
.hd-highlight-list {
  display: grid;
  gap: 10px;
  margin-top: 24px;
}
.hd-highlight-list span {
  display: block;
  padding: 12px 14px;
  border-radius: var(--hd-radius);
  border-left: 4px solid var(--hd-blue);
  background: var(--hd-muted);
  color: var(--hd-navy);
  font-weight: 900;
}
.hd-image-collage {
  position: relative;
  min-height: 560px;
}
.hd-image-collage img {
  position: absolute;
  object-fit: cover;
  border-radius: var(--hd-radius);
  box-shadow: var(--hd-shadow);
}
.hd-collage-main {
  width: 78%;
  height: 440px;
  right: 0;
  top: 34px;
}
.hd-collage-small {
  width: 42%;
  height: 210px;
}
.hd-collage-a {
  left: 0;
  top: 0;
}
.hd-collage-b {
  left: 28px;
  bottom: 0;
}
.hd-collage-badge {
  position: absolute;
  right: 32px;
  bottom: 28px;
  width: 230px;
  background: var(--hd-navy);
  color: #fff;
  border-radius: var(--hd-radius);
  padding: 18px;
  box-shadow: var(--hd-shadow);
}
.hd-collage-badge strong,
.hd-collage-badge span {
  display: block;
}
.hd-collage-badge span {
  color: rgba(255,255,255,.74);
  font-size: 13px;
}
.hd-section--deep {
  background:
    radial-gradient(circle at 18% 5%, rgba(111,188,230,.18), transparent 35%),
    linear-gradient(135deg, #061f35, #083b5e);
  color: #fff;
}
.hd-section--deep .hd-section-head h2,
.hd-section--deep .hd-section-head p {
  color: #fff;
}
.hd-section-head--center {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.hd-section-head--center .hd-eyebrow {
  justify-content: center;
}
.hd-premium-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.hd-premium-service-card a {
  display: grid;
  grid-template-rows: 220px 1fr;
  position: relative;
  min-height: 100%;
  overflow: hidden;
  border-radius: var(--hd-radius);
  text-decoration: none;
  color: inherit;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.18);
}
.hd-premium-service-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hd-premium-service-card div {
  padding: 22px;
  background: #fff;
  color: var(--hd-charcoal);
}
.hd-premium-service-card h3 {
  color: var(--hd-navy);
  margin: 0 0 8px;
}
.hd-premium-service-card p {
  color: var(--hd-slate);
  margin: 0 0 14px;
}
.hd-premium-service-card strong {
  color: var(--hd-blue);
}
.hd-service-index {
  position: absolute;
  top: 14px;
  left: 14px;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  background: linear-gradient(135deg, #0b79bd, #7bd0ff);
  color: #fff;
  border-radius: 50%;
  font-weight: 900;
}
.hd-wide-service-callout {
  margin-top: 24px;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  padding: 28px;
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--hd-radius);
}
.hd-wide-service-callout span {
  color: #77c7ef;
  font-weight: 900;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: .1em;
}
.hd-wide-service-callout h3 {
  margin: 8px 0 0;
  max-width: 780px;
  font-size: 24px;
}
.hd-gallery-showcase {
  background: #fff;
}
.hd-project-gallery-section {
  background:
    radial-gradient(circle at 10% 0%, rgba(123,208,255,.16), transparent 34%),
    linear-gradient(180deg, #ffffff, #f4fbff);
}
.hd-gallery-showcase__grid--boxed {
  padding: 26px;
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(238,247,252,.96)),
    #fff;
  border: 1px solid rgba(12,92,143,.12);
  box-shadow: 0 26px 62px rgba(6,36,61,.12);
}
.hd-project-gallery {
  display: grid;
  gap: 14px;
}
.hd-gallery-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.hd-gallery-tabs button {
  min-height: 40px;
  padding: 0 13px;
  border-radius: 999px;
  border: 1px solid rgba(12,92,143,.16);
  color: var(--hd-navy);
  background: #fff;
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}
.hd-gallery-tabs button.is-active {
  color: #fff;
  background: linear-gradient(135deg, #0b79bd, #06365b);
  border-color: rgba(123,208,255,.4);
  box-shadow: 0 12px 24px rgba(11,95,153,.2);
}
.hd-project-gallery__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.hd-project-card {
  position: relative;
  min-height: 244px;
  overflow: hidden;
  border-radius: 16px;
  color: #fff;
  background: #061f35;
  box-shadow: 0 18px 34px rgba(6,36,61,.14);
}
.hd-project-card.is-hidden {
  display: none;
}
.hd-project-card img {
  width: 100%;
  height: 100%;
  min-height: 244px;
  object-fit: cover;
  transform: scale(1.02);
}
.hd-project-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 26%, rgba(3,24,39,.9) 100%);
}
.hd-project-card div {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 1;
}
.hd-project-card span {
  display: inline-flex;
  margin-bottom: 8px;
  padding: 6px 9px;
  border-radius: 999px;
  color: #dff6ff;
  background: rgba(3,24,39,.62);
  border: 1px solid rgba(123,208,255,.28);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.hd-project-card h3 {
  margin: 0 0 5px;
  color: #fff;
  font-family: Sora, Manrope, sans-serif;
  line-height: 1.1;
}
.hd-project-card p {
  margin: 0;
  color: rgba(235,248,255,.82);
  font-size: 14px;
  line-height: 1.45;
}
.hd-mosaic-gallery {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  grid-auto-rows: 170px;
  gap: 14px;
}
.hd-mosaic-gallery figure {
  position: relative;
  overflow: hidden;
  margin: 0;
  border-radius: var(--hd-radius);
}
.hd-mosaic-gallery figure:first-child {
  grid-row: span 2;
}
.hd-mosaic-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hd-mosaic-gallery figcaption {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  border-radius: var(--hd-radius);
  padding: 8px 10px;
  color: #fff;
  background: rgba(6,36,61,.82);
  font-weight: 800;
  font-size: 13px;
}
.hd-credibility-band {
  padding: 48px 0;
}
.hd-feature-grid--v2 article {
  border-top: 4px solid var(--hd-blue);
}
.hd-feature-grid--v2 article span {
  color: var(--hd-wood);
  font-weight: 900;
}
.hd-quote-cta {
  padding: 76px 0;
  color: #fff;
  text-align: center;
  background:
    linear-gradient(135deg, rgba(6,36,61,.93), rgba(12,92,143,.88)),
    var(--hero-image);
}
.hd-quote-cta span {
  color: #77c7ef;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .1em;
}
.hd-quote-cta h2 {
  max-width: 820px;
  margin: 10px auto;
  font-size: clamp(34px, 5vw, 58px);
  line-height: 1.05;
}
.hd-quote-cta p {
  max-width: 680px;
  margin: 0 auto 24px;
  color: rgba(255,255,255,.8);
}
.hd-review-section {
  background: linear-gradient(135deg, #eef7fc, #ffffff);
}
.hd-testimonial-grid--v2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.hd-testimonial-grid--v2 article {
  border-top: 4px solid var(--hd-wood);
}
.hd-google-strip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.hd-google-strip strong {
  color: #fff;
  font-weight: 900;
}
.hd-google-strip em {
  color: rgba(255,255,255,.74);
  font-style: normal;
}
.hd-hero-title-wrap {
  position: relative;
  max-width: 860px;
}
.hd-pulse-points {
  position: absolute;
  inset: -8px auto auto -18px;
  pointer-events: none;
}
.hd-pulse-points span {
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #7bd0ff;
  box-shadow: 0 0 0 0 rgba(123,208,255,.56);
  animation: hdPulse 2.4s infinite;
}
.hd-pulse-points span:nth-child(1) { left: 0; top: 10px; }
.hd-pulse-points span:nth-child(2) { left: 22px; top: 70px; animation-delay: .45s; background: #c79b68; }
.hd-pulse-points span:nth-child(3) { left: 6px; top: 138px; animation-delay: .9s; width: 7px; height: 7px; }
@keyframes hdPulse {
  0% { transform: scale(.85); box-shadow: 0 0 0 0 rgba(123,208,255,.58); opacity: 1; }
  70% { transform: scale(1); box-shadow: 0 0 0 18px rgba(123,208,255,0); opacity: .95; }
  100% { transform: scale(.85); box-shadow: 0 0 0 0 rgba(123,208,255,0); opacity: 1; }
}
.hd-stat-card {
  position: relative;
  padding: 24px 22px 24px 86px;
  min-height: 146px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: var(--hd-radius);
  background: linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.04));
  overflow: hidden;
}
.hd-stat-card svg {
  position: absolute;
  left: 22px;
  top: 26px;
  width: 44px;
  height: 44px;
  color: #7bd0ff;
  padding: 8px;
  border-radius: 50%;
  background: rgba(123,208,255,.13);
}
.hd-stat-grid .hd-stat-card {
  border-left: 1px solid rgba(255,255,255,.18);
}
.hd-material-logo-row {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 22px;
}
.hd-material-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 72px;
  border-radius: var(--hd-radius);
  border: 1px solid var(--hd-line);
  background: #fff;
  color: var(--hd-navy);
  font-weight: 900;
  letter-spacing: 0;
  box-shadow: 0 10px 24px rgba(6,36,61,.07);
}
.hd-material-logo--trex {
  background: linear-gradient(135deg, #111, #393939);
  color: #fff;
  font-size: 24px;
  text-transform: uppercase;
}
.hd-material-logo--timbertech {
  color: #0b3b52;
  font-size: 22px;
}
.hd-material-logo--mahogany {
  color: #fff;
  background: linear-gradient(135deg, #5b2116, #b65c2f);
}
.hd-material-logo--cedar {
  color: #fff;
  background: linear-gradient(135deg, #7b3f24, #d48a4b);
}
.hd-estimate-form--multi {
  position: relative;
  overflow: hidden;
  padding: 0;
  color: #fff;
  background:
    radial-gradient(circle at 18% 0%, rgba(255,255,255,.2), transparent 32%),
    radial-gradient(circle at 92% 7%, rgba(123,208,255,.34), transparent 32%),
    linear-gradient(145deg, rgba(245,252,255,.18), rgba(8,55,86,.34) 31%, rgba(4,27,46,.88) 100%);
  border: 1px solid rgba(196,233,255,.32);
  border-radius: 18px;
  box-shadow: 0 30px 64px rgba(3,28,58,.34), inset 0 1px 0 rgba(255,255,255,.16);
  backdrop-filter: blur(16px) saturate(125%);
}
.hd-estimate-form--multi::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.12), transparent 28%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0 1px, transparent 1px 58px);
  pointer-events: none;
}
.hd-form-topline,
.hd-estimate-form--multi h3,
.hd-estimate-form--multi > p,
.hd-step-meter,
.hd-form-steps,
.hd-form-success,
.hd-form-error {
  position: relative;
  z-index: 1;
}
.hd-form-topline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 18px 0;
}
.hd-form-topline span {
  color: #b9e7ff;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .12em;
}
.hd-form-topline strong {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 9px;
  color: #fff;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  font-size: 12px;
}
.hd-estimate-form--multi h3 {
  padding: 0 18px 3px;
  margin: 0;
  color: #f8fdff;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 26px;
  line-height: 1.12;
}
.hd-estimate-form--multi > p {
  padding: 0 18px;
  color: rgba(235,248,255,.82);
  margin: 5px 0 10px;
  font-size: 14px;
}
.hd-step-meter {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  padding: 0 18px 12px;
}
.hd-step-meter span {
  position: relative;
  padding: 6px 7px 6px 24px;
  border-radius: 999px;
  color: rgba(235,248,255,.64);
  background: rgba(255,255,255,.095);
  font-size: 12px;
  font-weight: 900;
}
.hd-step-meter span::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 50%;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,.34);
}
.hd-step-meter span.is-active {
  color: #fff;
  background: linear-gradient(135deg, rgba(123,208,255,.26), rgba(255,255,255,.1));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
.hd-step-meter span.is-active::before {
  background: #7bd0ff;
  box-shadow: 0 0 0 5px rgba(123,208,255,.16);
}
.hd-form-steps {
  padding: 0 18px 18px;
}
.hd-form-step {
  display: none;
  margin: 0;
  padding: 0;
  border: 0;
}
.hd-form-step.is-active {
  display: block;
}
.hd-form-step legend {
  color: #fff;
  font-weight: 900;
  margin-bottom: 9px;
}
.hd-service-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.hd-service-options label {
  position: relative;
  display: block;
  cursor: pointer;
}
.hd-service-options input {
  position: absolute;
  opacity: 0;
}
.hd-service-options span {
  display: grid;
  gap: 2px;
  min-height: 58px;
  padding: 11px 12px;
  border-radius: var(--hd-radius);
  border: 1px solid rgba(201,240,255,.24);
  background: rgba(255,255,255,.115);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  transition: 180ms ease;
}
.hd-service-options b {
  color: #fff;
}
.hd-service-options small {
  color: rgba(226,244,255,.72);
}
.hd-service-options input:checked + span {
  background: linear-gradient(135deg, #ffffff, #eaf8ff);
  border-color: #7bd0ff;
  box-shadow: 0 0 0 4px rgba(123,208,255,.15);
}
.hd-service-options input:checked + span b {
  color: var(--hd-navy);
}
.hd-service-options input:checked + span small {
  color: var(--hd-blue);
}
.hd-estimate-form--multi .hd-form-grid {
  gap: 10px;
}
.hd-estimate-form--multi label {
  color: rgba(244,251,255,.9);
}
.hd-estimate-form--multi input,
.hd-estimate-form--multi select,
.hd-estimate-form--multi textarea {
  color: #fff;
  border-color: rgba(201,240,255,.26);
  background: rgba(255,255,255,.11);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 10px 22px rgba(3,28,58,.08);
}
.hd-estimate-form--multi input::placeholder,
.hd-estimate-form--multi textarea::placeholder {
  color: rgba(255,255,255,.45);
}
.hd-estimate-form--multi select option {
  color: #102235;
}
.hd-estimate-form--multi textarea {
  min-height: 72px;
}
.hd-file-field input {
  padding: 9px;
}
.hd-form-actions {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  margin-top: 12px;
}
.hd-step-back {
  min-height: 44px;
  padding: 0 14px;
  color: #fff;
  border: 1px solid rgba(201,240,255,.24);
  border-radius: var(--hd-radius);
  background: rgba(255,255,255,.11);
  font-weight: 900;
  cursor: pointer;
}
.hd-form-step > .hd-step-next {
  width: 100%;
  margin-top: 10px;
}
.hd-estimate-form--multi .hd-consent {
  color: rgba(255,255,255,.72);
}
.hd-estimate-form--multi .hd-form-submit {
  box-shadow: 0 16px 30px rgba(123,208,255,.2);
}
.hd-menu-button span,
.hd-mobile-menu summary span {
  display: block;
  width: 20px;
  height: 2px;
  background: currentColor;
  border-radius: 999px;
}
.hd-menu-button b,
.hd-mobile-menu summary b {
  font-size: 12px;
}
.hd-mobile-menu summary {
  list-style: none;
}
.hd-mobile-menu summary::-webkit-details-marker {
  display: none;
}
.hd-site-footer {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 0%, rgba(123,208,255,.22), transparent 36%),
    linear-gradient(135deg, #031827, #06243d 46%, #0b4f7d);
}
.hd-site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(135deg, rgba(255,255,255,.045) 0 1px, transparent 1px 28px);
  pointer-events: none;
}
.hd-site-footer .hd-wrap {
  position: relative;
  z-index: 1;
}
.hd-footer-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
  margin-bottom: 44px;
  padding: 28px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.09);
  box-shadow: 0 22px 50px rgba(0,0,0,.18);
}
.hd-footer-cta span {
  color: #7bd0ff;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 12px;
  font-weight: 900;
}
.hd-footer-cta h2 {
  max-width: 780px;
  color: #fff;
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.08;
  margin: 8px 0 0;
}
.hd-footer-brand {
  display: grid;
  justify-items: center;
  text-align: center;
  padding: 10px 24px 14px;
  border-radius: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.hd-brand--footer {
  justify-content: center;
  width: 100%;
  max-width: 380px;
  min-height: 0;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.hd-brand--footer .hd-brand-logo img,
.hd-brand--footer .hd-brand-logo .custom-logo {
  width: 330px !important;
  max-width: min(100%, 330px) !important;
  max-height: 176px !important;
  filter: drop-shadow(0 18px 28px rgba(0,0,0,.28));
}
.hd-brand--footer .hd-brand-text strong,
.hd-brand--footer .hd-brand-text span {
  color: #fff;
}
.hd-footer-materials {
  justify-content: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}
.hd-footer-materials span {
  padding: 7px 10px;
  border-radius: 999px;
  color: #fff;
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(255,255,255,.16);
  font-size: 12px;
  font-weight: 900;
}
.hd-home-hero__copy h1,
.hd-page-hero__copy h1,
.hd-section-head h2,
.hd-split h2,
.hd-cta-band h2,
.hd-authority-copy h2,
.hd-premium-service-card h3,
.hd-process-track h3,
.hd-check-card-grid h3,
.hd-estimate-form--multi h3 {
  font-family: Sora, Manrope, ui-sans-serif, system-ui, sans-serif;
  font-weight: 900;
}
.hd-kicker {
  display: none;
}
.hd-hero-review-badge--simple {
  width: max-content;
  gap: 7px;
  min-height: 54px;
  padding: 9px 15px 9px 10px;
  margin-bottom: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.14), transparent 54%),
    linear-gradient(135deg, rgba(4,41,72,.92), rgba(10,112,174,.74));
  border: 1px solid rgba(123,208,255,.44);
  box-shadow: 0 18px 34px rgba(3,28,58,.24), inset 0 1px 0 rgba(255,255,255,.16), 0 0 24px rgba(123,208,255,.2);
  backdrop-filter: blur(10px) saturate(120%);
}
.hd-hero-review-badge--simple strong {
  color: #f7b81b;
  font-size: 17px;
  letter-spacing: 0;
  text-shadow: 0 0 12px rgba(247,184,27,.28);
}
.hd-hero-review-badge--simple .hd-google-rating {
  color: #f8fdff;
  font-weight: 900;
  font-size: 13px;
  letter-spacing: 0;
  line-height: 1;
  text-shadow: 0 0 14px rgba(123,208,255,.34);
}
.hd-hero-review-badge--simple .hd-google-mark {
  width: 26px;
  height: 26px;
  flex-basis: 26px;
  padding: 4px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 8px 18px rgba(3,28,58,.16);
  filter: none;
}
.hd-hero-meta {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 9px;
  width: max-content;
  max-width: 100%;
  margin-bottom: 14px;
  padding: 10px 17px;
  border: 1px solid rgba(123,208,255,.56);
  border-radius: 999px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.11), transparent 48%),
    linear-gradient(135deg, rgba(3,37,67,.78), rgba(8,93,145,.62));
  animation: hdServiceAreaPulse 3.2s ease-in-out infinite;
  backdrop-filter: blur(10px);
  overflow: hidden;
}
.hd-hero-meta::before {
  content: "";
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #7bd0ff;
  box-shadow: 0 0 0 5px rgba(123,208,255,.12), 0 0 20px rgba(123,208,255,.72);
  padding: 0;
}
.hd-hero-meta::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 -40%;
  width: 32%;
  transform: skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(234,248,255,.28), transparent);
  animation: hdBadgeSweep 4.2s ease-in-out infinite;
  pointer-events: none;
}
.hd-hero-meta span {
  flex: 0 0 auto;
  padding: 0;
  border-radius: 999px;
  color: #c9f0ff;
  background: none;
  border: 0;
  box-shadow: none;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .035em;
  text-shadow: 0 0 16px rgba(123,208,255,.44);
}
.hd-hero-action-row,
.hd-btn-row--lean {
  margin-top: 20px;
}
.hd-hero-action-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}
.hd-btn-row--lean .hd-btn {
  min-height: 54px;
  padding: 14px 22px;
  box-shadow: 0 18px 34px rgba(12,92,143,.35);
}
.hd-hero-action-row .hd-btn--call {
  min-height: 54px;
  padding: 14px 22px 14px 17px;
  border-color: rgba(255,255,255,.2);
  box-shadow: 0 18px 34px rgba(11,95,153,.35);
}
.hd-estimate-form--multi {
  border-radius: 18px;
  box-shadow: 0 28px 62px rgba(0,0,0,.3);
}
.hd-estimate-form--multi h3 {
  letter-spacing: 0;
  margin-bottom: 4px;
}
.hd-form-topline span {
  color: #7bd0ff;
  text-shadow: 0 0 14px rgba(123,208,255,.72), 0 0 30px rgba(12,118,178,.34);
}
.hd-step-meter span.is-active::before {
  background: #7bd0ff;
  box-shadow: 0 0 0 5px rgba(123,208,255,.18), 0 0 18px rgba(123,208,255,.55);
}
.hd-quick-strip {
  position: relative;
  z-index: 4;
  margin-top: -48px;
  padding: 0 0 34px;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.hd-quick-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: visible;
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(2,18,32,.98), rgba(10,31,43,.96)),
    repeating-linear-gradient(135deg, rgba(255,255,255,.03) 0 1px, transparent 1px 24px);
  color: #fff;
  border: 1px solid rgba(123,208,255,.18);
  box-shadow: 0 28px 58px rgba(6,36,61,.24);
}
.hd-quick-grid article {
  position: relative;
  min-height: 214px;
  padding: 30px 28px 28px 92px;
  border-left: 1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(circle at 42px 42px, rgba(123,208,255,.18) 0 28px, transparent 29px),
    linear-gradient(180deg, rgba(255,255,255,.055), transparent 68%);
}
.hd-quick-grid article::after {
  content: "";
  position: absolute;
  left: 92px;
  right: 28px;
  top: 0;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, #7bd0ff, rgba(255,194,71,.82), transparent);
}
.hd-quick-icon {
  position: absolute;
  left: 28px;
  top: 29px;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: linear-gradient(135deg, #0b79bd, #7bd0ff);
  box-shadow: 0 0 0 7px rgba(123,208,255,.1), 0 16px 28px rgba(0,0,0,.22);
}
.hd-quick-icon::before {
  content: "";
  position: absolute;
  inset: 11px;
  background: #fff;
}
.hd-quick-icon--pay::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 7a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V7zm3-1a1 1 0 0 0-1 1v1h14V7a1 1 0 0 0-1-1H6zm13 6H5v5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5zm-5 2h3v2h-3v-2z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 7a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3V7zm3-1a1 1 0 0 0-1 1v1h14V7a1 1 0 0 0-1-1H6zm13 6H5v5a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5zm-5 2h3v2h-3v-2z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.hd-quick-icon--service::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 4 5v6c0 5.05 3.41 9.76 8 11 4.59-1.24 8-5.95 8-11V5l-8-3zm0 2.14L18 6.4V11c0 3.98-2.48 7.76-6 8.86C8.48 18.76 6 14.98 6 11V6.4l6-2.26zm3.7 5.56-4.75 4.75-2.15-2.15-1.4 1.4 3.55 3.55 6.15-6.15-1.4-1.4z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 4 5v6c0 5.05 3.41 9.76 8 11 4.59-1.24 8-5.95 8-11V5l-8-3zm0 2.14L18 6.4V11c0 3.98-2.48 7.76-6 8.86C8.48 18.76 6 14.98 6 11V6.4l6-2.26zm3.7 5.56-4.75 4.75-2.15-2.15-1.4 1.4 3.55 3.55 6.15-6.15-1.4-1.4z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.hd-quick-icon--expert::before {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h16v4H4V5zm0 6h7v8H4v-8zm9 0h7v8h-7v-8zM6 7v1h12V7H6zm0 6v4h3v-4H6zm9 0v4h3v-4h-3z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h16v4H4V5zm0 6h7v8H4v-8zm9 0h7v8h-7v-8zM6 7v1h12V7H6zm0 6v4h3v-4H6zm9 0v4h3v-4h-3z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.hd-quick-grid article:first-child {
  border-left: 0;
}
.hd-quick-grid article:nth-child(n+4) {
  display: none;
}
.hd-quick-grid span {
  color: #77c7ef;
  line-height: 1.2;
}
.hd-quick-grid strong {
  color: #fff;
  font-size: 19px;
  margin-top: 9px;
}
.hd-quick-grid p {
  margin: 10px 0 0;
  color: rgba(255,255,255,.72);
  font-size: 14px;
  line-height: 1.55;
}
.hd-authority-copy h2 mark {
  color: #0878b7;
  background: linear-gradient(180deg, transparent 56%, rgba(123,208,255,.32) 57%, rgba(123,208,255,.18) 100%);
  text-shadow: 0 0 16px rgba(123,208,255,.46);
  box-shadow: 0 9px 22px rgba(123,208,255,.1);
}
.hd-highlight-list--checks span {
  position: relative;
  padding-left: 46px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(6,36,61,.08);
}
.hd-highlight-list--checks span::before {
  content: "";
  position: absolute;
  left: 15px;
  top: 50%;
  width: 22px;
  height: 22px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: linear-gradient(135deg, #0b79bd, #7bd0ff);
  box-shadow: 0 0 0 5px rgba(123,208,255,.12), 0 10px 18px rgba(12,92,143,.22);
}
.hd-highlight-list--checks span::after {
  content: "";
  position: absolute;
  left: 21px;
  top: 50%;
  width: 9px;
  height: 5px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: translateY(-68%) rotate(-45deg);
}
.hd-premium-service-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.hd-premium-service-card a {
  border-radius: 12px;
  box-shadow: 0 18px 42px rgba(0,0,0,.18);
}
.hd-premium-service-card div {
  min-height: 230px;
}
.hd-material-section {
  background:
    radial-gradient(circle at 8% 0%, rgba(123,208,255,.2), transparent 34%),
    linear-gradient(180deg, #f5fbff, #ffffff 54%, #eef7fc);
}
.hd-brand-showcase {
  display: grid;
  gap: 16px;
}
.hd-brand-category {
  display: grid;
  gap: 12px;
}
.hd-brand-category-head {
  display: grid;
  gap: 3px;
  padding: 15px 16px;
  border-radius: 14px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(12,92,143,.1);
}
.hd-brand-category-head span {
  color: var(--hd-navy);
  font-family: Sora, Manrope, sans-serif;
  font-weight: 900;
}
.hd-brand-category-head p {
  margin: 0;
  color: var(--hd-slate);
  font-size: 14px;
}
.hd-logo-grid--brands {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  align-items: stretch;
}
.hd-brand-tile {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 10px;
  align-content: center;
  justify-items: center;
  text-align: center;
  border-radius: 14px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(12,92,143,.12);
  box-shadow: 0 18px 38px rgba(6,36,61,.1);
}
.hd-brand-tile--logo {
  grid-column: span 2;
  min-height: 132px;
  padding: 22px 18px 16px;
}
.hd-brand-tile--logo img {
  display: block;
  width: min(100%, 210px);
  height: 58px;
  object-fit: contain;
}
.hd-brand-tile--dark {
  background: linear-gradient(135deg, #05233a, #0b5f99);
}
.hd-brand-tile--dark span {
  color: rgba(255,255,255,.82);
}
.hd-brand-tile--photo {
  grid-column: span 3;
  min-height: 218px;
  align-content: end;
  justify-items: start;
  padding: 18px;
  color: #fff;
  text-align: left;
}
.hd-brand-tile--photo::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, transparent 20%, rgba(3,24,39,.86) 100%);
}
.hd-brand-tile--photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hd-brand-tile b,
.hd-brand-tile span {
  position: relative;
  z-index: 2;
}
.hd-brand-tile b {
  display: block;
  color: inherit;
  font-family: Sora, Manrope, sans-serif;
  font-size: 20px;
  line-height: 1.1;
}
.hd-brand-tile span {
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--hd-slate);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.hd-brand-tile--photo span {
  color: rgba(255,255,255,.78);
}
.hd-trust-logo-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 12px;
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.68), rgba(255,255,255,.38)),
    rgba(12,92,143,.06);
  border: 1px solid rgba(12,92,143,.12);
}
.hd-trust-logo-row article {
  min-height: 126px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 10px;
  padding: 16px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 14px 28px rgba(6,36,61,.08);
}
.hd-trust-logo-row img {
  display: block;
  width: min(100%, 170px);
  max-height: 62px;
  object-fit: contain;
}
.hd-trust-logo-row article:nth-child(2) img {
  max-height: 86px;
}
.hd-trust-logo-row span {
  color: var(--hd-blue);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.hd-trust-logo-row b {
  color: var(--hd-navy);
  font-family: Sora, Manrope, sans-serif;
  font-size: 16px;
}
.hd-why-section {
  background:
    linear-gradient(90deg, #fff 0%, #fff 48%, #eef7fc 48%, #eef7fc 100%);
}
.hd-why-layout {
  grid-template-columns: minmax(260px, .62fr) minmax(620px, 1.38fr);
  align-items: start;
}
.hd-check-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.hd-check-card-grid article {
  position: relative;
  min-height: 244px;
  padding: 24px 22px 22px 82px;
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.95), rgba(246,251,255,.95)),
    #fff;
  border: 1px solid rgba(12,92,143,.12);
  box-shadow: 0 20px 42px rgba(6,36,61,.1);
}
.hd-checkmark {
  position: absolute;
  left: 22px;
  top: 24px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #06365b, #0b79bd 55%, #7bd0ff);
  box-shadow: 0 0 0 7px rgba(123,208,255,.12), 0 15px 28px rgba(12,92,143,.22);
}
.hd-checkmark::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 8px;
  width: 20px;
  height: 20px;
  background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2.7 2.9 5.86 6.47.94-4.69 4.57 1.11 6.45L12 17.48l-5.79 3.04 1.11-6.45L2.63 9.5l6.47-.94L12 2.7z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2.7 2.9 5.86 6.47.94-4.69 4.57 1.11 6.45L12 17.48l-5.79 3.04 1.11-6.45L2.63 9.5l6.47-.94L12 2.7z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.hd-checkmark::after {
  content: "";
  position: absolute;
  right: 5px;
  bottom: 5px;
  width: 12px;
  height: 7px;
  border-left: 3px solid #fff;
  border-bottom: 3px solid #fff;
  filter: drop-shadow(0 1px 2px rgba(3,28,58,.2));
  transform: rotate(-45deg);
}
.hd-check-card-grid small {
  display: inline-flex;
  margin-bottom: 9px;
  color: #0b79bd;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.hd-check-card-grid h3 {
  margin: 0 0 8px;
  color: var(--hd-navy);
  font-size: 21px;
  line-height: 1.13;
}
.hd-check-card-grid p {
  margin: 0;
  color: var(--hd-slate);
  line-height: 1.55;
}
.hd-process-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 8%, rgba(123,208,255,.22), transparent 32%),
    radial-gradient(circle at 88% 12%, rgba(12,118,178,.24), transparent 36%),
    linear-gradient(135deg, #031827, #061f35 45%, #082f4d);
  color: #fff;
}
.hd-process-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 1px, transparent 1px 90px);
  pointer-events: none;
}
.hd-process-shell {
  position: relative;
  z-index: 1;
}
.hd-process-section .hd-section-head h2,
.hd-process-section .hd-section-head p {
  color: #fff;
}
.hd-process-track {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.hd-process-track article {
  position: relative;
  overflow: hidden;
  min-height: 286px;
  padding: 28px 24px 26px;
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,.055)),
    rgba(9,55,86,.72);
  border: 1px solid rgba(123,208,255,.2);
  box-shadow: 0 24px 48px rgba(0,0,0,.2);
}
.hd-process-track article::before {
  content: "";
  position: absolute;
  inset: auto -48px -56px auto;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  background: rgba(123,208,255,.12);
}
.hd-process-track article::after {
  content: "";
  position: absolute;
  top: 0;
  left: 24px;
  right: 24px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, #7bd0ff, rgba(123,208,255,.18));
}
.hd-process-track span {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  padding: 0 12px;
  border-radius: 999px;
  color: #dff6ff;
  background: rgba(123,208,255,.12);
  border: 1px solid rgba(123,208,255,.28);
  font-weight: 900;
  font-size: 12px;
  text-transform: uppercase;
}
.hd-process-track h3 {
  margin: 22px 0 12px;
  color: #fff;
  font-size: 22px;
  line-height: 1.14;
}
.hd-process-track p {
  color: rgba(255,255,255,.78);
  margin: 0;
}
.hd-google-trust-card {
  padding: 34px;
  border-radius: 18px;
  color: #fff;
  background:
    radial-gradient(circle at top right, rgba(255,194,71,.32), transparent 42%),
    linear-gradient(135deg, #071f35, #0c5c8f);
  box-shadow: 0 24px 54px rgba(6,36,61,.2);
}
.hd-google-trust-card strong {
  color: #ffc247;
  font-size: 30px;
}
.hd-google-trust-card h3 {
  margin: 12px 0 6px;
  color: #fff;
  font-family: Sora, Manrope, sans-serif;
  font-size: 34px;
}
.hd-google-trust-card p {
  color: rgba(255,255,255,.78);
}
.hd-google-trust-card span {
  display: inline-flex;
  margin-top: 12px;
  padding: 8px 11px;
  border-radius: 999px;
  color: #071f35;
  background: #fff;
  font-weight: 900;
}
.hd-site-footer {
  padding: 62px 0 0;
}
.hd-footer-grid {
  grid-template-columns: repeat(2, minmax(180px, .7fr));
  justify-content: center;
  align-items: start;
  gap: 34px 64px;
}
.hd-footer-brand {
  grid-column: 1 / -1;
  width: min(720px, 100%);
  margin: 0 auto 6px;
}
.hd-footer-brand p {
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
}
@media (prefers-reduced-motion: reduce) {
  .hd-pulse-points span { animation: none; }
}

@media (max-width: 1080px) {
  .hd-header-row {
    display: flex;
    flex-wrap: wrap;
    position: relative;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    min-height: 110px;
    padding: 8px 0;
  }
  .hd-brand {
    flex: 0 1 auto;
    min-width: 0;
    max-width: calc(100% - 82px);
    min-height: 94px;
    padding-right: 0;
  }
  .hd-menu-button {
    display: none !important;
  }
  .hd-mobile-menu {
    display: none !important;
    position: fixed;
    right: 14px;
    top: 15px;
    z-index: 999;
  }
  .admin-bar .hd-mobile-menu {
    top: 47px;
  }
  .hd-mobile-menu summary {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    width: 60px;
    height: 54px;
    border: 1px solid var(--hd-line);
    border-radius: var(--hd-radius);
    color: var(--hd-navy);
    background: #fff;
    box-shadow: 0 10px 24px rgba(6,36,61,.1);
    font-weight: 900;
    cursor: pointer;
    touch-action: manipulation;
  }
  .hd-mobile-menu summary:focus-visible {
    outline: 3px solid rgba(12, 92, 143, .28);
    outline-offset: 3px;
  }
  .hd-mobile-menu__panel {
    display: none;
    position: absolute;
    top: 64px;
    right: 0;
    width: min(340px, calc(100vw - 28px));
    max-height: calc(100dvh - 96px);
    overflow: auto;
    padding: 12px;
    border: 1px solid var(--hd-line);
    border-radius: 12px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 24px 54px rgba(6,36,61,.22);
  }
  .hd-mobile-menu[open] .hd-mobile-menu__panel {
    display: grid;
    gap: 10px;
  }
  .hd-mobile-menu .hd-primary-nav {
    display: block !important;
    width: 100%;
  }
  .hd-mobile-menu .hd-primary-nav ul {
    display: grid;
    gap: 4px;
    align-items: stretch;
  }
  .hd-mobile-menu .hd-primary-nav a {
    min-height: 46px;
    display: flex;
    align-items: center;
    padding: 11px 12px;
  }
  .hd-mobile-menu .hd-primary-nav .sub-menu {
    position: static;
    min-width: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    margin-left: 10px;
    border-color: var(--hd-line);
  }
  .hd-mobile-menu__actions {
    display: grid;
    gap: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--hd-line);
  }
  .hd-mobile-menu__actions .hd-btn {
    width: 100%;
  }
  .hd-primary-nav, .hd-header-actions {
    display: none !important;
    flex: 0 0 100%;
    width: 100%;
  }
  .hd-header-row > .hd-primary-nav {
    display: block !important;
    order: 4;
    flex: 0 0 100%;
    width: 100%;
    padding: 2px 0 12px;
    overflow-x: auto;
    border-top: 1px solid var(--hd-line);
    scrollbar-width: none;
  }
  .hd-header-row > .hd-primary-nav::-webkit-scrollbar {
    display: none;
  }
  .hd-header-row > .hd-primary-nav ul {
    display: flex;
    gap: 6px;
    align-items: center;
    width: max-content;
    min-width: 100%;
  }
  .hd-header-row > .hd-primary-nav a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    padding: 9px 12px;
    border: 1px solid var(--hd-line);
    background: var(--hd-muted);
  }
  .hd-header-row > .hd-primary-nav .sub-menu {
    display: none;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav,
  .hd-menu-toggle:checked ~ .hd-header-actions { display: grid; }
  .hd-menu-toggle:checked ~ .hd-primary-nav {
    display: block;
    padding: 12px 0;
    border-top: 1px solid var(--hd-line);
  }
  .hd-primary-nav ul { display: grid; gap: 4px; align-items: stretch; }
  .hd-primary-nav a { min-height: 46px; display: flex; align-items: center; }
  .hd-primary-nav .sub-menu {
    position: static;
    min-width: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    margin-left: 14px;
    border-color: var(--hd-line);
  }
  .hd-header-actions { padding-bottom: 16px; gap: 8px; }
  .hd-header-actions .hd-btn { width: 100%; margin-top: 8px; }
  .hd-home-hero__grid, .hd-page-hero__grid, .hd-split, .hd-partner-panel, .hd-contact-grid, .hd-cta-inner,
  .hd-authority-grid, .hd-gallery-showcase__grid, .hd-review-grid, .hd-why-layout {
    grid-template-columns: 1fr;
  }
  .hd-card-grid--services, .hd-feature-grid, .hd-process-grid, .hd-stat-grid, .hd-gallery-grid,
  .hd-trust-strip, .hd-related-grid, .hd-area-card-grid, .hd-testimonial-grid, .hd-location-list,
  .hd-nearby-links, .hd-footer-grid, .hd-premium-service-grid, .hd-quick-grid, .hd-material-logo-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .hd-footer-cta { grid-template-columns: 1fr; }
  .hd-image-collage { min-height: 520px; }
  .hd-wide-service-callout { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 700px) {
  .hd-wrap { width: min(calc(100% - 28px), 1180px); }
  .hd-brand { gap: 12px; padding-right: 76px; }
  .hd-brand-mark { width: 58px; height: 58px; }
  .hd-brand-logo img { max-width: 188px; max-height: 62px; }
  .hd-brand-text strong { font-size: 23px; }
  .hd-brand-text span { display: none; }
  .hd-header-row { min-height: 84px; }
  .hd-home-hero, .hd-page-hero { min-height: auto; }
  .hd-home-hero__grid, .hd-page-hero__grid { padding: 34px 0 44px; gap: 20px; width: min(calc(100% - 28px), 1180px); }
  .hd-home-hero__copy h1, .hd-page-hero__copy h1 {
    font-size: 25px;
    line-height: 1.06;
    text-wrap: wrap;
    max-width: min(330px, calc(100vw - 28px));
    margin-left: auto;
    margin-right: auto;
    overflow-wrap: break-word;
  }
  .hd-home-hero__copy h1 mark {
    display: block;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: break-word;
  }
  .hd-home-hero__copy,
  .hd-page-hero__copy {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }
  .hd-home-hero__copy p,
  .hd-page-hero__copy p {
    width: 100%;
    max-width: min(335px, 100%);
    font-size: 15px;
    line-height: 1.55;
    margin-bottom: 0;
    overflow-wrap: break-word;
  }
  .hd-hero-form,
  .hd-hero-stack .hd-hero-form { padding: 0 !important; }
  .hd-hero-action-row,
  .hd-hero-stack,
  .hd-hero-form,
  .hd-estimate-form--multi {
    width: min(100%, 362px);
    max-width: calc(100vw - 28px);
  }
  .hd-hero-action-row .hd-hero-review-badge--simple,
  .hd-hero-action-row .hd-btn--call {
    max-width: 100%;
  }
  .hd-hero-proof,
  .hd-source-style-line { display: none; }
  .hd-btn-row { margin-top: 16px; gap: 8px; }
  .hd-btn-row .hd-btn--ghost { display: none; }
  .hd-hero-review-badge {
    display: grid;
    gap: 2px;
    align-items: start;
    border-radius: var(--hd-radius);
  }
  .hd-kicker {
    max-width: 100%;
    white-space: normal;
    line-height: 1.3;
    font-size: 11px;
    padding: 8px 11px;
  }
  .hd-pulse-points { display: none; }
  .hd-hero-proof,
  .hd-quick-grid,
  .hd-premium-service-grid,
  .hd-mosaic-gallery,
  .hd-testimonial-grid--v2,
  .hd-material-logo-row {
    grid-template-columns: 1fr;
  }
  .hd-step-meter {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    padding: 0 14px 10px;
  }
  .hd-step-meter span {
    height: 9px;
    min-width: 0;
    padding: 0;
    overflow: hidden;
    text-indent: 100%;
    white-space: nowrap;
  }
  .hd-step-meter span::before { display: none; }
  .hd-service-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hd-service-options span { min-height: 54px; padding: 10px 11px; }
  .hd-form-actions {
    grid-template-columns: 1fr;
  }
  .hd-estimate-form--multi {
    width: 100%;
    max-width: 100%;
    border-radius: 10px;
  }
  .hd-form-topline { padding: 12px 14px 0; }
  .hd-form-topline strong {
    display: none;
  }
  .hd-estimate-form--multi h3 { padding: 0 14px 5px; font-size: 23px; line-height: 1.12; }
  .hd-estimate-form--multi > p { display: none; }
  .hd-form-steps { padding: 0 14px 14px; }
  .hd-quick-grid article,
  .hd-quick-grid article:first-child {
    border-left: 1px solid var(--hd-line);
    border-right: 1px solid var(--hd-line);
    border-bottom: 1px solid var(--hd-line);
    min-height: auto;
    padding: 26px 20px 24px 76px;
  }
  .hd-quick-icon {
    left: 22px;
    top: 26px;
    width: 38px;
    height: 38px;
  }
  .hd-quick-grid,
  .hd-quick-grid article {
    min-width: 0;
    max-width: 100%;
  }
  .hd-quick-grid strong,
  .hd-quick-grid span,
  .hd-quick-grid p {
    overflow-wrap: anywhere;
  }
  .hd-quick-grid p {
    font-size: 14px;
  }
  .hd-image-collage {
    display: grid;
    gap: 14px;
    min-height: auto;
  }
  .hd-image-collage img,
  .hd-collage-main,
  .hd-collage-small,
  .hd-collage-a,
  .hd-collage-b {
    position: static;
    width: 100%;
    height: 240px;
  }
  .hd-collage-badge {
    position: static;
    width: 100%;
  }
  .hd-premium-service-card a { grid-template-rows: 190px 1fr; }
  .hd-mosaic-gallery figure:first-child { grid-row: auto; }
  .hd-section { padding: 58px 0; }
  .hd-card-grid--services, .hd-feature-grid, .hd-process-grid, .hd-stat-grid, .hd-gallery-grid,
  .hd-trust-strip, .hd-related-grid, .hd-area-card-grid, .hd-testimonial-grid, .hd-location-list,
  .hd-nearby-links, .hd-footer-grid, .hd-form-grid {
    grid-template-columns: 1fr;
  }
  .hd-image-frame img { min-height: 280px; }
  .hd-cta-inner .hd-btn-row .hd-btn, .hd-btn-row .hd-btn { width: 100%; }
  .hd-footer-bottom { display: grid; }
  .hd-header-row > .hd-primary-nav {
    overflow-x: visible;
  }
  .hd-header-row > .hd-primary-nav ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    min-width: 0;
  }
  .hd-header-row > .hd-primary-nav li {
    min-width: 0;
  }
  .hd-header-row > .hd-primary-nav a {
    justify-content: center;
    white-space: normal;
    text-align: center;
    line-height: 1.14;
    font-size: 12px;
    min-height: 42px;
    width: 100%;
    min-width: 0;
    padding-left: 8px;
    padding-right: 8px;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 1080px) {
  .hd-brand {
    flex: 0 1 auto;
    padding-right: 0;
  }
  .hd-brand-logo img {
    max-height: 98px;
    max-width: 138px;
  }
  .hd-mobile-menu {
    display: none !important;
  }
  .hd-menu-button {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: fixed;
    left: min(304px, calc(100vw - 74px));
    right: auto;
    top: 22px;
    transform: none;
    z-index: 1001;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    width: 60px;
    height: 54px;
    border: 1px solid var(--hd-line);
    border-radius: var(--hd-radius);
    color: var(--hd-navy);
    background: #fff;
    box-shadow: 0 12px 28px rgba(6,36,61,.16);
    font-weight: 900;
    cursor: pointer;
    touch-action: manipulation;
  }
  .hd-header-row > .hd-primary-nav,
  .hd-header-actions {
    display: none !important;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav {
    display: block !important;
    position: fixed;
    top: 92px;
    left: max(14px, min(36px, calc(100vw - 354px)));
    right: auto;
    z-index: 1000;
    width: min(340px, calc(100vw - 28px));
    max-height: calc(100dvh - 96px);
    overflow: auto;
    padding: 12px;
    border: 1px solid var(--hd-line);
    border-radius: 12px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 24px 54px rgba(6,36,61,.24);
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav ul {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 5px;
    width: 100%;
    min-width: 0;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav a {
    justify-content: flex-start;
    min-height: 46px;
    text-align: left;
    white-space: normal;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .sub-menu {
    display: grid !important;
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    min-width: 0;
    margin-left: 10px;
    box-shadow: none;
    border-color: var(--hd-line);
  }
  .hd-mobile-menu .hd-primary-nav {
    display: block !important;
  }
  .hd-mobile-menu .hd-primary-nav ul {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100%;
    min-width: 0;
  }
  .hd-mobile-menu__actions .hd-header-review-badge,
  .hd-mobile-menu__actions .hd-btn--call {
    width: 100%;
    justify-content: center;
  }
  .hd-hero-meta {
    display: inline-flex;
    flex-wrap: nowrap;
    width: max-content;
    max-width: min(100%, calc(100vw - 32px));
    padding: 9px 14px;
    gap: 8px;
    border-radius: 999px;
    justify-content: flex-start;
  }
  .hd-hero-meta::before {
    width: 7px;
    height: 7px;
    padding: 0;
  }
  .hd-hero-meta span {
    text-align: center;
    min-width: 0;
    padding: 0;
    font-size: 11px;
    line-height: 1.15;
  }
  .hd-hero-review-badge--simple {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }
}

@media (max-width: 700px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }
  .hd-quick-strip .hd-wrap {
    width: min(362px, calc(100vw - 28px)) !important;
    max-width: min(362px, calc(100vw - 28px)) !important;
    margin-left: 14px !important;
    margin-right: 14px !important;
  }
  .hd-quick-grid {
    width: 100%;
    max-width: 100%;
    grid-template-columns: 1fr !important;
    overflow: hidden;
  }
  .hd-hero-meta {
    display: inline-flex;
    flex-wrap: nowrap;
    width: max-content;
    max-width: min(100%, calc(100vw - 30px));
    padding: 9px 13px;
    gap: 8px;
    border-radius: 999px;
    justify-content: flex-start;
  }
  .hd-hero-meta::before {
    width: 7px;
    height: 7px;
    padding: 0;
  }
  .hd-hero-meta span {
    text-align: center;
    min-width: 0;
    padding: 0;
    font-size: 10.5px;
    line-height: 1.15;
  }
  .hd-hero-action-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px;
    width: min(100%, 362px);
    max-width: calc(100vw - 28px);
  }
  .hd-hero-review-badge--simple {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple {
    flex: 0 0 clamp(132px, 39vw, 154px);
    min-width: 0;
    min-height: 56px;
    padding: 8px 8px;
    gap: 4px;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple .hd-google-mark {
    width: 23px;
    height: 23px;
    flex-basis: 23px;
    padding: 3px;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple strong {
    font-size: 14px;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple .hd-google-rating {
    font-size: 11px;
    letter-spacing: 0;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple,
  .hd-hero-action-row .hd-btn--call {
    width: auto;
  }
  .hd-hero-action-row .hd-btn--call {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 56px;
    padding: 12px 9px;
    gap: 7px;
    justify-content: center;
    font-size: 14px;
    white-space: nowrap;
  }
  .hd-brand-logo img {
    max-height: 96px;
    max-width: 126px;
  }
}

.hd-submenu-toggle {
  display: none;
}

@media (max-width: 1080px) {
  .hd-header-row {
    min-height: 92px;
    padding: 8px 0;
    gap: 14px;
  }
  .hd-brand {
    min-height: 76px;
    max-width: calc(100% - 78px);
    padding-right: 0;
  }
  .hd-brand-logo img,
  .hd-brand-logo .custom-logo {
    max-width: 142px !important;
    max-height: 88px !important;
  }
  .hd-menu-button {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: static !important;
    inset: auto !important;
    margin-left: auto;
    transform: none !important;
    width: 58px;
    height: 52px;
    border-radius: 14px;
    color: #eaf8ff;
    background:
      linear-gradient(180deg, rgba(255,255,255,.12), transparent 48%),
      linear-gradient(135deg, #06243d, #0b79bd);
    border: 1px solid rgba(123,208,255,.4);
    box-shadow: 0 14px 30px rgba(3,28,58,.2), inset 0 1px 0 rgba(255,255,255,.18);
  }
  .hd-menu-button span {
    background: currentColor;
  }
  .hd-menu-button b {
    color: #eaf8ff;
    font-size: 11px;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav {
    top: 98px;
    left: 14px;
    right: 14px;
    width: auto;
    border-radius: 16px;
    border-color: rgba(123,208,255,.25);
    background: rgba(248,252,255,.98);
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .menu-item-has-children {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    gap: 6px;
    align-items: start;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .menu-item-has-children > a {
    grid-column: 1;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .hd-submenu-toggle {
    display: inline-grid;
    grid-column: 2;
    place-items: center;
    min-height: 46px;
    border: 1px solid rgba(12,92,143,.16);
    border-radius: 10px;
    color: #0b5f99;
    background: rgba(232,247,255,.85);
    cursor: pointer;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .hd-submenu-toggle::before {
    content: "";
    width: 9px;
    height: 9px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform 160ms ease;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .is-submenu-open > .hd-submenu-toggle::before {
    transform: rotate(-135deg) translateY(-1px);
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .menu-item-has-children > .sub-menu {
    display: none !important;
    grid-column: 1 / -1;
    margin: 0 0 0 8px;
    padding: 7px;
    background: rgba(232,247,255,.55);
    border-color: rgba(12,92,143,.12);
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .menu-item-has-children.is-submenu-open > .sub-menu {
    display: grid !important;
  }
}

@media (max-width: 700px) {
  html,
  body {
    width: 100%;
    max-width: 100vw;
    overflow-x: hidden;
  }
  .hd-wrap,
  .hd-site-header .hd-wrap,
  .hd-home-hero .hd-wrap,
  .hd-quick-strip .hd-wrap {
    width: min(336px, calc(100vw - 28px)) !important;
    max-width: calc(100vw - 28px) !important;
    margin-left: clamp(14px, 7vw, 27px) !important;
    margin-right: 0 !important;
  }
  .hd-header-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    min-height: 92px;
    padding: 8px 0;
    gap: 12px;
  }
  .hd-brand {
    width: auto;
    max-width: 170px;
    min-height: 0;
    padding-right: 0 !important;
  }
  .hd-brand-logo img,
  .hd-brand-logo .custom-logo {
    max-width: 134px !important;
    max-height: 78px !important;
  }
  .hd-site-header::after {
    display: none !important;
  }
  .hd-menu-button {
    grid-column: 2;
    justify-self: end;
    margin-left: 0;
  }
  .hd-home-hero__grid,
  .hd-page-hero__grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: min(336px, calc(100vw - 28px)) !important;
    max-width: calc(100vw - 28px) !important;
    margin-left: clamp(14px, 7vw, 27px) !important;
    margin-right: 0 !important;
    justify-items: center;
  }
  .hd-home-hero__copy,
  .hd-page-hero__copy {
    text-align: center;
    width: min(362px, calc(100vw - 24px));
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: visible;
  }
  .hd-home-hero__copy h1,
  .hd-page-hero__copy h1 {
    font-size: 26px;
    line-height: 1.05;
    max-width: min(362px, calc(100vw - 24px));
  }
  .hd-home-hero__copy h1 mark,
  .hd-page-hero__copy h1 mark {
    display: block;
    max-width: none;
    margin-left: auto;
    margin-right: auto;
    white-space: nowrap;
    font-size: .92em;
  }
  .hd-home-hero__copy h1 mark .hd-mobile-title-break,
  .hd-page-hero__copy h1 mark .hd-mobile-title-break {
    display: inline;
  }
  .hd-home-hero__copy p,
  .hd-page-hero__copy p {
    max-width: min(314px, calc(100vw - 36px));
  }
  .hd-home-hero__copy p,
  .hd-page-hero__copy p,
  .hd-hero-action-row,
  .hd-hero-stack,
  .hd-hero-form,
  .hd-estimate-form--multi {
    width: min(336px, calc(100vw - 28px)) !important;
    max-width: calc(100vw - 28px) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .hd-hero-meta {
    margin-left: auto;
    margin-right: auto;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple {
    flex-basis: 132px;
    min-height: 54px;
  }
  .hd-hero-action-row .hd-btn--call {
    min-height: 54px;
    padding-left: 7px;
    padding-right: 7px;
    gap: 6px;
    font-size: 13px;
  }
  .hd-hero-action-row .hd-btn--call .hd-phone-icon {
    width: 23px;
    height: 23px;
    flex-basis: 23px;
  }
  .hd-quick-strip {
    margin-top: 0;
    padding: 0 0 36px;
    background:
      linear-gradient(180deg, rgba(4,27,46,.98), #061f35 42%, #082f4d 100%);
  }
  .hd-quick-strip .hd-wrap {
    margin-left: clamp(14px, 7vw, 27px) !important;
    margin-right: 0 !important;
  }
  .hd-quick-grid {
    border-radius: 18px;
    overflow: hidden;
    border-color: rgba(123,208,255,.24);
    background:
      linear-gradient(145deg, rgba(3,28,48,.98), rgba(5,43,68,.98)),
      repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 1px, transparent 1px 24px);
    box-shadow: 0 24px 48px rgba(3,28,58,.24);
  }
  .hd-quick-grid article,
  .hd-quick-grid article:first-child {
    border-color: rgba(123,208,255,.18) !important;
    border-left: 0 !important;
    border-right: 0 !important;
    background:
      radial-gradient(circle at 42px 42px, rgba(123,208,255,.18) 0 27px, transparent 28px),
      linear-gradient(180deg, rgba(255,255,255,.052), transparent 72%);
    padding: 24px 20px 24px 76px;
  }
  .hd-quick-grid article::after {
    left: 76px;
    right: 20px;
    background: linear-gradient(90deg, #7bd0ff, rgba(123,208,255,.22), transparent);
  }
  .hd-quick-icon {
    left: 22px;
    top: 25px;
  }
  .hd-floating-call {
    top: auto;
    right: 14px;
    bottom: 16px;
    min-width: 164px;
    padding: 11px 13px;
    transform: translateY(18px);
  }
  body.hd-scrolled .hd-floating-call {
    transform: translateY(0);
  }
  .hd-gallery-showcase__grid--boxed {
    padding: 16px;
  }
  .hd-project-gallery__grid,
  .hd-thank-grid {
    grid-template-columns: 1fr;
  }
  .hd-project-card,
  .hd-project-card img {
    min-height: 228px;
  }
  .hd-gallery-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 4px;
  }
  .hd-gallery-tabs button {
    flex: 0 0 auto;
  }
  .hd-brand-category-head {
    padding: 13px;
  }
  .hd-contact-fast-call {
    border-radius: 14px;
  }
  .hd-form-shell--contact {
    border-radius: 18px;
  }
  .hd-thank-card {
    padding: 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hd-btn,
  .hd-btn--call,
  .hd-floating-call,
  .hd-floating-call::before,
  .hd-hero-meta,
  .hd-home-hero__copy h1 mark,
  .hd-home-hero__copy h1 mark::after {
    animation: none !important;
    transition: none !important;
  }
  .hd-btn--primary::after {
    display: none;
  }
}

@media (max-width: 360px) {
  .hd-brand-text strong { font-size: 20px; }
  .hd-brand-mark { width: 52px; height: 52px; }
  .hd-menu-button { width: 56px; height: 50px; }
  .hd-service-options { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .hd-site-main,
  .hd-section,
  .hd-section--authority,
  .hd-authority-grid,
  .hd-gallery-showcase__grid,
  .hd-review-grid,
  .hd-why-layout {
    max-width: 100%;
    overflow-x: hidden;
  }
  .hd-authority-copy,
  .hd-authority-copy h2,
  .hd-authority-copy p,
  .hd-highlight-list,
  .hd-highlight-list span {
    min-width: 0;
    max-width: min(330px, calc(100vw - 34px));
  }
  .hd-header-row > .hd-primary-nav a {
    padding-left: 6px;
    padding-right: 6px;
    font-size: 12px;
  }
  .hd-authority-copy h2,
  .hd-section-head h2 {
    font-size: 23px;
    line-height: 1.16;
    overflow-wrap: break-word;
    word-break: normal;
    text-wrap: wrap;
  }
  .hd-authority-copy h2 mark { display: inline; }
  .hd-authority-copy p,
  .hd-lead {
    font-size: 16px;
  }
  .hd-image-collage {
    display: none;
  }
  .hd-section--authority {
    background: #fff;
  }
  .hd-premium-service-card div {
    min-height: auto;
  }
  .hd-logo-grid--brands,
  .hd-process-track {
    grid-template-columns: 1fr;
  }
  .hd-brand-tile--logo,
  .hd-brand-tile--photo {
    grid-column: auto;
  }
  .hd-trust-logo-row,
  .hd-check-card-grid {
    grid-template-columns: 1fr;
  }
  .hd-trust-logo-row article {
    min-height: 118px;
  }
  .hd-check-card-grid article {
    min-height: auto;
  }
  .hd-footer-brand {
    padding: 8px 18px 12px;
  }
  .hd-brand--footer .hd-brand-logo img,
  .hd-brand--footer .hd-brand-logo .custom-logo {
    width: 260px !important;
    max-width: min(100%, 260px) !important;
    max-height: 140px !important;
  }
  .hd-brand--footer {
    width: 100%;
    max-width: 300px !important;
    min-height: 0;
    padding: 0 !important;
  }
}

@media (max-width: 700px) {
  .hd-wrap,
  .hd-home-hero .hd-wrap,
  .hd-quick-strip .hd-wrap,
  .hd-home-hero__grid,
  .hd-page-hero__grid {
    width: min(362px, calc(100vw - 28px)) !important;
    max-width: calc(100vw - 28px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .hd-home-hero__copy,
  .hd-page-hero__copy,
  .hd-home-hero__copy p,
  .hd-page-hero__copy p,
  .hd-hero-action-row,
  .hd-hero-stack,
  .hd-hero-form,
  .hd-estimate-form--multi,
  .hd-authority-copy,
  .hd-authority-copy h2,
  .hd-authority-copy p,
  .hd-highlight-list,
  .hd-highlight-list span {
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .hd-authority-copy,
  .hd-authority-copy h2,
  .hd-authority-copy p,
  .hd-highlight-list,
  .hd-highlight-list span {
    width: min(304px, calc(100vw - 64px)) !important;
    max-width: min(304px, calc(100vw - 64px)) !important;
  }
  .hd-authority-copy h2 {
    font-size: 22px;
    line-height: 1.18;
  }
  .hd-quick-grid span {
    font-size: 11px;
    letter-spacing: .07em;
  }
  .hd-home-hero__grid,
  .hd-page-hero__grid {
    justify-items: center;
  }
  .hd-site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    overflow: visible;
    border-bottom: 0;
    background:
      radial-gradient(circle at 50% -30px, rgba(123,208,255,.28), transparent 48%),
      linear-gradient(90deg, rgba(123,208,255,.12), transparent 21%, transparent 79%, rgba(123,208,255,.12)),
      linear-gradient(180deg, #031827 0%, #05223a 48%, #073f66 100%);
    box-shadow: 0 18px 36px rgba(3,28,58,.34);
  }
  .hd-site-header::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
      linear-gradient(90deg, rgba(123,208,255,.16), transparent 25%, transparent 75%, rgba(123,208,255,.14)),
      repeating-linear-gradient(135deg, rgba(255,255,255,.08) 0 1px, transparent 1px 18px),
      repeating-linear-gradient(90deg, rgba(123,208,255,.08) 0 1px, transparent 1px 72px);
    opacity: .92;
    pointer-events: none;
  }
  .hd-site-header::after {
    display: none !important;
  }
  .hd-site-header .hd-wrap {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 9px 14px !important;
  }
  .hd-header-row {
    position: relative;
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 108px;
    gap: 0;
    padding: 0 !important;
  }
  .hd-site-header .hd-brand {
    position: relative;
    z-index: 2;
    width: 194px;
    max-width: 194px;
    min-height: 82px;
    justify-content: center;
    margin: 0 auto !important;
    padding: 4px 0 !important;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }
  .hd-site-header .hd-brand::before,
  .hd-site-header .hd-brand::after {
    display: none;
  }
  .hd-site-header .hd-brand::before {
    right: 100%;
    transform: translateY(-50%);
  }
  .hd-site-header .hd-brand::after {
    left: 100%;
    transform: translateY(-50%) rotate(180deg);
  }
  .hd-site-header .hd-brand-logo img,
  .hd-site-header .hd-brand-logo .custom-logo {
    width: 190px !important;
    max-width: 190px !important;
    max-height: 94px !important;
    filter: drop-shadow(0 12px 18px rgba(0,0,0,.46));
  }
  .hd-menu-button {
    position: absolute !important;
    top: 50% !important;
    left: auto !important;
    right: 16px !important;
    z-index: 1002;
    width: 54px;
    height: 54px;
    margin: 0 !important;
    transform: translateY(-50%) !important;
    border-radius: 16px;
    color: #eaf8ff;
    background:
      linear-gradient(180deg, rgba(255,255,255,.16), transparent 52%),
      linear-gradient(135deg, #0b6fa9, #042b49 78%);
    border: 1px solid rgba(123,208,255,.66);
    box-shadow: 0 16px 30px rgba(0,0,0,.3), 0 0 0 5px rgba(123,208,255,.09), inset 0 1px 0 rgba(255,255,255,.22);
  }
  .hd-menu-button b {
    font-size: 11px;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav {
    position: fixed !important;
    top: 116px;
    left: auto;
    right: 16px;
    width: min(316px, calc(100vw - 32px));
    max-width: calc(100vw - 32px);
    padding: 12px;
    border: 1px solid rgba(123,208,255,.28);
    border-radius: 20px;
    background:
      radial-gradient(circle at 18% 0%, rgba(123,208,255,.2), transparent 34%),
      linear-gradient(180deg, rgba(6,48,79,.98), rgba(2,20,34,.98));
    box-shadow: 0 26px 58px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.04) inset;
    backdrop-filter: blur(12px) saturate(128%);
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav > ul {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav > ul > .menu-item-has-children {
    grid-column: 1 / -1;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav a {
    color: #eef9ff;
    border-color: rgba(123,208,255,.14);
    background: rgba(255,255,255,.055);
    justify-content: center;
    min-height: 48px;
    padding-left: 12px;
    padding-right: 12px;
    text-align: center;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav a:hover,
  .hd-menu-toggle:checked ~ .hd-primary-nav .current-menu-item > a {
    color: #fff;
    background: rgba(123,208,255,.14);
    border-color: rgba(123,208,255,.34);
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .hd-submenu-toggle {
    color: #eaf8ff;
    border-color: rgba(123,208,255,.22);
    background: rgba(123,208,255,.12);
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .menu-item-has-children > .sub-menu {
    display: none !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin: 8px 0 0;
    padding: 8px;
    background: rgba(2,20,34,.64);
    border-color: rgba(123,208,255,.16);
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .menu-item-has-children.is-submenu-open > .sub-menu {
    display: grid !important;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .sub-menu a {
    min-height: 42px;
    font-size: 12px;
  }
  .hd-estimate-form--multi h3 {
    padding-top: 7px;
  }
  .hd-floating-call {
    top: auto;
    right: 14px;
    bottom: 16px;
    min-width: 164px;
    padding: 11px 13px;
    transform: translateY(18px);
  }
  body.hd-scrolled .hd-floating-call {
    transform: translateY(0);
  }
  .hd-gallery-showcase__grid--boxed {
    padding: 16px;
  }
  .hd-project-gallery__grid,
  .hd-thank-grid {
    grid-template-columns: 1fr;
  }
  .hd-project-card,
  .hd-project-card img {
    min-height: 228px;
  }
  .hd-gallery-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 4px;
  }
  .hd-gallery-tabs button {
    flex: 0 0 auto;
  }
  .hd-brand-category-head {
    padding: 13px;
  }
  .hd-contact-fast-call {
    border-radius: 14px;
  }
  .hd-form-shell--contact {
    border-radius: 18px;
  }
  .hd-thank-card {
    padding: 22px;
  }
}

@media (max-width: 700px) {
  .hd-site-header .hd-wrap {
    padding: 9px 18px !important;
  }
  .hd-header-row {
    display: grid !important;
    grid-template-columns: 60px minmax(0, 1fr) 60px;
    min-height: 106px;
    align-items: center;
    justify-content: stretch;
  }
  .hd-site-header .hd-brand {
    grid-column: 2;
    width: min(190px, calc(100vw - 160px));
    max-width: 190px;
    margin: 0 auto !important;
  }
  .hd-site-header .hd-brand-logo img,
  .hd-site-header .hd-brand-logo .custom-logo {
    width: min(188px, calc(100vw - 162px)) !important;
    max-width: min(188px, calc(100vw - 162px)) !important;
  }
  .hd-menu-button {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    grid-column: 3;
    justify-self: end;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    transform: none !important;
    width: 54px;
    height: 54px;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav {
    top: 118px;
    left: 18px;
    right: 18px;
    width: auto;
    max-width: calc(100vw - 36px);
  }
  .hd-hero-action-row {
    display: grid !important;
    grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
    gap: 7px;
    width: min(362px, calc(100vw - 28px)) !important;
    max-width: calc(100vw - 28px) !important;
    overflow: visible;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple,
  .hd-hero-action-row .hd-btn--call {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple {
    flex: none !important;
    min-height: 54px;
    padding: 8px 7px;
    gap: 4px;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple .hd-google-mark {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
    padding: 3px;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple .hd-google-rating {
    font-size: 11px;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple strong {
    font-size: 13px;
  }
  .hd-hero-action-row .hd-btn--call {
    min-height: 54px;
    padding: 11px 8px;
    gap: 6px;
    justify-content: center;
    font-size: 12.5px;
    white-space: nowrap;
  }
  .hd-hero-action-row .hd-btn--call .hd-phone-icon {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
  }
}

@media (max-width: 360px) {
  .hd-site-header .hd-wrap {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  .hd-header-row {
    grid-template-columns: 54px minmax(0, 1fr) 54px;
  }
  .hd-site-header .hd-brand {
    width: min(178px, calc(100vw - 140px));
  }
  .hd-site-header .hd-brand-logo img,
  .hd-site-header .hd-brand-logo .custom-logo {
    width: min(176px, calc(100vw - 142px)) !important;
    max-width: min(176px, calc(100vw - 142px)) !important;
  }
  .hd-menu-button {
    width: 50px;
    height: 50px;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav {
    left: 12px;
    right: 12px;
    width: calc(100vw - 24px);
    max-width: calc(100vw - 24px);
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav > ul {
    grid-template-columns: 1fr !important;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav .menu-item-has-children > .sub-menu {
    grid-template-columns: 1fr;
  }
  .hd-hero-action-row {
    grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    gap: 6px;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple {
    padding-left: 6px;
    padding-right: 5px;
    gap: 3px;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple .hd-google-mark {
    width: 20px;
    height: 20px;
    flex-basis: 20px;
  }
  .hd-hero-action-row .hd-hero-review-badge--simple strong {
    font-size: 12px;
  }
  .hd-hero-action-row .hd-btn--call {
    font-size: 11.5px;
    padding-left: 6px;
    padding-right: 6px;
  }
}

@media (max-width: 700px) {
  body {
    padding-top: calc(120px + env(safe-area-inset-top, 0px));
  }
  .hd-site-header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1200;
    transform: translateZ(0);
    will-change: transform;
  }
  .hd-site-header .hd-wrap {
    padding-top: calc(9px + env(safe-area-inset-top, 0px)) !important;
  }
  .hd-header-row {
    min-height: 104px !important;
    transition: min-height 180ms ease;
  }
  body.hd-scrolled .hd-site-header {
    background:
      radial-gradient(circle at 50% -18px, rgba(123,208,255,.18), transparent 48%),
      linear-gradient(180deg, rgba(2,20,34,.98), rgba(5,42,70,.96));
    box-shadow: 0 18px 36px rgba(0,0,0,.32), 0 1px 0 rgba(123,208,255,.16);
  }
  body.hd-scrolled .hd-header-row {
    min-height: 78px !important;
  }
  body.hd-scrolled .hd-site-header .hd-brand {
    width: min(158px, calc(100vw - 156px));
    max-width: 158px;
    min-height: 64px;
  }
  body.hd-scrolled .hd-site-header .hd-brand-logo img,
  body.hd-scrolled .hd-site-header .hd-brand-logo .custom-logo {
    width: min(156px, calc(100vw - 158px)) !important;
    max-width: min(156px, calc(100vw - 158px)) !important;
    max-height: 76px !important;
    filter: drop-shadow(0 8px 14px rgba(0,0,0,.34));
  }
  body.hd-scrolled .hd-menu-button {
    width: 50px;
    height: 50px;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav {
    top: calc(118px + env(safe-area-inset-top, 0px));
    z-index: 1199;
  }
  body.hd-scrolled .hd-menu-toggle:checked ~ .hd-primary-nav {
    top: calc(92px + env(safe-area-inset-top, 0px));
  }
  .hd-floating-call {
    top: auto;
    right: max(16px, env(safe-area-inset-right, 0px));
    bottom: calc(18px + env(safe-area-inset-bottom, 0px));
    width: 58px;
    height: 58px;
    min-width: 0;
    padding: 0;
    z-index: 990;
    transform: translateY(18px) scale(.94);
  }
  body.hd-scrolled .hd-floating-call {
    transform: translateY(0) scale(1);
  }
  .hd-floating-call .hd-phone-icon {
    width: 34px;
    height: 34px;
    flex-basis: 34px;
  }
}

@media (max-width: 360px) {
  body {
    padding-top: calc(116px + env(safe-area-inset-top, 0px));
  }
  body.hd-scrolled .hd-site-header .hd-brand {
    width: min(148px, calc(100vw - 146px));
  }
  body.hd-scrolled .hd-site-header .hd-brand-logo img,
  body.hd-scrolled .hd-site-header .hd-brand-logo .custom-logo {
    width: min(146px, calc(100vw - 148px)) !important;
    max-width: min(146px, calc(100vw - 148px)) !important;
  }
}

.hd-site-footer {
  padding-bottom: 0 !important;
}
.hd-site-footer::after {
  content: none !important;
  display: none !important;
}
.hd-site-footer .hd-wrap {
  padding-bottom: 0 !important;
}
.hd-footer-bottom {
  margin-bottom: 0 !important;
  padding: 14px 0 0 !important;
  min-height: 0;
  line-height: 1.15;
}
.hd-footer-bottom span {
  display: block;
  margin: 0;
  padding: 0;
}

@keyframes hdMaterialTicker {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}
@keyframes hdTitleBluePulse {
  0%, 100% { text-shadow: 0 2px 0 rgba(1,18,34,.88), 0 0 14px rgba(77,176,232,.24), 0 0 30px rgba(10,96,154,.18); }
  50% { text-shadow: 0 2px 0 rgba(1,18,34,.88), 0 0 18px rgba(95,194,244,.38), 0 0 42px rgba(10,119,190,.24); }
}
@keyframes hdTitleLineSweep {
  0%, 34% { transform: translateX(-120%); opacity: 0; }
  46% { opacity: .82; }
  68% { opacity: .92; }
  86%, 100% { transform: translateX(120%); opacity: 0; }
}

.hd-home-hero__copy h1,
.hd-page-hero__copy h1 {
  margin-bottom: 10px;
}
.hd-home-hero__copy h1 mark {
  display: block;
  width: max-content;
  max-width: 100%;
  margin-top: .16em;
  padding-bottom: .13em;
  color: #9ce2ff;
  background: none;
  -webkit-text-fill-color: #9ce2ff;
  -webkit-text-stroke: .7px rgba(2,20,35,.48);
  font-size: .58em;
  line-height: 1;
  letter-spacing: .065em;
  text-transform: uppercase;
  text-shadow:
    0 2px 0 rgba(1,18,34,.92),
    0 8px 24px rgba(0,12,24,.36),
    0 0 16px rgba(123,208,255,.3),
    0 0 30px rgba(20,139,208,.18);
  filter: none;
  animation: none;
}
.hd-home-hero__copy h1 mark::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: .02em;
  height: .08em;
  border-radius: 999px;
  background:
    linear-gradient(90deg, transparent 0%, rgba(107,207,255,.34) 18%, rgba(224,249,255,.92) 48%, rgba(31,157,231,.72) 70%, transparent 100%);
  box-shadow: 0 0 16px rgba(71,190,255,.42), 0 0 30px rgba(9,94,152,.24);
  transform: translateX(-120%);
  animation: hdTitleLineSweep 5.4s ease-in-out infinite;
  pointer-events: none;
}
.hd-home-hero__copy p,
.hd-page-hero__copy p {
  margin-top: 4px;
}

.hd-material-section--ticker {
  overflow: hidden;
  padding: 76px 0;
  background:
    linear-gradient(180deg, #f4f9fc 0%, #ffffff 52%, #eef7fc 100%);
}
.hd-material-banner {
  position: relative;
  overflow: hidden;
  border-radius: 24px;
  border: 1px solid rgba(12,92,143,.14);
  background:
    radial-gradient(circle at 12% 0%, rgba(123,208,255,.2), transparent 32%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(238,247,252,.92));
  box-shadow: 0 28px 70px rgba(6,36,61,.13);
}
.hd-material-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(11,95,153,.08), transparent 22%, transparent 78%, rgba(11,95,153,.08)),
    repeating-linear-gradient(135deg, rgba(12,92,143,.045) 0 1px, transparent 1px 28px);
}
.hd-material-banner__head {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(300px, .62fr);
  gap: 28px;
  align-items: end;
  padding: 34px 36px 22px;
}
.hd-material-banner__head h2 {
  max-width: 760px;
  margin: 8px 0 0;
  color: #031c3a;
  font-family: Sora, Manrope, sans-serif;
  font-size: clamp(27px, 3.4vw, 44px);
  line-height: 1.06;
}
.hd-material-banner__head p {
  margin: 0;
  color: #43576a;
  font-size: 16px;
}
.hd-material-ticker {
  position: relative;
  z-index: 1;
  overflow: hidden;
  padding: 14px 0 20px;
  border-top: 1px solid rgba(12,92,143,.1);
  border-bottom: 1px solid rgba(12,92,143,.1);
  background: rgba(255,255,255,.5);
  mask-image: linear-gradient(90deg, transparent 0, #000 8%, #000 92%, transparent 100%);
}
.hd-material-track {
  display: flex;
  width: max-content;
  gap: 14px;
  animation: hdMaterialTicker 34s linear infinite;
  will-change: transform;
}
.hd-material-ticker:hover .hd-material-track {
  animation-play-state: paused;
}
.hd-material-set {
  display: flex;
  gap: 14px;
  padding-right: 14px;
}
.hd-material-chip {
  flex: 0 0 238px;
  min-height: 96px;
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid rgba(12,92,143,.12);
  background: #fff;
  box-shadow: 0 16px 34px rgba(6,36,61,.09);
}
.hd-material-chip img {
  width: 86px;
  height: 54px;
  object-fit: contain;
}
.hd-material-chip--sample img {
  height: 66px;
  border-radius: 12px;
  object-fit: cover;
}
.hd-material-chip--navy {
  background:
    radial-gradient(circle at 28% 0%, rgba(123,208,255,.18), transparent 58%),
    linear-gradient(135deg, #031827, #0b5f99);
  border-color: rgba(123,208,255,.26);
}
.hd-material-chip--navy span {
  color: #cdefff;
}
.hd-material-chip b {
  display: block;
  color: #031c3a;
  font-family: Sora, Manrope, sans-serif;
  font-size: 17px;
  line-height: 1.1;
}
.hd-material-chip span {
  display: block;
  color: #0b5f99;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.hd-material-banner__tags {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 20px 36px 34px;
}
.hd-material-banner__tags span {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  border-radius: 999px;
  padding: 8px 14px;
  color: #06365b;
  background: rgba(123,208,255,.16);
  border: 1px solid rgba(12,92,143,.16);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.hd-site-footer {
  overflow: hidden;
  position: relative;
  color: #eaf7ff !important;
  background:
    radial-gradient(circle at 14% 8%, rgba(31,157,231,.34), transparent 32%),
    radial-gradient(circle at 88% 18%, rgba(123,208,255,.18), transparent 34%),
    linear-gradient(180deg, #06365b 0%, #041f35 42%, #021321 100%) !important;
  border-top: 1px solid rgba(123,208,255,.28);
  padding: 0 !important;
}
html,
body {
  background: #021321;
}
.hd-site-footer::before,
.hd-site-footer::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.hd-site-footer::before {
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 58px 58px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,.82), transparent 76%);
}
.hd-site-footer::after {
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(123,208,255,.85), transparent);
}
.hd-site-footer .hd-wrap {
  position: relative;
  z-index: 1;
}
.hd-footer-shell {
  display: grid;
  grid-template-columns: minmax(280px, 1.1fr) minmax(240px, .72fr) repeat(2, minmax(170px, .5fr));
  gap: 24px;
  align-items: stretch;
  padding: 44px 0 24px;
}
.hd-footer-brand-panel,
.hd-footer-contact-panel,
.hd-footer-link-column {
  border-radius: 18px;
  border: 1px solid rgba(123,208,255,.18);
  background:
    linear-gradient(180deg, rgba(8,66,106,.78), rgba(4,31,53,.78));
  box-shadow: 0 20px 46px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
}
.hd-footer-brand-panel {
  display: grid;
  gap: 18px;
  padding: 22px;
}
.hd-footer-logo-stage {
  width: min(100%, 330px) !important;
  max-width: 330px !important;
  min-height: 0;
  justify-content: center !important;
  padding: 0 0 4px !important;
  border-radius: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.hd-footer-logo-stage .hd-brand-logo img,
.hd-footer-logo-stage .hd-brand-logo .custom-logo {
  width: 292px !important;
  max-width: 100% !important;
  max-height: 136px !important;
  filter: drop-shadow(0 14px 20px rgba(0,0,0,.26));
}
.hd-footer-brand-panel p,
.hd-footer-contact-panel p {
  margin: 0;
  color: rgba(234,247,255,.78);
  font-size: 15px;
  line-height: 1.65;
}
.hd-footer-proof-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.hd-footer-proof-row span {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  border-radius: 999px;
  padding: 7px 10px;
  color: #d7f2ff;
  background: rgba(31,157,231,.16);
  border: 1px solid rgba(123,208,255,.24);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.hd-footer-contact-panel {
  display: grid;
  align-content: center;
  gap: 12px;
  padding: 24px;
  background:
    radial-gradient(circle at 12% 0%, rgba(31,157,231,.28), transparent 42%),
    linear-gradient(180deg, rgba(8,72,118,.84), rgba(4,31,53,.82));
}
.hd-footer-contact-panel > span,
.hd-footer-link-column h3 {
  color: #7bd0ff !important;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.hd-footer-phone {
  color: #ffffff !important;
  font-family: Sora, Manrope, sans-serif;
  font-size: 26px;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
}
.hd-footer-link-column {
  padding: 24px;
}
.hd-footer-link-column ul {
  gap: 10px;
}
.hd-footer-link-column a {
  color: rgba(234,247,255,.82) !important;
  font-weight: 800;
}
.hd-footer-link-column a:hover {
  color: #7bd0ff !important;
}
.hd-footer-bottom {
  display: flex !important;
  justify-content: center;
  margin: 0 !important;
  padding: 16px 0 !important;
  border-top: 1px solid rgba(123,208,255,.16);
  color: rgba(234,247,255,.68);
  font-size: 13px;
  line-height: 1.2;
  background: rgba(1,11,20,.28);
}

@media (max-width: 1080px) {
  .hd-material-banner__head {
    grid-template-columns: 1fr;
  }
  .hd-footer-shell {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .hd-footer-brand-panel {
    grid-column: 1 / -1;
  }
}
@media (max-width: 700px) {
  .hd-home-hero__copy h1,
  .hd-page-hero__copy h1 {
    margin-bottom: 8px;
  }
  .hd-home-hero__copy h1 mark,
  .hd-page-hero__copy h1 mark {
    width: auto;
    max-width: min(330px, calc(100vw - 36px));
    margin-top: 7px;
    margin-left: auto;
    margin-right: auto;
    font-size: .78em;
    letter-spacing: .04em;
    white-space: normal;
  }
  .hd-home-hero__copy p,
  .hd-page-hero__copy p {
    margin-top: 6px;
  }
  .hd-material-section--ticker {
    padding: 54px 0;
  }
  .hd-material-banner {
    border-radius: 18px;
  }
  .hd-material-banner__head {
    padding: 24px 18px 18px;
    gap: 14px;
  }
  .hd-material-banner__head h2 {
    font-size: 25px;
  }
  .hd-material-chip {
    flex-basis: 214px;
    min-height: 90px;
    grid-template-columns: 72px minmax(0, 1fr);
    padding: 12px;
  }
  .hd-material-chip img {
    width: 72px;
  }
  .hd-material-banner__tags {
    padding: 18px;
  }
  .hd-footer-shell {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 30px 0 16px;
  }
  .hd-footer-brand-panel,
  .hd-footer-contact-panel,
  .hd-footer-link-column {
    border-radius: 14px;
  }
  .hd-footer-logo-stage {
    width: min(100%, 292px) !important;
    max-width: 292px !important;
    min-height: 112px;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .hd-footer-phone {
    font-size: 23px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hd-material-track {
    animation: none !important;
    transform: none !important;
  }
  .hd-material-ticker {
    overflow-x: auto;
    mask-image: none;
  }
}

@media (max-width: 700px) {
  .hd-site-header,
  body.hd-scrolled .hd-site-header {
    box-shadow: none !important;
    border-bottom: 1px solid rgba(123,208,255,.18) !important;
    overflow: visible !important;
    transform: none !important;
    will-change: auto !important;
  }
  .hd-site-header .hd-wrap,
  .hd-header-row {
    overflow: visible !important;
  }
  .hd-menu-toggle:checked ~ .hd-primary-nav {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    z-index: 1300 !important;
    max-height: calc(100dvh - 132px);
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }
  .hd-site-header .hd-brand,
  body.hd-scrolled .hd-site-header .hd-brand {
    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;
    -webkit-filter: none !important;
    overflow: visible;
  }
  .hd-site-header .hd-brand-logo {
    display: block;
    line-height: 0;
    overflow: hidden;
    contain: paint;
  }
  .hd-site-header .hd-brand-logo img,
  .hd-site-header .hd-brand-logo .custom-logo,
  body.hd-scrolled .hd-site-header .hd-brand-logo img,
  body.hd-scrolled .hd-site-header .hd-brand-logo .custom-logo {
    filter: none !important;
    -webkit-filter: none !important;
    backface-visibility: hidden;
    transform: translateZ(0);
  }
}

.hd-floating-call {
  display: none !important;
}
@media (max-width: 700px) {
  .hd-floating-call {
    display: inline-grid !important;
    top: auto !important;
    right: max(18px, env(safe-area-inset-right, 0px)) !important;
    bottom: calc(20px + env(safe-area-inset-bottom, 0px)) !important;
    width: 66px !important;
    height: 66px !important;
    min-width: 0 !important;
    padding: 0 !important;
    border-radius: 999px !important;
    overflow: hidden !important;
    isolation: isolate;
    background:
      linear-gradient(180deg, rgba(255,255,255,.14), transparent 54%),
      linear-gradient(135deg, #1294d8 0%, #075786 48%, #032b49 100%) !important;
    border: 1px solid rgba(123,208,255,.72) !important;
    box-shadow: 0 12px 24px rgba(3,28,58,.26), inset 0 1px 0 rgba(255,255,255,.18) !important;
    opacity: 0;
    pointer-events: none;
    transform: translateY(16px) scale(.96) !important;
  }
  .hd-floating-call::before {
    content: none !important;
    display: none !important;
    animation: none !important;
  }
  body.hd-scrolled .hd-floating-call {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1) !important;
  }
  .hd-floating-call:hover,
  .hd-floating-call:focus-visible {
    box-shadow: 0 14px 28px rgba(3,28,58,.3), inset 0 1px 0 rgba(255,255,255,.2) !important;
  }
  .hd-floating-call .hd-phone-icon {
    width: 42px !important;
    height: 42px !important;
    flex-basis: 42px !important;
    background: rgba(255,255,255,.12) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18) !important;
  }
  .hd-floating-call .hd-phone-icon::before {
    width: 20px !important;
    height: 20px !important;
  }
}
