/* Dial 4 Duct — unified floating quick-action dock
   Keeps the floating bar identical to the homepage across every page. */
html body .premium-floating-dock {
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  bottom: 15px !important;
  z-index: 1200 !important;
  width: min(360px, calc(100% - 34px)) !important;
  min-height: 72px !important;
  padding: 6px 10px !important;
  display: grid !important;
  grid-template-columns: 1fr 1.14fr 1fr !important;
  align-items: stretch !important;
  gap: 0 !important;
  transform: translateX(-50%) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 40px !important;
  background: rgba(5,18,41,.96) !important;
  box-shadow: 0 20px 45px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.04) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  overflow: visible !important;
}

html body .premium-floating-dock > a {
  min-width: 0 !important;
  min-height: 56px !important;
  padding: 4px 6px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-direction: column !important;
  border-radius: 35px !important;
  color: #fff !important;
  font-family: 'Inter', sans-serif !important;
  text-align: center !important;
  text-decoration: none !important;
  transform: none !important;
}

html body .premium-floating-dock .dock-side-link {
  gap: 1px !important;
  background: transparent !important;
}
html body .premium-floating-dock .dock-side-link:first-child {
  border-right: 1px solid rgba(255,255,255,.055) !important;
}
html body .premium-floating-dock .dock-side-link:last-child {
  border-left: 1px solid rgba(255,255,255,.055) !important;
}

html body .premium-floating-dock .dock-icon {
  width: 26px !important;
  height: 26px !important;
  display: grid !important;
  place-items: center !important;
  color: #72cf38 !important;
}
html body .premium-floating-dock .dock-icon svg {
  width: 22px !important;
  height: 22px !important;
}
html body .premium-floating-dock a strong {
  color: #d8efb3 !important;
  font-size: 9px !important;
  line-height: 1.1 !important;
  text-transform: uppercase !important;
  letter-spacing: .12em !important;
  white-space: nowrap !important;
}
html body .premium-floating-dock a > span:last-child:not(.call-circle):not(.dock-call-copy) {
  color: rgba(255,255,255,.58) !important;
  font-size: 8px !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
}

