/**
 * SC Simply Rent — Frontend styles.
 *
 * Mobile-first. Aucune dépendance externe.
 * Toutes les classes sont préfixées .ssr- pour éviter les conflits de thème.
 */

/* -----------------------------------------------------------------------
   Override thème — pleine largeur pour le template SC Simply Rent
   (TwentyTwelve et autres thèmes classiques)
   ----------------------------------------------------------------------- */

.page-template-simply-rent-php #primary,
.page-template-simply-rent-php .site-main,
.page-template-simply-rent-php .entry-content,
.page-template-simply-rent-php article.page,
.page-template-simply-rent-php .post-thumbnail {
	width: 100% !important;
	max-width: 100% !important;
	padding: 0 !important;
	margin: 0 !important;
	float: none !important;
}

.page-template-simply-rent-php .site-content {
	overflow: visible !important;
}

/* Override thème — shortcode [simply_rent] dans .ssrt-page-content
   (thème sc-simply-rent : max-width: 72ch trop étroit pour le widget)    */
.ssrt-page-content:has( > .ssr-widget ),
.ssrt-page-content:has( .ssr-widget ) {
	max-width: none;
}

/* -----------------------------------------------------------------------
   Variables CSS
   ----------------------------------------------------------------------- */

:root {
	--ssr-primary:       #e85f20;
	--ssr-primary-hover: #c74f18;
	--ssr-primary-light: #fef0e9;
	--ssr-text:          #1a1a2e;
	--ssr-text-light:    #6b7280;
	--ssr-border:        #e2e4e9;
	--ssr-bg:            #f8f9fb;
	--ssr-white:         #ffffff;
	--ssr-disabled:      #c8cacd;
	--ssr-error:         #b91c1c;
	--ssr-error-bg:      #fef2f2;
	--ssr-error-border:  #fecaca;
	--ssr-radius:        10px;
	--ssr-radius-sm:     6px;
	--ssr-shadow:        0 2px 12px rgba(0, 0, 0, .08);
	--ssr-shadow-lg:     0 8px 32px rgba(0, 0, 0, .14);
	--ssr-card-shadow:   0 2px 12px rgba(0, 0, 0, .08);
	--ssr-grid-cols:     3;
	--ssr-font:          -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--ssr-transition:    .18s ease;
	--ssr-card-bg:       #1a1a2e;
	--ssr-card-bg-light: #2d2d44;
	--ssr-card-bg-dark:  #16213e;
	--ssr-font-heading:  -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	/* Échelle z-index cohérente */
	--ssr-z-above:   1;    /* en-tête collant dans un conteneur scrollable */
	--ssr-z-sticky:  100;  /* barre collante de page */
	--ssr-z-overlay: 200;  /* éléments flottants ancrés */
	--ssr-z-popup:   1000; /* popups calendrier / créneaux */
	--ssr-z-modal:   9999; /* modals plein-écran */
}

/* -----------------------------------------------------------------------
   Conteneur principal
   ----------------------------------------------------------------------- */

.ssr-widget {
	font-family: var(--ssr-font);
	color: var(--ssr-text);
	max-width: 1100px;
	margin: 0 auto;
	padding: 24px 16px 48px;
}

/* -----------------------------------------------------------------------
   Indicateur d'étapes
   ----------------------------------------------------------------------- */

.ssr-steps {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	margin-bottom: 32px;
}

.ssr-step {
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--ssr-text-light);
	font-size: 14px;
	font-weight: 500;
}

.ssr-step--active {
	color: var(--ssr-primary);
}

.ssr-step--active .ssr-step__num {
	background: var(--ssr-primary);
	color: var(--ssr-white);
}

.ssr-step--done {
	color: var(--ssr-text-light);
}

.ssr-step--done .ssr-step__num {
	background: #d1fae5;
	color: #065f46;
}

.ssr-step__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--ssr-border);
	color: var(--ssr-text-light);
	font-size: 13px;
	font-weight: 700;
	flex-shrink: 0;
}

.ssr-step__sep {
	flex: 1;
	height: 2px;
	background: var(--ssr-border);
	margin: 0 12px;
	max-width: 60px;
}

/* -----------------------------------------------------------------------
   Boutons catégorie
   ----------------------------------------------------------------------- */

.ssr-categories {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 24px;
}

.ssr-cat-btn {
	padding: 8px 18px;
	border: 2px solid var(--ssr-border);
	border-radius: 100px;
	background: var(--ssr-white);
	color: var(--ssr-text);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: border-color var(--ssr-transition), background var(--ssr-transition), color var(--ssr-transition);
}

.ssr-cat-btn:hover {
	border-color: var(--ssr-primary);
	color: var(--ssr-primary);
}

.ssr-cat-btn--active {
	border-color: var(--ssr-primary);
	background: var(--ssr-primary-light);
	color: var(--ssr-primary);
}

/* -----------------------------------------------------------------------
   Conteneur de recherche (anchor pour calendriers)
   ----------------------------------------------------------------------- */

.ssr-search-container {
	position: relative;
}

/* -----------------------------------------------------------------------
   Formulaire de recherche
   ----------------------------------------------------------------------- */

.ssr-search-form {
	background: var(--ssr-white);
	border: 1px solid var(--ssr-border);
	border-radius: var(--ssr-radius);
	box-shadow: var(--ssr-shadow);
	overflow: visible;
}

/* -----------------------------------------------------------------------
   Ligne date/heure (Départ + Retour)
   ----------------------------------------------------------------------- */

.ssr-date-row {
	display: flex;
	align-items: stretch;
	border-bottom: 1px solid var(--ssr-border);
}

.ssr-date-row:last-of-type {
	border-bottom: none;
}

.ssr-date-row__label {
	display: flex;
	align-items: center;
	padding: 0 20px;
	min-width: 90px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--ssr-text-light);
	border-right: 1px solid var(--ssr-border);
	flex-shrink: 0;
}

.ssr-date-row__inputs {
	display: flex;
	flex: 1;
	flex-wrap: wrap;
}

/* -----------------------------------------------------------------------
   Bouton date custom
   ----------------------------------------------------------------------- */

.ssr-date-wrap {
	display: flex;
	align-items: stretch;
	border-right: 1px solid var(--ssr-border);
	flex: 1;
	min-width: 160px;
}

.ssr-date-btn {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 18px 20px;
	border: none;
	background: transparent;
	font-family: var(--ssr-font);
	font-size: 15px;
	font-weight: 500;
	color: var(--ssr-text-light);
	cursor: pointer;
	text-align: left;
	transition: background var(--ssr-transition);
}

.ssr-date-btn:hover {
	background: var(--ssr-bg);
}

.ssr-date-btn[aria-expanded="true"] {
	background: var(--ssr-primary-light);
	color: var(--ssr-text);
}

.ssr-date-btn--has-value {
	color: var(--ssr-text);
}

.ssr-date-btn__icon {
	flex-shrink: 0;
	color: var(--ssr-text-light);
}

.ssr-date-btn--has-value .ssr-date-btn__icon,
.ssr-date-btn[aria-expanded="true"] .ssr-date-btn__icon {
	color: var(--ssr-primary);
}

