/* ============================================================================
   WP Booking System — override CIBLÉ (scopé .astra-wpbs, fiche chalet).
   Pour l'instant : UNIQUEMENT le bouton « Soumettre » du formulaire, qui
   paraissait grisé/désactivé en style WPBS par défaut alors qu'il est actif.

   ⚠️ WPBS stylise le bouton avec un sélecteur très spécifique + !important :
      .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field button[type="submit"]
      → spécificité (0,4,1). On le DÉPASSE en reprenant la même structure
      préfixée de .astra-wpbs → (0,5,1) + !important.

   Le bouton submit + les CHAMPS du formulaire sont skinnés (look identique à
   la page Contact). Le CALENDRIER reste au style WPBS par défaut (volontaire).
   ============================================================================ */

.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field button[type="submit"],
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="submit"] {
	width: 100% !important;
	margin-top: 0.5rem !important;
	padding: 1rem 1.5rem !important;
	background-color: #231f36 !important;
	border: 1px solid #231f36 !important;
	border-radius: 0 !important;
	color: #efe7e1 !important;
	font-family: var(--font-league-spartan, "League Spartan", sans-serif) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.22em !important;
	box-shadow: none !important;
	opacity: 1 !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field button[type="submit"]:hover,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="submit"]:hover {
	background-color: #efe7e1 !important;
	color: #231f36 !important;
	border-color: #231f36 !important;
}

/* Vrai état désactivé (pendant l'envoi) : lisible, pas « cassé ». */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field button[type="submit"]:disabled,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="submit"]:disabled {
	background-color: rgba(35, 31, 54, 0.4) !important;
	border-color: transparent !important;
	color: #efe7e1 !important;
	cursor: not-allowed !important;
}

/* ============================================================================
   Champs du formulaire de réservation : même look que la page Contact
   (bordure ink/20, fond #FAFAFA, coins nets, 15px ink, focus ink ;
   libellés en capitales espacées). N'affecte PAS le calendrier.

   ⚠️ On reprend la chaîne de sélecteurs WPBS (.wpbs-main-wrapper .wpbs-form-
   container .wpbs-form-field …, spécificité (0,4,1)) préfixée de .astra-wpbs
   pour la DÉPASSER → (0,5,1), comme pour le bouton submit.
   ============================================================================ */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field .wpbs-form-field-label {
	font-size: 14px !important;
	font-weight: 400 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	color: #231f36 !important;
	margin-bottom: 0.4rem !important;
}
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="text"],
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="email"],
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="tel"],
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="number"],
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="date"],
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field select,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field textarea {
	border: 1px solid rgba(35, 31, 54, 0.2) !important;
	border-radius: 0 !important;
	background-color: #FAFAFA !important;
	color: #231f36 !important;
	padding: 0.75rem 1rem !important;
	font-size: 15px !important;
	box-shadow: none !important;
}
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input::placeholder,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field textarea::placeholder {
	color: rgba(35, 31, 54, 0.5) !important;
}
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input:focus,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field select:focus,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field textarea:focus {
	border-color: #231f36 !important;
	outline: none !important;
	box-shadow: none !important;
}
/* Astérisque « requis » masqué (le client ne les veut pas après les libellés) */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field .wpbs-field-required-asterisk {
	display: none !important;
}

/* Champ HTML orphelin du formulaire (placeholder « … » dans .chalets-rules-content,
   référencé nulle part) → masqué. Ne touche pas aux vrais champs du règlement. */
.astra-wpbs .wpbs-form-field-html:has(.chalets-rules-content) {
	display: none !important;
}

/* ============================================================================
   CALENDRIER — palette lisible « à la marque » (INDÉPENDANTE des IDs de légende).
   Principe : le foncé de marque ne peint PLUS tout le calendrier. On suit
   l'intuition d'un calendrier de réservation :
     • Disponible = CRÈME (#efe7e1) + chiffres encre → invitant, « clique-moi »
     • Non dispo  = GRIS estompé + chiffres pâles → recède, « bloqué »
     • Survol d'un jour dispo = encre + crème → feedback de clic

   ⚠️ IMPORTANT : chaque calendrier WPBS a SA propre légende avec des IDs
   différents (Auralis 21-24, Borealis 13-16, etc.). On NE cible donc PAS le
   numéro (.wpbs-legend-item-icon-21) — sinon un seul chalet serait stylé.
   On cible la NATURE du jour, commune à tous les calendriers :
     • .wpbs-legend-item-icon[data-type="single"] = jour plein
     • .wpbs-legend-item-icon[data-type="split"]  = jour de transition (demi-case)
     • .wpbs-date.wpbs-is-bookable                = jour réservable (≠ réservé/passé)
   WPBS colore chaque jour en <style> inline avec !important : on DÉPASSE sa
   spécificité via la chaîne .astra-wpbs .wpbs-main-wrapper .wpbs-container.
   ============================================================================ */
/* Palette alignée sur le datepicker de recherche (src/input.css) ET sur les
   couleurs des legend items réglées en admin : dispo = crème, pris = mauve
   estompé. Le mauve remplace l'ancien gris pour rester dans la marque.
   ⚠️ Si tu changes --astra-cal-unavail ici, change aussi la couleur du legend
   item « Booked » en admin (WP Admin → WP Booking System → calendrier →
   Légende) pour que les deux restent cohérents. */
