/* Styles du parcours de réservation Nidyareza.
   Toutes les classes sont préfixées .nidyareza- pour ne jamais entrer en
   conflit avec le thème actif ou Elementor. Design volontairement neutre
   (pas de dépendance à un thème) pour rester personnalisable en CSS. */

.nidyareza-booking {
	--nidyareza-primary: #1a6b4f;
	--nidyareza-primary-contrast: #ffffff;
	--nidyareza-border: #dcdcde;
	--nidyareza-bg: #ffffff;
	--nidyareza-bg-muted: #f6f7f7;
	--nidyareza-text: #1d2327;
	--nidyareza-text-muted: #646970;
	--nidyareza-danger: #b32d2e;
	--nidyareza-radius: 8px;
	/* Police déjà chargée par le site (Elementor/thème) : repli générique si
	   jamais indisponible sur une future installation du plugin ailleurs. */
	--nidyareza-font: "museo-sans-rounded", sans-serif;

	max-width: 640px;
	margin: 0 auto;
	color: var(--nidyareza-text);
	font-family: var(--nidyareza-font);
	font-size: 16px;
	line-height: 1.5;
	box-sizing: border-box;
}

.nidyareza-booking *,
.nidyareza-booking *::before,
.nidyareza-booking *::after {
	box-sizing: inherit;
}

/* Les champs de formulaire et boutons n'héritent pas de la police du parent
   par défaut dans la plupart des navigateurs (ils utilisent la police système) :
   il faut donc la leur appliquer explicitement. */
.nidyareza-booking input,
.nidyareza-booking select,
.nidyareza-booking textarea,
.nidyareza-booking button {
	font-family: inherit;
}

.nidyareza-booking h3 {
	margin: 0 0 12px;
	font-size: 1.15em;
}

.nidyareza-step {
	background: var(--nidyareza-bg);
	border-radius: var(--nidyareza-radius);
	padding: 20px;
	margin-bottom: 16px;
}

.nidyareza-notice {
	padding: 12px 16px;
	border-radius: var(--nidyareza-radius);
	margin-bottom: 16px;
	font-size: 0.95em;
}

.nidyareza-notice--warning {
	background: #fcf9e8;
	color: #9a6700;
	border: 1px solid #f0e2a3;
}

.nidyareza-notice--error {
	background: #fbeaea;
	color: var(--nidyareza-danger);
	border: 1px solid #f0c3c3;
}

.nidyareza-notice--success {
	background: #edfaef;
	color: #1a7f37;
	border: 1px solid #b7e4c1;
}

/* Calendrier */
.nidyareza-calendar-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 12px;
	font-weight: 600;
}

.nidyareza-calendar-nav {
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	color: #64748b;
	font-size: 32px !important;
	line-height: 0 !important;
	font-weight: 600;
}

.nidyareza-calendar-nav:hover {
	background: none;
	border: none;
	color: #fdab19;
}

.nidyareza-calendar-dow {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	text-align: center;
	font-size: 0.8em;
	color: var(--nidyareza-text-muted);
	margin-bottom: 4px;
}

.nidyareza-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}

.nidyareza-calendar-day {
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 6px;
	background: var(--nidyareza-bg-muted);
	border: 1px solid transparent;
	cursor: pointer;
	font-size: 0.9em;
	min-height: 36px;
}

.nidyareza-calendar-day:hover:not(.is-disabled) {
	background: #bfdf29;
	color: var(--nidyareza-text);
}

.nidyareza-calendar-day.is-selected {
	background: #bfdf29;
	color: var(--nidyareza-text);
}

.nidyareza-calendar-day.is-disabled {
	color: #c3c4c7;
	cursor: not-allowed;
	background: transparent;
}

.nidyareza-calendar-day.is-empty {
	visibility: hidden;
}

/* Billets */
.nidyareza-ticket-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--nidyareza-border);
}

.nidyareza-ticket-row:last-of-type {
	border-bottom: none;
}

.nidyareza-ticket-name {
	display: block;
	font-weight: 600;
}

.nidyareza-ticket-sub,
.nidyareza-ticket-price {
	display: block;
	font-size: 0.9em;
	color: var(--nidyareza-text-muted);
}

.nidyareza-qty {
	display: flex;
	align-items: center;
	gap: 10px;
}

.nidyareza-qty-btn {
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	color: #64748b;
	font-size: 32px;
	line-height: 0;
	font-weight: 600;
}

.nidyareza-qty-btn:hover {
	background: none;
	border: none;
	color: #fdab19;
}

.nidyareza-qty-btn:disabled {
	opacity: 0.4;
	cursor: not-allowed;
	color: #64748b;
}

.nidyareza-qty-value {
	min-width: 24px;
	text-align: center;
	font-weight: 600;
}

/* Récapitulatif / résumé de tarif */
.nidyareza-summary {
	margin-top: 16px;
	padding-top: 12px;
	border-top: 1px dashed var(--nidyareza-border);
	font-size: 0.95em;
}

.nidyareza-summary-row {
	display: flex;
	justify-content: space-between;
	padding: 3px 0;
}

.nidyareza-summary-row.is-discount span {
	color: #feaf11;
}

.nidyareza-summary-row.is-total {
	font-size: 1.15em;
	font-weight: 700;
	border-top: 1px solid var(--nidyareza-border);
	margin-top: 6px;
	padding-top: 8px;
}

/* Formulaire client */
.nidyareza-field {
	margin-bottom: 14px;
}

.nidyareza-field label {
	display: block;
	margin-bottom: 4px;
	font-weight: 600;
	font-size: 0.9em;
}

.nidyareza-field input[type="text"],
.nidyareza-field input[type="email"],
.nidyareza-field input[type="tel"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid var(--nidyareza-border);
	border-radius: 6px;
	font-size: 1em;
}

.nidyareza-consent {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 0.9em;
	margin-bottom: 14px;
}

/* Boutons */
.nidyareza-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 20px;
	border-radius: 6px;
	border: 1px solid var(--nidyareza-border);
	background: var(--nidyareza-bg-muted);
	color: var(--nidyareza-text);
	font-size: 1em;
	cursor: pointer;
	text-decoration: none;
}

.nidyareza-btn {
	text-transform: uppercase;
	font-size: 15px;
}

/* Bouton "Retour" uniquement (n'a jamais la classe --primary). */
.nidyareza-btn:not(.nidyareza-btn--primary) {
	background: #fead02;
	border: none;
	color: #404c02;
}

.nidyareza-btn:not(.nidyareza-btn--primary):hover {
	background: #fcf5dd;
	color: #feaf11;
}

.nidyareza-btn--primary {
	background: var(--nidyareza-primary);
	border-color: var(--nidyareza-primary);
	color: var(--nidyareza-primary-contrast);
	width: 100%;
}

/* "Continuer" et "Payer avec Stripe" partagent le même style (même classe --primary). */
.nidyareza-btn--primary {
	background: #bfdf29;
	border: none;
	color: #3b4a01;
}

.nidyareza-btn--primary:hover {
	background: #fcf5dd;
	color: #bfdf29;
}

.nidyareza-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.nidyareza-btn-row {
	display: flex;
	gap: 10px;
	margin-top: 16px;
}

.nidyareza-recap-line {
	display: flex;
	justify-content: space-between;
	padding: 4px 0;
}

.nidyareza-confirmation {
	text-align: center;
	padding: 32px 20px;
}

.nidyareza-confirmation h2 {
	margin-top: 0;
}

@media (max-width: 480px) {
	.nidyareza-step {
		padding: 14px;
	}
	.nidyareza-btn-row {
		flex-direction: column;
	}
}