.ssr-date-btn__val {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* -----------------------------------------------------------------------
   Calendrier popup
   ----------------------------------------------------------------------- */

.ssr-calendar-popup {
	/* top / left / width set by positionPopup() in JS (position: fixed) */
	position: fixed;
	z-index: var(--ssr-z-popup);
	background: var(--ssr-white);
	border: 1px solid var(--ssr-border);
	border-radius: var(--ssr-radius);
	box-shadow: var(--ssr-shadow-lg);
	padding: 20px;
}

.ssr-calendar-popup[hidden] {
	display: none;
}

/* Navigation + grilles */
.ssr-cal-nav-row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.ssr-cal-nav-btn {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: 1px solid var(--ssr-border);
	border-radius: 50%;
	cursor: pointer;
	font-size: 22px;
	line-height: 1;
	color: var(--ssr-text);
	transition: background var(--ssr-transition), border-color var(--ssr-transition);
	margin-top: 28px; /* aligne avec les titres des mois */
}

.ssr-cal-nav-btn:hover {
	background: var(--ssr-bg);
	border-color: var(--ssr-primary);
	color: var(--ssr-primary);
}

/* Mois affichés côte à côte */
.ssr-cal-months {
	display: flex;
	flex: 1;
	gap: 32px;
}

.ssr-cal-month {
	flex: 1;
	min-width: 0;
}

/* Titre du mois */
.ssr-cal-month-title {
	font-size: 15px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 14px;
	color: var(--ssr-text);
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Noms des jours LU MA ME JE VE SA DI */
.ssr-cal-day-names {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	margin-bottom: 4px;
}

.ssr-cal-day-names span {
	font-size: 11px;
	font-weight: 700;
	color: var(--ssr-text-light);
	text-align: center;
	padding: 4px 0;
	text-transform: uppercase;
	letter-spacing: .04em;
}

/* Grille des jours */
.ssr-cal-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
}

.ssr-cal-day-empty {
	aspect-ratio: 1;
}

/* Cellule jour */
.ssr-cal-day {
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	border: none;
	background: none;
	border-radius: 50%;
	font-size: 13px;
	font-weight: 500;
	color: var(--ssr-text);
	cursor: pointer;
	transition: background var(--ssr-transition), color var(--ssr-transition);
	font-family: var(--ssr-font);
	padding: 0;
	width: 100%;
}

/* Hover — jours disponibles */
.ssr-cal-day:not(.ssr-cal-day--disabled):hover {
	background: var(--ssr-bg);
}

/* Aujourd'hui — anneau accent visible même si désactivé */
.ssr-cal-day--today {
	font-weight: 700;
	box-shadow: inset 0 0 0 2px var(--ssr-primary);
	color: var(--ssr-primary);
	background: var(--ssr-primary-light);
	border-radius: var(--ssr-radius-sm);
}

/* Date sélectionnée — cercle sombre comme le modèle */
.ssr-cal-day--selected {
	background: var(--ssr-card-bg);
	color: var(--ssr-white);
	font-weight: 700;
}

.ssr-cal-day--selected:hover {
	background: var(--ssr-card-bg-light);
}

/* Jours passés (avant aujourd'hui) — barrés, très atténués */
.ssr-cal-day--past {
	opacity: .38;
	text-decoration: line-through;
	cursor: default;
	pointer-events: none;
	font-weight: 400;
}

/* Jours fermés non-passés (planning, horaires) — grisés sans barre */
.ssr-cal-day--disabled:not(.ssr-cal-day--past) {
	color: var(--ssr-disabled);
	opacity: .55;
	cursor: default;
	pointer-events: none;
	font-weight: 400;
}

/* Week-end fermé — légère teinte chaude pour signaler "fermé par planning" */
.ssr-cal-day--weekend.ssr-cal-day--disabled:not(.ssr-cal-day--past) {
	background: #fff5f0;
}

/* Week-end disponible — très léger fond distinctif */
.ssr-cal-day--weekend:not(.ssr-cal-day--disabled) {
	background: #fafafa;
}

/* En-têtes SA / DI — couleur atténuée */
.ssr-cal-day-names span.ssr-cal-day-name--weekend {
	color: var(--ssr-primary);
	opacity: .6;
}

/* -----------------------------------------------------------------------
   Bouton + popup time picker
   ----------------------------------------------------------------------- */

.ssr-time-wrap {
	position: relative;
	display: flex;
	align-items: stretch;
	flex: 1;
	min-width: 140px;
}

.ssr-time-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	width: 100%;
	padding: 18px 20px;
	border: none;
	background: transparent;
	font-size: 15px;
	font-weight: 500;
	color: var(--ssr-text);
	cursor: pointer;
	font-family: var(--ssr-font);
	text-align: left;
	transition: background var(--ssr-transition);
}

.ssr-time-btn:not([disabled]):hover {
	background: var(--ssr-bg);
}

.ssr-time-btn[disabled] {
	color: var(--ssr-text-light);
	cursor: not-allowed;
	opacity: .6;
}

.ssr-time-btn--open {
	background: var(--ssr-primary-light);
}

.ssr-time-btn__icon {
	font-size: 11px;
	color: var(--ssr-text-light);
	transition: transform var(--ssr-transition);
	flex-shrink: 0;
}

.ssr-time-btn--open .ssr-time-btn__icon {
	transform: rotate(180deg);
}

/* -----------------------------------------------------------------------
   Popup créneaux — grille 2 colonnes
   ----------------------------------------------------------------------- */

.ssr-time-popup {
	display: none;
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	min-width: 280px;
	max-width: 340px;
	max-height: 380px;
	overflow-y: auto;
	background: var(--ssr-white);
	border: 1px solid var(--ssr-border);
	border-radius: var(--ssr-radius);
	box-shadow: var(--ssr-shadow-lg);
	z-index: var(--ssr-z-popup);
}

.ssr-time-popup--open {
	display: block;
}

/* Titre du popup */
.ssr-time-popup__title {
	padding: 14px 16px 10px;
	font-size: 14px;
	font-weight: 700;
	color: var(--ssr-text);
	border-bottom: 1px solid var(--ssr-border);
	position: sticky;
	top: 0;
	background: var(--ssr-white);
	z-index: var(--ssr-z-above);
}

/* Grille 2 colonnes */
.ssr-time-slots {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
	padding: 10px;
}

/* Créneau — même langage visuel que les jours du calendrier */
.ssr-slot {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 10px 8px;
	border: 1px solid transparent;
	border-radius: var(--ssr-radius-sm);
	background: var(--ssr-white);
	cursor: pointer;
	transition: background var(--ssr-transition), box-shadow var(--ssr-transition), color var(--ssr-transition);
	font-family: var(--ssr-font);
	text-align: center;
	width: 100%;
}

.ssr-slot:hover {
	background: var(--ssr-primary-light);
	box-shadow: inset 0 0 0 1px var(--ssr-primary);
}

.ssr-slot--selected {
	background: var(--ssr-primary-light);
	box-shadow: inset 0 0 0 2px var(--ssr-primary);
}

