body :is(
  a.button,
  button:not(.toolbar-menu-toggle):not(.rdv-popup-close),
  .toolbar-menu-actions a,
  a.back-button,
  a.event-option,
  #contact a.button.button-yellow,
  #contact a.button[href="#entretien-gratuit"]
) {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  min-width: 0;
  width: var(--site-button-width, auto);
  height: var(--site-button-height, auto);
  padding: var(--site-button-padding, 0.8rem 1.4rem);
  border: 2px solid transparent;
  border-radius: 999px;
  background: linear-gradient(180deg, #315b70 0%, #24475a 100%);
  color: #fff;
  font: 800 1rem/1.15 system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", sans-serif;
  letter-spacing: normal;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  appearance: none;
  box-shadow: 0 10px 24px rgba(36, 71, 90, 0.22);
  transition: transform 160ms ease, background 160ms ease,
    border-color 160ms ease;
}

body :is(
  a.button,
  button:not(.toolbar-menu-toggle):not(.rdv-popup-close),
  .toolbar-menu-actions a,
  a.back-button,
  a.event-option,
  #contact a.button.button-yellow,
  #contact a.button[href="#entretien-gratuit"]
):is(:hover, :focus-visible) {
  border-color: transparent;
  background: linear-gradient(180deg, #24475a 0%, #183747 100%);
  color: #fff;
  box-shadow: 0 14px 30px rgba(36, 71, 90, 0.3);
  transform: translateY(-2px);
}

body :is(a.button, button:not(.toolbar-menu-toggle):not(.rdv-popup-close), .toolbar-menu-actions a,
  a.back-button, a.event-option):focus-visible {
  outline: 2px solid #243238;
  outline-offset: 3px;
}

body :is(.rdv-popup-choices button.is-active, a.event-option.active) {
  outline: 2px solid #243238;
  outline-offset: 3px;
}

.booking-label-mobile {
  display: none;
}

body :is(a.button, button, #contact a.button.button-yellow,
  #contact a.button[href="#entretien-gratuit"]).booking-button {
  background: linear-gradient(180deg, #f7b653 0%, #f2a43a 100%);
  color: #243238;
  border-color: #c47e20;
  box-shadow: 0 4px 0 #b96f17, 0 8px 16px rgba(36, 50, 56, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.5);
  transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease;
}

body :is(a.button, button, #contact a.button.button-yellow,
  #contact a.button[href="#entretien-gratuit"]).booking-button:is(:hover, :focus-visible) {
  background: linear-gradient(180deg, #ffc569 0%, #f2a43a 100%);
  color: #243238;
  border-color: #c47e20;
  box-shadow: 0 6px 0 #b96f17, 0 12px 20px rgba(36, 50, 56, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.6);
  transform: translateY(-2px);
}

body :is(a.button, button, #contact a.button.button-yellow,
  #contact a.button[href="#entretien-gratuit"]).booking-button:active {
  background: #f2a43a;
  box-shadow: 0 1px 0 #b96f17, 0 3px 7px rgba(36, 50, 56, 0.18),
    inset 0 1px 3px rgba(36, 50, 56, 0.14);
  transform: translateY(3px);
}

@media (prefers-reduced-motion: reduce) {
  body :is(a.button, button, #contact a.button.button-yellow,
    #contact a.button[href="#entretien-gratuit"]).booking-button {
    transition: none;
  }
}

@media (max-width: 640px) {
  .booking-label-desktop {
    display: none;
  }

  .booking-label-mobile {
    display: inline;
  }

  body :is(a.button, .toolbar-menu-actions a, a.back-button,
    a.event-option, .rdv-popup-switch, .rdv-popup-choices button) {
    --site-button-width: 100%;
  }
}
