/**
 * Calendrier de sélection de weekend — étape 2.
 *
 * Tout est scopé sous #lblf-etape-dates et les <button> du calendrier
 * sont "reset" pour neutraliser les styles de boutons du thème /
 * d'Elementor (sinon les cases héritent d'un fond, d'un padding et
 * d'un text-transform indésirables).
 *
 * Palette pensée pour une brasserie (tons miel/ambré), volontairement
 * sobre pour cohabiter avec la charte du site. Toutes les couleurs
 * sont des variables : adapte-les ici si besoin.
 */

#lblf-etape-dates {
	font-family: var(--lblf-police);
	max-width: 420px;
	color: var(--lblf-ink);
	line-height: 1.4;
}

#lblf-etape-dates h2 {
	font-family: var(--lblf-police-titre);
	font-size: 1.35rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0 0 0.35em;
}

#lblf-etape-dates .description {
	margin: 0 0 1em;
	font-size: 0.9rem;
	opacity: 0.75;
}

/* --- Verrouillé (pas encore de tireuse choisie) : le bloc reste visible
   mais grisé et inerte, plutôt que remplacé par un simple message. --- */
#lblf-etape-dates.lblf-etape-verrouillee h2,
#lblf-etape-dates.lblf-etape-verrouillee .description,
#lblf-etape-dates.lblf-etape-verrouillee #lblf-calendrier-mois {
	opacity: 0.5;
	pointer-events: none;
}
#lblf-etape-dates.lblf-etape-verrouillee #lblf-calendrier-mois {
	min-height: 220px;
	background: var(--lblf-surface);
	border-radius: var(--lblf-rayon-s);
}
#lblf-etape-dates .lblf-etape-message {
	margin: 0 0 1em;
	padding: 0.6em 0.9em;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--lblf-accent-fort);
	background: var(--lblf-accent-doux);
	border-radius: var(--lblf-rayon-s);
}

/* Pendant le rafraîchissement du bloc (changement de tireuse à l'étape 1) */
#lblf-etape-dates.lblf-bloc--chargement {
	opacity: 0.5;
	pointer-events: none;
}

/* --- Barre de navigation mois --- */
#lblf-etape-dates .lblf-cal-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.6em;
}
#lblf-etape-dates .lblf-cal-titre {
	font-weight: 700;
	font-size: 1.02rem;
	text-transform: capitalize;
	letter-spacing: 0.01em;
}
#lblf-etape-dates .lblf-cal-nav-btn {
	appearance: none;
	-webkit-appearance: none;
	margin: 0;
	padding: 0;
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	line-height: 1;
	color: var(--lblf-ink);
	background: transparent;
	border: 1px solid var(--lblf-line);
	border-radius: 50%;
	box-shadow: none;
	text-transform: none;
	cursor: pointer;
	transition: background var(--lblf-transition), border-color var(--lblf-transition);
}
#lblf-etape-dates .lblf-cal-nav-btn:hover:not(:disabled) {
	background: var(--lblf-accent-doux);
	border-color: var(--lblf-accent);
}
#lblf-etape-dates .lblf-cal-nav-btn:disabled {
	opacity: 0.3;
	cursor: default;
}

/* --- Grille --- */
#lblf-etape-dates .lblf-cal-grille {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 6px 4px;
}
#lblf-etape-dates .lblf-cal-jourhead {
	font-size: 0.72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	text-align: center;
	color: var(--lblf-muted);
	padding-bottom: 2px;
}

/* Cellule "jour" (reset complet des boutons hérités du thème) */
#lblf-etape-dates .lblf-cal-jour {
	appearance: none;
	-webkit-appearance: none;
	margin: 0;
	padding: 0;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.9rem;
	font-variant-numeric: tabular-nums;
	color: var(--lblf-ink);
	background: transparent;
	border: 1px solid transparent;
	border-radius: var(--lblf-rayon-s);
	box-shadow: none;
	text-transform: none;
	letter-spacing: normal;
	line-height: 1;
	cursor: default;
	transition: background var(--lblf-transition), color var(--lblf-transition), border-color var(--lblf-transition);
}

/* Jours hors weekend (mar/mer/jeu), jours passés, jour de retour au repos */
#lblf-etape-dates .lblf-cal-jour--muet {
	color: var(--lblf-muted);
}

/* Weekend indisponible (ou passé) : barré, non cliquable */
#lblf-etape-dates .lblf-cal-jour--indispo {
	color: var(--lblf-muted);
	text-decoration: line-through;
	opacity: 0.6;
}

/* Jours de location d'un weekend disponible (ven/sam/dim) au repos */
#lblf-etape-dates .lblf-cal-jour--dispo {
	background: var(--lblf-accent-doux);
	color: var(--lblf-accent-fort);
	cursor: pointer;
}

/* Survol : tout le bloc ven/sam/dim s'allume ensemble (géré en JS) */
#lblf-etape-dates .lblf-cal-jour--survol {
	background: var(--lblf-accent-survol);
	color: var(--lblf-accent-fort);
}

/* Weekend sélectionné : bloc plein */
#lblf-etape-dates .lblf-cal-jour--selectionne {
	background: var(--lblf-accent);
	color: var(--lblf-sur-accent);
	border-color: var(--lblf-accent);
}

/* Coins arrondis pour donner l'effet "un seul bloc" ven→dim
   (ven = coins gauche, dim = coins droite, sam = carré) */