.ssr-slot__time {
	display: block;
	font-size: 15px;
	font-weight: 700;
	color: var(--ssr-primary);
	line-height: 1.2;
}

/* Mention / note — mise en évidence */
.ssr-slot__note {
	display: block;
	font-size: 10px;
	font-style: italic;
	color: var(--ssr-text-light);
	line-height: 1.3;
	margin-top: 4px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 100%;
}

/* Créneau avec note : fond légèrement teinté pour attirer l'œil */
.ssr-slot:has(.ssr-slot__note) {
	background: #f8f9ff;
}

.ssr-slot:has(.ssr-slot__note):hover {
	background: var(--ssr-primary-light);
}

.ssr-slots-empty {
	grid-column: 1 / -1;
	padding: 16px;
	font-size: 14px;
	color: var(--ssr-text-light);
	text-align: center;
}

/* -----------------------------------------------------------------------
   Erreur + CTA
   ----------------------------------------------------------------------- */

.ssr-min-duration-hint {
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 9px 20px;
	background: #eff6ff;
	border-top: 1px solid #bfdbfe;
	color: #1e40af;
	font-size: 13px;
	line-height: 1.4;
}

.ssr-min-duration-hint::before {
	content: '';
	flex-shrink: 0;
	width: 16px;
	height: 16px;
	background: currentColor;
	border-radius: 50%;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E") center/contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E") center/contain no-repeat;
}

.ssr-search-error {
	padding: 12px 20px;
	background: var(--ssr-error-bg);
	border-top: 1px solid var(--ssr-error-border);
	color: var(--ssr-error);
	font-size: 14px;
}

.ssr-search-cta {
	display: flex;
	justify-content: center;
	padding: 20px;
	border-top: 1px solid var(--ssr-border);
}

/* -----------------------------------------------------------------------
   Boutons génériques
   ----------------------------------------------------------------------- */

.ssr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 32px;
	border: none;
	border-radius: var(--ssr-radius-sm);
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--ssr-transition), opacity var(--ssr-transition);
	font-family: var(--ssr-font);
	text-decoration: none;
}

.ssr-btn--primary {
	background: var(--ssr-primary);
	color: var(--ssr-white);
	min-width: 200px;
}

.ssr-btn--primary:hover:not([disabled]) {
	background: var(--ssr-primary-hover);
}

.ssr-btn--primary[disabled] {
	opacity: .5;
	cursor: not-allowed;
}

/* Bouton "Choisissez vos dates" — état initial browse-first avant vérification */
.ssr-btn--muted {
	background: var(--ssr-bg, #f5f6fa);
	color: var(--ssr-text-light);
	border: 1px dashed var(--ssr-border);
	cursor: not-allowed;
	min-width: 200px;
}

.ssr-btn--ghost {
	background: transparent;
	color: var(--ssr-text);
	border: 2px solid var(--ssr-border);
}

.ssr-btn--ghost:hover {
	border-color: var(--ssr-primary);
	color: var(--ssr-primary);
}

/* -----------------------------------------------------------------------
   Écrans (gestion visibilité)
   ----------------------------------------------------------------------- */

.ssr-screen[hidden] {
	display: none;
}

.ssr-screen__back {
	margin-bottom: 20px;
}

/* -----------------------------------------------------------------------
   Spinner / chargement
   ----------------------------------------------------------------------- */

.ssr-loading {
	text-align: center;
	color: var(--ssr-text-light);
	padding: 40px 0;
	font-size: 15px;
}

/* -----------------------------------------------------------------------
   Responsive — tablette
   ----------------------------------------------------------------------- */

@media (min-width: 640px) {
	.ssr-date-row {
		flex-wrap: nowrap;
	}

	.ssr-date-row__inputs {
		flex-wrap: nowrap;
	}

	.ssr-date-wrap,
	.ssr-time-wrap {
		min-width: 0;
	}
}

/* -----------------------------------------------------------------------
   Responsive — mobile (< 480px)
   ----------------------------------------------------------------------- */

/* -----------------------------------------------------------------------
   Bouton petit (modificateur)
   ----------------------------------------------------------------------- */

.ssr-btn--sm {
	padding: 8px 16px;
	font-size: 14px;
}

/* -----------------------------------------------------------------------
   Barre récap critères (étape 2 — toujours en haut)
   ----------------------------------------------------------------------- */

.ssr-search-recap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	background: var(--ssr-card-bg);
	color: var(--ssr-card-text);
	border-radius: 8px;
	padding: 12px 20px;
	margin-bottom: 12px;
	position: sticky;
	top: 4px;
	z-index: var(--ssr-z-overlay);
	box-shadow: 0 4px 16px rgba(0, 0, 0, .25);
}

.ssr-search-recap[hidden] {
	display: none;
}

.ssr-recap-dates {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}

.ssr-recap-leg {
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.ssr-recap-leg__label {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--ssr-card-text-dim);
}

.ssr-recap-leg__val {
	font-size: 16px;
	font-weight: 600;
	color: var(--ssr-card-text);
	white-space: nowrap;
}

.ssr-recap-arrow {
	font-size: 18px;
	color: var(--ssr-card-text-dim);
	flex-shrink: 0;
}

.ssr-recap-duration {
	background: var(--ssr-card-surface);
	border-radius: 20px;
	padding: 4px 12px;
	font-size: 13px;
	font-weight: 700;
	color: var(--ssr-primary);
	white-space: nowrap;
}

.ssr-search-recap .ssr-btn--ghost {
	border-color: var(--ssr-card-surface);
	color: var(--ssr-card-text-muted);
	flex-shrink: 0;
}

.ssr-search-recap .ssr-btn--ghost:hover {
	border-color: var(--ssr-primary);
	color: var(--ssr-primary);
}

/* -----------------------------------------------------------------------
   Aucun résultat + dates alternatives
   ----------------------------------------------------------------------- */

.ssr-no-results {
	text-align: center;
	padding: 48px 16px;
}

.ssr-no-results__msg {
	font-size: 16px;
	color: var(--ssr-text-light);
	margin: 0 0 28px;
}

.ssr-no-results__alt-title {
	font-size: 14px;
	font-weight: 600;
	color: var(--ssr-text);
	margin: 0 0 14px;
}

.ssr-alternatives {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
}

.ssr-alt-btn {
	padding: 10px 20px;
	border: 2px solid var(--ssr-primary);
	border-radius: 8px;
	background: var(--ssr-primary-light);
	color: var(--ssr-primary);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--ssr-transition), color var(--ssr-transition);
	font-family: var(--ssr-font);
}

.ssr-alt-btn:hover {
	background: var(--ssr-primary);
	color: var(--ssr-white);
}

/* -----------------------------------------------------------------------
   Grille véhicules (étape 2)
   ----------------------------------------------------------------------- */

.ssr-vehicles-grid {
	display: grid;
	grid-template-columns: repeat(var(--ssr-grid-cols, 3), 1fr);
	gap: 16px;
	margin-top: 16px;
}

@media (max-width: 900px) {
	.ssr-vehicles-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 580px) {
	.ssr-vehicles-grid {
		grid-template-columns: 1fr;
	}
}

