/* Illuminated booking availability and direct call actions. */
.online,
.header-actions .online,
.booking-card .online,
.final-cta .online,
.footer-grid .online,
.flow-summary .online {
  background: linear-gradient(125deg, #073d23, #096b35);
  position: relative;
  border-color: transparent;
  color: #edfff3;
  text-shadow: 0 0 9px #78ffb08c;
  box-shadow: none;
  animation: none;
}
.online .dot,
.booking-call-light {
  flex-shrink: 0;
  position: relative;
  background: transparent;
  box-shadow: none;
  animation: none;
}
.booking-card .booking-help .booking-call-now {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  width: 100%;
  min-height: 62px;
  margin-top: 10px;
  padding: 12px 16px;
  border: 1px solid #4ce58b;
  border-radius: 11px;
  background: linear-gradient(135deg, #009d43, #007b32);
  color: #fff;
  text-decoration: none;
  letter-spacing: 0;
  position: relative;
  box-shadow: 0 6px 18px #008b3926;
  animation: none;
}
.booking-call-now .icon { width: 23px; height: 23px; flex-shrink: 0; }
.booking-call-copy { display: flex; flex-direction: column; align-items: center; gap: 3px; line-height: 1.15; }
.booking-call-copy strong { font-size: 18px; font-weight: 800; }
.booking-call-copy small { font-size: 12px; font-weight: 700; color: #fff; }
.booking-call-light { display: inline-block; width: 9px; height: 9px; border-radius: 50%; }
.booking-card .booking-help .booking-call-now:hover { background: linear-gradient(135deg, #00ad4c, #008237); }
.booking-call-now:focus-visible { outline: 3px solid #0470de; outline-offset: 4px; }
.mobile-bar .btn.mobile-call-highlight {
  position: relative;
  border: 1px solid #4ce58b;
  box-shadow: 0 6px 18px #008b3926;
  animation: none;
}
.hero-proof .google-letter .google-review-mark { display: block; width: 32px; height: 32px; object-fit: contain; }
.verified-google-review .review-rating .review-google img { display: block; width: 25px; height: 25px; object-fit: contain; }
@media (max-width: 650px) {
  .hero-proof .google-letter .google-review-mark { width: 28px; height: 28px; }
}
/* Rasterise each glow endpoint once; only crossfade opacity while flashing. */
.online::before, .online::after,
.online .dot::before, .online .dot::after,
.booking-call-light::before, .booking-call-light::after,
.booking-card .booking-help .booking-call-now::before,
.booking-card .booking-help .booking-call-now::after,
.mobile-bar .btn.mobile-call-highlight::before,
.mobile-bar .btn.mobile-call-highlight::after {
  content: "";
  position: absolute;
  border-radius: inherit;
  pointer-events: none;
  will-change: opacity;
}
.online::before, .online::after {
  inset: -1px;
  border: 1px solid #26bc6d;
  box-shadow: 0 0 7px #0bd76b38, inset 0 0 8px #2bff8f10;
  animation: booking-glow-low 2.4s ease-in-out infinite;
}
.online::after {
  border-color: #78ffad;
  box-shadow: 0 0 15px #0bd76b85, 0 0 25px #0bd76b24, inset 0 0 14px #2bff8f28;
  opacity: 0;
  animation-name: booking-glow-high;
}
.online .dot::before, .online .dot::after,
.booking-call-light::before, .booking-call-light::after {
  inset: 0;
  background: #eafff1;
  box-shadow: 0 0 4px #b5ffd4, 0 0 8px #2dff87;
  opacity: .5;
  animation: booking-light-low 1.8s ease-in-out infinite;
}
.online .dot::after, .booking-call-light::after {
  box-shadow: 0 0 6px #eafff1, 0 0 15px #2dff87, 0 0 0 5px #33ff891c;
  opacity: 0;
  animation-name: booking-light-high;
}
.booking-card .booking-help .booking-call-now::before,
.booking-card .booking-help .booking-call-now::after,
.mobile-bar .btn.mobile-call-highlight::before,
.mobile-bar .btn.mobile-call-highlight::after {
  inset: -1px;
  box-shadow: 0 0 9px #00c95b40;
  animation: booking-glow-low 2.4s ease-in-out infinite;
}
.booking-card .booking-help .booking-call-now::after,
.mobile-bar .btn.mobile-call-highlight::after {
  box-shadow: 0 0 18px #00d8698c, 0 0 28px #00c95b24;
  opacity: 0;
  animation-name: booking-glow-high;
}
@keyframes booking-glow-low {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}
@keyframes booking-glow-high {
  0%, 100% { opacity: 0; }
  50% { opacity: 1; }
}
@keyframes booking-light-low {
  0%, 100% { opacity: .5; }
  45%, 60% { opacity: 0; }
}
@keyframes booking-light-high {
  0%, 100% { opacity: 0; }
  45%, 60% { opacity: 1; }
}
/* Capture and reduced motion use the original non-animated appearance. */
.capture .online { border-color: #28d779; box-shadow: 0 0 8px #0bd76b40, inset 0 0 10px #2bff8f14; }
.capture .online .dot, .capture .booking-call-light { background: #eafff1; box-shadow: 0 0 5px #b5ffd4, 0 0 12px #2dff87; }
.capture .booking-card .booking-help .booking-call-now,
.capture .mobile-bar .btn.mobile-call-highlight { box-shadow: 0 0 11px #00c95b50, 0 6px 18px #008b3926; }
.capture .online::before, .capture .online::after,
.capture .online .dot::before, .capture .online .dot::after,
.capture .booking-call-light::before, .capture .booking-call-light::after,
.capture .booking-card .booking-help .booking-call-now::before,
.capture .booking-card .booking-help .booking-call-now::after,
.capture .mobile-bar .btn.mobile-call-highlight::before,
.capture .mobile-bar .btn.mobile-call-highlight::after {
  display: none;
  animation: none !important;
  will-change: auto;
}
@media (prefers-reduced-motion: reduce) {
  .online, .online .dot, .booking-call-light,
  .booking-card .booking-help .booking-call-now,
  .mobile-bar .btn.mobile-call-highlight { animation: none !important; }
  .online { border-color: #28d779; box-shadow: 0 0 8px #0bd76b40, inset 0 0 10px #2bff8f14; }
  .online .dot, .booking-call-light { background: #eafff1; box-shadow: 0 0 5px #b5ffd4, 0 0 12px #2dff87; }
  .booking-card .booking-help .booking-call-now,
  .mobile-bar .btn.mobile-call-highlight { box-shadow: 0 0 11px #00c95b50, 0 6px 18px #008b3926; }
  .online::before, .online::after,
  .online .dot::before, .online .dot::after,
  .booking-call-light::before, .booking-call-light::after,
  .booking-card .booking-help .booking-call-now::before,
  .booking-card .booking-help .booking-call-now::after,
  .mobile-bar .btn.mobile-call-highlight::before,
  .mobile-bar .btn.mobile-call-highlight::after {
    display: none;
    animation: none !important;
    will-change: auto;
  }
}