:root {
	--astra-cal-avail: #efe7e1;        /* crème = disponible → texte encre.
	                                      (Le doré #bc9b58 essayé le 21/09 a été
	                                      retiré le 22/09 : retour à la palette
	                                      ink/cream d'origine.) */
	--astra-cal-booked: #5b5570;       /* mauve foncé = réservé       → texte crème  */
	--astra-cal-past: #e8e5ea;         /* mauve très clair = passé    → texte estompé */
	--astra-cal-ink: #231f36;          /* texte sur fond clair (dispo) */
	--astra-cal-on-dark: #efe7e1;      /* texte sur fond foncé (réservé / survol) */
	--astra-cal-ink-past: #8a8498;     /* texte sur jour passé (volontairement discret) */
	--astra-cal-hover: #231f36;        /* survol dispo = encre de marque */
	--astra-cal-transition: #efe7e1;   /* = --astra-cal-avail : les jours de transition
	                                      (changeover Airbnb) s'affichent comme DISPONIBLES,
	                                      plus de demi-case mauve déroutante. La règle de
	                                      sélection reste gérée par le moteur WPBS. */
}

/* IDs des legend items « Booked » de chaque calendrier — seul moyen de
   distinguer un jour RÉSERVÉ (mauve foncé) d'un jour PASSÉ (gris très clair) :
   les deux perdent .wpbs-is-bookable, mais gardent leur classe de légende.
   Auralis 22 · Lunaris 18 · Borealis 14 · Stelaris 10.
   ⚠️ Si un 5e chalet est ajouté, ajouter ici l'ID de son legend item « Booked ». */

/* Disponible : jour plein RÉSERVABLE → crème clair */
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-is-bookable .wpbs-legend-item-icon[data-type="single"] div:first-of-type,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-is-bookable .wpbs-legend-item-icon[data-type="single"] div:first-of-type svg { background-color: var(--astra-cal-avail) !important; fill: var(--astra-cal-avail) !important; }

/* Passé : jour plein non réservable qui n'est PAS réservé → mauve très clair,
   volontairement discret (ces jours n'ont plus d'intérêt). */
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date:not(.wpbs-is-bookable) .wpbs-legend-item-icon[data-type="single"] div:first-of-type,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date:not(.wpbs-is-bookable) .wpbs-legend-item-icon[data-type="single"] div:first-of-type svg { background-color: var(--astra-cal-past) !important; fill: var(--astra-cal-past) !important; }

/* Réservé : PAS de règle ici — les jours réservés se repèrent uniquement via
   `.wpbs-legend-item-{id}`, et ces IDs changent d'une installation à l'autre.
   Les sélecteurs sont donc générés en PHP puis injectés après cette feuille :
   voir chalets_astra_booked_days_css() dans functions.php.
   (Ces règles arrivant après, elles priment bien sur le « passé » ci-dessus.) */

/* Transition (check-in / check-out) : demi-case crème + demi-case gris marqué.
   Contraste renforcé pour que la diagonale soit lisible. */
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-legend-item-icon[data-type="split"] div:first-of-type,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-legend-item-icon[data-type="split"] div:first-of-type svg { background-color: var(--astra-cal-avail) !important; fill: var(--astra-cal-avail) !important; }
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-legend-item-icon[data-type="split"] div:nth-of-type(2),
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-legend-item-icon[data-type="split"] div:nth-of-type(2) svg { background-color: var(--astra-cal-transition) !important; fill: var(--astra-cal-transition) !important; }

/* Numéro + prix — ENCRE sur les jours clairs : réservables + transitions
   (au moins une moitié crème). z-index pour passer au-dessus
   des fonds. */
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-is-bookable .wpbs-date-inner,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-is-bookable .wpbs-date-number,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-is-bookable .wpbs-date-price,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date:has(.wpbs-legend-item-icon[data-type="split"]) .wpbs-date-inner,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date:has(.wpbs-legend-item-icon[data-type="split"]) .wpbs-date-number,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date:has(.wpbs-legend-item-icon[data-type="split"]) .wpbs-date-price {
	color: var(--astra-cal-ink) !important;
	position: relative;
	z-index: 2;
}
/* Numéro + prix — jours PASSÉS : gris mauve discret sur fond très clair. */
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date:not(.wpbs-is-bookable):has(.wpbs-legend-item-icon[data-type="single"]) .wpbs-date-inner,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date:not(.wpbs-is-bookable):has(.wpbs-legend-item-icon[data-type="single"]) .wpbs-date-number,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date:not(.wpbs-is-bookable):has(.wpbs-legend-item-icon[data-type="single"]) .wpbs-date-price {
	color: var(--astra-cal-ink-past) !important;
	position: relative;
	z-index: 2;
}

/* Texte + barré des jours RÉSERVÉS : générés eux aussi en PHP avec les vrais
   IDs de légende (voir chalets_astra_booked_days_css() dans functions.php).
   Le barré lève l'ambiguïté entre « réservé » (#5b5570) et « sélectionné »
   (#231f36), deux foncés proches, et reprend le code visuel du datepicker
   de recherche. */

/* Marqueur « aujourd'hui » : WPBS met une bordure bleu clair off-brand (#7bb9e4).
   On la rebrande en encre de marque (largeur/style hérités du inline : 4px solid). */
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date-today:not(.wpbs-date-hover):not(.wpbs-date-selected) .wpbs-legend-item-icon {
	border-color: var(--astra-cal-ink) !important;
}

/* ── Survol & sélection ──────────────────────────────────────────────
   WPBS colore le survol ET la sélection avec DEUX bleus off-brand :
     #7bb9e4 → survol d'un jour dispo / jour choisi seul
     #5aa7dd → jours d'une plage sélectionnée (check-in → check-out)
   Le fond plein est sur `.wpbs-legend-item-icon div:first-of-type`, les
   jours de transition (split) via `svg`. On reprend TEXTUELLEMENT les
   sélecteurs de WPBS (préfixés .astra-wpbs → spécificité toujours
   supérieure, y compris face aux :not()) et on met tout en ENCRE. */

/* Fonds pleins (survol + sélection, tous cas) → encre */
.astra-wpbs .wpbs-main-wrapper:not(.wpbs-main-wrapper-form-0) .wpbs-enable-hover .wpbs-is-bookable:hover:not(.wpbs-selected-first):not(.wpbs-selected-last) .wpbs-legend-item-icon div:first-of-type,
.astra-wpbs .wpbs-main-wrapper:not(.wpbs-main-wrapper-form-0) .wpbs-date-hover:not(.wpbs-selected-first):not(.wpbs-selected-last) .wpbs-legend-item-icon div:first-of-type,
.astra-wpbs .wpbs-main-wrapper:not(.wpbs-main-wrapper-form-0) .wpbs-date-hover.wpbs-selected-first.wpbs-selected-last .wpbs-legend-item-icon div:first-of-type,
.astra-wpbs .wpbs-main-wrapper:not(.wpbs-main-wrapper-form-0) .wpbs-date-selected:not(.wpbs-selected-first):not(.wpbs-selected-last) .wpbs-legend-item-icon div:first-of-type,
.astra-wpbs .wpbs-main-wrapper:not(.wpbs-main-wrapper-form-0) .wpbs-date-selected.wpbs-selected-first.wpbs-selected-last .wpbs-legend-item-icon div:first-of-type,
.astra-wpbs .wpbs-main-wrapper:not(.wpbs-main-wrapper-form-0) .wpbs-enable-hover .wpbs-date-selected:hover:not(.wpbs-selected-first):not(.wpbs-selected-last) .wpbs-legend-item-icon div:first-of-type {
	background-color: var(--astra-cal-hover) !important;
}

/* Fills SVG (jours de transition survolés/sélectionnés + overlay select) → encre */
.astra-wpbs .wpbs-main-wrapper:not(.wpbs-main-wrapper-form-0) .wpbs-enable-hover .wpbs-is-bookable:hover:not(.wpbs-selected-first):not(.wpbs-selected-last) .wpbs-legend-item-icon[data-type="split"] div svg,
.astra-wpbs .wpbs-main-wrapper:not(.wpbs-main-wrapper-form-0) .wpbs-date-hover:not(.wpbs-selected-first):not(.wpbs-selected-last) .wpbs-legend-item-icon[data-type="split"] div svg,
.astra-wpbs .wpbs-main-wrapper:not(.wpbs-main-wrapper-form-0) .wpbs-legend-item-icon .wpbs-legend-icon-select svg,
.astra-wpbs .wpbs-main-wrapper:not(.wpbs-main-wrapper-form-0) .wpbs-date-selected:not(.wpbs-selected-first):not(.wpbs-selected-last) .wpbs-legend-item-icon[data-type="split"] div svg,
.astra-wpbs .wpbs-main-wrapper:not(.wpbs-main-wrapper-form-0) .wpbs-enable-hover .wpbs-date-selected:hover:not(.wpbs-selected-first):not(.wpbs-selected-last) .wpbs-legend-item-icon[data-type="split"] div svg,
.astra-wpbs .wpbs-main-wrapper:not(.wpbs-main-wrapper-form-0) .wpbs-date-selected .wpbs-legend-item-icon .wpbs-legend-icon-select svg {
	fill: var(--astra-cal-hover) !important;
}

/* Chiffres crème sur tout jour survolé ou sélectionné (lisibles sur l'encre).
   On couvre À LA FOIS la classe JS .wpbs-date-hover (plage active) ET le
   :hover CSS (survol passif d'un jour dispo) — sinon texte encre sur encre. */
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-date-hover:not(.wpbs-gap) .wpbs-date-inner,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-date-hover:not(.wpbs-gap) .wpbs-date-number,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-date-hover:not(.wpbs-gap) .wpbs-date-price,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-date-selected:not(.wpbs-gap) .wpbs-date-inner,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-date-selected:not(.wpbs-gap) .wpbs-date-number,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-date-selected:not(.wpbs-gap) .wpbs-date-price,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-is-bookable:hover .wpbs-date-inner,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-is-bookable:hover .wpbs-date-number,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-is-bookable:hover .wpbs-date-price {
	color: #ffffff !important;
}

/* Prix de la nuit : WPBS l'affiche à opacité réduite (~0.75) → délavé et dur
   à lire. On le remet en pleine opacité. (Le reste des cases est inchangé.) */
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-daily-price {
	opacity: 1 !important;
}

/* ============================================================================
   NAVIGATION DU CALENDRIER (mois précédent / suivant + sélecteur)
   WPBS rend : <button class="wpbs-prev"><span class="wpbs-arrow"></span></button>
   — un span VIDE dont la flèche est dessinée par le CSS du plugin (triangle
   bordé, non aligné). On neutralise ce rendu et on redessine un chevron propre
   en bordures, aux couleurs de la marque.
   ============================================================================ */
/* ⚠️ WPBS met les boutons ‹ › en `position:absolute` collés aux bords du
   conteneur (qui réserve `padding: 0 30px`), et dessine la flèche comme un
   triangle `width:0;height:0` placé en absolu à left/right:50%. Il faut donc
   remettre TOUT en flux (`position:static`) avant que le flex serve à quelque
   chose — sinon les flèches partent aux extrémités et le chevron se décale. */
.astra-wpbs .wpbs-container .wpbs-calendar-header-navigation {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	padding: 0 !important;
	min-height: 0 !important;
	line-height: normal !important;
}

/* Boutons ‹ › : sortis de l'absolu, carré discret aux couleurs de marque */
.astra-wpbs .wpbs-container .wpbs-calendar-header-navigation .wpbs-prev,
.astra-wpbs .wpbs-container .wpbs-calendar-header-navigation .wpbs-next {
	position: static !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	margin: 0 !important;
	flex: 0 0 auto !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 32px !important;
	height: 32px !important;
	padding: 0 !important;
	line-height: 1 !important;
	background: transparent !important;
	border: 1px solid rgba(35, 31, 54, 0.25) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color 0.15s ease;
}
.astra-wpbs .wpbs-container .wpbs-calendar-header-navigation .wpbs-prev:hover,
.astra-wpbs .wpbs-container .wpbs-calendar-header-navigation .wpbs-next:hover {
	background: rgba(35, 31, 54, 0.08) !important;
}

/* Chevron : on annule le triangle absolu de WPBS et on trace 2 bordures. */
.astra-wpbs .wpbs-container .wpbs-calendar-header-navigation .wpbs-prev .wpbs-arrow,
.astra-wpbs .wpbs-container .wpbs-calendar-header-navigation .wpbs-next .wpbs-arrow {
	position: static !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	display: block !important;
	width: 7px !important;
	height: 7px !important;
	background: none !important;
	border: solid var(--astra-cal-ink) !important;
	border-width: 0 1.5px 1.5px 0 !important;
	border-radius: 0 !important;
}
/* ‹ précédent (le translate recentre optiquement le carré pivoté) */
.astra-wpbs .wpbs-container .wpbs-calendar-header-navigation .wpbs-prev .wpbs-arrow {
	transform: rotate(135deg) translate(-1px, -1px) !important;
}
/* › suivant */
.astra-wpbs .wpbs-container .wpbs-calendar-header-navigation .wpbs-next .wpbs-arrow {
	transform: rotate(-45deg) translate(-1px, -1px) !important;
}

/* Sélecteur de mois : on retire l'apparence native (moche selon les OS) et on
   redessine un chevron via ::after sur le conteneur. */
.astra-wpbs .wpbs-container .wpbs-calendar-header-navigation .wpbs-select-container {
	position: relative !important;
	flex: 0 1 auto !important;
	width: auto !important;
	min-width: 160px !important;
}
.astra-wpbs .wpbs-calendar-header-navigation .wpbs-select-container select {
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	background: #efe7e1 !important; /* crème */
	color: var(--astra-cal-ink) !important;
	border: 1px solid rgba(35, 31, 54, 0.2) !important;
	border-radius: 0 !important;
	padding: 0 30px 0 12px !important;
	font-family: inherit !important;
	font-size: 15px !important;
	line-height: 32px !important;
	height: 32px !important;
	width: 100% !important;
	cursor: pointer;
	box-shadow: none !important;
	text-align: left;
}
.astra-wpbs .wpbs-calendar-header-navigation .wpbs-select-container::after {
	content: "";
	position: absolute;
	right: 11px;
	top: 50%;
	width: 6px;
	height: 6px;
	margin-top: -4px;
	border: solid var(--astra-cal-ink);
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
	pointer-events: none;
}

/* Champs de prix pilotés par les compteurs du thème (main.js → initFeeCounters).
   On masque les champs WPBS bruts ; le client ne voit que les compteurs stylés
   « Nombre de personnes » / « Nombre d'animaux » et les lignes de frais dans le
   total.
   - .astra-extra-guests    : product_number « personnes supplémentaires »
   - .astra-animaux         : product_number « nombre d'animaux »
   - .astra-animaux-toggle  : dropdown Oui/Non « Animaux (si applicable) »
   - .astra-frais-entretien : product_number « frais d'entretien » (120 $ fixe
     par séjour, quantité 1 verrouillée par main.js). Le client le voit via la
     ligne statique « Frais d'entretien » du bloc .astra-fees (single-chalets)
     et via sa ligne dans le détail du prix ; l'input WPBS brut reste masqué.
   Les compteurs stylés sont injectés juste après le calendrier, sous le titre
   « Informations de réservation » (champ 26, qui reste visible). */
.astra-wpbs .astra-extra-guests,
.astra-wpbs .astra-animaux,
.astra-wpbs .astra-animaux-toggle,
.astra-wpbs .astra-frais-entretien {
	display: none !important;
}

/* Note explicative sous le récapitulatif de prix : le tableau WPBS affiche des
   quantités brutes (« × 1 × 2 ») que le client ne peut pas interpréter seul.
   Cette note énonce la règle de tarification. Son contenu est un champ html du
   formulaire WPBS (donc modifiable en admin sans toucher au code). */
.astra-wpbs .astra-price-note {
	margin: 14px 0 0 !important;
	padding-top: 14px;
	border-top: 1px solid rgba(35, 31, 54, 0.12);
	font-size: 13px !important;
	line-height: 1.55;
	color: rgba(35, 31, 54, 0.7) !important;
}

/* ============================================================================
   BORNES DE PLAGE (jour d'arrivée / de départ) — LISIBILITÉ
   WPBS superpose un SVG en position absolue (.wpbs-legend-icon-select) qui ne
   remplit QUE LA MOITIÉ de la case, en diagonale. Le chiffre se retrouve donc à
   cheval sur deux fonds : encre d'un côté, crème de l'autre. Aucune couleur de
   texte ne peut être lisible sur les deux → le chiffre disparaît d'un côté.

   On rend la case PLEINE (les deux moitiés + le calque en encre) et le chiffre
   en crème. C'est aussi ce que fait déjà le datepicker de recherche pour ses
   bornes de plage → les deux calendriers se comportent pareil.

   Placé en toute fin de fichier : ces règles doivent primer sur celles de la
   section « survol & sélection » plus haut.
   ============================================================================ */
/* On GARDE la diagonale (elle indique bien l'arrivée / le départ en demi-journée).
   On rend seulement le chiffre lisible par-dessus, en le CERNANT d'un contour
   encre — la technique du sous-titrage vidéo :
     • sur la moitié foncée : le remplissage crème ressort ;
     • sur la moitié claire : le contour encre dessine le glyphe.
   Le contour est fait de 8 ombres portées nettes (0 flou) plutôt que de
   -webkit-text-stroke, mal supporté et qui rogne l'intérieur des chiffres. */
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-selected-first .wpbs-date-number,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-selected-first .wpbs-date-price,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-selected-last .wpbs-date-number,
.astra-wpbs .wpbs-main-wrapper .wpbs-container .wpbs-date.wpbs-selected-last .wpbs-date-price {
	color: var(--astra-cal-on-dark) !important;
	text-shadow:
		-0.5px -0.5px 0 var(--astra-cal-ink),
		 0     -0.5px 0 var(--astra-cal-ink),
		 0.5px -0.5px 0 var(--astra-cal-ink),
		 0.5px  0     0 var(--astra-cal-ink),
		 0.5px  0.5px 0 var(--astra-cal-ink),
		 0      0.5px 0 var(--astra-cal-ink),
		-0.5px  0.5px 0 var(--astra-cal-ink),
		-0.5px  0     0 var(--astra-cal-ink) !important;
	position: relative;
	z-index: 3;
}

/* ─────────────────────────────────────────────────────────────
   Mode « Theme Styling » de WPBS : le plugin n'émet plus son CSS de form,
   donc on stylise nous-mêmes cases/radios natifs, line-height et totaux.
   ───────────────────────────────────────────────────────────── */

/* Cases & radios NATIFS : teinte ink (blanc au repos, ink coché). */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="checkbox"],
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="radio"] {
	appearance: auto !important;
	-webkit-appearance: auto !important;
	accent-color: #231f36 !important;
	width: 16px !important;
	height: 16px !important;
	margin: 0 9px 0 0 !important;
	flex: none !important;
	vertical-align: -3px !important;
	cursor: pointer !important;
}