/* -----------------------------------------------------------------------
   Carte véhicule (fond sombre)
   ----------------------------------------------------------------------- */

.ssr-vehicle-card {
	background: var(--ssr-card-bg);
	color: var(--ssr-card-text);
	border-radius: var(--ssr-radius, 8px);
	box-shadow: var(--ssr-card-shadow, 0 2px 12px rgba(0, 0, 0, .08));
	overflow: hidden;
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease;
	display: flex;
	flex-direction: column;
}

.ssr-vehicle-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(0, 0, 0, .35);
}

.ssr-card-img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}

.ssr-card-img--placeholder {
	background: var(--ssr-card-bg-light);
}

.ssr-card-body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

.ssr-card-title {
	font-size: 16px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--ssr-card-text);
	margin: 0;
}

.ssr-card-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.ssr-card-price {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.ssr-card-price__day {
	font-size: 18px;
	font-weight: 700;
	color: var(--ssr-primary);
}

.ssr-card-price__day small {
	font-size: 13px;
	font-weight: 400;
	color: var(--ssr-card-text-muted);
}

.ssr-card-price__total {
	font-size: 13px;
	color: var(--ssr-card-text-muted);
}

.ssr-card-price__total small {
	color: var(--ssr-card-text-dim);
}

.ssr-card-cta {
	margin-top: auto;
	width: 100%;
}

/* -----------------------------------------------------------------------
   Chips caractéristiques
   ----------------------------------------------------------------------- */

.ssr-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: var(--ssr-card-surface);
	border-radius: 20px;
	padding: 3px 10px;
	font-size: 12px;
	white-space: nowrap;
	color: var(--ssr-card-text);
}

.ssr-chip .dashicons {
	font-size: 14px;
	width: 14px;
	height: 14px;
	line-height: 1;
}

/* -----------------------------------------------------------------------
   Panneau détail (pleine largeur dans la grille)
   ----------------------------------------------------------------------- */

.ssr-vehicle-detail {
	grid-column: 1 / -1;
	background: var(--ssr-card-bg-dark);
	color: var(--ssr-card-text);
	border-radius: 8px;
	padding: 20px 24px;
	margin-top: 4px;
	position: relative;
}

.ssr-vehicle-detail[hidden] {
	display: none;
}

.ssr-detail-close {
	position: absolute;
	top: 12px;
	right: 16px;
	background: none;
	border: none;
	color: var(--ssr-card-text-muted);
	font-size: 22px;
	cursor: pointer;
	line-height: 1;
	padding: 4px 8px;
}

.ssr-detail-close:hover {
	color: var(--ssr-card-text);
}

.ssr-detail-title {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 12px;
	color: var(--ssr-card-text);
}

.ssr-detail-description {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.6;
	color: #555;
}

.ssr-detail-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 16px;
}

.ssr-detail-extra {
	margin-bottom: 16px;
	border-top: 1px solid var(--ssr-card-surface);
	padding-top: 14px;
}

.ssr-detail-extra-title {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--ssr-card-text-dim);
	margin: 0 0 8px;
}

.ssr-detail-extra-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.ssr-detail-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	border-top: 1px solid var(--ssr-card-surface);
	padding-top: 16px;
}

.ssr-detail-price {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 15px;
	color: var(--ssr-card-text-muted);
}

.ssr-detail-price span:first-child {
	font-size: 20px;
	font-weight: 700;
	color: var(--ssr-primary);
}

/* -----------------------------------------------------------------------
   Écran Options (étape 3)
   ----------------------------------------------------------------------- */

/* Layout 2 colonnes desktop : liste + résumé */
.ssr-options-layout {
	display: grid;
	grid-template-columns: 1fr 320px;
	gap: 24px;
	align-items: start;
	margin-top: 16px;
}

@media (max-width: 860px) {
	.ssr-options-layout {
		grid-template-columns: 1fr;
	}
}

/* Liste des options */
.ssr-options-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* Carte option */
.ssr-option-card {
	background: var(--ssr-white);
	border: 1.5px solid var(--ssr-border);
	border-radius: var(--ssr-radius);
	padding: 16px 20px;
	transition: border-color var(--ssr-transition);
}

.ssr-option-card--active {
	border-color: var(--ssr-primary);
	background: var(--ssr-primary-light);
}

/* En-tête de la carte */
.ssr-option-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.ssr-option-label-group {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.ssr-option-icon {
	font-size: 20px;
	flex-shrink: 0;
	line-height: 1;
}

.ssr-option-name {
	font-weight: 600;
	font-size: 15px;
	color: var(--ssr-text);
}

.ssr-option-right {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-shrink: 0;
}

/* Bouton "Détails / Fermer" */
.ssr-option-details-btn {
	background: none;
	border: none;
	color: var(--ssr-primary);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	padding: 0;
	text-decoration: underline;
	white-space: nowrap;
}

.ssr-option-details-btn:hover {
	color: var(--ssr-primary-hover);
}

/* Prix */
.ssr-option-price {
	margin-top: 6px;
	font-size: 14px;
	color: var(--ssr-text);
}

.ssr-option-price strong {
	font-size: 15px;
}

.ssr-option-price-label {
	color: var(--ssr-text-light);
}

/* Description expandable */
.ssr-option-desc {
	margin-top: 12px;
	padding: 12px 14px;
	background: var(--ssr-bg);
	border-radius: var(--ssr-radius-sm);
	font-size: 13px;
	line-height: 1.6;
	color: var(--ssr-text-light);
}

.ssr-option-desc[hidden] {
	display: none;
}

/* Toggle switch (role=switch) */
.ssr-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	flex-shrink: 0;
}

.ssr-toggle__track {
	display: block;
	width: 44px;
	height: 26px;
	border-radius: 13px;
	background: var(--ssr-border);
	transition: background var(--ssr-transition);
	position: relative;
}

.ssr-toggle--on .ssr-toggle__track {
	background: var(--ssr-primary);
}

.ssr-toggle__knob {
	position: absolute;
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--ssr-white);
	box-shadow: 0 1px 4px rgba(0, 0, 0, .2);
	transition: transform var(--ssr-transition);
}

.ssr-toggle--on .ssr-toggle__knob {
	transform: translateX(18px);
}

/* Stepper quantité */
.ssr-qty-stepper {
	display: flex;
	align-items: center;
	gap: 6px;
}

.ssr-qty-btn {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--ssr-white);
	border: 1.5px solid var(--ssr-primary);
	color: var(--ssr-primary);
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	padding: 0;
	transition: background var(--ssr-transition), color var(--ssr-transition);
}

.ssr-qty-btn:hover:not(:disabled) {
	background: var(--ssr-primary);
	color: var(--ssr-white);
}

.ssr-qty-btn:disabled {
	border-color: var(--ssr-disabled);
	color: var(--ssr-disabled);
	cursor: not-allowed;
}

.ssr-qty-val {
	min-width: 22px;
	text-align: center;
	font-weight: 700;
	font-size: 16px;
	color: var(--ssr-text);
}

/* ── Panneau résumé latéral ─────────────────────────────────────── */

