/*
 * Composant de réservation en mode devis (views/quotes/_booking_widget.html.twig).
 * Reprend l'apparence des composants de réservation : popup voyageurs (style.css :
 * .guest-field, .guest-popup, .btn-done), calendrier des départs (tour.css :
 * .tour-calendar-picker), encadré de prix. Propriétés logiques pour l'arabe (RTL).
 */
.quote-booking { scroll-margin-top: 100px; }

/* Compteurs : même rendu que .counter-btn, sans ses gestionnaires (booking.js). */
.quote-booking__counter {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 1px solid var(--secondary-color);
	background: #fff;
	color: var(--secondary-color);
	cursor: pointer;
	font-weight: bold;
	line-height: 1;
}
.quote-booking__counter:focus-visible { outline: 2px solid var(--secondary-color); outline-offset: 2px; }
.quote-booking .guest-popup-counter input {
	width: 42px;
	text-align: center;
	border: none;
	font-weight: bold;
	background: transparent;
	-moz-appearance: textfield;
}
.quote-booking .guest-popup-counter input::-webkit-outer-spin-button,
.quote-booking .guest-popup-counter input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quote-booking .guest-field { min-width: 0; }
.quote-booking .guest-popup { inset-inline-end: 0; right: auto; max-width: calc(100vw - 32px); }
.quote-booking [data-qb-guests-label] { cursor: pointer; }

/* Calendrier des départs : même rendu que la fiche circuit (tour.css), disponible partout. */
.quote-booking__calendar .flatpickr-calendar.inline { width: 100% !important; max-width: 100% !important; min-width: 0 !important; padding: 12px; border: 0; border-radius: 18px; box-shadow: 0 12px 36px rgba(0, 70, 55, .10); background: #fff; }
.quote-booking__calendar .flatpickr-innerContainer, .quote-booking__calendar .flatpickr-rContainer, .quote-booking__calendar .flatpickr-days { width: 100% !important; min-width: 0 !important; max-width: 100% !important; display: flex !important; }
.quote-booking__calendar .flatpickr-rContainer { flex-direction: column; }
.quote-booking__calendar .dayContainer { min-width: 0 !important; max-width: none !important; width: 100% !important; flex: 1 1 0 !important; padding: 8px 2px; }
.quote-booking__calendar .flatpickr-weekdays { display: flex !important; width: 100% !important; min-width: 0 !important; max-width: 100% !important; height: auto; min-height: 30px; }
.quote-booking__calendar .flatpickr-weekdaycontainer { display: grid !important; grid-template-columns: repeat(7, minmax(0, 1fr)); flex: 1 1 0 !important; width: auto !important; min-width: 0 !important; max-width: none !important; padding: 0 2px; }
.quote-booking__calendar span.flatpickr-weekday { display: block; width: auto; min-width: 0; color: #475569; opacity: 1; font-size: .8rem; font-weight: 600; line-height: 30px; text-align: center; }
.quote-booking__calendar .flatpickr-day { max-width: none; height: 56px !important; line-height: 20px !important; border-radius: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 1; color: #334155; border-bottom: 0 !important; }
.quote-booking__calendar .flatpickr-day.flatpickr-disabled { color: #64748b; background: #f8fafc; opacity: 1; cursor: not-allowed; }
.quote-booking__calendar .flatpickr-day.prevMonthDay, .quote-booking__calendar .flatpickr-day.nextMonthDay { color: #64748b; opacity: 1; }
.quote-booking__calendar .flatpickr-day:not(.flatpickr-disabled):not(.prevMonthDay):not(.nextMonthDay) { background: #e6f5ef; border-color: #fff; color: #006b54; font-weight: 600; cursor: pointer; }
.quote-booking__calendar .flatpickr-day.selected, .quote-booking__calendar .flatpickr-day:not(.flatpickr-disabled):hover { background: #007e68 !important; color: #fff !important; }
.quote-booking__calendar .tour-picker-price { font-size: .7rem; line-height: 1.2; font-weight: 600; color: inherit; }
.quote-booking__calendar .flatpickr-months { margin-bottom: 8px; width: 100% !important; display: flex !important; }
.quote-booking__calendar .flatpickr-month { height: 40px; flex: 1 1 0 !important; min-width: 0 !important; max-width: none !important; }
.quote-booking__calendar .flatpickr-current-month { font-size: 1rem; white-space: nowrap; width: auto; left: 0; right: 0; padding-top: 6px; }
.quote-booking__calendar .flatpickr-current-month .numInputWrapper { width: 4.5ch; }
.quote-booking__calendar span.flatpickr-weekday { font-size: .72rem; white-space: nowrap; overflow: hidden; }

/* Encadré de prix et sélection. */
.quote-booking__price.is-loading { opacity: .55; transition: opacity .15s; }
.quote-booking__room { background: #f8fbfa; }
.quote-booking__departures .list-group-item { cursor: pointer; }
.quote-booking__class { cursor: pointer; }
.quote-booking__class:has(input:checked), .quote-booking__departures .list-group-item:has(input:checked) { border-color: var(--secondary-color, #00796b) !important; background: #eef7f5; }
.quote-journey__card--unavailable { border-color: var(--tertiary-orange, #ffa726); }