/* Labels de choix (case/consent/paiement) : alignés, lisibles, cliquables. */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field.wpbs-form-field-checkbox .wpbs-form-field-input label,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field.wpbs-form-field-consent .wpbs-form-field-input label,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field.wpbs-form-field-payment_method .wpbs-form-field-input label {
	display: flex !important;
	align-items: flex-start !important;
	line-height: 1.4 !important;
	color: #231f36 !important;
	cursor: pointer !important;
	margin: 0 0 0.55rem 0 !important;
}
/* Le label est un flex de niveau bloc : sans ceci il occupe TOUTE la largeur du
   champ, donc la zone cliquable s'étend bien au-delà du texte (cocher « Aucune »
   en cliquant à 250px à droite du mot). fit-content colle la boîte au contenu,
   icône ⓘ comprise, tout en gardant l'empilement vertical.
   Non appliqué aux modes de paiement, dont les labels sont des blocs pleine largeur. */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field.wpbs-form-field-checkbox .wpbs-form-field-input label,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field.wpbs-form-field-consent .wpbs-form-field-input label {
	width: fit-content !important;
	max-width: 100% !important;
}

/* Span vide résiduel du contrôle WPBS (n'existe plus visuellement). */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field .wpbs-form-field-input label span:empty {
	display: none !important;
}