.ssr-options-summary {
	position: sticky;
	top: 16px;
}

.ssr-summary-box {
	background: var(--ssr-white);
	border: 1.5px solid var(--ssr-border);
	border-radius: var(--ssr-radius);
	padding: 20px;
}

.ssr-summary-title {
	font-size: 15px;
	font-weight: 700;
	margin: 0 0 16px;
	color: var(--ssr-text);
}

.ssr-summary-lines {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ssr-summary-line {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-size: 13px;
	color: var(--ssr-text);
}

.ssr-summary-line--option {
	color: var(--ssr-primary);
}

.ssr-summary-line__label {
	flex: 1;
	min-width: 0;
}

.ssr-summary-line__val {
	font-weight: 600;
	white-space: nowrap;
}

.ssr-summary-total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding-top: 14px;
	border-top: 1.5px solid var(--ssr-border);
	font-weight: 700;
	font-size: 15px;
	margin-bottom: 16px;
}

.ssr-summary-total__amount {
	font-size: 20px;
	color: var(--ssr-primary);
}

.ssr-summary-cta {
	width: 100%;
	justify-content: center;
}

@media (max-width: 860px) {
	.ssr-options-summary {
		position: static;
		order: -1; /* Résumé au-dessus de la liste sur mobile */
	}
}

/* -----------------------------------------------------------------------
   Checkout (étape 4)
   ----------------------------------------------------------------------- */

/* Layout : formulaire (1fr) à gauche, sidebar (360px) à droite */
.ssr-checkout-layout {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 32px;
	align-items: start;
	margin-top: 16px;
}

@media (max-width: 860px) {
	.ssr-checkout-layout {
		grid-template-columns: 1fr;
	}
}

/* ── Sidebar ────────────────────────────────────────────────────────── */

.ssr-checkout-sidebar {
	background: var(--ssr-white);
	border: 1.5px solid var(--ssr-border);
	border-radius: var(--ssr-radius);
	overflow: hidden;
	position: sticky;
	top: 16px;
}

.ssr-checkout-vehicle-img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	display: block;
}

.ssr-checkout-vehicle-img--placeholder {
	background: var(--ssr-bg);
	aspect-ratio: 16 / 9;
}

.ssr-checkout-sidebar__body {
	padding: 0;
}

.ssr-co-sidebar-section {
	padding: 16px 20px;
	border-bottom: 1px solid var(--ssr-border);
}

.ssr-co-sidebar-section:last-child {
	border-bottom: none;
}

.ssr-checkout-vehicle-title {
	font-size: 16px;
	font-weight: 700;
	margin: 0;
	color: var(--ssr-text);
}

/* Libellé de section dans la sidebar */
.ssr-co-section-label {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--ssr-text-light);
	margin-bottom: 12px;
}

/* Items date */
.ssr-co-date-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 10px;
}

.ssr-co-date-item:last-child {
	margin-bottom: 0;
}

.ssr-co-date-item__dot {
	flex-shrink: 0;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	margin-top: 4px;
	background: var(--ssr-primary);
}

.ssr-co-date-item__dot--ret {
	background: var(--ssr-text);
}

.ssr-co-date-item__content {
	display: flex;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
}

.ssr-co-date-item__lbl {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--ssr-text-light);
}

.ssr-co-date-item__val {
	font-size: 13px;
	font-weight: 500;
	color: var(--ssr-text);
}

/* Ce qui est inclus */
/* Description du plan tarifaire dans le récap de réservation */
.ssr-co-plan-desc {
	font-size: 13px;
	color: var(--ssr-text);
	line-height: 1.5;
	margin: 0;
	white-space: pre-wrap;
}

.ssr-co-included-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.ssr-co-included-item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--ssr-text);
}

.ssr-co-included-check {
	color: #16a34a;
	font-size: 13px;
	flex-shrink: 0;
}

/* Lignes prix */
.ssr-co-lines {
	list-style: none;
	margin: 0 0 14px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.ssr-co-line {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-size: 13px;
	color: var(--ssr-text);
}

.ssr-co-line--option {
	color: var(--ssr-primary);
}

.ssr-co-total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding-top: 12px;
	border-top: 1.5px solid var(--ssr-border);
	font-weight: 700;
	font-size: 15px;
}

.ssr-co-total__amount {
	font-size: 22px;
	color: var(--ssr-primary);
}

/* ── Formulaire principal ───────────────────────────────────────────── */

.ssr-checkout-main {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.ssr-checkout-section {
	background: var(--ssr-white);
	border: 1.5px solid var(--ssr-border);
	border-radius: var(--ssr-radius);
	padding: 20px 24px;
	margin-bottom: 16px;
}

.ssr-checkout-section__title {
	font-size: 15px;
	font-weight: 700;
	color: var(--ssr-text);
	margin: 0 0 18px;
}

/* Lignes de champs */
.ssr-form-row {
	display: flex;
	gap: 12px;
	margin-top: 12px;
}

.ssr-form-row--2 > .ssr-form-group {
	flex: 1;
	min-width: 0;
}

/* Rangée NPA + Localité */
.ssr-form-row--zip > .ssr-form-group {
	flex: 1;
	min-width: 0;
}

.ssr-form-group--zip {
	flex: 0 0 110px !important;
}

.ssr-form-group {
	display: flex;
	flex-direction: column;
	gap: 6px;
	width: 100%;
	margin-top: 12px;
}

/* Premier ssr-form-group d'une section : pas de marge top */
.ssr-checkout-section > .ssr-form-group:first-of-type,
.ssr-checkout-section > .ssr-form-row:first-of-type {
	margin-top: 0;
}

.ssr-form-group label {
	font-size: 13px;
	font-weight: 600;
	color: var(--ssr-text);
}

.ssr-form-group input,
.ssr-form-select {
	padding: 11px 14px;
	border: 1.5px solid var(--ssr-border);
	border-radius: var(--ssr-radius-sm);
	font-size: 15px;
	font-family: var(--ssr-font);
	color: var(--ssr-text);
	background: var(--ssr-white);
	transition: border-color var(--ssr-transition);
	width: 100%;
	box-sizing: border-box;
	-webkit-appearance: none;
	appearance: none;
}

.ssr-form-group input:focus,
.ssr-form-select:focus {
	outline: none; /* remplacé par box-shadow ci-dessous */
	border-color: var(--ssr-primary);
	box-shadow: 0 0 0 3px rgba(232, 95, 32, .12);
}

/* Indicateur de focus visible en mode contraste élevé (Windows HCM),
   où box-shadow est ignoré. */
@media (forced-colors: active) {
	.ssr-form-group input:focus,
	.ssr-form-select:focus {
		outline: 2px solid ButtonText;
		outline-offset: 1px;
	}
}

/* Select avec flèche custom */
.ssr-form-select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 36px;
}

/* ── Méthodes de paiement ───────────────────────────────────────────── */

