/* X17: gold hover, keyboard focus, and touch feedback across every page. */
.btn {
  position: relative;
  overflow: hidden;
  font-family: inherit;
  font-weight: 800;
  isolation: isolate;
  transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease,
    border-color .22s ease, color .22s ease, filter .22s ease;
}
.btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 20%, #fff8d64a 48%, transparent 72%);
  transform: translateX(-130%);
  pointer-events: none;
  transition: transform .6s ease;
}
.btn-primary { background-size: 170% 100%; background-position: 0 50%; }
.btn svg { transition: transform .22s ease; flex-shrink: 0; }
.nav-link, .mobile-link, .menu-toggle, .menu-close, .faq-question, .bottom-nav > a {
  transition: color .22s ease, background .22s ease, box-shadow .22s ease, transform .22s ease;
}
@media (hover: hover) and (pointer: fine) {
  .btn:not(:disabled):hover {
    transform: translateY(-3px);
    filter: brightness(1.07);
    box-shadow: 0 8px 28px #d6af4140, 0 0 0 1px #efd38170;
  }
  .btn:not(:disabled):hover::before { transform: translateX(130%); }
  .btn-primary:not(:disabled):hover { background-position: 100% 50%; }
  .btn-outline:not(:disabled):hover, .btn-soft:not(:disabled):hover {
    background-color: #d6aa351f;
    border-color: #eac76a;
    color: #fff6d7;
  }
  .nav-link:hover, .mobile-link:hover, .bottom-nav > a:hover {
    color: #ffe5a3;
    background-color: #eac76a12;
    box-shadow: inset 0 -2px #eac76a;
  }
  .menu-toggle:hover, .menu-close:hover, .faq-question:hover { background-color: #eac76a17; color: #ffe5a3; }
}
.btn:focus-visible, .nav-link:focus-visible, .mobile-link:focus-visible,
.menu-toggle:focus-visible, .menu-close:focus-visible, .faq-question:focus-visible {
  outline: 2px solid #ffe5a3;
  outline-offset: 4px;
  box-shadow: 0 0 0 5px #c3983f22;
}
.btn:not(:disabled):active { transform: translateY(0) scale(.98); filter: brightness(.96); }
.btn:disabled { cursor: wait; opacity: .65; transform: none; filter: none; }
.btn:disabled::before, .btn:disabled::after { display: none; }
@media (prefers-reduced-motion: reduce) {
  .btn, .btn svg, .nav-link, .mobile-link, .menu-toggle, .menu-close, .faq-question, .bottom-nav > a { transition: none; }
  .btn::before, .btn::after { display: none; animation: none; }
  .btn:not(:disabled):hover, .btn:not(:disabled):active { transform: none; }
}