/* Line-height : labels, description, et inputs (évite le décalage vertical). */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field .wpbs-form-field-label {
	line-height: 1.35 !important;
}
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="text"],
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="email"],
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="tel"],
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="number"],
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field input[type="date"],
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field select,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field textarea {
	line-height: 1.4 !important;
}
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field .wpbs-form-field-description,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-payment-method-description {
	line-height: 1.5 !important;
	font-size: 13px !important;
	color: rgba(35, 31, 54, 0.7) !important;
}

/* Tableau des totaux : lisible et aéré, total final en gras. */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-total-price {
	font-size: 14px !important;
	line-height: 1.6 !important;
	color: #231f36 !important;
}
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-total-price table {
	width: 100% !important;
	border-collapse: collapse !important;
}
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-total-price td,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-total-price th {
	padding: 7px 0 !important;
	border: 0 !important;
	vertical-align: top !important;
}

/* Totaux dans une CASE lisible (fond + bordure) + prix en gras, total mis en avant. */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-total-price {
	background-color: #FAFAFA !important;
	border: 1px solid rgba(35, 31, 54, 0.12) !important;
	padding: 0.4rem 1.25rem !important;
}
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-pricing-table thead th {
	font-size: 12px !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.12em !important;
	padding: 10px 0 !important;
	border-bottom: 1px solid rgba(35, 31, 54, 0.15) !important;
}
/* Colonne de droite (prix) : alignée à droite + en gras. */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-pricing-table th:last-child,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-pricing-table td:last-child {
	text-align: right !important;
	font-weight: 600 !important;
	white-space: nowrap !important;
}
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-pricing-table td:first-child {
	font-weight: 400 !important;
}
/* Ligne TOTAL : séparateur + gras marqué. */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-pricing-table tr.wpbs-line-item-total td {
	border-top: 1px solid rgba(35, 31, 54, 0.2) !important;
	padding-top: 12px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	color: #231f36 !important;
}

