/* =========================================================
   Dial 4 Duct CTA Attention Animations - cache-safe file
   Loaded after the main theme so these visible continuous
   animations apply directly to important CTA elements.
   ========================================================= */
:root {
  --cta-green: #57b72f;
  --cta-green-dark: #2f9d21;
  --cta-blue: #1669d9;
  --cta-blue-dark: #0b47a1;
}

.cta-live-anim,
.cta-live-anim * {
  backface-visibility: hidden;
}

.cta-live-anim {
  position: relative !important;
  isolation: isolate !important;
  overflow: visible !important;
  transform: translateZ(0);
  will-change: transform, box-shadow, filter, background-position;
}

.cta-live-anim > * {
  position: relative;
  z-index: 2;
}

.cta-live-anim::before,
.cta-live-anim::after {
  pointer-events: none;
}

/* Navbar Book Now: glowing text-pill motion */
.cta-nav-book {
  animation: d4dNavBookGlow 1.35s ease-in-out infinite !important;
  border-radius: 999px !important;
}
.cta-nav-book::before {
  content: '' !important;
  position: absolute !important;
  left: -10px !important;
  right: -10px !important;
  top: 9px !important;
  bottom: 9px !important;
  z-index: -1 !important;
  border-radius: 999px !important;
  background: radial-gradient(circle, rgba(87,183,47,.42), rgba(22,105,217,.16) 58%, transparent 76%) !important;
  animation: d4dNavBookHalo 1.35s ease-in-out infinite !important;
}

/* Desktop navbar Get a Quote: beacon ring */
.cta-nav-quote {
  animation: d4dNavQuoteBeacon 1.45s ease-in-out infinite !important;
}
.cta-nav-quote::after {
  content: '' !important;
  position: absolute !important;
  inset: -9px !important;
  z-index: -1 !important;
  border-radius: 20px !important;
  border: 3px solid rgba(87,183,47,.55) !important;
  animation: d4dNavQuoteRing 1.45s ease-out infinite !important;
}
.cta-nav-quote .quote-status-dot {
  animation: d4dDotBlink .8s ease-in-out infinite !important;
}
.cta-nav-quote .quote-arrow {
  animation: d4dArrowPush .9s ease-in-out infinite !important;
}

/* Mobile quote: visible scanning spotlight */
.cta-mobile-scan {
  animation: d4dMobileLift 1.55s ease-in-out infinite !important;
}
.cta-mobile-scan::after {
  content: '' !important;
  position: absolute !important;
  top: -80% !important;
  bottom: -80% !important;
  left: -60% !important;
  width: 42% !important;
  z-index: 1 !important;
  transform: rotate(18deg) !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.95), transparent) !important;
  animation: d4dScanSweep 1.6s ease-in-out infinite !important;
}

/* Hero main quote: floating call style sonar */
.cta-hero-sonar {
  animation: d4dHeroPop 1.35s ease-in-out infinite !important;
}
.cta-hero-sonar::after {
  content: '' !important;
  position: absolute !important;
  inset: -11px !important;
  z-index: -1 !important;
  border-radius: 999px !important;
  background: rgba(87,183,47,.22) !important;
  border: 2px solid rgba(87,183,47,.38) !important;
  animation: d4dHeroSonar 1.35s ease-out infinite !important;
}

/* Service-page quote: short magnetic wiggle */
.cta-service-wiggle {
  animation: d4dServiceWiggle 1.6s ease-in-out infinite !important;
}
.cta-service-wiggle::after {
  content: '' !important;
  position: absolute !important;
  inset: -6px !important;
  z-index: -1 !important;
  border-radius: 999px !important;
  border: 2px solid rgba(22,105,217,.38) !important;
  animation: d4dBlueRing 1.6s ease-out infinite !important;
}

/* Inner pages and booking/contact primary buttons */
.cta-inner-lift {
  animation: d4dInnerLift 1.55s ease-in-out infinite !important;
}
.cta-inner-lift::after {
  content: '' !important;
  position: absolute !important;
  inset: -8px !important;
  z-index: -1 !important;
  border-radius: inherit !important;
  box-shadow: 0 0 0 2px rgba(22,105,217,.34) !important;
  animation: d4dInnerPulse 1.55s ease-out infinite !important;
}

/* Middle/final quote CTAs: breathing glow */
.cta-section-breathe {
  animation: d4dSectionBreathe 1.8s ease-in-out infinite !important;
}
.cta-section-breathe::after {
  content: '' !important;
  position: absolute !important;
  top: -60% !important;
  bottom: -60% !important;
  left: -45% !important;
  width: 30% !important;
  z-index: 1 !important;
  transform: rotate(20deg) !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.70), transparent) !important;
  animation: d4dWhiteSweep 1.9s ease-in-out infinite !important;
}

/* Form submit: tap pulse */
.cta-form-tap {
  animation: d4dFormTap 1.25s ease-in-out infinite !important;
}
.cta-form-tap::after {
  content: '' !important;
  position: absolute !important;
  inset: -7px !important;
  z-index: -1 !important;
  border-radius: inherit !important;
  border: 2px solid rgba(87,183,47,.48) !important;
  animation: d4dFormRing 1.25s ease-out infinite !important;
}

/* Phone buttons: phone-wave, different from quote CTAs */
.cta-phone-wave {
  animation: d4dPhoneWave 1.25s ease-in-out infinite !important;
}
.cta-phone-wave::after {
  content: '' !important;
  position: absolute !important;
  inset: -8px !important;
  z-index: -1 !important;
  border-radius: inherit !important;
  border: 2px solid rgba(87,183,47,.45) !important;
  animation: d4dPhoneRing 1.25s ease-out infinite !important;
}

