/**
 * Darb Race — habillage du tunnel d'inscription.
 *
 * Page événement (The Events Calendar + Event Tickets Plus), panier et
 * paiement WooCommerce. Aucun sélecteur ne modifie un comportement : on ne
 * touche qu'à la composition et à la couleur.
 */

/* ---- indicateur d'étapes ---- */
.darb-etapes {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 0;
	flex-wrap: wrap;
}

.darb-etapes__etape {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--darb-muted);
}

.darb-etapes__etape + .darb-etapes__etape::before {
	content: "";
	display: block;
	width: 56px;
	height: 2px;
	background: var(--darb-sable-2);
	margin: 0 14px;
}

.darb-etapes__numero {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--darb-sable-2);
	color: var(--darb-muted);
	font-family: var(--darb-font-display);
	font-weight: 800;
	font-size: 0.85rem;
}

.darb-etapes__etape--courante { color: var(--darb-ink); font-weight: 800; }
.darb-etapes__etape--courante .darb-etapes__numero { background: var(--darb-corail); color: var(--darb-creme); }
.darb-etapes__etape--faite .darb-etapes__numero { background: var(--darb-vert); color: #fff; }

@media (max-width: 640px) {
	.darb-etapes__etape + .darb-etapes__etape::before { width: 20px; margin: 0 8px; }
	.darb-etapes__libelle { font-size: 0.8rem; }
}

/* Sous 480 px les trois étapes passent à la ligne : le trait de liaison se
   retrouvait orphelin en tête de seconde ligne. */
@media (max-width: 480px) {
	.darb-etapes { gap: 8px 16px; }
	.darb-etapes__etape + .darb-etapes__etape::before { display: none; }
	.darb-etapes__etape { gap: 8px; }
	.darb-etapes__numero { width: 24px; height: 24px; font-size: 0.8rem; }
}

/* ---- page événement : deux colonnes, sur toute la largeur du conteneur ---- */
.single-tribe_events #tribe-events-pg-template,
.single-tribe_events #tribe-events-content { max-width: none; padding-left: 0; padding-right: 0; margin-left: 0; margin-right: 0; }

.single-tribe_events #tribe-events-content > .tribe_events {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);
	gap: 24px 32px;
	align-items: start;
}

/* Ordre de lecture : étapes, billets et colonne d'aide, puis le reste. */
.single-tribe_events .darb-etapes { grid-column: 1 / -1; grid-row: 1; margin-bottom: 0; }
.single-tribe_events .tribe-tickets__tickets-wrapper { grid-column: 1; grid-row: 2; margin: 0; }
.single-tribe_events .darb-tunnel-colonne { grid-column: 2; grid-row: 2 / span 4; position: sticky; top: 90px; }
.single-tribe_events .tribe-events-single-event-description { grid-column: 1; grid-row: 3; }
.single-tribe_events .tribe-events-event-meta.primary { grid-column: 1; grid-row: 4; }
.single-tribe_events .tribe-events-event-meta.secondary { grid-column: 1; grid-row: 5; }

/* Ce que la maquette ne montre pas : navigation entre événements, ligne de
   date (le bandeau la porte), menu « ajouter au calendrier ». */
.single-tribe_events .tribe-events-schedule,
.single-tribe_events #tribe-events-header,
.single-tribe_events #tribe-events-footer,
.single-tribe_events .tribe-events-c-subscribe-dropdown__container,
.single-tribe_events .tribe-events-back { display: none; }

@media (max-width: 900px) {
	.single-tribe_events #tribe-events-content > .tribe_events { grid-template-columns: 1fr; }
	.single-tribe_events #tribe-events-content > .tribe_events > * { grid-column: 1; grid-row: auto; }
	/* Une feuille tierce pose order:1 sur ces blocs : on la dépasse en spécificité. */
	.single-tribe_events #tribe-events-content > .tribe_events > .darb-etapes { order: 0; }
	.single-tribe_events #tribe-events-content > .tribe_events > .tribe-tickets__tickets-wrapper { order: 1; }
	.single-tribe_events #tribe-events-content > .tribe_events > .darb-tunnel-colonne { order: 2; position: static; }
	.single-tribe_events #tribe-events-content > .tribe_events > .tribe-events-single-event-description { order: 3; }
	.single-tribe_events #tribe-events-content > .tribe_events > .tribe-events-event-meta.primary { order: 4; }
	.single-tribe_events #tribe-events-content > .tribe_events > .tribe-events-event-meta.secondary { order: 5; }
	.single-tribe_events #tribe-events-content > .tribe_events > .tribe-common:not(.event-tickets) { order: 6; }
}

