/* Alpixi Reservit Calendrier (prototype) : palette Le Vernay */
.arc-calendrier {
	--arc-or: var(--couleur-or, #9B8B53);
	--arc-nuit: var(--couleur-nuit, #263A45);
	--arc-sable: var(--couleur-sable, #E3DAC6);
	--arc-texte: var(--couleur-texte, #151515);
	--arc-gris: #B9B9B9;
	font-family: var(--font-texte, "Barlow", sans-serif);
	color: var(--arc-texte);
	max-width: 960px;
	margin: 0 auto;
	/* Carte autonome : lisible sur fond clair comme sur fond foncé */
	background: #fff;
	border: 1px solid rgba(38, 58, 69, .08);
	border-radius: 3px;
	padding: 32px;
	box-shadow: 0 12px 40px rgba(21, 21, 21, .12);
	text-align: left;
	width: 100%;
	box-sizing: border-box;
}
/* Le widget Elementor qui contient le calendrier prend toute la largeur disponible,
   même dans un conteneur Flexbox en ligne */
.elementor-widget:has(.arc-calendrier) { flex: 1 1 100%; width: 100%; max-width: 100%; }
.arc-calendrier * { box-sizing: border-box; }
.arc-calendrier button { all: unset; box-sizing: border-box; }
.arc-calendrier .arc-entete { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.arc-calendrier .arc-apartir { margin: 0; font-size: 17px; text-align: center; flex: 1; }
.arc-calendrier .arc-apartir strong { font-family: var(--font-titre, "Gilda Display", serif); font-size: 26px; font-weight: 400; color: var(--arc-nuit); }
.arc-calendrier .arc-nav { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px; border: 1px solid var(--arc-sable); border-radius: 50%; background: #fff; color: var(--arc-nuit); font-size: 24px; line-height: 1; cursor: pointer; transition: border-color .2s, color .2s; }
.arc-calendrier .arc-entete .arc-nav:is(:hover, :focus, :active) { background: #fff !important; color: var(--arc-nuit) !important; box-shadow: none !important; }
.arc-calendrier .arc-entete .arc-nav:hover:not(:disabled) { border-color: var(--arc-or); color: var(--arc-or) !important; }
.arc-calendrier .arc-nav:disabled { opacity: .35; cursor: default; }
.arc-calendrier .arc-mois { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px; }
.arc-calendrier .arc-titre-mois { margin: 0 0 12px; font-family: var(--font-titre, "Gilda Display", serif); font-size: 22px; color: var(--arc-nuit); text-align: center; }
.arc-calendrier .arc-grille { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.arc-calendrier .arc-jsem { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; color: var(--arc-or); text-align: center; padding: 4px 0; }
.arc-calendrier .arc-jour { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 58px; padding: 4px 2px; border: 1px solid transparent; border-radius: 3px; background: none; font-family: inherit; color: inherit; cursor: default; transition: background-color .15s, border-color .15s; }
.arc-calendrier .arc-num { font-size: 15px; font-weight: 600; line-height: 1; }
.arc-calendrier .arc-prix { font-size: 12.5px; font-weight: 600; color: var(--arc-or); line-height: 1.1; }
.arc-calendrier .arc-min .arc-prix { color: #8a7a45; }
.arc-calendrier .arc-etat { font-size: 10.5px; line-height: 1.1; text-transform: uppercase; letter-spacing: .3px; text-align: center; }
.arc-calendrier .arc-skel { display: block; width: 28px; height: 8px; border-radius: 4px; background: linear-gradient(90deg, #eee 25%, #f6f6f6 50%, #eee 75%); background-size: 200% 100%; animation: arc-skel 1.2s infinite; }
@keyframes arc-skel { to { background-position: -200% 0; } }
/* États des jours. Fond et couleur sont aussi fixés au survol, au focus et au clic,
   car les styles de boutons du thème (fond doré au survol) passeraient sinon par-dessus. */
.arc-calendrier .arc-grille .arc-jour:is(:hover, :focus, :active) { box-shadow: none !important; text-decoration: none !important; outline: none; }
.arc-calendrier .arc-grille .arc-jour.arc-dispo,
.arc-calendrier .arc-grille .arc-jour.arc-dispo:is(:hover, :focus, :active) { background: #fff !important; border-color: rgba(38, 58, 69, .12); color: var(--arc-texte) !important; cursor: pointer; }
.arc-calendrier .arc-grille .arc-jour.arc-min,
.arc-calendrier .arc-grille .arc-jour.arc-min:is(:hover, :focus, :active) { background: rgba(227, 218, 198, .35) !important; color: var(--arc-texte) !important; cursor: pointer; }
.arc-calendrier .arc-grille .arc-jour.arc-complet,
.arc-calendrier .arc-grille .arc-jour.arc-complet:is(:hover, :focus, :active) { background: repeating-linear-gradient(-45deg, #f4f4f4 0 6px, #fafafa 6px 12px) !important; color: var(--arc-gris) !important; }
.arc-calendrier .arc-grille .arc-jour.arc-passe,
.arc-calendrier .arc-grille .arc-jour.arc-passe:is(:hover, :focus, :active),
.arc-calendrier .arc-grille .arc-jour.arc-attente,
.arc-calendrier .arc-grille .arc-jour.arc-attente:is(:hover, :focus, :active) { background: transparent !important; }
.arc-calendrier .arc-grille .arc-jour.arc-passe { color: #d0d0d0 !important; }
.arc-calendrier .arc-grille .arc-jour.arc-dispo:hover,
.arc-calendrier .arc-grille .arc-jour.arc-min:hover,
.arc-calendrier .arc-grille .arc-jour.arc-dispo:focus-visible,
.arc-calendrier .arc-grille .arc-jour.arc-min:focus-visible { background: #f7f3ea !important; border-color: var(--arc-or); }
.arc-calendrier .arc-complet .arc-num { text-decoration: line-through; }
.arc-calendrier .arc-jour:not(:disabled) { cursor: pointer; }
.arc-calendrier .arc-jour:disabled { cursor: default; }
.arc-calendrier .arc-grille .arc-jour.arc-sel-entre,
.arc-calendrier .arc-grille .arc-jour.arc-sel-entre:is(:hover, :focus, :active) { background: rgba(155, 139, 83, .18) !important; border-color: transparent; color: var(--arc-texte) !important; }
.arc-calendrier .arc-grille .arc-jour.arc-sel,
.arc-calendrier .arc-grille .arc-jour.arc-sel:is(:hover, :focus, :active) { background: var(--arc-nuit) !important; border-color: var(--arc-nuit); color: #fff !important; }
.arc-calendrier .arc-jour.arc-sel .arc-prix, .arc-calendrier .arc-jour.arc-sel .arc-etat { color: var(--arc-sable); }
.arc-calendrier .arc-jour:focus-visible, .arc-calendrier .arc-nav:focus-visible, .arc-calendrier .arc-reserver:focus-visible { outline: 2px solid var(--arc-or); outline-offset: 2px; }
.arc-calendrier .arc-legende { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; list-style: none; margin: 24px 0 0; padding: 0; font-size: 14px; }
.arc-calendrier .arc-legende li { display: flex; align-items: center; gap: 8px; }
.arc-calendrier .arc-pastille { width: 16px; height: 16px; border-radius: 3px; border: 1px solid rgba(38, 58, 69, .2); }
.arc-calendrier .arc-p-dispo { background: #fff; }
.arc-calendrier .arc-p-complet { background: repeating-linear-gradient(-45deg, #e6e6e6 0 3px, #fafafa 3px 6px); }
.arc-calendrier .arc-p-min { background: rgba(227, 218, 198, .6); }
.arc-calendrier .arc-resume { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; padding: 20px 24px; border-radius: 3px; background: var(--arc-sable); }
.arc-calendrier .arc-resume[hidden] { display: none; }
.arc-calendrier .arc-resume p { margin: 0; font-size: 16px; }
.arc-calendrier .arc-reserver { display: inline-block; padding: 14px 28px; border-radius: 3px; background: var(--arc-or); color: #fff !important; font-size: 15px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; text-decoration: none; transition: background-color .2s; }
.arc-calendrier .arc-resume .arc-reserver:is(:hover, :focus) { background: var(--arc-nuit); color: #fff !important; }
.arc-calendrier .arc-note { margin: 16px 0 0; font-size: 13px; color: #6b6b6b; text-align: center; }
.arc-calendrier.arc-chargement .arc-apartir:empty::before { content: "Chargement des disponibilités…"; color: #6b6b6b; font-size: 15px; }
/* Bloc étroit (colonne, tablette, mobile) : un mois par ligne */
/* Classe posée par le script selon la largeur réelle du bloc */
.arc-calendrier.arc-etroit .arc-mois { grid-template-columns: 1fr; gap: 28px; }
.arc-calendrier.arc-etroit .arc-jour { min-height: 52px; }
.arc-calendrier.arc-etroit .arc-prix { font-size: 11.5px; }
.arc-calendrier.arc-etroit .arc-etat { font-size: 9px; letter-spacing: 0; }
.arc-calendrier.arc-etroit .arc-resume { padding: 16px; }
.arc-calendrier.arc-etroit .arc-reserver { width: 100%; text-align: center; }
/* Classe posée par le script selon la largeur réelle du bloc */
.arc-calendrier.arc-tres-etroit .arc-grille { gap: 2px; }
.arc-calendrier.arc-tres-etroit .arc-jour { min-height: 46px; }
.arc-calendrier.arc-tres-etroit .arc-prix { font-size: 10.5px; }
.arc-calendrier.arc-tres-etroit .arc-jsem { font-size: 10px; letter-spacing: 0; }
@media (max-width: 767px) {
	.arc-calendrier { padding: 20px 16px; }
}
/* Séjour minimum : prix moyen par nuit + durée minimale */
.arc-calendrier .arc-min .arc-etat { color: #6f6a5d; text-transform: none; letter-spacing: 0; font-size: 11px; }
.arc-calendrier .arc-grille .arc-jour.arc-sans-arrivee,
.arc-calendrier .arc-grille .arc-jour.arc-sans-arrivee:is(:hover, :focus, :active) { background: transparent !important; border-color: rgba(38, 58, 69, .08); color: var(--arc-gris) !important; }
/* Classe posée par le script selon la largeur réelle du bloc */
.arc-calendrier.arc-etroit .arc-min .arc-etat { font-size: 9.5px; }