/* Titres de section (champs html <h3> : « Vos informations », « Paiement »…) :
   vrais headings à la police d'affichage du site (Urbanist). */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field.wpbs-form-field-html h3 {
	font-family: var(--font-urbanist, "Urbanist", sans-serif) !important;
	font-size: 22px !important;
	line-height: 1.15 !important;
	font-weight: 600 !important;
	letter-spacing: -0.02em !important;
	color: #231f36 !important;
	margin: 0 !important;
}
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field.wpbs-form-field-html {
	margin-top: 1.75rem !important;
	margin-bottom: 0.35rem !important;
}
/* Libellés de champs : un cran plus affirmés (mais sous les titres de section). */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field .wpbs-form-field-label {
	font-weight: 600 !important;
	font-size: 14px !important;
}

/* Alignement dans l'encadré : calendrier + formulaire pleine largeur et centrés
   (le calendrier garde le CSS plugin ~500px centré, le form est en theme styling
   pleine largeur → on uniformise pour éviter le décalage). */
.astra-wpbs .wpbs-main-wrapper,
.astra-wpbs .wpbs-main-wrapper .wpbs-calendar,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container {
	max-width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Bouton « ⓘ En savoir plus » injecté à côté des cases Services (ouvre la modal forfait). */
.astra-wpbs .chalets-services-checkbox .astra-service-info {
	flex: none;
	align-self: flex-start;
	margin-left: 8px;
	margin-top: 1px;
	padding: 0;
	border: 0;
	background: none;
	line-height: 0;
	color: rgba(35, 31, 54, 0.45);
	cursor: pointer;
	transition: color 0.2s ease;
}
.astra-wpbs .chalets-services-checkbox .astra-service-info:hover {
	color: #231f36;
}

/* ============================================================================
   ÉTAPE PAIEMENT (Stripe) — bouton de confirmation.

   ⚠️ Le plugin Stripe rend `<button id="wpbs-stripe-card-button">` SANS classe,
   et le stylise en gris (#aaaaaa) avec !important via
   `.wpbs-payment-confirmation-stripe-form #wpbs-stripe-card-button` (0,2,1 + id).
   Les overrides du thème plus haut ne l'atteignent pas : ce bouton n'est ni de
   type submit, ni dans un .wpbs-form-field.
   On préfixe par `body` pour dépasser la spécificité sans dépendre de
   .astra-wpbs (le bouton apparaît aussi sur la page de paiement dédiée).
   ============================================================================ */

body .wpbs-payment-confirmation-stripe-form #wpbs-stripe-card-button {
	width: 100% !important;
	padding: 1rem 1.5rem !important;
	margin: 1.25rem 0 0 0 !important;
	background-color: #231f36 !important;
	border: 1px solid #231f36 !important;
	border-radius: 0 !important;
	color: #efe7e1 !important;
	font-family: var(--font-league-spartan, "League Spartan", sans-serif) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.22em !important;
	box-shadow: none !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease, color 0.2s ease !important;
}