/* ---- bloc de billetterie en carte ---- */
.single-tribe_events .tribe-tickets__tickets-form {
	border: 1px solid var(--darb-filet);
	border-radius: var(--darb-rayon-carte);
	background: #fff;
	padding: 22px 24px 20px;
}

.single-tribe_events .tribe-tickets__tickets-title {
	font-family: var(--darb-font-text);
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--darb-ink);
	text-transform: none;
	letter-spacing: 0;
	margin: 0 0 14px;
}

.single-tribe_events .tribe-tickets__tickets-item {
	border: 1px solid var(--darb-filet);
	border-radius: 12px;
	padding: 14px 16px;
	margin: 0 0 10px;
	background: #fff;
}

.single-tribe_events .tribe-tickets__tickets-item-content-title {
	font-family: var(--darb-font-display);
	font-size: 1.35rem;
	font-weight: 800;
	color: var(--darb-ink);
	text-transform: none;
	letter-spacing: 0;
}

.single-tribe_events .tribe-tickets__tickets-item-extra-price { font-weight: 700; color: var(--darb-ink); }

.single-tribe_events .tribe-tickets__tickets-item-quantity {
	background: var(--darb-sable);
	border-radius: var(--darb-rayon-pastille);
	padding: 4px 8px;
}

.single-tribe_events .tribe-tickets__tickets-item-quantity button {
	color: var(--darb-vert);
	background: none;
	border: 0;
	min-height: 32px;
	width: 32px;
}

.single-tribe_events .tribe-tickets__tickets-item-quantity-number input {
	min-height: 32px;
	font-weight: 800;
	color: var(--darb-ink);
	border: 0;
	background: transparent;
}

/* Le pied du bloc devient le panier de la maquette : bande verte, total en
   gros, bouton corail. */
.single-tribe_events .tribe-tickets__tickets-footer {
	background: var(--darb-vert);
	color: #fff;
	border-radius: 12px;
	padding: 14px 18px;
	margin-top: 14px;
	border: 0;
}

/* Tout ce qui vit dans la bande verte s'écrit en clair : le total sortait en
   encre foncée, héritée de la règle des chiffres alignés. */
.single-tribe_events .tribe-tickets__tickets-footer,
.single-tribe_events .tribe-tickets__tickets-footer *:not(.tribe-tickets__tickets-buy):not(.tribe-tickets__tickets-buy *) { color: #fff; }

.single-tribe_events .tribe-tickets__tickets-footer-quantity-label,
.single-tribe_events .tribe-tickets__tickets-footer-total-label { color: var(--darb-menthe); }

.single-tribe_events .tribe-tickets__tickets-footer-total-wrap,
.single-tribe_events .tribe-tickets__tickets-footer-total .tribe-amount {
	font-family: var(--darb-font-display);
	font-size: 1.4rem;
	font-weight: 800;
}

.single-tribe_events .tribe-tickets__tickets-footer .darbevent-couple-note--block { color: var(--darb-ambre); }

.single-tribe_events .tribe-tickets__tickets-buy,
.single-tribe_events .tribe-tickets__tickets-buy:hover {
	background: var(--darb-corail);
	color: var(--darb-creme);
	border-radius: var(--darb-rayon-pastille);
}

.single-tribe_events .tribe-tickets__tickets-buy:hover { background: var(--darb-creme); color: var(--darb-vert); }

@media (max-width: 767px) {
	/* Barre de panier collée en bas de l'écran. Le pied du greffon ne se
	   replie pas : à 390 px ses trois blocs mesuraient 391 px et sortaient
	   de la carte. */
	.single-tribe_events #tribe-tickets__tickets-form .tribe-tickets__tickets-footer {
		position: sticky;
		bottom: 0;
		z-index: 20;
		box-shadow: 0 -8px 24px rgba(6, 50, 63, 0.18);
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: 10px 14px;
		width: auto;
		max-width: 100%;
	}

	.single-tribe_events #tribe-tickets__tickets-form .tribe-tickets__tickets-footer .tribe-tickets__tickets-buy {
		flex: 1 1 100%;
		width: 100%;
		min-height: 46px;
	}
}

