/* Les Trembles – Calendrier */
.ltc { --ltc-gap: 28px; font-size: 15px; }
.ltc__nav { display: none; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.ltc--js .ltc__nav { display: flex; }
.ltc__range { font-weight: 600; text-align: center; flex: 1; }
.ltc__btn {
	width: 40px; height: 40px; border-radius: 50%; border: 1px solid #d8d3cb; background: #fff; color: #2b2a29;
	font-size: 1.5rem; line-height: 1; cursor: pointer; transition: background .2s, border-color .2s;
}
.ltc__btn:hover:not(:disabled) { background: #f4f1ec; border-color: #2b2a29; }
.ltc__btn:disabled { opacity: .3; cursor: default; }

.ltc__months { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--ltc-gap); }
.ltc--js .ltc__months { grid-template-columns: repeat(var(--ltc-per-view, 2), minmax(0, 1fr)); }
.ltc--js .ltc-month { display: none; }
.ltc--js .ltc-month.is-visible { display: block; }

.ltc-month__title { margin: 0 0 10px; font-size: 1.05rem; font-weight: 600; text-align: center; }
.ltc-month__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; }
.ltc-month__wd { text-align: center; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #6b665f; padding-bottom: 4px; }

.ltc-day {
	position: relative; display: flex; align-items: center; justify-content: center;
	aspect-ratio: 1; border-radius: 6px; font-size: .88rem; font-variant-numeric: tabular-nums;
	background: linear-gradient(135deg, var(--ltc-a, #f4f1ec) 50%, var(--ltc-b, #f4f1ec) 50%);
	color: #2b2a29;
}
.ltc-day--empty { background: none; }
.ltc-day--dark { color: #fff; }
.ltc-day--split { text-shadow: 0 0 3px rgba(255, 255, 255, .9), 0 0 2px rgba(255, 255, 255, .9); color: #2b2a29; font-weight: 600; }
.ltc-day--past { background: none; color: #767069; text-decoration: line-through; text-decoration-color: rgba(118, 112, 105, .4); }
.ltc-day--today { box-shadow: inset 0 0 0 2px #2b2a29; font-weight: 700; }

.ltc-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; list-style: none; margin: 22px 0 0; padding: 0; font-size: .9rem; }
.ltc-legend li { display: flex; align-items: center; gap: 8px; }
.ltc-legend__swatch { width: 16px; height: 16px; border-radius: 4px; flex: none; }

/* Aperçu cliquable de l'administration */
.ltc--admin .ltc-day[data-date] { cursor: pointer; }
.ltc--admin .ltc-day[data-date]:hover { outline: 2px solid #2271b1; outline-offset: 1px; }
.ltc--admin .ltc-day.is-selected { outline: 3px solid #2271b1; outline-offset: 1px; z-index: 1; }
.ltc--admin .ltc-day.is-in-range { box-shadow: inset 0 0 0 2px #2271b1; }
.ltc--single .ltc-month__title { display: none; }

/* Choix d'une semaine sur le site */
.ltc-pick {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
	margin-top: 14px; padding: 14px 16px; border-radius: var(--radius, 10px);
	background: var(--c-sand, #eee9e0);
}
.ltc-pick[hidden] { display: none; }
.ltc-pick__text { margin: 0; font-size: .95rem; }
.ltc-pick__text strong { color: var(--c-ink, #2b2a29); }

/* Grille des tarifs par période */
.ltc-prices { margin-bottom: 8px; }
.ltc-prices__list { list-style: none; margin: 0; padding: 0; }
.ltc-prices__list li { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid var(--c-sand-dark, #ddd5c7); }
.ltc-prices__list li:last-child { border-bottom: 0; }
.ltc-prices__list .ltc-legend__swatch { margin-top: 4px; }
.ltc-prices__body { display: flex; flex-direction: column; gap: 2px; font-size: .88rem; color: var(--c-muted, #6f6b67); line-height: 1.5; }
.ltc-prices__body strong { color: var(--c-ink, #2b2a29); font-size: .95rem; }
.ltc-pick__actions { display: flex; align-items: center; gap: 14px; }
.ltc-pick__clear { padding: 0; border: 0; background: none; color: var(--c-muted, #625e5a); font: inherit; font-size: .88rem; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ltc-pick__clear:hover { color: var(--c-ink, #2b2a29); }

/* « Non disponible » : hachures, pour ne pas le confondre avec un tarif rouge ou orange */
.ltc-day--reserve:not(.ltc-day--split):not(.ltc-day--past) {
	background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, .28) 0 3px, transparent 3px 8px);
	background-color: var(--ltc-b);
}
.ltc-legend__swatch--reserve { background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, .35) 0 2px, transparent 2px 5px); }

/* Sélection du séjour : sobre ---------------------------------------- */
/* Samedis où l'on peut arriver : en gras, légère mise en avant au survol */
.ltc--select .ltc-day--pick { cursor: pointer; font-weight: 700; transition: transform .15s, box-shadow .15s, opacity .2s; }
.ltc--select .ltc-day--pick:hover, .ltc--select .ltc-day--pick:focus-visible { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 0, 0, .18); z-index: 2; outline: none; }

/* Séjour choisi : il garde ses couleurs, le reste du calendrier s'estompe */
.ltc-day { transition: opacity .2s; }
.ltc--has-pick .ltc-day:not(.ltc-day--empty):not(.is-picked):not(.is-preview):not(.is-pick-out) { opacity: .28; }
.ltc-day.is-picked { font-weight: 700; }
.ltc-day.is-preview { opacity: .7; }
.ltc-day.is-pick-out { opacity: .6; }

.ltc-hint { margin: 14px 0 0; font-size: .88rem; color: var(--c-muted, #625e5a); }