.ssr-payment-methods {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.ssr-payment-method {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	border: 1.5px solid var(--ssr-border);
	border-radius: var(--ssr-radius-sm);
	cursor: pointer;
	transition: border-color var(--ssr-transition), background var(--ssr-transition);
	font-size: 14px;
	font-weight: 500;
}

.ssr-payment-method:has(input:checked) {
	border-color: var(--ssr-primary);
	background: var(--ssr-primary-light);
}

.ssr-payment-method input[type="radio"] {
	accent-color: var(--ssr-primary);
	width: 17px;
	height: 17px;
	flex-shrink: 0;
}

.ssr-payment-method__label {
	flex: 1;
	min-width: 0;
}

.ssr-payment-method__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	font-size: 20px;
}

/* Zone Stripe Card Element */
.ssr-stripe-card-zone {
	margin-top: 10px;
	padding: 12px 16px;
	border: 1.5px solid var(--ssr-border);
	border-radius: var(--ssr-radius-sm);
	background: var(--ssr-bg);
}

.ssr-stripe-card-zone[hidden] {
	display: none;
}

.ssr-stripe-card-element {
	padding: 4px 0;
}

.ssr-stripe-card-error {
	margin-top: 8px;
	color: var(--ssr-error);
	font-size: 13px;
}

/* ── CGV + submit ───────────────────────────────────────────────────── */

.ssr-cgv-label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 13px;
	color: var(--ssr-text);
	cursor: pointer;
	line-height: 1.6;
	margin-bottom: 16px;
}

.ssr-cgv-label input {
	margin-top: 3px;
	flex-shrink: 0;
	accent-color: var(--ssr-primary);
	width: 15px;
	height: 15px;
}

/* Bouton CGV inline (remplace le <a>) */
.ssr-cgv-link {
	background: none;
	border: none;
	padding: 0;
	font: inherit;
	color: var(--ssr-primary);
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.ssr-cgv-link:hover {
	color: var(--ssr-primary-hover);
}

/* -----------------------------------------------------------------------
   Modal CGV
   ----------------------------------------------------------------------- */

.ssr-cgv-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: var(--ssr-z-modal);
	align-items: center;
	justify-content: center;
}

.ssr-cgv-modal--open {
	display: flex;
}

.ssr-cgv-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .55);
}

.ssr-cgv-modal__box {
	position: relative;
	background: var(--ssr-white);
	border-radius: var(--ssr-radius);
	box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
	width: min(680px, calc(100vw - 32px));
	max-height: calc(100vh - 64px);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.ssr-cgv-modal__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px 16px;
	border-bottom: 1px solid var(--ssr-border);
	flex-shrink: 0;
}

.ssr-cgv-modal__title {
	font-size: 16px;
	font-weight: 700;
	color: var(--ssr-text);
	margin: 0;
}

.ssr-cgv-modal__close {
	background: none;
	border: none;
	padding: 6px;
	cursor: pointer;
	color: var(--ssr-text-light);
	border-radius: 4px;
	display: flex;
	align-items: center;
	transition: color var(--ssr-transition), background var(--ssr-transition);
}

.ssr-cgv-modal__close:hover {
	color: var(--ssr-text);
	background: var(--ssr-bg);
}

.ssr-cgv-modal__body {
	padding: 24px;
	overflow-y: auto;
	font-size: 13px;
	line-height: 1.7;
	color: var(--ssr-text);
}

/* Typographie du contenu CGV (issu de wp_editor) */
.ssr-cgv-modal__body h1,
.ssr-cgv-modal__body h2,
.ssr-cgv-modal__body h3 {
	font-size: 14px;
	font-weight: 700;
	margin: 16px 0 6px;
	color: var(--ssr-text);
}

.ssr-cgv-modal__body p {
	margin: 0 0 10px;
}

.ssr-cgv-modal__body ul,
.ssr-cgv-modal__body ol {
	padding-left: 20px;
	margin: 0 0 10px;
}

/* Erreur checkout */
.ssr-checkout-error {
	background: var(--ssr-error-bg);
	border: 1px solid var(--ssr-error-border);
	color: var(--ssr-error);
	border-radius: var(--ssr-radius-sm);
	padding: 12px 16px;
	font-size: 14px;
	margin-bottom: 12px;
}

.ssr-checkout-error[hidden] {
	display: none;
}

/* Bouton de réservation */
.ssr-btn--checkout-submit {
	width: 100%;
	justify-content: center;
	padding: 16px 32px;
	font-size: 17px;
	border-radius: var(--ssr-radius-sm);
}

/* ── Succès réservation ─────────────────────────────────────────────── */

.ssr-booking-success {
	text-align: center;
	padding: 60px 24px;
	max-width: 480px;
	margin: 0 auto;
}

.ssr-booking-success__icon {
	font-size: 56px;
	margin-bottom: 20px;
	display: block;
}

.ssr-booking-success__title {
	font-size: 24px;
	font-weight: 700;
	color: var(--ssr-text);
	margin: 0 0 16px;
}

.ssr-booking-success__msg {
	font-size: 15px;
	color: var(--ssr-text-light);
	line-height: 1.6;
}

@media (max-width: 479px) {
	.ssr-date-row {
		flex-direction: column;
	}

	.ssr-date-row__label {
		border-right: none;
		border-bottom: 1px solid var(--ssr-border);
		padding: 10px 16px;
	}

	.ssr-date-row__inputs {
		flex-direction: column;
	}

	.ssr-date-wrap {
		border-right: none;
		border-bottom: 1px solid var(--ssr-border);
	}

	.ssr-time-popup {
		left: 0;
		right: 0;
		max-width: none;
		min-width: 0;
	}

	.ssr-calendar-popup {
		padding: 12px;
	}

	.ssr-cal-nav-btn {
		margin-top: 22px;
	}

	.ssr-checkout-layout {
		grid-template-columns: 1fr;
	}

	.ssr-form-row--2 {
		flex-direction: column;
	}
}

/* ── Pricing Plans ─────────────────────────────────────── */
.ssr-pricing-plans { margin: 16px 0; }
.ssr-pricing-plans__title { font-size: 14px; font-weight: 600; margin: 0 0 10px; text-transform: uppercase; letter-spacing: .04em; opacity: .7; }
.ssr-plan-card { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 2px solid var(--ssr-card-surface); border-radius: 8px; cursor: pointer; margin-bottom: 8px; transition: border-color .15s; }
.ssr-plan-card input[type="radio"] { flex-shrink: 0; width: 18px; height: 18px; accent-color: var(--ssr-primary); cursor: pointer; }
.ssr-plan-card--selected { border-color: var(--ssr-card-text); }
.ssr-plan-card:hover { border-color: var(--ssr-card-text-muted); }
.ssr-plan-card__body { flex: 1; min-width: 0; }
.ssr-plan-card__name { display: block; font-weight: 600; font-size: 14px; }
.ssr-plan-card__desc { display: block; font-size: 12px; opacity: .7; margin-top: 2px; }
.ssr-plan-card__price { flex-shrink: 0; font-weight: 700; font-size: 14px; white-space: nowrap; }

/* ── Mode browse-first ──────────────────────────────────── */

/* ── Mode browse-first ──────────────────────────────────── */

