/* Boutons du site public : forme arrondie, relief léger, mêmes règles sur toutes les pages.
   Chargé en dernier dans <head> : remplace l'aspect des .btn définis dans chaque page sans toucher à leur place. */
html .btn,
html .btn-stripe,
html .btn-no-pay,
html .nav-cta {
  border-radius: 999px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}
html .btn { min-height: 44px; padding: 0.78rem 1.55rem; }
html .btn-sm { min-height: 38px; padding: 0.55rem 1.1rem; }
html .btn-lg { min-height: 52px; padding: 0.95rem 2.1rem; }

/* Bouton principal : doré, léger dégradé et ombre douce */
html .btn-primary,
html .btn-accent,
html .btn-gold,
html .btn-stripe {
  background: linear-gradient(180deg, #B48A5F 0%, #9A7148 100%);
  color: #fff !important;
  border: 1px solid #93693F;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.25) inset, 0 6px 16px -6px rgba(122, 86, 50, 0.55);
}
html .btn-primary:hover,
html .btn-accent:hover,
html .btn-gold:hover,
html .btn-stripe:hover {
  background: linear-gradient(180deg, #A97E53 0%, #8B643D 100%);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 10px 22px -8px rgba(122, 86, 50, 0.6);
  transform: translateY(-1px);
}

/* « Réserver » du menu : même relief, sans forcer la couleur (la page de réservation en fait un simple lien) */
html .nav-cta { box-shadow: 0 6px 16px -8px rgba(122, 86, 50, 0.55); }
html .nav-cta:hover { transform: translateY(-1px); }

/* Bouton secondaire : fond crème, contour fin */
html .btn-ghost,
html .btn-outline,
html .btn-no-pay {
  background: rgba(166, 124, 82, 0.07);
  border: 1px solid rgba(143, 104, 66, 0.38);
  color: #7E5A36;
  box-shadow: none;
}
html .btn-ghost:hover,
html .btn-outline:hover,
html .btn-no-pay:hover {
  background: rgba(166, 124, 82, 0.14);
  border-color: rgba(143, 104, 66, 0.65);
  color: #6B4B2C;
  transform: translateY(-1px);
}

/* Page Noël : bouton rouge des cartes cadeaux */
html .nl-btn-rouge {
  background: linear-gradient(180deg, #92212F 0%, #6E1621 100%);
  border: 1px solid #66141E;
  color: #FFF6E8 !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.18) inset, 0 6px 16px -6px rgba(110, 22, 33, 0.6);
}
html .nl-btn-rouge:hover {
  background: linear-gradient(180deg, #841D2A 0%, #5E121C 100%);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.15) inset, 0 10px 22px -8px rgba(110, 22, 33, 0.65);
}

html .btn:active,
html .btn-stripe:active,
html .btn-no-pay:active,
html .nav-cta:active { transform: translateY(0); box-shadow: none; }
html .btn:focus-visible,
html .btn-stripe:focus-visible,
html .btn-no-pay:focus-visible,
html .nav-cta:focus-visible { outline: 2px solid #A67C52; outline-offset: 3px; }
html .btn[disabled],
html .btn-stripe[disabled] { opacity: 0.55; transform: none; box-shadow: none; cursor: not-allowed; }

/* Thème sombre du site */
html[data-theme="dark"] .btn-ghost,
html[data-theme="dark"] .btn-outline,
html[data-theme="dark"] .btn-no-pay {
  background: rgba(196, 154, 106, 0.1);
  border-color: rgba(196, 154, 106, 0.45);
  color: #E2C49C;
}
html[data-theme="dark"] .btn-ghost:hover,
html[data-theme="dark"] .btn-outline:hover,
html[data-theme="dark"] .btn-no-pay:hover { background: rgba(196, 154, 106, 0.18); color: #F0D9B8; }

@media (prefers-reduced-motion: reduce) {
  html .btn, html .btn-stripe, html .btn-no-pay, html .nav-cta { transition: none; }
  html .btn:hover, html .btn-stripe:hover, html .btn-no-pay:hover, html .nav-cta:hover { transform: none; }
}