body .wpbs-payment-confirmation-stripe-form #wpbs-stripe-card-button:hover {
	background-color: #efe7e1 !important;
	color: #231f36 !important;
	border-color: #231f36 !important;
}

/* « Powered by Stripe » : le float casse l'alignement sous un bouton pleine largeur. */
body .wpbs-payment-confirmation-stripe-form .wpbs-stripe-powered-by {
	float: none !important;
	margin: 1rem 0 0 0 !important;
	text-align: center;
}

/* Bandeau du mode test : visible mais discret, pas alarmant. */
body .wpbs-payment-test-mode-enabled {
	padding: 0.75rem 1rem !important;
	background-color: rgba(35, 31, 54, 0.05) !important;
	border-left: 2px solid rgba(35, 31, 54, 0.35) !important;
	font-size: 13px !important;
	line-height: 1.5 !important;
	color: rgba(35, 31, 54, 0.75) !important;
}

/* ============================================================================
   ÉCRAN DE CONFIRMATION DE PAIEMENT (récapitulatif au-dessus du formulaire
   Stripe). Structure produite par wpbs_form_payment_confirmation_screen() :
     .wpbs-payment-confirmation > h2
       .wpbs-payment-confirmation-inner
         .wpbs-form-selected-dates  (dates d'arrivée / départ)
         h4 « Votre réservation » + #wpbs-edit-order
         table.wpbs-pricing-table
   Aucun style WPBS ne couvre ce bloc : il sortait entièrement brut.
   ============================================================================ */

