/* GEOTAX V61 FINAL MAX — Button & CTA Visibility Gate
   Scope: visual accessibility of buttons/CTA only. No fiscal, SEO, GEO, LLM, language, or security content changes.
   Purpose: prevent invisible text states, especially gold text inherited from article links on gold primary buttons. */
:root {
  --gtx-button-dark: var(--dark-primary, var(--dark, #1A2233));
  --gtx-button-very-dark: var(--very-dark, #0F151F);
  --gtx-button-gold: var(--accent-gold, var(--gold, #CBB98E));
  --gtx-button-gold-hover: var(--accent-hover, #E2D2A8);
  --gtx-button-ivory: var(--light-ivory, #F6F2E9);
  --gtx-button-white: #FFFFFF;
}

/* Base shield: buttons must never inherit article-link colors accidentally. */
a.btn, button.btn, input.btn,
.btn, .button, .cta-button, .cta-btn, .cap-btn, .sim-btn,
.bk-btn-next, .bk-btn-back, .bk-btn-checkout,
.float-book, .float-phone, .floating-cta, .floating-btn,
.whatsapp-btn, .whatsapp-button, .sticky-cta-mobile,
.cmp-btn, .cookie-btn, .btn-accept, .btn-decline,
.cookie-accept, .cookie-decline, .filter-btn, .elig-opt, .fz-reset-btn {
  text-decoration: none !important;
  -webkit-text-fill-color: currentColor;
}

/* Primary buttons: dark text on gold, including article pages where .blog-content a is more specific than .btn-primary. */
a.btn.btn-primary, button.btn.btn-primary, input.btn.btn-primary,
.btn.btn-primary, .btn-primary,
.blog-content a.btn.btn-primary, .blog-content a.btn-primary,
.article-content a.btn.btn-primary, article a.btn.btn-primary, main a.btn.btn-primary,
a.btn.primary, button.btn.primary, .btn.primary,
.cap-btn, .sim-btn, .bk-btn-next, .bk-btn-checkout,
.cmp-btn-primary, .cookie-btn.accept, .cookie-btn.cookie-accept,
.cookie-accept, .btn-accept {
  background: var(--gtx-button-gold) !important;
  color: var(--gtx-button-very-dark) !important;
  border-color: var(--gtx-button-gold) !important;
  -webkit-text-fill-color: var(--gtx-button-very-dark) !important;
}

a.btn.btn-primary:hover, button.btn.btn-primary:hover, input.btn.btn-primary:hover,
.btn.btn-primary:hover, .btn-primary:hover,
.blog-content a.btn.btn-primary:hover, .blog-content a.btn-primary:hover,
a.btn.primary:hover, button.btn.primary:hover, .btn.primary:hover,
.cap-btn:hover, .sim-btn:hover, .bk-btn-next:hover, .bk-btn-checkout:hover,
.cmp-btn-primary:hover, .cookie-btn.accept:hover, .cookie-btn.cookie-accept:hover,
.cookie-accept:hover, .btn-accept:hover,
a.btn.btn-primary:focus-visible, button.btn.btn-primary:focus-visible, input.btn.btn-primary:focus-visible,
.btn.btn-primary:focus-visible, .btn-primary:focus-visible,
a.btn.primary:focus-visible, button.btn.primary:focus-visible, .btn.primary:focus-visible {
  background: var(--gtx-button-gold-hover) !important;
  color: var(--gtx-button-very-dark) !important;
  border-color: var(--gtx-button-gold-hover) !important;
  -webkit-text-fill-color: var(--gtx-button-very-dark) !important;
}

/* Secondary buttons on light backgrounds: dark text, gold border. */
a.btn.btn-secondary, button.btn.btn-secondary,
.btn.btn-secondary, .btn-secondary,
.blog-content a.btn.btn-secondary, .blog-content a.btn-secondary,
a.btn.secondary, button.btn.secondary, .btn.secondary,
.cmp-btn-secondary, .cookie-btn.decline, .cookie-btn.cookie-decline,
.cookie-decline, .btn-decline, .bk-btn-back, .fz-reset-btn, .filter-btn {
  background: transparent !important;
  color: var(--gtx-button-dark) !important;
  border-color: var(--gtx-button-gold) !important;
  -webkit-text-fill-color: var(--gtx-button-dark) !important;
}

/* Secondary buttons placed inside dark visual CTA blocks: ivory/gold text remains visible before hover. */
.hero a.btn.btn-secondary, .hero .btn-secondary,
.cta-section a.btn.btn-secondary, .cta-section .btn-secondary,
.blog-cta a.btn.btn-secondary, .blog-cta .btn-secondary,
.float-cta a.btn.btn-secondary, .float-cta .btn-secondary,
footer a.btn.btn-secondary, footer .btn-secondary,
.dark a.btn.btn-secondary, .dark .btn-secondary,
[class*="dark"] a.btn.btn-secondary, [class*="dark"] .btn-secondary {
  background: rgba(15, 21, 31, 0.18) !important;
  color: var(--gtx-button-ivory) !important;
  border-color: var(--gtx-button-gold) !important;
  -webkit-text-fill-color: var(--gtx-button-ivory) !important;
}

a.btn.btn-secondary:hover, button.btn.btn-secondary:hover,
.btn.btn-secondary:hover, .btn-secondary:hover,
.blog-content a.btn.btn-secondary:hover, .blog-content a.btn-secondary:hover,
a.btn.secondary:hover, button.btn.secondary:hover, .btn.secondary:hover,
.hero a.btn.btn-secondary:hover, .hero .btn-secondary:hover,
.cta-section a.btn.btn-secondary:hover, .cta-section .btn-secondary:hover,
.blog-cta a.btn.btn-secondary:hover, .blog-cta .btn-secondary:hover,
.cmp-btn-secondary:hover, .cookie-btn.decline:hover, .cookie-btn.cookie-decline:hover,
.cookie-decline:hover, .btn-decline:hover, .bk-btn-back:hover, .fz-reset-btn:hover, .filter-btn:hover {
  background: var(--gtx-button-gold) !important;
  color: var(--gtx-button-very-dark) !important;
  border-color: var(--gtx-button-gold) !important;
  -webkit-text-fill-color: var(--gtx-button-very-dark) !important;
}

/* CTA families not always using .btn. */
.cta-button, .cta-btn, .floating-cta, .float-book, .sticky-cta-mobile,
.ux-hero-cta a, .ux-consultation-strip a {
  background: var(--gtx-button-gold) !important;
  color: var(--gtx-button-very-dark) !important;
  border-color: var(--gtx-button-gold) !important;
  -webkit-text-fill-color: var(--gtx-button-very-dark) !important;
}
.cta-button:hover, .cta-btn:hover, .floating-cta:hover, .float-book:hover,
.sticky-cta-mobile:hover, .ux-hero-cta a:hover, .ux-consultation-strip a:hover {
  background: var(--gtx-button-gold-hover) !important;
  color: var(--gtx-button-very-dark) !important;
  -webkit-text-fill-color: var(--gtx-button-very-dark) !important;
}
.whatsapp-btn, .whatsapp-button, .floating-whatsapp, .float-phone {
  background: #25D366 !important;
  color: #0F151F !important;
  border-color: #25D366 !important;
  -webkit-text-fill-color: #0F151F !important;
}
.whatsapp-btn:hover, .whatsapp-button:hover, .floating-whatsapp:hover, .float-phone:hover {
  filter: brightness(1.05);
  color: #0F151F !important;
  -webkit-text-fill-color: #0F151F !important;
}

/* Interactive non-CTA controls: keep readable in normal, hover and selected states. */
.faq-header, .faq-question, .elig-opt, .bk-format {
  color: var(--gtx-button-dark) !important;
  -webkit-text-fill-color: var(--gtx-button-dark) !important;
}
.filter-btn.active, .elig-opt.active, .bk-format.active, .bk-format[aria-pressed="true"] {
  background: var(--gtx-button-gold) !important;
  color: var(--gtx-button-very-dark) !important;
  border-color: var(--gtx-button-gold) !important;
  -webkit-text-fill-color: var(--gtx-button-very-dark) !important;
}

/* Disabled buttons must be visibly disabled but still readable. */
button:disabled, .btn:disabled, .btn.disabled, [aria-disabled="true"] {
  opacity: .62;
  color: var(--gtx-button-dark) !important;
  -webkit-text-fill-color: var(--gtx-button-dark) !important;
}

/* Mobile tap comfort and focus states. */
a.btn, button.btn, .btn, .cta-button, .cta-btn, .cap-btn, .sim-btn,
.float-book, .float-phone, .sticky-cta-mobile,
.cmp-btn, .cookie-btn, .filter-btn, .elig-opt, .bk-format,
.bk-btn-next, .bk-btn-back, .bk-btn-checkout {
  min-height: 44px;
  align-items: center;
  justify-content: center;
}
a.btn:focus-visible, button.btn:focus-visible, .btn:focus-visible,
.cta-button:focus-visible, .cta-btn:focus-visible,
.cap-btn:focus-visible, .sim-btn:focus-visible,
.float-book:focus-visible, .float-phone:focus-visible,
.sticky-cta-mobile:focus-visible, .cmp-btn:focus-visible,
.cookie-btn:focus-visible, .filter-btn:focus-visible,
.elig-opt:focus-visible, .bk-format:focus-visible,
.bk-btn-next:focus-visible, .bk-btn-back:focus-visible,
.bk-btn-checkout:focus-visible {
  outline: 3px solid var(--gtx-button-gold-hover) !important;
  outline-offset: 3px !important;
}