/* Bandeau dates sticky — fond blanc explicite (indépendant de --ssr-bg
   qui peut être surchargé par le thème via functions.php)
   top: 64px = hauteur du header sticky du thème sc-simply-rent
   PAS de z-index : évite de créer un stacking context qui piège les
   popups position:absolute (time picker) et les empêche de s'afficher  */
.ssr-widget--browse .ssr-browse-datebar {
	position: sticky;
	top: 64px;
	z-index: var(--ssr-z-sticky); /* au-dessus des cartes (transform:hover = z-index:auto) */
	background: var(--ssr-white, #ffffff);
	border-bottom: 1px solid var(--ssr-border, #e2e4e9);
	box-shadow: 0 2px 8px rgba(0, 0, 0, .07);
	padding: 12px 16px;
}

/* Ligne principale : champs à gauche + bouton à droite, no-wrap */
.ssr-browse-datebar__row {
	display: flex;
	align-items: stretch;
	gap: 12px;
	max-width: 1100px;
	margin: 0 auto;
}

/* Conteneur des champs date/heure — mimique .ssr-search-form
   PAS de overflow:hidden → ne coupe pas les popups position:absolute  */
.ssr-browse-datebar__fields {
	display: flex;
	flex: 1 1 0;
	min-width: 0;
	border: 1px solid var(--ssr-border, #e2e4e9);
	border-radius: 10px;
}

/* Chaque rangée date occupe la moitié, label au-dessus des selectors */
.ssr-browse-datebar__fields .ssr-date-row {
	flex: 1 1 0;
	min-width: 0;
	flex-direction: column; /* label ↑, inputs ↓ */
	border-bottom: none;
}

/* Label "DÉPART" / "RETOUR" : en-tête compact au-dessus des selectors */
.ssr-browse-datebar__fields .ssr-date-row__label {
	border-right:   none;
	border-bottom:  1px solid var(--ssr-border, #e2e4e9);
	min-width:      unset;
	padding:        6px 16px;
	font-size:      10px;
	font-weight:    700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color:          var(--ssr-text-light, #6b7280);
}

/* Les inputs s'étendent sur toute la largeur disponible */
.ssr-browse-datebar__fields .ssr-date-row__inputs {
	flex: 1;
	flex-wrap: nowrap;
}

/* Séparateur vertical entre départ et retour */
.ssr-browse-datebar__fields .ssr-date-row:first-child {
	border-right: 1px solid var(--ssr-border, #e2e4e9);
}

/* Arrondir les coins du bord extérieur de l'encadré */
.ssr-browse-datebar__fields .ssr-date-row:first-child .ssr-date-row__label {
	border-radius: 10px 0 0 0; /* coin haut-gauche */
}
.ssr-browse-datebar__fields .ssr-date-row:last-child .ssr-date-row__label {
	border-radius: 0 10px 0 0; /* coin haut-droit */
}
.ssr-browse-datebar__fields .ssr-date-row:first-child .ssr-date-wrap .ssr-date-btn {
	border-radius: 0 0 0 10px; /* coin bas-gauche */
}
.ssr-browse-datebar__fields .ssr-date-row:last-child .ssr-time-wrap:last-child .ssr-time-btn {
	border-radius: 0 10px 10px 0; /* coin bas-droit */
}

/* Bouton CTA aligné verticalement avec les champs */
.ssr-browse-datebar__cta {
	flex-shrink: 0;
	align-self: center;
	white-space: nowrap;
}

/* Hints (ligne conditionnelle sous les champs) */
.ssr-browse-datebar__hints {
	max-width: 1100px;
	margin: 0 auto;
}

/* Dans le datebar blanc, neutraliser les états hover/actif qui utilisent
   var(--ssr-bg) et var(--ssr-primary-light) (potentiellement rouges)   */
.ssr-browse-datebar .ssr-date-btn:hover,
.ssr-browse-datebar .ssr-time-btn:not([disabled]):hover {
	background: #f3f4f6;
}
.ssr-browse-datebar .ssr-date-btn[aria-expanded="true"],
.ssr-browse-datebar .ssr-time-btn--open {
	background: #eff6ff;  /* bleu très pâle neutre */
	color: var(--ssr-text);
}

/* Badge "à partir de" */
.ssr-card-price--from {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.ssr-card-price__from-label {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .05em;
	opacity: .6;
}

/* Carte non disponible */
.ssr-card--unavailable {
	opacity: .45;
	pointer-events: none;
}

.ssr-card--unavailable .ssr-card-img {
	filter: grayscale(60%);
}

.ssr-card-unavailable-badge {
	display: inline-block;
	margin-top: 8px;
	padding: 4px 10px;
	border-radius: 4px;
	background: rgba(255, 255, 255, .08);
	color: var(--ssr-card-text-muted);
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
}

@media (max-width: 640px) {
	/* CTA passe en dessous */
	.ssr-browse-datebar__row {
		flex-wrap: wrap;
	}

	/* Deux rangées empilées verticalement */
	.ssr-browse-datebar__fields {
		flex: 1 1 100%;
		flex-direction: column;
	}

	/* Séparateur horizontal entre Départ et Retour (plus de border-right) */
	.ssr-browse-datebar__fields .ssr-date-row:first-child {
		border-right:  none;
		border-bottom: 1px solid var(--ssr-border, #e2e4e9);
	}

	/* Coins arrondis recalculés pour layout empilé */
	.ssr-browse-datebar__fields .ssr-date-row:first-child .ssr-date-row__label {
		border-radius: 10px 10px 0 0; /* toute la rangée du haut */
	}
	.ssr-browse-datebar__fields .ssr-date-row:last-child .ssr-date-row__label {
		border-radius: 0; /* rangée du bas, aucun coin arrondi sur le label */
	}
	.ssr-browse-datebar__fields .ssr-date-row:first-child .ssr-date-wrap .ssr-date-btn {
		border-radius: 0; /* pas de coin bas-gauche : ce n'est plus le bas du widget */
	}
	.ssr-browse-datebar__fields .ssr-date-row:last-child .ssr-time-wrap:last-child .ssr-time-btn {
		border-radius: 0 0 10px 0; /* seulement coin bas-droit */
	}
	.ssr-browse-datebar__fields .ssr-date-row:last-child .ssr-date-wrap .ssr-date-btn {
		border-radius: 0 0 0 10px; /* coin bas-gauche */
	}

	/* Bouton CTA pleine largeur */
	.ssr-browse-datebar__cta {
		flex: 1 1 100%;
	}
}

/* ==========================================================
   Mode Calendar
   ========================================================== */

/* ── Layout 3 colonnes ────────────────────────────────────── */

.ssr-widget--calendar {
	padding: 24px 0;
}

.ssr-cal-layout {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 24px;
	align-items: start;
}

@media (max-width: 900px) {
	.ssr-cal-layout {
		grid-template-columns: 1fr 1fr;
	}

	.ssr-cal-availability {
		grid-column: 1 / -1;
	}
}

@media (max-width: 640px) {
	.ssr-cal-layout {
		grid-template-columns: 1fr;
	}
}

/* ── Colonne véhicule ─────────────────────────────────────── */

.ssr-cal-vehicle__img {
	border-radius: var(--ssr-radius, 8px);
	overflow: hidden;
	margin-bottom: 12px;
	aspect-ratio: 4 / 3;
}

.ssr-cal-vehicle__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ssr-cal-vehicle__title {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--ssr-text, #1a1a2e);
	margin: 0 0 10px;
}

.ssr-cal-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.ssr-cal-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 10px;
	border-radius: 99px;
	background: var(--ssr-bg-2, #f3f4f6);
	color: var(--ssr-text-muted, #6b7280);
	font-size: 12px;
	font-weight: 500;
}

/* ── Colonne tarification ──────────────────────────────────── */

.ssr-cal-pricing {
	background: var(--ssr-bg-2, #f9fafb);
	border: 1px solid var(--ssr-border, #e2e4e9);
	border-radius: var(--ssr-radius, 8px);
	padding: 16px;
}

.ssr-cal-pricing__title {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--ssr-text-muted, #6b7280);
	margin-bottom: 12px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--ssr-border, #e2e4e9);
}

.ssr-cal-price-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px;
	padding: 6px 0;
	border-bottom: 1px solid var(--ssr-border, #e2e4e9);
	font-size: 13px;
}

.ssr-cal-price-row:last-child {
	border-bottom: none;
}

.ssr-cal-price-row__label {
	color: var(--ssr-text-muted, #6b7280);
	flex: 1;
}

.ssr-cal-price-row__value {
	font-weight: 600;
	color: var(--ssr-text, #1a1a2e);
	white-space: nowrap;
}

.ssr-cal-price-row__value small {
	font-weight: 400;
	font-size: 11px;
	color: var(--ssr-text-muted, #6b7280);
	margin-left: 2px;
}

.ssr-cal-price-row--meta .ssr-cal-price-row__label {
	font-size: 12px;
}

/* ── Colonne disponibilités ────────────────────────────────── */

.ssr-cal-availability {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* Navigation mois */
.ssr-cal-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.ssr-cal-nav__label {
	font-weight: 600;
	font-size: 14px;
	color: var(--ssr-text, #1a1a2e);
	text-align: center;
	flex: 1;
}

.ssr-cal-nav-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: 1px solid var(--ssr-border, #e2e4e9);
	border-radius: 50%;
	background: #fff;
	color: var(--ssr-text, #1a1a2e);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	transition: background .15s, border-color .15s;
	flex-shrink: 0;
}

.ssr-cal-nav-btn:hover {
	background: var(--ssr-bg-2, #f3f4f6);
	border-color: var(--ssr-accent, #e85f20);
}

/* Grille calendrier */
.ssr-cal-grid-header {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
	margin-bottom: 2px;
}

.ssr-cal-grid-header__day {
	text-align: center;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--ssr-text-muted, #6b7280);
	padding: 4px 0;
}

.ssr-cal-days {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
}

/* Cellule de jour */
.ssr-cal-day {
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 500;
	color: var(--ssr-text, #1a1a2e);
	position: relative;
	user-select: none;
	transition: transform .1s;
}

.ssr-cal-day--empty {
	pointer-events: none;
}

/* Statuts de disponibilité */
.ssr-cal-day--free {
	background: rgba(34, 197, 94, .15);
	color: #16a34a;
}

.ssr-cal-day--occupied {
	background: var(--ssr-bg-2, #f3f4f6);
	color: var(--ssr-text-muted, #9ca3af);
	text-decoration: line-through;
}

/* Demi-journée : moitié gauche libre (libre le matin) */
.ssr-cal-day--free_morning {
	background: linear-gradient(90deg, rgba(34, 197, 94, .2) 50%, var(--ssr-bg-2, #f3f4f6) 50%);
	color: var(--ssr-text, #1a1a2e);
}

/* Demi-journée : moitié droite libre (libre l'après-midi) */
.ssr-cal-day--free_afternoon {
	background: linear-gradient(90deg, var(--ssr-bg-2, #f3f4f6) 50%, rgba(34, 197, 94, .2) 50%);
	color: var(--ssr-text, #1a1a2e);
}

.ssr-cal-day--unavailable {
	opacity: .3;
	pointer-events: none;
}

.ssr-cal-day--past {
	opacity: .35;
	pointer-events: none;
}

/* Jours cliquables */
.ssr-cal-day--clickable {
	cursor: pointer;
}

.ssr-cal-day--clickable:hover {
	background: var(--ssr-accent, #e85f20);
	color: #fff !important;
}

/* Sélection de plage (drag-to-select) */
.ssr-cal-day--range-start,
.ssr-cal-day--range-end {
	background: var(--ssr-accent, #e85f20) !important;
	color: #fff !important;
}

.ssr-cal-day--in-range {
	background: rgba(232, 95, 32, .14);
	color: var(--ssr-text, #1a1a2e);
	border-radius: 0;
}

.ssr-cal-day--range-start {
	border-radius: 50% 0 0 50%;
}

.ssr-cal-day--range-end {
	border-radius: 0 50% 50% 0;
}

.ssr-cal-day--range-start.ssr-cal-day--range-end {
	border-radius: 50%;
}

/* Légende */
.ssr-cal-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.ssr-cal-legend-item {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 11px;
	color: var(--ssr-text-muted, #6b7280);
}

.ssr-cal-legend-swatch {
	display: inline-block;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	flex-shrink: 0;
}

.ssr-cal-legend-swatch--free {
	background: rgba(34, 197, 94, .3);
	border: 1px solid rgba(34, 197, 94, .5);
}

.ssr-cal-legend-swatch--occupied {
	background: var(--ssr-bg-2, #f3f4f6);
	border: 1px solid var(--ssr-border, #e2e4e9);
}

.ssr-cal-legend-swatch--half {
	background: linear-gradient(90deg, rgba(34, 197, 94, .3) 50%, var(--ssr-bg-2, #f3f4f6) 50%);
	border: 1px solid var(--ssr-border, #e2e4e9);
}

/* ── Formulaire inline (dans la colonne calendrier) ─────── */

.ssr-cal-inline-form {
	border-top: 2px solid var(--ssr-accent, #e85f20);
	padding-top: 14px;
}

/* Date rows compactes dans le formulaire inline calendrier */
.ssr-cal-inline-form .ssr-date-row {
	flex-direction: column;
	border-bottom: 1px solid var(--ssr-border, #e2e4e9);
}

.ssr-cal-inline-form .ssr-date-row:last-of-type {
	border-bottom: none;
}

.ssr-cal-inline-form .ssr-date-row__label {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--ssr-text-muted, #6b7280);
	padding: 6px 4px 2px;
}

.ssr-cal-inline-form .ssr-date-btn,
.ssr-cal-inline-form .ssr-time-btn {
	font-size: 12px;
}

.ssr-cal-inline-form .ssr-search-btn {
	margin-top: 10px;
	width: 100%;
}

/* Message d'erreur si véhicule introuvable */
.ssr-cal-error {
	padding: 16px;
	background: #fef2f2;
	border: 1px solid #fecaca;
	border-radius: var(--ssr-radius, 8px);
	color: #dc2626;
	font-size: 14px;
}
