/* Frontline Mutual v91 — distinct sitewide button hover colors
   Policy: green buttons switch to gold; gold/cream buttons switch to a different
   contrasting family based on the surface; no hover uses only a lighter/darker
   shade of the same green. All hover motion remains disabled. */

:root{
  --frontline-hover-green:#0d2f20;
  --frontline-hover-gold:#f0d17a;
  --frontline-hover-gold-strong:#a77b18;
  --frontline-hover-cream:#fffaf0;
  --frontline-hover-gold-border:#6e5008;
  --frontline-hover-light-border:#fff0bd;
  --frontline-hover-shadow:0 11px 26px rgba(13,47,32,.24);
  --frontline-hover-dark-shadow:0 12px 28px rgba(0,0,0,.24);
}

/* Keep all action hovers stationary and visibly animated only by color. */
html body :is(
  .frontline-header-call,
  .frontline-action,
  .frontline-home-cta,
  .frontline-context-cta__primary,
  .frontline-context-cta__secondary,
  .frontline-compare-route__link,
  .frontline-card-action-link,
  .support-card-action,
  .form-submit,
  .big-submit,
  .btn,
  .btn-primary,
  .btn-gold,
  .btn-outline,
  .btn-outline-dark,
  .btn-outline-white,
  .btn-outline-light,
  .btn-green,
  .btn-outline-green,
  .btn-calendly,
  .contact-hero-phone,
  .hero-direct-call,
  .hero-text-action,
  .hero-compare-action,
  .btn-call-hero,
  .btn-scroll-form,
  .testi-review-action,
  .footer-action,
  .desktop-call-float,
  .frontline-back-to-top,
  .mobile-bar a,
  .mobile-call-bar a,
  .menu-toggle,
  .burger,
  .faq-q,
  .faq-t65-q
){
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease!important;
}
html body :is(
  .frontline-header-call,
  .frontline-action,
  .frontline-home-cta,
  .frontline-context-cta__primary,
  .frontline-context-cta__secondary,
  .frontline-compare-route__link,
  .frontline-card-action-link,
  .support-card-action,
  .form-submit,
  .big-submit,
  .btn,
  .btn-primary,
  .btn-gold,
  .btn-outline,
  .btn-outline-dark,
  .btn-outline-white,
  .btn-outline-light,
  .btn-green,
  .btn-outline-green,
  .btn-calendly,
  .contact-hero-phone,
  .hero-direct-call,
  .hero-text-action,
  .hero-compare-action,
  .btn-call-hero,
  .btn-scroll-form,
  .testi-review-action,
  .footer-action,
  .desktop-call-float,
  .frontline-back-to-top,
  .mobile-bar a,
  .mobile-call-bar a,
  .menu-toggle,
  .burger,
  .faq-q,
  .faq-t65-q
):hover{
  transform:none!important;
}

/* Generic fallback for any remaining button-like control not covered by a named component. */
html body :is(
  button,
  input[type="submit"],
  input[type="button"],
  a[role="button"],
  a[class*="btn"],
  a[class*="button"],
  a[class*="cta"],
  a[class*="action"]
):hover{
  background:var(--frontline-hover-gold)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-gold-border)!important;
  box-shadow:var(--frontline-hover-shadow)!important;
  transform:none!important;
}

/* GREEN / DARK-GREEN BUTTONS ON LIGHT SURFACES -> GOLD. */
html body :is(
  .frontline-header-call,
  .form-submit,
  .big-submit,
  .btn-primary,
  .btn-green,
  .frontline-compare-route__link,
  .support-card-action,
  .contact-hero-phone,
  .frontline-action--primary,
  .frontline-home-cta--primary,
  .frontline-card-action-link,
  .btn-outline-green
):hover{
  background:var(--frontline-hover-gold)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-gold-border)!important;
  box-shadow:var(--frontline-hover-shadow)!important;
}

/* CREAM, WHITE, OR GOLD ACTIONS ON LIGHT SURFACES -> DARK GREEN. */
html body :is(
  .btn-gold,
  .btn-outline-dark,
  .btn-calendly,
  .frontline-action--secondary,
  .frontline-action--tertiary,
  .frontline-action--on-light,
  .frontline-home-cta--phone,
  .frontline-home-cta--schedule,
  .frontline-home-cta--comparison,
  .frontline-home-cta--support,
  .testi-review-action--primary,
  .testi-review-action--secondary
):hover{
  background:var(--frontline-hover-green)!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  border-color:var(--frontline-hover-green)!important;
  box-shadow:var(--frontline-hover-shadow)!important;
}