/* Offre couple : le sélecteur reprend la pastille sable. */
.single-tribe_events .darbevent-couple-select,
.single-tribe_events select.darbevent-couple-select { border-radius: 10px; border-color: var(--darb-filet); }

/* ---- colonne d'aide ---- */
.darb-tunnel-colonne { display: flex; flex-direction: column; gap: 14px; }

.darb-tunnel-carte {
	border: 1px solid var(--darb-filet);
	border-radius: var(--darb-rayon-carte);
	background: #fff;
	padding: 18px 20px;
}

.darb-tunnel-carte--sable { background: var(--darb-sable); }
.darb-tunnel-carte p { margin: 0; }
.darb-tunnel-carte__titre { font-weight: 800; color: var(--darb-ink); margin-bottom: 8px; }
.darb-tunnel-carte__texte { font-size: 0.875rem; color: var(--darb-muted); }
.darb-tunnel-carte__texte strong { color: var(--darb-ink); }
.darb-tunnel-carte__liste { list-style: none; margin: 0; padding: 0; }
.darb-tunnel-carte__liste li { font-size: 0.9rem; color: var(--darb-body); padding: 5px 0; border-top: 1px solid var(--darb-sable-2); margin: 0; }
.darb-tunnel-carte__liste li:first-child { border-top: 0; }
.darb-tunnel-carte__actions { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.darb-tunnel-carte__actions .darb-btn { min-height: 40px; font-size: 0.85rem; }
.darb-tunnel-carte__moyens { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }

.darb-tunnel-carte__moyens span {
	font-family: var(--darb-font-display);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border: 1px solid var(--darb-filet);
	border-radius: 6px;
	padding: 4px 10px;
	color: var(--darb-ink);
}

/* ---- description et détails de l'événement ---- */
.single-tribe_events .tribe-events-single-event-description { font-size: 0.95rem; }
.single-tribe_events .darb-couple { margin-top: 1rem; }

.single-tribe_events .tribe-events-event-meta {
	background: none;
	border: 1px solid var(--darb-filet);
	border-radius: var(--darb-rayon-carte);
	padding: 18px 20px;
	margin: 0;
}

.single-tribe_events .tribe-events-single-section-title {
	font-family: var(--darb-font-display);
	font-size: 0.75rem;
	letter-spacing: var(--darb-micro);
	text-transform: uppercase;
	color: var(--darb-muted);
	margin: 0 0 8px;
}

.single-tribe_events .tribe-events-meta-group { padding: 0; }
.single-tribe_events .tribe-events-event-meta dt { color: var(--darb-muted); font-weight: 600; font-size: 0.85rem; }
.single-tribe_events .tribe-events-event-meta dd { color: var(--darb-ink); margin-bottom: 8px; }
.single-tribe_events .tribe-events-venue-map { border-radius: 10px; overflow: hidden; }

/* ---- panier et paiement WooCommerce ---- */
.darbevent-reassurance {
	border: 1px solid var(--darb-filet);
	border-radius: 12px;
	padding: 0.9rem 1rem;
	margin: 0 0 1rem;
	background: var(--darb-sable);
}

.darbevent-reassurance__moyens { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 0.5rem; }

.darbevent-reassurance__moyens span {
	font-family: var(--darb-font-display);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border: 1px solid var(--darb-filet);
	border-radius: 6px;
	padding: 0.2rem 0.5rem;
	color: var(--darb-ink);
	background: #fff;
}

.darbevent-reassurance__texte { margin: 0; font-size: 0.875rem; line-height: 1.55; color: var(--darb-muted); }
.darbevent-reassurance__texte strong { color: var(--darb-ink); }

.darbevent-aide {
	border: 1px solid var(--darb-filet);
	border-left: 4px solid var(--darb-vert);
	border-radius: 12px;
	background: var(--darb-sable);
	padding: 0.85rem 1rem;
	margin: 0 0 1.5rem;
}

.darbevent-aide__titre { font-weight: 800; margin: 0 0 0.35rem; color: var(--darb-ink); }
.darbevent-aide__liens { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin: 0; font-size: 0.9375rem; }
.darbevent-aide__liens a { color: var(--darb-vert); font-weight: 700; }

@media (max-width: 767px) {
	.woocommerce-checkout #order_review .place-order {
		position: sticky;
		bottom: 0;
		background: #fff;
		padding: 0.75rem 0;
		border-top: 1px solid var(--darb-filet);
		z-index: 20;
	}
}