/* Floating quote dock: neon dock glow */
.cta-floating-quote {
  animation: d4dDockQuote 1.4s ease-in-out infinite !important;
  border-radius: 24px !important;
}
.cta-floating-quote::after {
  content: '' !important;
  position: absolute !important;
  inset: 4px !important;
  z-index: -1 !important;
  border-radius: 22px !important;
  background: linear-gradient(90deg, rgba(87,183,47,.35), rgba(22,105,217,.24)) !important;
  animation: d4dDockQuoteGlow 1.4s ease-in-out infinite !important;
}

/* Floating call circle: strongest always-running call animation */
.cta-floating-call {
  position: relative !important;
  isolation: isolate !important;
  overflow: visible !important;
  animation: d4dFloatingCallPop 1.05s ease-in-out infinite !important;
}
.cta-floating-call::after {
  content: '' !important;
  position: absolute !important;
  inset: -13px !important;
  z-index: -1 !important;
  border-radius: 50% !important;
  border: 3px solid rgba(111,201,48,.52) !important;
  animation: d4dFloatingCallWave 1.05s ease-out infinite !important;
}

/* Form cards: subtle moving attention border */
.cta-form-card-live {
  position: relative !important;
  isolation: isolate !important;
  overflow: visible !important;
  animation: d4dFormCardShadow 2.2s ease-in-out infinite !important;
}
.cta-form-card-live::after {
  content: '' !important;
  position: absolute !important;
  inset: -2px !important;
  z-index: -1 !important;
  border-radius: inherit !important;
  background: linear-gradient(120deg, rgba(87,183,47,.45), transparent 32%, rgba(22,105,217,.35) 61%, transparent 78%) !important;
  background-size: 220% 220% !important;
  animation: d4dFormBorder 2.4s ease infinite !important;
}