/* Homepage-style centre phone action */
html body .premium-floating-dock .dock-main-call,
html body .premium-floating-dock .dock-main-call.pulse {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 56px !important;
  padding: 0 !important;
  overflow: visible !important;
  background: radial-gradient(circle at 50% 50%, rgba(116,214,50,.14), transparent 70%) !important;
  box-shadow: none !important;
  animation: none !important;
}
html body .premium-floating-dock .dock-main-call .call-circle,
html body .premium-floating-dock .dock-main-call .call-circle.cta-floating-call {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  width: 58px !important;
  height: 58px !important;
  flex: 0 0 58px !important;
  display: grid !important;
  place-items: center !important;
  transform: none !important;
  color: #fff !important;
  border: 4px solid rgba(111,201,48,.22) !important;
  border-radius: 50% !important;
  background: linear-gradient(145deg,#7fd343,#4eaf2f) !important;
  box-shadow: 0 9px 25px rgba(77,175,48,.46), inset 0 2px 0 rgba(255,255,255,.32) !important;
  isolation: isolate !important;
  overflow: visible !important;
  animation: d4dUnifiedCallGlow 2.7s ease-in-out infinite !important;
}
html body .premium-floating-dock .dock-main-call .call-circle svg {
  width: 24px !important;
  height: 24px !important;
  animation: none !important;
}
html body .premium-floating-dock .dock-main-call .call-circle::before,
html body .premium-floating-dock .dock-main-call .call-circle::after {
  content: '' !important;
  position: absolute !important;
  inset: -7px !important;
  z-index: -1 !important;
  border: 2px solid rgba(119,220,65,.54) !important;
  border-radius: 999px !important;
  background: rgba(119,220,65,.06) !important;
  pointer-events: none !important;
  animation: d4dUnifiedCallRing 2.7s ease-out infinite !important;
}
html body .premium-floating-dock .dock-main-call .call-circle::after {
  inset: -13px !important;
  border-color: rgba(119,220,65,.28) !important;
  animation-delay: .55s !important;
}
html body .premium-floating-dock .dock-main-call .dock-call-copy {
  display: none !important;
}

/* Quote-side animation must never resize the dock. */
html body .premium-floating-dock .cta-floating-quote,
html body .premium-floating-dock .cta-floating-quote.cta-live-anim {
  transform: none !important;
}

@keyframes d4dUnifiedCallGlow {
  0%,100% { box-shadow: 0 9px 25px rgba(77,175,48,.46), 0 0 0 0 rgba(119,220,65,.12), inset 0 2px 0 rgba(255,255,255,.32); }
  50% { box-shadow: 0 12px 32px rgba(77,175,48,.58), 0 0 0 7px rgba(119,220,65,.06), inset 0 2px 0 rgba(255,255,255,.34); }
}
@keyframes d4dUnifiedCallRing {
  0% { transform: scale(.86); opacity: 0; }
  18% { opacity: .58; }
  72% { opacity: .08; }
  100% { transform: scale(1.35); opacity: 0; }
}

@media (max-width: 640px) {
  html body .premium-floating-dock {
    width: min(330px, calc(100% - 22px)) !important;
    min-height: 68px !important;
    padding: 5px 8px !important;
    bottom: 12px !important;
  }
  html body .premium-floating-dock > a {
    min-height: 52px !important;
    padding-inline: 4px !important;
  }
  html body .premium-floating-dock .dock-main-call .call-circle,
  html body .premium-floating-dock .dock-main-call .call-circle.cta-floating-call {
    width: 54px !important;
    height: 54px !important;
    flex-basis: 54px !important;
  }
  html body .premium-floating-dock .dock-icon {
    width: 24px !important;
    height: 24px !important;
  }
  html body .premium-floating-dock .dock-icon svg {
    width: 20px !important;
    height: 20px !important;
  }
  html body .premium-floating-dock a strong { font-size: 8.5px !important; }
  html body .premium-floating-dock a > span:last-child:not(.call-circle):not(.dock-call-copy) { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  html body .premium-floating-dock .dock-main-call .call-circle,
  html body .premium-floating-dock .dock-main-call .call-circle::before,
  html body .premium-floating-dock .dock-main-call .call-circle::after {
    animation: none !important;
  }
}

/* Local home-style service pages: linked coverage pills use the same visual treatment as homepage spans. */
.local-service-home .area-pills a {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 17px 10px 38px;
  border: 1px solid #e0e8f0;
  border-radius: 999px;
  background: #fff;
  color: #102142;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(16,33,66,.06);
}
.local-service-home .area-pills a::before {
  content: "";
  position: absolute;
  left: 15px;
  top: 50%;
  width: 13px;
  height: 13px;
  border-radius: 50% 50% 50% 0;
  background: linear-gradient(135deg,var(--green),var(--blue));
  transform: translateY(-62%) rotate(-45deg);
}
.local-service-home .area-pills a:hover { transform: translateY(-2px); border-color: rgba(47,174,39,.35); }

/* Water-ripple animation for the floating call action. */
html body .premium-floating-dock .dock-main-call .call-circle,
html body .premium-floating-dock .dock-main-call .call-circle.cta-floating-call {
  animation: d4dWaterCallGlow 2.4s ease-in-out infinite !important;
}
html body .premium-floating-dock .dock-main-call .call-circle::before,
html body .premium-floating-dock .dock-main-call .call-circle::after {
  inset: -5px !important;
  border: 2px solid rgba(120,224,67,.72) !important;
  background: transparent !important;
  box-shadow: none !important;
  animation: d4dWaterRipple 2.4s cubic-bezier(.15,.55,.25,1) infinite !important;
}
html body .premium-floating-dock .dock-main-call .call-circle::after {
  animation-delay: 1.2s !important;
}
@keyframes d4dWaterRipple {
  0% { transform: scale(.86); opacity: 0; }
  12% { opacity: .78; }
  70% { opacity: .16; }
  100% { transform: scale(2.05); opacity: 0; }
}
@keyframes d4dWaterCallGlow {
  0%,100% { box-shadow: 0 9px 25px rgba(77,175,48,.46), 0 0 0 0 rgba(119,220,65,.08), inset 0 2px 0 rgba(255,255,255,.32) !important; }
  50% { box-shadow: 0 12px 32px rgba(77,175,48,.60), 0 0 0 6px rgba(119,220,65,.08), inset 0 2px 0 rgba(255,255,255,.34) !important; }
}