/* ---- offre couple dans la description et ligne du sélecteur ---- */
.single-tribe_events .darb-couple {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px 24px;
	background: var(--darb-sable);
	border: 1px solid var(--darb-filet);
	border-radius: 12px;
	padding: 18px 22px;
}

.single-tribe_events .darb-couple p { margin: 0; }
.single-tribe_events .darb-couple__titre { font-weight: 800; color: var(--darb-ink); }
.single-tribe_events .darb-couple__texte { color: var(--darb-muted); font-size: 0.9rem; }

@media (max-width: 640px) {
	.single-tribe_events .tribe-tickets__tickets-item { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
	.single-tribe_events .tribe-tickets__tickets-item-content-title-container { flex: 1 1 100%; }
	.single-tribe_events .tribe-tickets__tickets-item-extra { flex: 1 1 auto; }
	.single-tribe_events .tribe-tickets__tickets-item-quantity { flex: 0 0 auto; margin-left: auto; }
	.single-tribe_events .tribe-tickets__tickets-item select,
	.single-tribe_events .darbevent-couple-select { flex: 1 1 100%; width: 100%; min-width: 0; }
	.single-tribe_events .tribe-tickets__tickets-item-content-subtitle { font-size: 0.8rem; }
}

/* -------------------------------------------------------------------------
 * 7. Modale d'inscription (Event Tickets Plus, enregistrement des coureurs)
 *
 * Le mécanisme reste celui du greffon : ni le formulaire, ni les champs, ni
 * les boutons d'envoi ne sont touchés. On corrige ce que sa feuille ne
 * prévoyait pas avec nos polices : une croix de fermeture écrasée, des
 * étiquettes en capitales coupées en deux dans une colonne de 102 px, un
 * panneau plus haut que l'écran et un total illisible sur le vert.
 *
 * Les feuilles du greffon sont injectées à l'ouverture de la modale, donc
 * après la nôtre : la classe du panneau est répétée dans le sélecteur pour
 * passer devant elles sans recourir à !important.
 * ---------------------------------------------------------------------- */

/* ---- la boîte de dialogue tient dans l'écran réellement visible ----
 *
 * Event Tickets pose « height: 100vh » sur le conteneur de la modale. Sur
 * iOS, 100vh vaut la hauteur de l'écran barres masquées : le conteneur, centré
 * verticalement, déborde donc sous la barre d'outils de Safari et emporte avec
 * lui le pied du panneau — le bouton « Confirmer la commande » devient
 * invisible et inaccessible, quel que soit le défilement. L'unité dynamique
 * suit la hauteur réellement affichée ; les navigateurs qui l'ignorent gardent
 * le 100vh du greffon. La classe est répétée pour passer devant la feuille du
 * greffon, injectée après la nôtre.
 */
.tribe-common div.tribe-dialog.tribe-dialog {
	height: 100dvh;
}

/* ---- le panneau : en-tête fixe, corps qui défile ---- */
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar {
	display: flex;
	width: min(780px, 100%);
	max-width: 780px;
	height: auto;
	max-height: min(92vh, 940px);
	padding: 0;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 30px 80px rgba(6, 50, 63, 0.38);
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar div[role="document"] {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	min-height: 0;
	max-height: 100%;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-dialog__title {
	align-self: stretch;
	font-family: var(--darb-font-display);
	font-size: 1.45rem;
	font-weight: 800;
	line-height: 1.2;
	color: var(--darb-ink);
	background: var(--darb-creme);
	border-bottom: 1px solid var(--darb-filet);
	margin: 0;
	padding: 16px 64px 15px 24px;
	flex: 0 0 auto;
}

/* La croix sortait étirée : l'icône est une image de fond en « contain »
   dans une boîte de 16 × 44 px. */
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-dialog__close-button {
	top: 13px;
	right: 14px;
	width: 34px;
	height: 34px;
	min-height: 34px;
	padding: 0;
	border-radius: 50%;
	background-color: transparent;
	background-size: 15px 15px;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	z-index: 4;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-dialog__close-button:hover,
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-dialog__close-button:focus {
	background-color: var(--darb-sable-2);
	background-size: 15px 15px;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-dialog__content {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 20px 24px 0;
	font-family: var(--darb-font-text);
	font-size: 1rem;
	color: var(--darb-body);
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-tickets__form { margin: 0; }

/* ---- rappel du panier en tête de modale ---- */
#tribe-modal__cart .tribe-tickets__tickets-item {
	display: flex;
	align-items: center;
	gap: 10px 16px;
	border: 1px solid var(--darb-filet);
	border-radius: 12px;
	padding: 12px 16px;
	margin: 0 0 12px;
}

#tribe-modal__cart .tribe-tickets__tickets-item-remove-wrap {
	width: 28px;
	flex: 0 0 28px;
	height: auto;
	display: flex;
	align-items: center;
	justify-content: center;
}

#tribe-modal__cart .tribe-tickets__tickets-item-remove {
	width: 26px;
	height: 26px;
	min-height: 26px;
	padding: 0;
	background-size: 16px 16px;
	border-radius: 50%;
}

#tribe-modal__cart .tribe-tickets__tickets-item-content-title-container { flex: 1 1 auto; min-width: 0; padding: 0; }
#tribe-modal__cart .tribe-tickets__tickets-item-extra { flex: 0 0 auto; }
#tribe-modal__cart .tribe-tickets__tickets-item-quantity { flex: 0 0 auto; margin: 0; }
/* Le total par ligne est écrit par le script du greffon, avec les décimales
   de WooCommerce : « 200,00 DH » à côté de nos « 200 DH ». Le bloc de la page
   n'affiche pas ce total non plus ; la bande verte donne le total réel. */
#tribe-modal__cart .tribe-tickets__tickets-item-total-wrap { display: none; }
#tribe-modal__cart .tribe-tickets__tickets-footer { margin-top: 0; }

/* ---- blocs de participants ---- */
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-title { display: none; }

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-ticket__tickets-heading {
	font-family: var(--darb-font-display);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: var(--darb-micro);
	text-transform: uppercase;
	color: var(--darb-muted);
	margin: 22px 0 10px;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-item {
	border: 1px solid var(--darb-filet);
	border-radius: 14px;
	background: #fff;
	padding: 18px 20px;
	margin: 0 0 14px;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-item-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	border-bottom: 1px solid var(--darb-sable-2);
	padding: 0 0 12px;
	margin: 0 0 16px;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-item-title {
	font-family: var(--darb-font-display);
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--darb-ink);
	margin: 0;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-item-remove {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--darb-muted);
	background: none;
	border: 0;
	padding: 4px 2px;
	min-height: 32px;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-item-remove:hover { color: var(--darb-corail); }
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-item-remove-icon { width: 11px; height: 11px; }

/* ---- champs : étiquette au-dessus, jamais coupée en deux ---- */
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field {
	display: flex;
	flex-flow: column nowrap;
	margin: 0 0 16px;
	padding: 0;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-label {
	display: block;
	flex: 0 0 auto;
	width: auto;
	max-width: none;
	font-family: var(--darb-font-display);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--darb-muted);
	margin: 0 0 6px;
	padding: 0;
	text-align: left;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-required { color: var(--darb-corail); margin-left: 3px; }

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input-wrapper {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input:not([type="checkbox"]):not([type="radio"]),
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input-wrapper input[type="text"],
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input-wrapper input[type="email"],
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input-wrapper input[type="tel"],
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input-wrapper input[type="number"],
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input-wrapper select,
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input-wrapper textarea {
	width: 100%;
	min-height: 46px;
	border: 1px solid var(--darb-filet);
	border-radius: 10px;
	background: #fff;
	color: var(--darb-ink);
	font-family: var(--darb-font-text);
	font-size: 1rem;
	padding: 10px 13px;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input-wrapper input:focus,
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input-wrapper select:focus,
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input-wrapper textarea:focus {
	border-color: var(--darb-vert);
	outline: 2px solid rgba(35, 92, 62, 0.18);
	outline-offset: 1px;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input[readonly],
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input:disabled { background: var(--darb-sable-2); color: var(--darb-muted); }

/* Date de naissance : trois listes sur une ligne, qui repassent en colonne
   quand la place manque. */
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field--birth .tribe-tickets__form-field-input-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field--birth .tribe-tickets__form-field-input-wrapper select { flex: 1 1 120px; width: auto; }

/* Cases et boutons radio : la puce devant l'intitulé, sur une seule ligne. */
/* Cases et boutons radio : le greffon les sort du « -input-wrapper » pour les
   ranger dans un groupe ; la puce se met devant l'intitulé, sur une ligne. */
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-common-form-control-checkbox-radio-group {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-common-form-control-checkbox__label,
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-common-form-control-radio__label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--darb-font-text);
	font-size: 0.95rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--darb-body);
	margin: 0;
	cursor: pointer;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-common-form-control-checkbox__input,
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-common-form-control-radio__input {
	width: 19px;
	height: 19px;
	min-height: 19px;
	flex: 0 0 19px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--darb-filet);
	border-radius: 4px;
	accent-color: var(--darb-vert);
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-common-form-control-radio__input { border-radius: 50%; }

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-description,
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__form-field-input-helper {
	display: block;
	width: 100%;
	margin: 6px 0 0;
	font-size: 0.82rem;
	line-height: 1.5;
	color: var(--darb-muted);
}

/* ---- pied de la modale : les deux actions restent sous la main ---- */
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-footer {
	position: sticky;
	bottom: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 10px 14px;
	background: #fff;
	border-top: 1px solid var(--darb-filet);
	margin: 8px -24px 0;
	padding: 14px 24px;
	z-index: 3;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-footer-checkout-button {
	background: var(--darb-corail);
	border: 0;
	color: var(--darb-creme);
	border-radius: var(--darb-rayon-pastille);
	font-family: var(--darb-font-display);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0 24px;
	min-height: 46px;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-footer-checkout-button:hover { background: var(--darb-vert); color: #fff; }

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-footer-cart-button {
	color: var(--darb-vert);
	font-weight: 700;
	text-decoration: underline;
	background: none;
	border: 0;
	min-height: 44px;
	padding: 0;
}

.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-footer-divider { color: var(--darb-muted); font-size: 0.9rem; }

/* ---- message de validation ---- */
.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__notice--error {
	border-radius: 12px;
	border-left: 4px solid var(--darb-corail);
	background: var(--darb-sable);
	padding: 12px 16px;
	margin: 0 0 14px;
	color: var(--darb-ink);
}

/* ---- téléphones : la modale prend l'écran, le panier se replie ---- */
@media (max-width: 640px) {
	.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar {
		width: 100%;
		max-width: none;
		height: 100%;
		max-height: 100%;
		border-radius: 0;
	}

	.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-dialog__title { font-size: 1.2rem; padding: 14px 56px 13px 16px; }
	.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-dialog__close-button { top: 10px; right: 10px; }
	.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-dialog__content { padding: 16px 16px 0; }

	.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-item { padding: 16px 14px; }
	.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-footer { margin: 8px -16px 0; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); }
	.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-footer-checkout-button { flex: 1 1 100%; order: 1; }
	.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-footer-divider { display: none; }
	.tribe-common.event-tickets .tribe-dialog__wrapper.tribe-modal__wrapper--ar.tribe-modal__wrapper--ar .tribe-modal__content.tribe-modal__content .tribe-tickets__attendee-tickets-footer-cart-button { order: 2; flex: 1 1 100%; text-align: center; }

	#tribe-modal__cart .tribe-tickets__tickets-item { flex-wrap: wrap; gap: 8px 10px; }
	#tribe-modal__cart .tribe-tickets__tickets-item-content-title-container { flex: 1 1 calc(100% - 44px); }
	#tribe-modal__cart .tribe-tickets__tickets-item-extra { flex: 1 1 auto; }
	#tribe-modal__cart .tribe-tickets__tickets-item-extra-price { font-size: 0.95rem; }
	#tribe-modal__cart .tribe-tickets__tickets-item-quantity { margin-left: auto; }

}

/* -------------------------------------------------------------------------
 * 8. Recette mobile du tunnel : lisibilité et cibles tactiles.
 * ---------------------------------------------------------------------- */
@media (max-width: 640px) {
	.darb-etapes__libelle,
	.darb-tunnel-carte__moyens span,
	.darbevent-reassurance__moyens span { font-size: 0.84rem; }

	/* Les boutons + et − faisaient 32 px de haut : sous le seuil du pouce. */
	.single-tribe_events .tribe-tickets__tickets-item-quantity button,
	.single-tribe_events .tribe-tickets__tickets-item-quantity-number input {
		min-height: 40px;
		height: 40px;
	}

	.single-tribe_events .tribe-events-single-section-title { font-size: 0.84rem; }
}