@keyframes d4dNavBookGlow {
  0%,100% { transform: translateY(0) scale(1); color: #1d2f45; text-shadow: none; }
  50% { transform: translateY(-3px) scale(1.05); color: var(--cta-green-dark); text-shadow: 0 0 16px rgba(87,183,47,.72); }
}
@keyframes d4dNavBookHalo {
  0%,100% { opacity: .12; transform: scale(.86); }
  50% { opacity: 1; transform: scale(1.15); }
}
@keyframes d4dNavQuoteBeacon {
  0%,100% { transform: translateY(0) scale(1); filter: brightness(1); box-shadow: 0 12px 26px rgba(22,105,217,.22), 0 0 0 0 rgba(87,183,47,.36); }
  50% { transform: translateY(-4px) scale(1.045); filter: brightness(1.12); box-shadow: 0 20px 42px rgba(22,105,217,.42), 0 0 0 12px rgba(87,183,47,0); }
}
@keyframes d4dNavQuoteRing {
  0% { opacity: 0; transform: scale(.86); }
  18% { opacity: 1; }
  100% { opacity: 0; transform: scale(1.28); }
}
@keyframes d4dDotBlink { 0%,100% { transform: scale(1); opacity: .7; } 50% { transform: scale(1.7); opacity: 1; } }
@keyframes d4dArrowPush { 0%,100% { transform: translateX(0); } 50% { transform: translateX(6px); } }
@keyframes d4dMobileLift { 0%,100% { transform: translateY(0) scale(1); filter: brightness(1); } 50% { transform: translateY(-3px) scale(1.04); filter: brightness(1.14); } }
@keyframes d4dScanSweep { 0%,18% { left: -60%; opacity: 0; } 38% { opacity: 1; } 72%,100% { left: 122%; opacity: 0; } }
@keyframes d4dHeroPop {
  0%,100% { transform: translateY(0) scale(1); filter: brightness(1); box-shadow: 0 14px 30px rgba(87,183,47,.28); }
  50% { transform: translateY(-6px) scale(1.055); filter: brightness(1.10); box-shadow: 0 24px 48px rgba(87,183,47,.46), 0 0 0 12px rgba(87,183,47,0); }
}
@keyframes d4dHeroSonar { 0% { opacity: 0; transform: scale(.82); } 20% { opacity: 1; } 100% { opacity: 0; transform: scale(1.35); } }
@keyframes d4dServiceWiggle {
  0%,100% { transform: translateX(0) translateY(0) scale(1); }
  25% { transform: translateX(3px) translateY(-2px) scale(1.02); }
  50% { transform: translateX(0) translateY(-5px) scale(1.05); box-shadow: 0 21px 42px rgba(22,105,217,.35); }
  75% { transform: translateX(-3px) translateY(-2px) scale(1.02); }
}
@keyframes d4dBlueRing { 0% { opacity: 0; transform: scale(.86); } 22% { opacity: .9; } 100% { opacity: 0; transform: scale(1.25); } }
@keyframes d4dInnerLift { 0%,100% { transform: translateY(0) scale(1); box-shadow: 0 13px 28px rgba(22,105,217,.22); } 50% { transform: translateY(-5px) scale(1.04); box-shadow: 0 22px 44px rgba(22,105,217,.40); } }
@keyframes d4dInnerPulse { 0% { opacity: 0; transform: scale(.86); } 20% { opacity: .8; } 100% { opacity: 0; transform: scale(1.22); } }
@keyframes d4dSectionBreathe { 0%,100% { transform: translateY(0) scale(1); filter: brightness(1); } 50% { transform: translateY(-4px) scale(1.035); filter: brightness(1.11); box-shadow: 0 20px 44px rgba(87,183,47,.34); } }
@keyframes d4dWhiteSweep { 0%,24% { left: -45%; opacity: 0; } 43% { opacity: 1; } 78%,100% { left: 125%; opacity: 0; } }
@keyframes d4dFormTap { 0%,100% { transform: translateY(0) scale(1); filter: brightness(1); } 48% { transform: translateY(-4px) scale(1.045); filter: brightness(1.12); box-shadow: 0 22px 42px rgba(87,183,47,.42); } }
@keyframes d4dFormRing { 0% { opacity: 0; transform: scale(.88); } 20% { opacity: 1; } 100% { opacity: 0; transform: scale(1.24); } }
@keyframes d4dPhoneWave { 0%,100% { transform: translateY(0) rotate(0) scale(1); } 20% { transform: translateY(-2px) rotate(-1.2deg) scale(1.015); } 50% { transform: translateY(-4px) rotate(1.2deg) scale(1.04); box-shadow: 0 18px 36px rgba(87,183,47,.28); } 80% { transform: translateY(-2px) rotate(-.8deg) scale(1.015); } }
@keyframes d4dPhoneRing { 0% { opacity: 0; transform: scale(.85); } 25% { opacity: 1; } 100% { opacity: 0; transform: scale(1.22); } }
@keyframes d4dDockQuote { 0%,100% { transform: translateY(0) scale(1); background: transparent; } 50% { transform: translateY(-5px) scale(1.045); background: rgba(87,183,47,.13); } }
@keyframes d4dDockQuoteGlow { 0%,100% { opacity: .18; transform: scale(.88); } 50% { opacity: .8; transform: scale(1.10); } }
@keyframes d4dFloatingCallPop {
  0%,100% { transform: translateX(-50%) scale(1); filter: brightness(1); box-shadow: 0 9px 25px rgba(77,175,48,.45), inset 0 2px 0 rgba(255,255,255,.32); }
  50% { transform: translateX(-50%) scale(1.16); filter: brightness(1.12); box-shadow: 0 16px 38px rgba(77,175,48,.72), 0 0 0 13px rgba(111,201,48,0), inset 0 2px 0 rgba(255,255,255,.32); }
}
@keyframes d4dFloatingCallWave { 0% { opacity: 0; transform: scale(.72); } 22% { opacity: 1; } 100% { opacity: 0; transform: scale(1.48); } }
@keyframes d4dFormCardShadow { 0%,100% { box-shadow: 0 26px 60px rgba(43,75,113,.18); } 50% { box-shadow: 0 30px 74px rgba(43,75,113,.28), 0 0 0 8px rgba(87,183,47,.08); } }
@keyframes d4dFormBorder { 0%,100% { background-position: 0% 50%; opacity: .35; } 50% { background-position: 100% 50%; opacity: .9; } }

/* Force these CTA highlights to stay visible even if a browser/OS has reduced-motion enabled,
   because the client specifically requested always-running CTA attention effects. */
@media (prefers-reduced-motion: reduce) {
  html body .cta-nav-book.cta-live-anim { animation: d4dNavBookGlow 1.35s ease-in-out infinite !important; }
  html body .cta-nav-book.cta-live-anim::before { animation: d4dNavBookHalo 1.35s ease-in-out infinite !important; }
  html body .cta-nav-quote.cta-live-anim { animation: d4dNavQuoteBeacon 1.45s ease-in-out infinite !important; }
  html body .cta-nav-quote.cta-live-anim::after { animation: d4dNavQuoteRing 1.45s ease-out infinite !important; }
  html body .cta-nav-quote .quote-status-dot { animation: d4dDotBlink .8s ease-in-out infinite !important; }
  html body .cta-nav-quote .quote-arrow { animation: d4dArrowPush .9s ease-in-out infinite !important; }
  html body .cta-mobile-scan.cta-live-anim { animation: d4dMobileLift 1.55s ease-in-out infinite !important; }
  html body .cta-mobile-scan.cta-live-anim::after { animation: d4dScanSweep 1.6s ease-in-out infinite !important; }
  html body .cta-hero-sonar.cta-live-anim { animation: d4dHeroPop 1.35s ease-in-out infinite !important; }
  html body .cta-hero-sonar.cta-live-anim::after { animation: d4dHeroSonar 1.35s ease-out infinite !important; }
  html body .cta-service-wiggle.cta-live-anim { animation: d4dServiceWiggle 1.6s ease-in-out infinite !important; }
  html body .cta-service-wiggle.cta-live-anim::after { animation: d4dBlueRing 1.6s ease-out infinite !important; }
  html body .cta-inner-lift.cta-live-anim { animation: d4dInnerLift 1.55s ease-in-out infinite !important; }
  html body .cta-inner-lift.cta-live-anim::after { animation: d4dInnerPulse 1.55s ease-out infinite !important; }
  html body .cta-section-breathe.cta-live-anim { animation: d4dSectionBreathe 1.8s ease-in-out infinite !important; }
  html body .cta-section-breathe.cta-live-anim::after { animation: d4dWhiteSweep 1.9s ease-in-out infinite !important; }
  html body .cta-form-tap.cta-live-anim { animation: d4dFormTap 1.25s ease-in-out infinite !important; }
  html body .cta-form-tap.cta-live-anim::after { animation: d4dFormRing 1.25s ease-out infinite !important; }
  html body .cta-phone-wave.cta-live-anim { animation: d4dPhoneWave 1.25s ease-in-out infinite !important; }
  html body .cta-phone-wave.cta-live-anim::after { animation: d4dPhoneRing 1.25s ease-out infinite !important; }
  html body .cta-floating-quote.cta-live-anim { animation: d4dDockQuote 1.4s ease-in-out infinite !important; }
  html body .cta-floating-quote.cta-live-anim::after { animation: d4dDockQuoteGlow 1.4s ease-in-out infinite !important; }
  html body .premium-floating-dock .dock-main-call .call-circle.cta-floating-call,
  html body .call-circle.cta-floating-call { animation: d4dFloatingCallPop 1.05s ease-in-out infinite !important; }
  html body .premium-floating-dock .dock-main-call .call-circle.cta-floating-call::after,
  html body .call-circle.cta-floating-call::after { animation: d4dFloatingCallWave 1.05s ease-out infinite !important; }
  html body .cta-form-card-live { animation: d4dFormCardShadow 2.2s ease-in-out infinite !important; }
  html body .cta-form-card-live::after { animation: d4dFormBorder 2.4s ease infinite !important; }
}


/* =========================================================
   Client requested refinements - cleaner nav, slower CTA motion,
   sweep-only submit highlight, and theme-colour stat icons.
   ========================================================= */
html body .coverage-code {
  border-left: 0 !important;
  padding-left: 10px !important;
  box-shadow: none !important;
  background: transparent !important;
}

html body .coverage-code::before,
html body .coverage-code::after {
  content: none !important;
  display: none !important;
}

/* Keep navbar quote animation style, but slow it down. */
html body .cta-nav-quote.cta-live-anim {
  animation: d4dNavQuoteBeacon 2.9s ease-in-out infinite !important;
}
html body .cta-nav-quote.cta-live-anim::after {
  animation: d4dNavQuoteRing 2.9s ease-out infinite !important;
}
html body .cta-nav-quote .quote-status-dot {
  animation: d4dDotBlink 1.8s ease-in-out infinite !important;
}
html body .cta-nav-quote .quote-arrow {
  animation: d4dArrowPush 2s ease-in-out infinite !important;
}

/* Floating Call Now: centered label with slower call attention. */
html body .premium-floating-dock .dock-main-call {
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}
html body .premium-floating-dock .dock-main-call .dock-call-copy {
  width: 100% !important;
  margin-top: 42px !important;
  place-items: center !important;
  text-align: center !important;
}
html body .premium-floating-dock .dock-main-call .dock-call-copy strong {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}
html body .premium-floating-dock .dock-main-call .call-circle.cta-floating-call,
html body .call-circle.cta-floating-call {
  animation: d4dFloatingCallPop 2.45s ease-in-out infinite !important;
}
html body .premium-floating-dock .dock-main-call .call-circle.cta-floating-call::after,
html body .call-circle.cta-floating-call::after {
  animation: d4dFloatingCallWave 2.45s ease-out infinite !important;
}

/* Submit/contact form buttons: remove tap/pulse and use one clean left-to-right shine line. */
html body button.btn-submit.cta-form-tap,
html body button.btn-submit.cta-live-anim {
  overflow: hidden !important;
  animation: none !important;
  transform: none !important;
  box-shadow: 0 14px 30px rgba(87,183,47,.26) !important;
}
html body button.btn-submit.cta-form-tap::after,
html body button.btn-submit.cta-live-anim::after {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  left: -42% !important;
  width: 34% !important;
  z-index: 1 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.92), transparent) !important;
  transform: skewX(-18deg) !important;
  animation: d4dCleanButtonSweep 2.8s ease-in-out infinite !important;
}
html body button.btn-submit.cta-live-anim > * {
  position: relative !important;
  z-index: 2 !important;
}