.astra-wpbs .wpbs-payment-confirmation > h2 {
	margin: 0 0 1.75rem !important;
	font-family: var(--font-display, "Urbanist", sans-serif) !important;
	font-size: 26px !important;
	font-weight: 400 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.01em !important;
	color: #231f36 !important;
}

/* Dates : deux colonnes, libellés en capitales espacées. */
.astra-wpbs .wpbs-payment-confirmation .wpbs-form-selected-dates {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 2rem;
	margin: 0 0 2rem;
	padding: 1.25rem 1.5rem;
	background: #faf8f6;
	border: 1px solid rgba(35, 31, 54, 0.08);
}
.astra-wpbs .wpbs-payment-confirmation .wpbs-form-selected-date .wpbs-form-field {
	margin: 0 !important;
}
.astra-wpbs .wpbs-payment-confirmation .wpbs-form-selected-date .wpbs-form-field-label label {
	margin: 0 0 0.35rem !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.18em !important;
	color: rgba(35, 31, 54, 0.55) !important;
}
.astra-wpbs .wpbs-payment-confirmation .wpbs-form-selected-date .wpbs-form-field-input {
	font-size: 15px !important;
	line-height: 1.4 !important;
	color: #231f36 !important;
}

/* Titre « Votre réservation » + lien « modifier ». */
.astra-wpbs .wpbs-payment-confirmation h4 {
	display: flex !important;
	align-items: baseline !important;
	justify-content: space-between !important;
	gap: 1rem !important;
	margin: 0 0 0.75rem !important;
	padding: 0 0 0.75rem !important;
	border-bottom: 1px solid rgba(35, 31, 54, 0.12) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.18em !important;
	color: rgba(35, 31, 54, 0.55) !important;
}
.astra-wpbs .wpbs-payment-confirmation h4 #wpbs-edit-order {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.4rem !important;
	flex: none !important;
	font-size: 11px !important;
	letter-spacing: 0.14em !important;
	color: rgba(35, 31, 54, 0.55) !important;
	text-decoration: none !important;
	border-bottom: 1px solid rgba(35, 31, 54, 0.25) !important;
	transition: color 0.2s ease, border-color 0.2s ease !important;
}
.astra-wpbs .wpbs-payment-confirmation h4 #wpbs-edit-order:hover {
	color: #231f36 !important;
	border-color: #231f36 !important;
}
.astra-wpbs .wpbs-payment-confirmation h4 #wpbs-edit-order svg {
	width: 11px !important;
	height: 11px !important;
}

/* Tableau des prix. */
.astra-wpbs .wpbs-pricing-table {
	width: 100% !important;
	margin: 0 0 1.5rem !important;
	border: 0 !important;
	border-collapse: collapse !important;
	font-size: 15px !important;
	color: #231f36 !important;
}
.astra-wpbs .wpbs-pricing-table thead th {
	padding: 0 0 0.75rem !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(35, 31, 54, 0.12) !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.18em !important;
	color: rgba(35, 31, 54, 0.5) !important;
	text-align: left !important;
}
.astra-wpbs .wpbs-pricing-table thead th:last-child,
.astra-wpbs .wpbs-pricing-table tbody td:last-child {
	text-align: right !important;
	white-space: nowrap !important;
}
.astra-wpbs .wpbs-pricing-table tbody td {
	padding: 0.7rem 0 !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(35, 31, 54, 0.06) !important;
	line-height: 1.45 !important;
	vertical-align: top !important;
}
.astra-wpbs .wpbs-pricing-table .wpbs-line-item-description {
	display: block !important;
	margin-top: 0.15rem !important;
	font-size: 12px !important;
	line-height: 1.4 !important;
	color: rgba(35, 31, 54, 0.55) !important;
}
/* Taxes : plus discrètes que les lignes de séjour. */
.astra-wpbs .wpbs-pricing-table .wpbs-pricing-table-tax td {
	font-size: 13px !important;
	color: rgba(35, 31, 54, 0.65) !important;
}
/* Sous-total : trait franc au-dessus. */
.astra-wpbs .wpbs-pricing-table .wpbs-pricing-table-subtotal td {
	border-top: 1px solid rgba(35, 31, 54, 0.12) !important;
	font-weight: 500 !important;
}
/* Caution : mise en avant, c'est la ligne qui surprend le client. */
.astra-wpbs .wpbs-pricing-table tr[class*="caution"] td,
.astra-wpbs .wpbs-pricing-table .wpbs-pricing-table-extra td {
	color: #231f36 !important;
}
/* Total : la ligne forte du tableau. */
.astra-wpbs .wpbs-pricing-table .wpbs-pricing-table-total td {
	padding-top: 1rem !important;
	border-top: 1px solid rgba(35, 31, 54, 0.25) !important;
	border-bottom: 0 !important;
	font-family: var(--font-display, "Urbanist", sans-serif) !important;
	font-size: 20px !important;
	line-height: 1.2 !important;
	color: #231f36 !important;
}

/* La caution est rangée par WPBS dans le tableau des « taxes » (elle est non
   taxable) et y est ajoutée en DERNIER, via le filtre wpbs_get_checkout_price_after_total.
   C'est la ligne la plus surprenante pour le client : on la sort du gris des taxes. */