#lblf-etape-dates .lblf-cal-jour--bloc-debut {
	border-top-right-radius: 2px;
	border-bottom-right-radius: 2px;
}
#lblf-etape-dates .lblf-cal-jour--bloc-milieu {
	border-radius: 2px;
}
#lblf-etape-dates .lblf-cal-jour--bloc-fin {
	border-top-left-radius: 2px;
	border-bottom-left-radius: 2px;
}

/* Jours débordants des mois voisins (semaines complètes) : numéro
   atténué, mais la case reste fonctionnelle (weekend cliquable, etc.). */
#lblf-etape-dates .lblf-cal-jour--hors-mois .lblf-cal-num {
	opacity: 0.4;
}

/* Accessibilité clavier */
#lblf-etape-dates .lblf-cal-jour:focus-visible,
#lblf-etape-dates .lblf-cal-nav-btn:focus-visible,
#lblf-etape-dates .lblf-btn:focus-visible {
	outline: 2px solid var(--lblf-accent-fort);
	outline-offset: 2px;
}

/* --- Légende --- */
#lblf-etape-dates .lblf-cal-legende {
	margin-top: 0.8em;
	font-size: 0.78rem;
	line-height: 1.5;
	color: var(--lblf-muted);
	display: flex;
	flex-wrap: wrap;
	gap: 0.3em 1em;
}
#lblf-etape-dates .lblf-cal-legende span {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
}
#lblf-etape-dates .lblf-cal-legende .lblf-pastille {
	width: 12px;
	height: 12px;
	border-radius: 3px;
	flex: none;
}
#lblf-etape-dates .lblf-pastille--dispo { background: var(--lblf-accent-doux); }
#lblf-etape-dates .lblf-pastille--select { background: var(--lblf-accent); }
#lblf-etape-dates .lblf-pastille--retour { background: var(--lblf-blanc); border: 1px solid var(--lblf-accent); }

/* --- Bouton Confirmer --- */
#lblf-etape-dates .lblf-btn {
	appearance: none;
	-webkit-appearance: none;
	margin: 1em 0 0;
	padding: 0.7em 1.4em;
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--lblf-sur-accent);
	background: var(--lblf-accent);
	border: none;
	border-radius: var(--lblf-rayon);
	box-shadow: none;
	text-transform: none;
	cursor: pointer;
	transition: background var(--lblf-transition);
}
#lblf-etape-dates .lblf-btn:hover:not(:disabled) {
	background: var(--lblf-accent-fort);
}
#lblf-etape-dates .lblf-btn:disabled {
	opacity: 0.6;
	cursor: default;
}

#lblf-etape-dates .lblf-erreur {
	margin: 0.8em 0 0;
	color: var(--lblf-erreur);
	font-size: 0.9rem;
}

/* Réduction de mouvement */
@media ( prefers-reduced-motion: reduce ) {
	#lblf-etape-dates * {
		transition: none !important;
	}
}

/* ============================================================
 * PLAGE DE LOCATION RÉELLE (rendez-vous choisis à l'étape 3)
 *
 * Prend le pas sur l'affichage du weekend : dès que les deux
 * rendez-vous sont choisis, le calendrier montre la location telle
 * qu'elle sera réservée — du jour de retrait au jour de retour, qui
 * peuvent déborder du weekend (retrait le jeudi, par exemple).
 * Déclaré en fin de fichier pour l'emporter dans la cascade.
 * ============================================================ */

#lblf-etape-dates .lblf-cal-jour--rdv {
	background: var(--lblf-accent);
	color: var(--lblf-sur-accent);
	border-color: var(--lblf-accent);
	opacity: 1;
	text-decoration: none;
	position: relative;
}
#lblf-etape-dates .lblf-cal-jour--rdv .lblf-cal-num {
	color: var(--lblf-sur-accent);
	opacity: 1;
}

/* Milieu de plage carré : la location se lit d'un bloc. */
#lblf-etape-dates .lblf-cal-jour--rdv-milieu {
	border-radius: 2px;
}

/* Les deux rendez-vous partagent le même traitement : ce sont des
   moments de passage à la brasserie, pas des jours d'occupation du
   matériel — d'où le fond clair, distinct du plein de la location. */
#lblf-etape-dates .lblf-cal-jour--rdv-retrait,
#lblf-etape-dates .lblf-cal-jour--rdv-retour {
	background: var(--lblf-blanc);
	color: var(--lblf-accent-fort);
	border-color: var(--lblf-accent);
	box-shadow: inset 0 0 0 1px var(--lblf-accent);
}
#lblf-etape-dates .lblf-cal-jour--rdv-retrait .lblf-cal-num,
#lblf-etape-dates .lblf-cal-jour--rdv-retour .lblf-cal-num {
	color: var(--lblf-accent-fort);
}
#lblf-etape-dates .lblf-cal-jour--rdv-retrait {
	border-top-right-radius: 2px;
	border-bottom-right-radius: 2px;
}
#lblf-etape-dates .lblf-cal-jour--rdv-retour {
	border-top-left-radius: 2px;
	border-bottom-left-radius: 2px;
}

/* Repères des rendez-vous (SVG, voir construireRepere) */
#lblf-etape-dates .lblf-cal-repere {
	position: absolute;
	top: 3px;
	right: 3px;
	width: var(--lblf-repere-taille);
	height: var(--lblf-repere-taille);
	display: block;
	line-height: 0;
	color: var(--lblf-accent);
	pointer-events: none;
}
#lblf-etape-dates .lblf-cal-repere svg {
	width: 100%;
	height: 100%;
	display: block;
	/* Le trait ne doit pas s'épaissir si le SVG est mis à l'échelle. */
	vector-effect: non-scaling-stroke;
}