/* DARK GREEN SECTIONS: primary gold buttons -> light cream, not another gold shade. */
html body :is(
  .page-hero,
  .hero,
  .frontline-context-cta__inner,
  .cta-band,
  .cta-strip,
  .local-card,
  .testi-section--refined,
  footer
) :is(
  .frontline-action--primary:not(.frontline-action--on-light),
  .frontline-context-cta__primary,
  .frontline-context-cta__secondary.frontline-home-cta--primary,
  .btn-gold:not(.frontline-action--on-light),
  .btn-primary:not(.frontline-action--on-light),
  .btn-light:not(.frontline-action--on-light),
  .contact-hero-phone,
  .hero-direct-call,
  .hero-text-action,
  .frontline-home-cta--phone,
  .frontline-home-cta--primary:not(.form-submit),
  .testi-review-action--primary,
  .mobile-bar a,
  .mobile-call-bar a
):hover{
  background:var(--frontline-hover-cream)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-light-border)!important;
  box-shadow:var(--frontline-hover-dark-shadow)!important;
}

/* DARK GREEN SECTIONS: cream/white/outline actions -> gold. */
html body :is(
  .page-hero,
  .hero,
  .frontline-context-cta__inner,
  .cta-band,
  .cta-strip,
  .local-card,
  .testi-section--refined,
  footer
) :is(
  .frontline-action--secondary:not(.frontline-action--on-light),
  .frontline-action--tertiary:not(.frontline-action--on-light),
  .frontline-context-cta__secondary:not(.frontline-home-cta--primary),
  .btn-outline:not(.frontline-action--on-light),
  .btn-outline-white:not(.frontline-action--on-light),
  .btn-outline-light:not(.frontline-action--on-light),
  .frontline-home-cta--schedule,
  .frontline-home-cta--comparison,
  .frontline-home-cta--support,
  .testi-review-action--secondary,
  .hero-compare-action,
  .btn-scroll-form,
  .footer-action
):hover{
  background:var(--frontline-hover-gold)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-gold-border)!important;
  box-shadow:var(--frontline-hover-dark-shadow)!important;
}

/* Homepage light closing card: gold actions -> green; white/cream actions -> gold. */
html body .closing-cta-card :is(
  .frontline-home-cta--phone,
  .frontline-home-cta--primary,
  .frontline-home-cta--schedule
):hover{
  background:var(--frontline-hover-green)!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  border-color:var(--frontline-hover-green)!important;
}
html body .closing-cta-card :is(
  .frontline-home-cta--support,
  .frontline-home-cta--comparison
):hover{
  background:var(--frontline-hover-gold)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-gold-border)!important;
}

/* Comparison page button families. */
html body .btn-green:hover,
html body .btn-outline-green:hover{
  background:var(--frontline-hover-gold)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-gold-border)!important;
}
html body .btn-light:hover,
html body .btn-gold:hover{
  background:var(--frontline-hover-green)!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  border-color:var(--frontline-hover-green)!important;
}
html body .btn-outline-light:hover{
  background:var(--frontline-hover-gold)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-gold-border)!important;
}

/* Header, mobile action, and utility controls. */
html body .frontline-header-call:hover{
  background:var(--frontline-hover-gold)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-gold-border)!important;
}
html body :is(.mobile-bar a,.mobile-call-bar a):hover{
  background:var(--frontline-hover-cream)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-light-border)!important;
}
html body :is(.desktop-call-float,.frontline-back-to-top):hover{
  background:var(--frontline-hover-gold)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-gold-border)!important;
}
html body :is(.burger,.menu-toggle,.nav-topics-toggle):hover{
  background:var(--frontline-hover-gold)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-gold-border)!important;
}

/* FAQ controls switch from white/light surfaces to gold. */
html body :is(.faq-q,.faq-t65-q):hover{
  background:var(--frontline-hover-gold)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-gold-border)!important;
}