.astra-wpbs .wpbs-pricing-table tr.wpbs-pricing-table-tax:has(+ tr.wpbs-pricing-table-total) td {
	padding-top: 0.9rem !important;
	border-top: 1px solid rgba(35, 31, 54, 0.12) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	color: #231f36 !important;
}

/* Le récapitulatif sortait à même le fond crème de la colonne de réservation.
   On le pose sur un bloc blanc, comme le bloc du calendrier au-dessus : le
   tableau de prix se lit nettement mieux détaché du fond.
   Le <h2> « Confirmation de paiement » reste HORS du bloc (il est en dehors de
   .wpbs-payment-confirmation-inner dans le balisage) et sert de titre au-dessus. */
.astra-wpbs .wpbs-payment-confirmation-inner {
	padding: 1.75rem !important;
	background: #ffffff !important;
	border: 1px solid rgba(35, 31, 54, 0.08) !important;
}

@media (max-width: 640px) {
	.astra-wpbs .wpbs-payment-confirmation-inner {
		padding: 1.25rem !important;
	}
	.astra-wpbs .wpbs-payment-confirmation .wpbs-form-selected-dates {
		grid-template-columns: 1fr;
		gap: 0.85rem;
		padding: 1rem 1.15rem;
	}
}

/* ============================================================================
   CODE PROMO — champ + bouton sur une même ligne.

   WPBS rend : <div class="wpbs-coupon-code"><input><button …></div>, et positionne
   le bouton en absolu (right:0) DANS son style-front-end-form.min.css… qui n'est
   PAS chargé ici (seul style-front-end.min.css l'est, via le shortcode). Le bouton
   retombait donc en flux normal, sans fond ni marge : un simple texte collé sous
   le champ. On assume le layout nous-mêmes, en flex, avec le skin ink du site.

   Le bouton alterne deux contenus : le libellé (« Appliquer le code ») et, une
   fois le code appliqué, une croix SVG (20×20, fill #fff via WPBS) → d'où la
   hauteur/alignement gérés en flex plutôt qu'en line-height.
   ============================================================================ */

.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field-coupon .wpbs-coupon-code {
	display: flex;
	align-items: stretch;
	gap: 0.5rem;
}

.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field-coupon .wpbs-coupon-code input[type="text"] {
	flex: 1 1 auto;
	width: auto !important;
	min-width: 0;
}

.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field button.wpbs-coupon-code-button {
	position: static !important;
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 1.15rem !important;
	background-color: #231f36 !important;
	border: 1px solid #231f36 !important;
	border-radius: 0 !important;
	color: #efe7e1 !important;
	font-family: var(--font-league-spartan, "League Spartan", sans-serif) !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.16em !important;
	white-space: nowrap;
	box-shadow: none !important;
	cursor: pointer !important;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field button.wpbs-coupon-code-button:hover {
	background-color: #efe7e1 !important;
	color: #231f36 !important;
}

/* État « code appliqué » : le libellé devient une croix SVG (fill #fff imposé
   par WPBS) → fond ink conservé au survol pour garder la croix visible. */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field button.wpbs-coupon-code-remove {
	padding: 0 0.75rem !important;
}

.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field button.wpbs-coupon-code-remove:hover {
	background-color: rgba(35, 31, 54, 0.8) !important;
}

/* Étroit : le bouton passe sous le champ plutôt que d'écraser la saisie. */
@media (max-width: 420px) {
	.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field-coupon .wpbs-coupon-code {
		flex-direction: column;
	}

	.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-field button.wpbs-coupon-code-button {
		padding: 0.85rem 1.15rem !important;
	}
}

/* Fiche chalet : « Date d'arrivée : … » et « Date de départ : … » — libellé et
   valeur sur la même ligne (au lieu d'un libellé au-dessus de la valeur). */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-selected-date .wpbs-form-field {
	display: flex;
	/* L'icône est posée en absolu dans une marge gauche de 32 px : si la date
	   est trop longue pour la colonne, elle passe sous le libellé mais reste
	   alignée sur le texte, à droite de l'icône (au lieu de repartir au bord). */
	flex-wrap: wrap;
	position: relative;
	padding-left: 32px !important;
	align-items: center;
	gap: 0 0.5rem;
	font-size: 17px;
}
/* Icône calendrier devant le libellé (même icône que la barre de recherche de l'accueil). */
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-selected-date .wpbs-form-field::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	flex: none;
	width: 24px;
	height: 24px;
	background-color: var(--color-gold, #bc9b58);
	-webkit-mask: url("../icons/calendar.svg") center / contain no-repeat;
	mask: url("../icons/calendar.svg") center / contain no-repeat;
}
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-selected-date .wpbs-form-field .wpbs-form-field-label,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-selected-date .wpbs-form-field .wpbs-form-field-label span,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-selected-date .wpbs-form-field .wpbs-form-field-input {
	font-size: 17px;
	/* Hauteur de ligne = hauteur de l'icône : texte et icône centrés ensemble. */
	line-height: 24px;
	display: flex;
	align-items: center;
}
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-selected-date .wpbs-form-field .wpbs-form-field-label,
.astra-wpbs .wpbs-main-wrapper .wpbs-form-container .wpbs-form-selected-date .wpbs-form-field .wpbs-form-field-input {
	/* !important : une règle WPBS plus haut ajoute une marge sous le libellé,
	   ce qui le décalait au-dessus de la date. */
	margin: 0 !important;
	padding: 0;
	width: auto !important;
}