/* Theme-colour stat icons instead of emoji-style icons. */
html body .stat-icon.stat-icon-svg {
  color: #2f9d21 !important;
  background: linear-gradient(145deg, rgba(87,183,47,.14), rgba(22,105,217,.08)) !important;
  border: 1px solid rgba(87,183,47,.20) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 10px 22px rgba(22,105,217,.08) !important;
}
html body .stat-icon.stat-icon-svg.green { color: #57b72f !important; }
html body .stat-icon.stat-icon-svg.gold { color: #1669d9 !important; background: linear-gradient(145deg, rgba(22,105,217,.12), rgba(87,183,47,.10)) !important; border-color: rgba(22,105,217,.18) !important; }
html body .stat-icon.stat-icon-svg.blue { color: #20aeca !important; background: linear-gradient(145deg, rgba(32,174,202,.14), rgba(87,183,47,.08)) !important; border-color: rgba(32,174,202,.20) !important; }
html body .stat-icon.stat-icon-svg svg {
  width: 24px !important;
  height: 24px !important;
  display: block !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.8 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
html body .stat-icon.stat-icon-svg svg path:first-child,
html body .stat-icon.stat-icon-svg:first-child svg path {
  fill: none !important;
}
html body .stat-icon.stat-icon-svg svg path {
  fill: none !important;
}

@keyframes d4dCleanButtonSweep {
  0%, 18% { left: -42%; opacity: 0; }
  34% { opacity: .98; }
  66%, 100% { left: 118%; opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html body .cta-nav-quote.cta-live-anim { animation: d4dNavQuoteBeacon 2.9s ease-in-out infinite !important; }
  html body .cta-nav-quote.cta-live-anim::after { animation: d4dNavQuoteRing 2.9s ease-out infinite !important; }
  html body .premium-floating-dock .dock-main-call .call-circle.cta-floating-call,
  html body .call-circle.cta-floating-call { animation: d4dFloatingCallPop 2.45s ease-in-out infinite !important; }
  html body .premium-floating-dock .dock-main-call .call-circle.cta-floating-call::after,
  html body .call-circle.cta-floating-call::after { animation: d4dFloatingCallWave 2.45s ease-out infinite !important; }
  html body button.btn-submit.cta-form-tap::after,
  html body button.btn-submit.cta-live-anim::after { animation: d4dCleanButtonSweep 2.8s ease-in-out infinite !important; }
}

/* Prevent older submit-button shimmer from doubling the clean sweep. */
html body button.btn-submit.cta-live-anim::before,
html body button.btn-submit.cta-form-tap::before {
  content: none !important;
  display: none !important;
  animation: none !important;
}

/* =========================================================
   Final visual corrections requested after desktop review
   - remove ON/QC white dash/reflection
   - keep floating Call Now text clean and centred
   - replace submit/navbar quote pulse with visible left-to-right shine
   ========================================================= */
html body.home-page .premium-home-header {
  background: rgba(59, 72, 96, .98) !important;
}
html body.home-page .premium-home-header::before,
html body.home-page .premium-home-header::after,
html body.home-page .premium-nav-wrap::before,
html body.home-page .premium-nav-wrap::after,
html body.home-page .premium-nav-panel::before,
html body.home-page .premium-nav-panel::after,
html body.home-page .premium-nav-right::before,
html body.home-page .premium-nav-right::after,
html body .coverage-code::before,
html body .coverage-code::after {
  content: none !important;
  display: none !important;
  background: none !important;
  box-shadow: none !important;
}
html body.home-page .premium-nav-right,
html body .coverage-code {
  background-image: none !important;
  box-shadow: none !important;
}
html body .coverage-code {
  border-left: 0 !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
  min-width: 58px !important;
  color: #1d2637 !important;
}

/* Floating dock Call Now label: no broken letters, always centred below icon. */
html body.home-page .premium-floating-dock .dock-main-call {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
  padding-bottom: 9px !important;
}
html body.home-page .premium-floating-dock .dock-main-call .call-circle {
  top: -24px !important;
}
html body.home-page .premium-floating-dock .dock-main-call .dock-call-copy {
  position: absolute !important;
  left: 50% !important;
  bottom: 8px !important;
  width: auto !important;
  margin: 0 !important;
  transform: translateX(-50%) !important;
  display: block !important;
  text-align: center !important;
  white-space: nowrap !important;
  line-height: 1 !important;
}
html body.home-page .premium-floating-dock .dock-main-call .dock-call-copy strong {
  display: block !important;
  width: auto !important;
  white-space: nowrap !important;
  text-align: center !important;
  font-size: 9px !important;
  letter-spacing: .10em !important;
  line-height: 1 !important;
}
html body.home-page .premium-floating-dock .dock-main-call .call-circle.cta-floating-call,
html body .call-circle.cta-floating-call {
  animation: d4dFloatingCallPop 3.2s ease-in-out infinite !important;
}
html body.home-page .premium-floating-dock .dock-main-call .call-circle.cta-floating-call::after,
html body .call-circle.cta-floating-call::after {
  animation: d4dFloatingCallWave 3.2s ease-out infinite !important;
}

/* Clean shine-line highlight for navbar quote + submit, no bounce/pulse. */
html body .cta-nav-quote.cta-live-anim,
html body button.btn-submit.cta-live-anim,
html body button.btn-submit.cta-form-tap {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
  animation: none !important;
  transform: none !important;
}
html body .cta-nav-quote.cta-live-anim {
  box-shadow: 0 12px 26px rgba(27,170,166,.26) !important;
}
html body button.btn-submit.cta-live-anim,
html body button.btn-submit.cta-form-tap {
  box-shadow: 0 14px 30px rgba(87,183,47,.26) !important;
}
html body .cta-nav-quote.cta-live-anim::before,
html body button.btn-submit.cta-live-anim::before,
html body button.btn-submit.cta-form-tap::before,
html body .cta-nav-quote.cta-live-anim::after,
html body button.btn-submit.cta-live-anim::after,
html body button.btn-submit.cta-form-tap::after {
  content: '' !important;
  position: absolute !important;
  top: -35% !important;
  bottom: -35% !important;
  left: -48% !important;
  width: 24% !important;
  height: auto !important;
  z-index: 9 !important;
  pointer-events: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.20) 25%, rgba(255,255,255,.96) 50%, rgba(255,255,255,.20) 75%, transparent 100%) !important;
  transform: skewX(-20deg) !important;
  opacity: 0 !important;
  animation: d4dVisibleShineLine 2.15s ease-in-out infinite !important;
}
html body .cta-nav-quote.cta-live-anim::after,
html body button.btn-submit.cta-live-anim::after,
html body button.btn-submit.cta-form-tap::after {
  animation-delay: .08s !important;
}
html body .cta-nav-quote .quote-status-dot { animation: d4dDotBlink 2.4s ease-in-out infinite !important; }
html body .cta-nav-quote .quote-arrow { animation: d4dArrowPush 2.8s ease-in-out infinite !important; }

@keyframes d4dVisibleShineLine {
  0%, 18% { left: -48%; opacity: 0; }
  32% { opacity: 1; }
  64% { left: 124%; opacity: 1; }
  82%, 100% { left: 124%; opacity: 0; }
}

/* =========================================================
   Final clean-up: remove all unwanted white dash/reflection marks.
   Keep shine only on navbar Get a Quote and form Submit buttons.
   ========================================================= */
html body.home-page .premium-home-header,
html body.home-page .premium-nav-wrap,
html body.home-page .premium-nav-panel,
html body.home-page .premium-nav-left,
html body.home-page .premium-nav-right,
html body.home-page .premium-brand,
html body.home-page .header-contact,
html body.home-page .coverage-code {
  background-image: none !important;
}
html body.home-page .premium-home-header::before,
html body.home-page .premium-home-header::after,
html body.home-page .premium-nav-wrap::before,
html body.home-page .premium-nav-wrap::after,
html body.home-page .premium-nav-panel::before,
html body.home-page .premium-nav-panel::after,
html body.home-page .premium-nav-left::before,
html body.home-page .premium-nav-left::after,
html body.home-page .premium-nav-right::before,
html body.home-page .premium-nav-right::after,
html body.home-page .premium-brand::before,
html body.home-page .premium-brand::after,
html body.home-page .header-contact::before,
html body.home-page .header-contact::after,
html body.home-page .coverage-code::before,
html body.home-page .coverage-code::after {
  content: none !important;
  display: none !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  animation: none !important;
}

/* Remove scanning white dashes from all other CTAs. */
html body .cta-mobile-scan::after,
html body .cta-section-breathe::after,
html body .anim-shimmer:not(.cta-nav-quote):not(button)::before,
html body .anim-shimmer:not(.cta-nav-quote):not(button)::after,
html body .home-page:not(.service-page):not(.inner-page) .hero-actions .btn-primary[href="book-now.html"]::before,
html body .home-page:not(.service-page):not(.inner-page) .hero-actions .btn-primary[href="book-now.html"]::after,
html body .home-page:not(.service-page):not(.inner-page) .cta-box .btn-primary[href="book-now.html"]::before,
html body .home-page:not(.service-page):not(.inner-page) .cta-box .btn-primary[href="book-now.html"]::after,
html body .home-page:not(.service-page):not(.inner-page) .btn-secondary[href="book-now.html"]::before,
html body .home-page:not(.service-page):not(.inner-page) .btn-secondary[href="book-now.html"]::after,
html body .home-page:not(.service-page):not(.inner-page) .gallery-copy .btn-outline[href="book-now.html"]::before,
html body .home-page:not(.service-page):not(.inner-page) .gallery-copy .btn-outline[href="book-now.html"]::after {
  content: none !important;
  display: none !important;
  background: none !important;
  animation: none !important;
}

/* Preserve clean left-to-right shiny line only where requested. */
html body .cta-nav-quote.cta-live-anim::before,
html body .cta-nav-quote.cta-live-anim::after,
html body button.btn-submit.cta-live-anim::before,
html body button.btn-submit.cta-live-anim::after,
html body button.btn-submit.cta-form-tap::before,
html body button.btn-submit.cta-form-tap::after {
  content: '' !important;
  display: block !important;
}


/* ===== Floating dock size reduction + centered call button ===== */
html body.home-page .premium-floating-dock {
  width: min(360px, calc(100% - 34px)) !important;
  min-height: 72px !important;
  padding: 6px 10px !important;
  gap: 0 !important;
  border-radius: 40px !important;
}
html body.home-page .premium-floating-dock > a {
  min-height: 56px !important;
  padding: 4px 6px !important;
}
html body.home-page .premium-floating-dock .dock-side-link {
  gap: 1px !important;
}
html body.home-page .premium-floating-dock .dock-icon {
  width: 26px !important;
  height: 26px !important;
}
html body.home-page .premium-floating-dock .dock-icon svg {
  width: 22px !important;
  height: 22px !important;
}
html body.home-page .premium-floating-dock a strong {
  font-size: 9px !important;
}
html body.home-page .premium-floating-dock a > span:last-child:not(.call-circle):not(.dock-call-copy) {
  font-size: 8px !important;
}
html body.home-page .premium-floating-dock .dock-main-call {
  justify-content: center !important;
  align-items: center !important;
  padding: 0 !important;
  background: radial-gradient(circle at 50% 50%, rgba(116, 214, 50, .14), transparent 70%) !important;
}
html body.home-page .premium-floating-dock .dock-main-call .call-circle {
  position: static !important;
  top: auto !important;
  left: auto !important;
  transform: none !important;
  width: 58px !important;
  height: 58px !important;
  border-width: 4px !important;
}
html body.home-page .premium-floating-dock .dock-main-call .call-circle svg {
  width: 24px !important;
  height: 24px !important;
}
html body.home-page .premium-floating-dock .dock-main-call .dock-call-copy {
  display: none !important;
}
@media (max-width: 640px) {
  html body.home-page .premium-floating-dock {
    width: min(330px, calc(100% - 22px)) !important;
    min-height: 68px !important;
    padding: 5px 8px !important;
  }
  html body.home-page .premium-floating-dock > a {
    min-height: 52px !important;
  }
  html body.home-page .premium-floating-dock .dock-main-call .call-circle {
    width: 54px !important;
    height: 54px !important;
  }
}


/* ===== Mobile navbar quote button + reference-style call sonar ===== */
@media (max-width: 1040px) {
  html body.home-page .premium-nav-wrap {
    display: grid !important;
    grid-template-columns: 52px minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 76px !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle {
    order: 1 !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  html body.home-page .premium-brand {
    order: 2 !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: center !important;
  }

  html body.home-page .premium-brand img {
    width: clamp(116px, 31vw, 148px) !important;
    max-height: 66px !important;
  }

  html body.home-page .premium-nav-right {
    order: 3 !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    display: flex !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  html body.home-page .premium-nav-right .header-contact,
  html body.home-page .premium-nav-right .coverage-code {
    display: none !important;
  }

  html body.home-page .premium-nav-right .btn-quote {
    min-width: 124px !important;
    min-height: 48px !important;
    padding: 7px 9px 7px 11px !important;
    display: inline-flex !important;
    gap: 7px !important;
    border-radius: 13px !important;
  }

  html body.home-page .premium-nav-right .btn-quote .quote-button-copy small {
    font-size: 7px !important;
    letter-spacing: .18em !important;
    line-height: 1 !important;
  }

  html body.home-page .premium-nav-right .btn-quote .quote-button-copy strong {
    font-size: 14px !important;
    line-height: 1.05 !important;
  }

  html body.home-page .premium-nav-right .btn-quote .quote-arrow {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    font-size: 14px !important;
  }

  html body.home-page .premium-nav-left {
    order: 4 !important;
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    position: static !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    pointer-events: none !important;
  }

  html body.home-page .premium-nav-left .main-nav {
    pointer-events: auto !important;
    top: calc(100% + 6px) !important;
  }
}

@media (max-width: 460px) {
  html body.home-page .premium-nav-wrap {
    grid-template-columns: 46px minmax(90px, 1fr) auto !important;
    gap: 7px !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle {
    width: 42px !important;
    height: 42px !important;
    border-radius: 10px !important;
  }

  html body.home-page .premium-nav-right .btn-quote {
    min-width: 112px !important;
    min-height: 44px !important;
    padding: 6px 7px 6px 9px !important;
    gap: 6px !important;
  }

  html body.home-page .premium-nav-right .btn-quote .quote-button-copy small {
    font-size: 6px !important;
  }

  html body.home-page .premium-nav-right .btn-quote .quote-button-copy strong {
    font-size: 13px !important;
  }

  html body.home-page .premium-nav-right .btn-quote .quote-arrow {
    width: 23px !important;
    height: 23px !important;
    min-width: 23px !important;
  }
}

html body.home-page .premium-floating-dock .dock-main-call .call-circle {
  position: relative !important;
  isolation: isolate !important;
  overflow: visible !important;
  animation: d4dRefCallGlow 2.7s ease-in-out infinite !important;
}

html body.home-page .premium-floating-dock .dock-main-call .call-circle::before,
html body.home-page .premium-floating-dock .dock-main-call .call-circle::after {
  content: "" !important;
  position: absolute !important;
  inset: -7px !important;
  z-index: -1 !important;
  border-radius: 999px !important;
  border: 2px solid rgba(119, 220, 65, .62) !important;
  background: rgba(119, 220, 65, .08) !important;
  opacity: 0 !important;
  pointer-events: none !important;
  animation: d4dRefCallRing 2.45s ease-out infinite !important;
}

html body.home-page .premium-floating-dock .dock-main-call .call-circle::after {
  inset: -14px !important;
  border-color: rgba(119, 220, 65, .36) !important;
  animation-delay: .55s !important;
}

html body.home-page .premium-floating-dock .dock-main-call .call-circle svg {
  animation: d4dRefPhoneBounce 2.7s ease-in-out infinite !important;
}

@keyframes d4dRefCallRing {
  0% { transform: scale(.82); opacity: 0; }
  18% { opacity: .65; }
  72% { opacity: .08; }
  100% { transform: scale(1.42); opacity: 0; }
}

@keyframes d4dRefCallGlow {
  0%, 100% {
    box-shadow: 0 9px 24px rgba(77, 175, 48, .38), 0 0 0 0 rgba(119,220,65,.16), inset 0 2px 0 rgba(255,255,255,.32);
    transform: scale(1);
  }
  50% {
    box-shadow: 0 13px 34px rgba(77, 175, 48, .58), 0 0 0 9px rgba(119,220,65,.08), inset 0 2px 0 rgba(255,255,255,.34);
    transform: scale(1.04);
  }
}

@keyframes d4dRefPhoneBounce {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-1px) rotate(-7deg); }
  42% { transform: translateY(1px) rotate(7deg); }
  62% { transform: translateY(0) rotate(0deg); }
}


/* ===== Mobile header white background + corrected hamburger color ===== */
@media (max-width: 1040px) {
  html body.home-page .premium-home-header {
    background: rgba(255,255,255,.98) !important;
    border-bottom: 1px solid #e1e9f0 !important;
    box-shadow: 0 10px 24px rgba(24, 55, 91, .10) !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle {
    background: #f4f8fb !important;
    border: 1px solid #d8e3eb !important;
    box-shadow: 0 6px 18px rgba(16, 33, 66, .08) !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle span {
    background: #143153 !important;
  }
}

@media (max-width: 640px) {
  html body.home-page .premium-home-header {
    background: rgba(255,255,255,.99) !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle {
    background: #ffffff !important;
    border-color: #dce6ee !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle span {
    background: #17304f !important;
  }
}


/* ===== Improved animated mobile hamburger ===== */
@media (max-width: 1040px) {
  html body.home-page .premium-nav-wrap > .menu-toggle {
    position: relative !important;
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    padding: 0 !important;
    overflow: hidden !important;
    transition: transform .24s ease, box-shadow .24s ease, background-color .24s ease !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 10px 22px rgba(16,33,66,.12) !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle span {
    display: block !important;
    width: 22px !important;
    height: 2.5px !important;
    margin: 0 !important;
    border-radius: 99px !important;
    transform-origin: center !important;
    box-shadow: 0 1px 0 rgba(255,255,255,.45) inset !important;
    animation: d4dBurgerIdle 2.4s ease-in-out infinite !important;
    transition: transform .28s ease, opacity .22s ease, width .22s ease, background-color .22s ease !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle span:nth-child(2) {
    animation-delay: .18s !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle span:nth-child(3) {
    animation-delay: .36s !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle[aria-expanded="true"] span {
    animation: none !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7.5px) rotate(45deg) !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle[aria-expanded="true"] span:nth-child(2) {
    opacity: 0 !important;
    transform: scaleX(.35) !important;
  }

  html body.home-page .premium-nav-wrap > .menu-toggle[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7.5px) rotate(-45deg) !important;
  }
}

@keyframes d4dBurgerIdle {
  0%, 100% { transform: translateX(0); opacity: 1; }
  25% { transform: translateX(-1px); }
  50% { transform: translateX(1px); }
  75% { transform: translateX(-.5px); }
}


/* === Reduced-motion homepage / floating CTA tuning === */
html body .cta-floating-quote,
html body .cta-floating-quote.cta-live-anim,
html body .cta-floating-quote::after,
html body .cta-floating-quote.cta-live-anim::after,
html body .home-page .hero-actions .cta-hero-sonar,
html body .home-page .hero-actions .cta-hero-sonar.cta-live-anim,
html body .home-page .hero-actions .cta-hero-sonar::after,
html body .home-page .hero-actions .cta-hero-sonar.cta-live-anim::after,
html body .home-page .hero-actions .cta-phone-wave,
html body .home-page .hero-actions .cta-phone-wave.cta-live-anim,
html body .home-page .hero-actions .cta-phone-wave::after,
html body .home-page .hero-actions .cta-phone-wave.cta-live-anim::after {
  animation: none !important;
}

html body .cta-floating-quote::after,
html body .home-page .hero-actions .cta-phone-wave::after,
html body .home-page .hero-actions .cta-hero-sonar::after {
  content: none !important;
  display: none !important;
}

html body .home-page .hero-actions .btn-primary {
  transform: none !important;
}

html body .home-page .hero-actions .btn-primary.anim-shimmer {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

html body .home-page .hero-actions .btn-primary.anim-shimmer::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  pointer-events: none !important;
  top: -55% !important;
  bottom: -55% !important;
  left: -42% !important;
  width: 24% !important;
  z-index: 1 !important;
  transform: rotate(18deg) !important;
  background: linear-gradient(115deg, transparent 0%, rgba(255,255,255,0) 18%, rgba(255,255,255,.22) 42%, rgba(255,255,255,.72) 50%, rgba(255,255,255,.22) 58%, rgba(255,255,255,0) 82%, transparent 100%) !important;
  animation: d4dHeroLightShine 2.4s ease-in-out infinite !important;
}

html body .home-page .hero-actions .btn-primary > * {
  position: relative;
  z-index: 2;
}

@keyframes d4dHeroLightShine {
  0%, 58%, 100% {
    left: -42%;
    opacity: 0;
  }
  14% {
    opacity: .95;
  }
  34% {
    left: 118%;
    opacity: .88;
  }
  40% {
    opacity: 0;
  }
}


/* === Hard lock hero CTA behavior === */
html body .home-page .hero-actions .hero-call-static,
html body .home-page .hero-actions .hero-call-static::before,
html body .home-page .hero-actions .hero-call-static::after,
html body .home-page .hero-actions .hero-quote-shine,
html body .home-page .hero-actions .hero-quote-shine::after {
  animation: none !important;
}

html body .home-page .hero-actions .hero-call-static::before,
html body .home-page .hero-actions .hero-call-static::after,
html body .home-page .hero-actions .hero-quote-shine::after {
  content: none !important;
  display: none !important;
}

html body .home-page .hero-actions .hero-quote-shine {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

html body .home-page .hero-actions .hero-quote-shine::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  pointer-events: none !important;
  top: -55% !important;
  bottom: -55% !important;
  left: -42% !important;
  width: 24% !important;
  z-index: 1 !important;
  transform: rotate(18deg) !important;
  background: linear-gradient(115deg, transparent 0%, rgba(255,255,255,0) 18%, rgba(255,255,255,.22) 42%, rgba(255,255,255,.72) 50%, rgba(255,255,255,.22) 58%, rgba(255,255,255,0) 82%, transparent 100%) !important;
  animation: d4dHeroLightShine 2.4s ease-in-out infinite !important;
}

html body .home-page .hero-actions .hero-quote-shine > * {
  position: relative;
  z-index: 2;
}


/* === Final CTA band: static call + lightweight shine quote === */
html body .home-page .cta-box .cta-box-call-static,
html body .home-page .cta-box .cta-box-call-static::before,
html body .home-page .cta-box .cta-box-call-static::after,
html body .home-page .cta-box .cta-box-quote-shine,
html body .home-page .cta-box .cta-box-quote-shine::after {
  animation: none !important;
}

html body .home-page .cta-box .cta-box-call-static::before,
html body .home-page .cta-box .cta-box-call-static::after,
html body .home-page .cta-box .cta-box-quote-shine::after {
  content: none !important;
  display: none !important;
}

html body .home-page .cta-box .cta-box-quote-shine {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transform: none !important;
}

html body .home-page .cta-box .cta-box-quote-shine::before {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  pointer-events: none !important;
  top: -60% !important;
  bottom: -60% !important;
  left: -40% !important;
  width: 22% !important;
  z-index: 1 !important;
  transform: rotate(18deg) !important;
  background: linear-gradient(115deg, transparent 0%, rgba(255,255,255,0) 18%, rgba(255,255,255,.18) 40%, rgba(255,255,255,.72) 50%, rgba(255,255,255,.18) 60%, rgba(255,255,255,0) 82%, transparent 100%) !important;
  animation: d4dCtaBoxShine 2.5s ease-in-out infinite !important;
}

@keyframes d4dCtaBoxShine {
  0%, 60%, 100% { left: -40%; opacity: 0; }
  14% { opacity: .95; }
  34% { left: 118%; opacity: .88; }
  42% { opacity: 0; }
}