/* Ensure all nested labels and icons follow the new hover text color. */
html body :is(
  .frontline-header-call,
  .frontline-action,
  .frontline-home-cta,
  .frontline-context-cta__primary,
  .frontline-context-cta__secondary,
  .frontline-compare-route__link,
  .frontline-card-action-link,
  .support-card-action,
  .form-submit,
  .big-submit,
  .btn,
  .btn-primary,
  .btn-gold,
  .btn-outline,
  .btn-outline-dark,
  .btn-outline-white,
  .btn-outline-light,
  .btn-green,
  .btn-outline-green,
  .btn-calendly,
  .contact-hero-phone,
  .hero-direct-call,
  .hero-text-action,
  .hero-compare-action,
  .btn-call-hero,
  .btn-scroll-form,
  .testi-review-action,
  .footer-action,
  .desktop-call-float,
  .frontline-back-to-top,
  .mobile-bar a,
  .mobile-call-bar a
):hover :is(span,strong,em,small,svg){
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
}
html body :is(
  .frontline-header-call,
  .frontline-action,
  .frontline-home-cta,
  .frontline-context-cta__primary,
  .frontline-context-cta__secondary,
  .frontline-compare-route__link,
  .frontline-card-action-link,
  .support-card-action,
  .form-submit,
  .big-submit,
  .btn,
  .btn-primary,
  .btn-gold,
  .btn-outline,
  .btn-outline-dark,
  .btn-outline-white,
  .btn-outline-light,
  .btn-green,
  .btn-outline-green,
  .btn-calendly,
  .contact-hero-phone,
  .hero-direct-call,
  .hero-text-action,
  .hero-compare-action,
  .btn-call-hero,
  .btn-scroll-form,
  .testi-review-action,
  .footer-action,
  .desktop-call-float,
  .frontline-back-to-top,
  .mobile-bar a,
  .mobile-call-bar a
):hover svg{
  stroke:currentColor!important;
}

@media(prefers-reduced-motion:reduce){
  html body :is(a,button,input[type="submit"]){transition:none!important;}
}

/* Final conflict resolution for components that combine multiple legacy button classes. */
html body :is(.page-hero,.hero) .frontline-action--primary:hover{
  background:var(--frontline-hover-cream)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-light-border)!important;
  box-shadow:var(--frontline-hover-dark-shadow)!important;
}
html body .frontline-compare-route__link:hover{
  background:var(--frontline-hover-green)!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  border-color:var(--frontline-hover-green)!important;
  box-shadow:var(--frontline-hover-shadow)!important;
}
html body .closing-cta-card .frontline-home-cta--primary:hover{
  background:var(--frontline-hover-gold)!important;
  color:var(--frontline-hover-green)!important;
  -webkit-text-fill-color:var(--frontline-hover-green)!important;
  border-color:var(--frontline-hover-gold-border)!important;
  box-shadow:var(--frontline-hover-shadow)!important;
}
html body .frontline-card-action-link:hover,
html body .frontline-content-card--linked:hover .frontline-card-action-link{
  background:var(--frontline-hover-gold-border)!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  border-color:var(--frontline-hover-gold)!important;
  box-shadow:var(--frontline-hover-shadow)!important;
}
html body .frontline-card-action-link:hover :is(span,strong,em,small,svg),
html body .frontline-content-card--linked:hover .frontline-card-action-link :is(span,strong,em,small,svg){
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
}

/* High-specificity color switches for legacy rules that use !important shorthands. */
html body a.frontline-compare-route__link.frontline-compare-route__link:hover{
  background-color:#0d2f20!important;
  background-image:none!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  border-color:#0d2f20!important;
}
html body :is(.page-hero,.hero) a.frontline-action--primary.frontline-action--primary:hover{
  background-color:#fffaf0!important;
  background-image:none!important;
  color:#0d2f20!important;
  -webkit-text-fill-color:#0d2f20!important;
  border-color:#fff0bd!important;
}
html body .closing-cta-card a.frontline-home-cta--primary.frontline-home-cta--primary:hover{
  background-color:#f0d17a!important;
  background-image:none!important;
  color:#0d2f20!important;
  -webkit-text-fill-color:#0d2f20!important;
  border-color:#6e5008!important;
}
html body .final-box a.btn.btn-green:hover{
  background-color:#0d2f20!important;
  background-image:none!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff!important;
  border-color:#0d2f20!important;
}
