:root {
	--sl-ink: #16181B;
	--sl-ground: #F7F6F2;
	--sl-accent: #FFC21A;
	--sl-muted: #4A4F57;
	--sl-line: #E2E0D8;
	--sl-soft: #ECEAE3;
}
.sl-flotte { margin: 0 auto; }
.sl-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.sl-chip {
	font: inherit; font-weight: 700; font-size: 14px; line-height: 1;
	padding: 14px 18px; min-height: 44px; border-radius: 999px; cursor: pointer;
	border: 1.5px solid var(--sl-ink); background: transparent; color: var(--sl-ink);
}
.sl-chip.is-active, .sl-chip:hover { background: var(--sl-ink); color: #fff; }
.sl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.sl-card { background: #fff; border: 1px solid var(--sl-line); border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; }
.sl-card[hidden] { display: none; }
.sl-card__img { display: block; aspect-ratio: 3 / 2; background: var(--sl-soft); }
.sl-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sl-card__ph { display: flex; height: 100%; align-items: center; justify-content: center; color: #6B6F76; font-size: 13px; }
.sl-card__body { padding: 18px; display: flex; flex-direction: column; gap: 10px; flex-grow: 1; }
.sl-card__kicker { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #6B6F76; }
.sl-card__title { margin: 0; font-size: 21px; line-height: 1.15; }
.sl-card__title a { color: var(--sl-ink); text-decoration: none; }
.sl-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.sl-tag { font-size: 12px; font-weight: 700; background: #F2EFE6; color: var(--sl-ink); padding: 4px 10px; border-radius: 999px; }
.sl-card__foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-top: auto; padding-top: 8px; }
.sl-price { font-weight: 800; font-size: 26px; color: var(--sl-ink); }
.sl-unit { font-size: 14px; color: var(--sl-muted); }
.sl-btn {
	display: inline-block; text-decoration: none; background: var(--sl-ink); color: #fff !important;
	font-weight: 700; font-size: 14px; padding: 12px 16px; border-radius: 12px; line-height: 1.2;
}
.sl-btn:hover { background: #000; }
.sl-btn--big { background: var(--sl-accent); color: var(--sl-ink) !important; font-size: 16px; padding: 16px 22px; border-radius: 14px; }
.sl-btn--big:hover { background: #F0B000; }
.sl-count { font-size: 14px; color: var(--sl-muted); margin-top: 16px; }
.sl-specs { background: var(--sl-ground); border: 1px solid var(--sl-line); border-radius: 20px; padding: 24px; margin: 0 0 32px; display: flex; flex-direction: column; gap: 16px; }
.sl-specs__long { font-size: 14px; color: var(--sl-muted); margin-top: 4px; }
.sl-specs__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin: 0; }
.sl-specs__list div { background: #fff; border-radius: 12px; padding: 10px 14px; }
.sl-specs__list .vign { width: 24px; height: 24px; border-radius: 4px; vertical-align: middle; margin-right: 6px; }
.sl-specs__vign dd { display: flex; align-items: center; font-size: 14px; }
.sl-specs__list dt { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #6B6F76; }
.sl-specs__list dd { margin: 2px 0 0; font-weight: 700; color: var(--sl-ink); }
.sl-specs__incl { margin: 0; font-size: 14px; color: var(--sl-muted); }
.sl-specs .sl-btn--big { align-self: flex-start; }
.sl-booking-placeholder { margin: 0 0 32px; }

/* ---------- v0.2 : tarifs et réservation ---------- */
.sl-from { font-size: 12px; color: var(--sl-muted); }
.sl-tarifs { width: 100%; border-collapse: collapse; background: #fff; border-radius: 12px; overflow: hidden; font-size: 15px; }
.sl-tarifs caption { text-align: left; font-weight: 700; padding: 0 0 8px; }
.sl-tarifs th, .sl-tarifs td { text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--sl-line); }
.sl-tarifs thead th { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: #6B6F76; }
.sl-tarifs tbody tr:last-child td { border-bottom: none; }

.sl-book { margin: 0 0 40px; scroll-margin-top: 24px; }
.sl-book__title { margin: 0 0 16px; }
.sl-book__status { border-radius: 16px; padding: 20px; margin: 0 0 20px; line-height: 1.6; }
.sl-book__status h3 { margin: 0 0 8px; }
.sl-book__status.is-ok { background: #E3F3E9; border: 1.5px solid #1E7A46; }
.sl-book__status.is-info { background: var(--sl-ground); border: 1.5px solid var(--sl-line); }
.sl-book__status.is-error { background: #FDE8E6; border: 1.5px solid #A3261B; }
.sl-book__form { display: flex; flex-wrap: wrap; gap: 24px; align-items: flex-start; }
.sl-book__form[hidden] { display: none; }
.sl-book__main { flex: 999 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.sl-step { border: 1px solid var(--sl-line); border-radius: 20px; padding: 20px 22px 22px; margin: 0; background: #fff; }
.sl-step legend { font-weight: 800; font-size: 18px; padding: 0 6px; }
.sl-hint { margin: 0 0 12px; font-size: 14px; color: var(--sl-muted); }
.sl-book label { font-size: 14px; font-weight: 700; display: flex; flex-direction: column; gap: 6px; }
.sl-book input[type=text], .sl-book input[type=email], .sl-book input[type=tel], .sl-book select {
	font: inherit; font-weight: 500; font-size: 16px; padding: 11px 12px; border: 1.5px solid #D6D3CA; border-radius: 12px; background: #fff; color: var(--sl-ink); min-height: 46px; box-sizing: border-box; width: 100%;
}
.sl-book input:focus-visible, .sl-book select:focus-visible, .sl-book button:focus-visible { outline: 3px solid var(--sl-accent); outline-offset: 2px; }
.sl-row, .sl-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin-top: 16px; }
.sl-grid2 { margin-top: 0; }
.sl-book label.sl-opt, .sl-book label.sl-check { flex-direction: row; align-items: center; gap: 12px; font-weight: 500; margin-top: 12px; }
.sl-book label.sl-opt { border: 1.5px solid var(--sl-line); border-radius: 14px; padding: 14px; }
.sl-opt span { flex-grow: 1; font-weight: 700; }
.sl-opt em { font-style: normal; font-weight: 700; white-space: nowrap; }
.sl-book label.sl-sub { max-width: 200px; margin: 10px 0 0 36px; }
.sl-book input[type=checkbox] { width: 22px; height: 22px; accent-color: var(--sl-ink); flex-shrink: 0; }
.sl-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.sl-cal { max-width: 460px; }
.sl-cal__nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.sl-cal__nav button { width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--sl-line); background: #fff; font-size: 22px; cursor: pointer; color: var(--sl-ink); }
.sl-cal__nav button:disabled { opacity: .35; cursor: default; }
.sl-cal__month { font-weight: 800; font-size: 17px; text-transform: capitalize; }
.sl-cal__head, .sl-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.sl-cal__head span { text-align: center; font-size: 12px; font-weight: 700; color: #6B6F76; text-transform: uppercase; padding-bottom: 4px; }
.sl-day { height: 46px; border-radius: 10px; border: 1px solid var(--sl-line); background: #fff; color: var(--sl-ink); font: inherit; font-weight: 700; cursor: pointer; padding: 0; }
.sl-day:hover:not(:disabled) { border-color: var(--sl-ink); }
.sl-day.is-empty { visibility: hidden; }
.sl-day.is-loading { opacity: .5; }
.sl-day.is-past, .sl-day.is-closed { background: transparent; border-color: transparent; color: #B4B6BB; cursor: default; }
.sl-day.is-busy { background: var(--sl-soft); border-color: transparent; color: #8B8E94; text-decoration: line-through; cursor: not-allowed; }
.sl-day.is-partial { background: repeating-linear-gradient(45deg, #fff, #fff 5px, #F2F1EC 5px, #F2F1EC 10px); }
.sl-day.is-range { background: #FFE08A; border-color: #FFE08A; }
.sl-day.is-sel { background: var(--sl-ink); border-color: var(--sl-ink); color: #fff; }
.sl-cal__legend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 10px; font-size: 12px; color: var(--sl-muted); }
.sl-cal__legend span { display: flex; align-items: center; gap: 6px; }
.sl-cal__legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; border: 1px solid var(--sl-line); }
.sl-cal__legend i.is-sel { background: var(--sl-ink); }
.sl-cal__legend i.is-range { background: #FFE08A; }
.sl-cal__legend i.is-busy { background: var(--sl-soft); }
.sl-cal__legend i.is-partial { background: repeating-linear-gradient(45deg, #fff, #fff 3px, #DDD 3px, #DDD 6px); }

.sl-book__summary { flex: 1 1 300px; position: sticky; top: 24px; background: var(--sl-ink); color: #F7F6F2; border-radius: 20px; padding: 22px; display: flex; flex-direction: column; gap: 12px; }
.sl-book__summary h3 { margin: 0; color: #F7F6F2; font-size: 18px; }
.sl-sum__dates { font-size: 14px; line-height: 1.6; color: #E4E5E7; }
.sl-sum__dates span { color: #A9ACB2; }
.sl-sum__lines { display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.sl-line { display: flex; justify-content: space-between; gap: 12px; }
.sl-line span:last-child { white-space: nowrap; }
.sl-sum__total { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid #33363C; padding-top: 12px; }
.sl-sum__total:empty { display: none; }
.sl-sum__total strong { font-size: 26px; color: var(--sl-accent); }
.sl-sum__deposit, .sl-sum__franchise, .sl-sum__secure { font-size: 13px; color: #A9ACB2; margin: 0; }
.sl-sum__msg { margin: 0; color: #FFB4A8; font-weight: 700; font-size: 14px; }
.sl-sum__msg:empty { display: none; }
.sl-pay { width: 100%; text-align: center; border: none; cursor: pointer; }
.sl-pay:disabled { opacity: .45; cursor: not-allowed; }
@media (max-width: 700px) { .sl-book__summary { position: static; } }

/* ---------- v0.3 : prolongation, conditions générales ---------- */
.sl-extend { border: 1.5px solid var(--sl-ink); border-radius: 20px; padding: 22px; margin: 0 0 24px; background: #fff; }
.sl-extend[hidden] { display: none; }
.sl-extend h3 { margin: 0 0 6px; }
.sl-extend input[type=date] { font: inherit; font-size: 16px; padding: 10px 12px; border: 1.5px solid #D6D3CA; border-radius: 12px; min-height: 46px; box-sizing: border-box; width: 100%; }
.sl-extend__quote { margin: 16px 0 8px; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.sl-extend__quote p { margin: 0 0 4px; font-size: 15px; }
.sl-line--total { border-top: 1px solid var(--sl-line); padding-top: 8px; font-size: 16px; }
.sl-extend__msg { color: #A3261B; font-weight: 700; margin: 0 0 8px; }
.sl-extend__msg:empty { display: none; }
.sl-extend__pay:disabled { opacity: .45; cursor: not-allowed; }
.sl-ext-btn { border: none; cursor: pointer; font: inherit; font-weight: 700; }
dialog.sl-cgv { width: min(760px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 0; border: none; border-radius: 20px; box-shadow: 0 20px 60px rgba(0,0,0,.3); color: var(--sl-ink); }
dialog.sl-cgv::backdrop { background: rgba(22,24,27,.6); }
dialog.sl-cgv[open] { display: flex; flex-direction: column; }
.sl-cgv__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 22px; border-bottom: 1px solid var(--sl-line); }
.sl-cgv__head h2 { margin: 0; font-size: 20px; }
.sl-cgv__close { width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--sl-line); background: #fff; font-size: 24px; cursor: pointer; }
.sl-cgv__body { padding: 8px 22px 16px; overflow-y: auto; font-size: 15px; line-height: 1.6; }
.sl-cgv__body h2, .sl-cgv__body h3 { font-size: 17px; margin: 20px 0 6px; }
.sl-cgv__foot { padding: 14px 22px; border-top: 1px solid var(--sl-line); display: flex; justify-content: flex-end; }
.sl-cgv__accept { border: none; cursor: pointer; }

/* ---------- v0.5 : onglets Louer / Essai, créneaux d'essai ---------- */
.sl-tabs { display: flex; gap: 6px; margin: 0 0 20px; border-bottom: 2px solid var(--sl-line); }
.sl-tab { font: inherit; font-weight: 800; font-size: 17px; padding: 12px 18px; min-height: 48px; border: none; border-bottom: 3px solid transparent; margin-bottom: -2px; background: none; color: var(--sl-muted); cursor: pointer; }
.sl-tab.is-active { color: var(--sl-ink); border-bottom-color: var(--sl-accent); }
.sl-tab:focus-visible { outline: 3px solid var(--sl-accent); outline-offset: 2px; }
.sl-book[hidden] { display: none; }
.sl-chiprow { display: flex; flex-wrap: wrap; gap: 8px; }
.sl-dchip { font: inherit; display: flex; flex-direction: column; align-items: center; min-width: 74px; padding: 8px 6px; border: 1.5px solid var(--sl-line); border-radius: 14px; background: #fff; color: var(--sl-ink); cursor: pointer; line-height: 1.2; }
.sl-dchip span { font-size: 12px; color: var(--sl-muted); }
.sl-dchip strong { font-size: 20px; }
.sl-dchip em { font-style: normal; font-size: 11px; color: #1E7A46; font-weight: 700; margin-top: 2px; }
.sl-dchip:disabled { opacity: .45; cursor: not-allowed; }
.sl-dchip:disabled em { color: #8B8E94; }
.sl-dchip.is-sel, .sl-tchip.is-sel { background: var(--sl-ink); border-color: var(--sl-ink); color: #fff; }
.sl-dchip.is-sel span, .sl-dchip.is-sel em { color: #E4E5E7; }
.sl-essai__slots { margin-top: 18px; }
.sl-tchip { font: inherit; font-weight: 700; min-width: 72px; min-height: 44px; border: 1.5px solid var(--sl-line); border-radius: 12px; background: #fff; color: var(--sl-ink); cursor: pointer; }
.sl-tchip:hover, .sl-dchip:hover:not(:disabled) { border-color: var(--sl-ink); }
.sl-essai__adult[hidden] { display: none; }

/* ---------- v0.6 : formules d'essai ---------- */
.sl-formulas { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.sl-book label.sl-formula { flex-direction: row; align-items: center; gap: 12px; border: 1.5px solid var(--sl-line); border-radius: 14px; padding: 14px; cursor: pointer; font-weight: 500; }
.sl-formula input { width: 20px; height: 20px; accent-color: var(--sl-ink); }
.sl-formula span { flex-grow: 1; display: flex; flex-direction: column; }
.sl-formula em { font-style: normal; font-size: 13px; color: var(--sl-muted); }
.sl-formula b { white-space: nowrap; }
.sl-formula:has(input:checked) { border-color: var(--sl-ink); box-shadow: inset 0 0 0 1px var(--sl-ink); }
.sl-essai__chosen span { color: #A9ACB2; font-size: 13px; }

/* v1.0 — véhicules en deux versions de permis (essai uniquement), calendrier */
.sl-notice { margin: 24px 0 8px; padding: 14px 18px; border-radius: 12px; font-size: 15px; line-height: 1.5; }
.sl-notice--warn { background: #FFF4CF; color: #5c4300; border: 1px solid #F0C64A; }
.sl-tag--warn { background: #FFF4CF; color: #7a5a00; }
.sl-day.is-nostart, .sl-day.is-out { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.sl-dchip.is-closed em { color: #8a8d93; }
.sl-day.is-holiday { background: repeating-linear-gradient(135deg, #FDECEA, #FDECEA 5px, #F9DCD8 5px, #F9DCD8 10px); color: #A3261B; }
.sl-dchip.is-closed em { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; display: block; }
/* v1.3 — adresse du client */
.sl-grid2 .sl-span2 { grid-column: 1 / -1; }
.sl-muted { display: block; font-style: normal; font-size: 13px; color: var(--sl-muted); margin-top: 2px; }
.sl-perr { grid-column: 1 / -1; margin: 0; padding: 10px 14px; border-radius: 10px; background: #FDE8E6; color: #A3261B; font-weight: 600; font-size: 14px; }

/* ---------- v1.5 : nouveau front office (cartes de flotte, recherche, réservation en colonne) ---------- */
:root { --sl-accent: #EDB52E; --sl-orange: #C9682A; --sl-ok: #1E7A46; --sl-chip: #E8EAEC; }
.sl-flotte__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 0 0 22px; }
.sl-flotte__info { margin: 0; font-size: 15px; color: var(--sl-muted); }
.sl-flotte__info:empty { display: none; }
.sl-flotte__info strong { color: var(--sl-ink); }
.sl-flotte__warn { color: #A3261B; font-weight: 600; }
.sl-chips { margin: 0; }
.sl-chip { border: 0; background: var(--sl-chip); padding: 10px 15px; min-height: 40px; font-weight: 600; }
.sl-chip.is-active, .sl-chip:hover { background: var(--sl-ink); color: #fff; }
.sl-chips__sep { width: 1px; background: var(--sl-line); margin: 4px 6px; }
.sl-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 1180px) { .sl-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .sl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) { .sl-grid { grid-template-columns: 1fr; } }
.sl-card { border-radius: 14px; transition: transform .2s, box-shadow .2s; }
.sl-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(20, 22, 25, .12); }
.sl-card__img { position: relative; aspect-ratio: 4 / 3; max-width: 100%; background: linear-gradient(160deg, var(--sl-chip), #fff); display: grid; place-items: center; }
.sl-card__img img { object-fit: contain; padding: 6%; box-sizing: border-box; }
.sl-sil { width: 74%; height: auto; color: var(--sl-ink); opacity: .85; }
.sl-sil__hub { fill: #fff; }
.sl-plate { position: absolute; left: 12px; top: 12px; display: inline-flex; align-items: center; gap: 6px; background: #fff; border: 2px solid var(--sl-ink); border-radius: 6px; padding: 2px 8px; font: 500 12px/1.4 "IBM Plex Mono", ui-monospace, Menlo, monospace; color: var(--sl-ink); }
.sl-plate i { font-style: normal; background: var(--sl-ink); color: #fff; padding: 0 4px; border-radius: 2px; font-size: 10px; }
.sl-badge-essai { position: absolute; right: 12px; top: 12px; background: var(--sl-ok); color: #fff; font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 99px; }
.sl-card__title { font-size: 26px; }
.sl-tag { font: 500 12px/1.4 "IBM Plex Mono", ui-monospace, Menlo, monospace; background: var(--sl-chip); border-radius: 6px; padding: 2px 7px; color: var(--sl-muted); }
.sl-card__foot { border-top: 1px solid var(--sl-line); padding-top: 12px; }
.sl-price { font-size: 32px; font-variant-numeric: tabular-nums; }
.sl-card .sl-from { color: var(--sl-ok); font-weight: 700; }
.sl-card .sl-btn { background: var(--sl-accent); color: var(--sl-ink) !important; padding: 12px 18px; border-radius: 10px; }
.sl-card .sl-btn:hover { filter: brightness(1.05); background: var(--sl-accent); }
.sl-card__avail { margin: 0; font-size: 13px; font-weight: 700; color: #A3261B; }
.sl-card__avail.is-ok { color: var(--sl-ok); }
.sl-card.is-off { opacity: .55; }
.sl-card.is-off .sl-btn { background: var(--sl-chip); }
.sl-btn--big { background: var(--sl-accent); }
.sl-btn--big:hover { background: var(--sl-accent); filter: brightness(1.05); }
.sl-day.is-range { background: #F7DE9A; border-color: #F7DE9A; }
.sl-sum__total strong { color: var(--sl-accent); }
.sl-tab.is-active { border-bottom-color: var(--sl-accent); }

/* Réservation dans la colonne de droite de la fiche (thème Scoot'loc). */
.sl-aside .sl-book__title { display: none; }
.sl-aside .sl-book__form { flex-direction: column; flex-wrap: nowrap; }
.sl-aside .sl-book__main, .sl-aside .sl-book__summary { flex: 1 1 auto; width: 100%; box-sizing: border-box; }
.sl-aside .sl-book__summary { position: static; }
.sl-aside .sl-step { padding: 16px 16px 18px; }
.sl-aside .sl-cal { max-width: none; }
.sl-aside .sl-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; background: var(--sl-chip); border: 0; border-radius: 12px; padding: 4px; margin: 0 0 18px; }
.sl-aside .sl-tab { border: 0; margin: 0; border-radius: 9px; font-size: 16px; color: var(--sl-ink); }
.sl-aside .sl-tab.is-active { background: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .12); }
.sl-aside .sl-notice { margin-top: 0; }

/* ---------- v1.8 : demande de l'accueil (prix de la période, modification, véhicules grisés) ---------- */
.sl-flotte { scroll-margin-top: 90px; }
.sl-flotte__info { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; flex: 1 1 100%; background: #fff; border: 1px solid var(--sl-line); border-left: 4px solid var(--sl-accent); border-radius: 12px; padding: 14px 18px; color: var(--sl-ink); }
.sl-flotte__req span { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--sl-muted); font-weight: 700; }
.sl-flotte__edit { display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border-radius: 10px; background: var(--sl-ink); color: #fff !important; font-weight: 700; font-size: 14px; text-decoration: none; }
.sl-flotte__edit::before { content: "✎"; }
.sl-flotte__edit:hover { background: #000; }
.sl-flotte__res { margin-left: auto; font-size: 14px; color: var(--sl-muted); }
.sl-flotte__info .sl-flotte__warn { flex-basis: 100%; }
.sl-card__price.is-quote .sl-from { color: var(--sl-muted); font-weight: 600; }
.sl-card.is-off { opacity: 1; }
.sl-card.is-off .sl-card__img, .sl-card.is-off .sl-card__title, .sl-card.is-off .sl-card__price, .sl-card.is-off .sl-tags { opacity: .45; filter: grayscale(1); }
.sl-card.is-off:hover { transform: none; box-shadow: none; }
.sl-card.is-off .sl-btn { background: var(--sl-chip); color: var(--sl-muted) !important; }
@media (max-width: 640px) { .sl-flotte__res { margin-left: 0; } }
.sl-flotte__empty { margin: 8px 0 0; padding: 18px; border-radius: 12px; background: #fff; border: 1px dashed var(--sl-line); color: var(--sl-muted); font-weight: 600; text-align: center; }
.sl-flotte__empty[hidden] { display: none; }

/* ---------- v2.0 : identité couleur — Location orange, Essai bleu ---------- */
:root { --sl-loc: #C2571A; --sl-loc-dark: #A2470F; --sl-essai: #1F5FAE; --sl-essai-dark: #174C8C; --sl-essai-soft: #E6EEF8; --sl-loc-soft: #FBEDE3; }
.sl-card .sl-btn--loc, .sl-book .sl-pay, .sl-extend__pay { background: var(--sl-loc); color: #fff !important; }
.sl-card .sl-btn--loc:hover, .sl-book .sl-pay:hover:not(:disabled), .sl-extend__pay:hover:not(:disabled) { background: var(--sl-loc-dark); filter: none; }
.sl-card .sl-btn--essai, .sl-essai .sl-essai__pay, .sl-book .sl-essai__pay { background: var(--sl-essai); color: #fff !important; }
.sl-card .sl-btn--essai:hover, .sl-essai .sl-essai__pay:hover:not(:disabled), .sl-book .sl-essai__pay:hover:not(:disabled) { background: var(--sl-essai-dark); filter: none; }
.sl-card.is-off .sl-btn--loc, .sl-card.is-off .sl-btn--essai { background: var(--sl-chip); color: var(--sl-muted) !important; }
.sl-badge-essai { background: var(--sl-essai); }
.sl-card__essai .sl-essai-tag { display: inline-block; font-weight: 800; color: var(--sl-essai); font-size: 17px; }
.sl-card__essai .sl-from { color: var(--sl-muted); font-weight: 600; }
.sl-tab[data-tab="reserver"].is-active { border-bottom-color: var(--sl-loc); color: var(--sl-loc); }
.sl-tab[data-tab="essai"].is-active { border-bottom-color: var(--sl-essai); color: var(--sl-essai); }
.sl-aside .sl-tab[data-tab="reserver"].is-active { background: var(--sl-loc); color: #fff; }
.sl-aside .sl-tab[data-tab="essai"].is-active { background: var(--sl-essai); color: #fff; }
.sl-tab:focus-visible { outline-color: var(--sl-ink); }
.sl-modes { display: inline-flex; gap: 4px; padding: 4px; border-radius: 12px; background: var(--sl-chip); }
.sl-mode { padding: 9px 18px; border-radius: 9px; font-weight: 800; text-decoration: none; color: var(--sl-ink) !important; }
.sl-mode--location.is-active { background: var(--sl-loc); color: #fff !important; }
.sl-mode--essai.is-active { background: var(--sl-essai); color: #fff !important; }
.sl-mode:not(.is-active):hover { background: #fff; }
.sl-flotte.is-essai .sl-flotte__info { border-left-color: var(--sl-essai); }
.sl-flotte.is-location .sl-flotte__info { border-left-color: var(--sl-loc); }
.sl-flotte.is-essai .sl-card__avail.is-ok { color: var(--sl-essai); }
/* Casques : 0, 1 ou 2 */
.sl-book .sl-opt--casque { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; border: 1.5px solid var(--sl-line); border-radius: 14px; padding: 14px; margin-top: 12px; }
.sl-opt--casque label { flex: 1 1 220px; display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; margin: 0; }
.sl-opt--casque select { flex: 0 0 auto; min-width: 170px; }
.sl-casque-sizes { display: flex; flex-wrap: wrap; gap: 12px; margin: 10px 0 0 4px; }
.sl-casque-sizes[hidden], .sl-casque2[hidden] { display: none; }
.sl-place { font-size: 13px; color: var(--sl-muted); }
.sl-essai__noopt { margin: 0 0 10px; }

/* ---------- v2.1 : étapes glissantes, demandeur / société / conducteur / responsable ---------- */
.sl-stepnav { list-style: none; margin: 0 0 14px; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 6px; counter-reset: none; }
.sl-stepnav button { width: 100%; display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1.5px solid var(--sl-line); border-radius: 10px; background: #fff; font: inherit; font-weight: 700; font-size: 13px; color: var(--sl-muted); cursor: pointer; text-align: left; }
.sl-stepnav button b { flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: var(--sl-chip); color: var(--sl-ink); font-size: 12px; }
.sl-stepnav button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sl-stepnav button:disabled { cursor: not-allowed; opacity: .55; }
.sl-stepnav .is-active button { border-color: var(--sl-loc); color: var(--sl-ink); }
.sl-stepnav .is-active button b { background: var(--sl-loc); color: #fff; }
.sl-stepnav .is-done button b { background: var(--sl-ok); color: #fff; }
.sl-essai .sl-stepnav .is-active button { border-color: var(--sl-essai); }
.sl-essai .sl-stepnav .is-active button b { background: var(--sl-essai); }
.sl-stepper { overflow: hidden; }
.sl-stepper > .sl-panel[hidden] { display: none; }
.sl-in-fwd { animation: slInFwd .32s ease both; }
.sl-in-back { animation: slInBack .32s ease both; }
@keyframes slInFwd { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes slInBack { from { transform: translateX(-40px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .sl-in-fwd, .sl-in-back { animation: none; } }
.sl-stepfoot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--sl-line); }
.sl-stepnext, .sl-stepback { font: inherit; font-weight: 800; border-radius: 10px; padding: 11px 18px; cursor: pointer; border: 0; }
.sl-stepnext { background: var(--sl-loc); color: #fff; margin-left: auto; }
.sl-essai .sl-stepnext { background: var(--sl-essai); }
.sl-stepnext:disabled { background: var(--sl-chip); color: var(--sl-muted); cursor: not-allowed; }
.sl-stepback { background: transparent; color: var(--sl-ink); box-shadow: inset 0 0 0 1.5px var(--sl-line); }
.sl-stepform:not(.is-last) .sl-pay, .sl-stepform:not(.is-last) .sl-sum__secure { display: none; }
.sl-stepform:not(.is-last) .sl-sum__msg:empty::before { content: "Complétez les étapes, le paiement se fait à l'étape 3."; color: var(--sl-muted); font-weight: 500; }
.sl-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 12px; background: var(--sl-chip); margin: 0 0 14px; }
.sl-seg label { position: relative; margin: 0 !important; cursor: pointer; }
.sl-seg input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.sl-seg span { display: block; text-align: center; padding: 9px; border-radius: 9px; font-weight: 800; }
.sl-seg input:checked + span { background: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .12); }
.sl-seg input:focus-visible + span { outline: 3px solid var(--sl-ink); outline-offset: 2px; }
.sl-subh { margin: 16px 0 8px; font-size: 15px; }
.sl-company[hidden], .sl-driver[hidden], .sl-guardian[hidden], .sl-when-soc[hidden], .sl-when-perso[hidden], .sl-book label[hidden] { display: none !important; }
.sl-driver, .sl-guardian { margin: 12px 0; padding: 12px; border: 1.5px dashed var(--sl-line); border-radius: 12px; }
.sl-guardian .sl-notice { margin-top: 0; }
.sl-age-info:empty { display: none; }
.sl-age-info { margin: 6px 0 0; font-weight: 600; color: #7a5a00; }
.sl-nopro { margin-top: 12px; padding: 12px; border-radius: 12px; background: #FDECEA; }
.sl-nopro .sl-check { margin-top: 0 !important; }
.sl-nopro .sl-hint { margin: 6px 0 0; font-size: 13px; }
.sl-aside .sl-person { grid-template-columns: 1fr 1fr; }
/* Options (catalogue Flotte → Options) */
.sl-book .sl-opt--x { display: flex; align-items: center; gap: 12px; border: 1.5px solid var(--sl-line); border-radius: 14px; padding: 12px 14px; margin-top: 10px; }
.sl-opt--x .sl-opt__img { width: 56px; height: 56px; object-fit: cover; border-radius: 10px; flex: 0 0 auto; background: #F2EFE6; }
.sl-opt--x .sl-opt__txt { flex: 1 1 auto; display: block; margin: 0 !important; cursor: pointer; }
.sl-opt--x .sl-opt__txt span { display: block; font-weight: 700; }
.sl-opt--x .sl-opt__txt small { display: block; color: var(--sl-muted); font-size: 13px; }
.sl-opt--x .sl-opt__txt em { display: block; font-style: normal; font-weight: 700; font-size: 14px; margin-top: 2px; }
.sl-opt--x select.sl-opt__qty { flex: 0 0 auto; min-width: 150px; }
.sl-opt--x input.sl-opt__qty { flex: 0 0 auto; width: 22px; height: 22px; }
/* Stock des options */
.sl-opt--x.is-off { background: #F3F4F5; border-style: dashed; }
.sl-opt--x.is-off .sl-opt__txt, .sl-opt--x.is-off .sl-opt__img { opacity: .5; }
.sl-opt--x { flex-wrap: wrap; }
.sl-opt__na { flex-basis: 100%; margin: 4px 0 0; font-size: 13px; font-weight: 700; color: #A3261B; }
.sl-opt__na[hidden] { display: none; }
.sl-casque-sizes .sl-size-na { flex-basis: 100%; margin: 0 0 4px; }
/* Délai de réservation : jours et heures trop proches */
:root { --sl-lead: #E8590C; --sl-lead-dark: #B33F00; --sl-lead-soft: #FFE8D6; }
.sl-day.is-lead, .sl-dchip.is-lead { background: repeating-linear-gradient(135deg, var(--sl-lead-soft), var(--sl-lead-soft) 6px, #FFD3B0 6px, #FFD3B0 12px) !important; border: 2px solid var(--sl-lead) !important; color: var(--sl-lead-dark) !important; opacity: 1 !important; text-decoration: none !important; cursor: help; font-weight: 800; }
.sl-dchip.is-lead em { color: var(--sl-lead-dark); font-weight: 800; }
select.has-lead option.is-lead { color: var(--sl-lead-dark); background: var(--sl-lead-soft); }
.sl-leadinfo { margin: 12px 0 0; padding: 12px 14px; border-radius: 12px; background: var(--sl-lead-soft); border: 2px solid var(--sl-lead); color: #5a2200; font-size: 14px; line-height: 1.45; }
.sl-leadinfo strong { color: var(--sl-lead-dark); }
.sl-leadinfo::before { content: "⏱ "; }
.sl-leadinfo[hidden] { display: none; }
.sl-cal__legend .sl-leg-lead i { background: var(--sl-lead-soft); border: 2px solid var(--sl-lead); }
.sl-book select.has-lead { border-color: var(--sl-lead); box-shadow: 0 0 0 2px var(--sl-lead-soft); }

/* ---------- Page Contact ---------- */
.sl-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 24px; align-items: start; margin: 8px 0 40px; }
.sl-contact__info { display: grid; gap: 18px; min-width: 0; }
.sl-ccard { background: #fff; border: 1px solid var(--sl-line); border-radius: 18px; padding: 20px 22px; min-width: 0; }
.sl-ccard h2 { margin: 0 0 12px; font-size: 20px; }
.sl-ccard p { margin: 0 0 10px; line-height: 1.55; }
.sl-host { color: var(--sl-muted); font-size: 14px; }
.sl-clinks { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.sl-clinks a { display: inline-flex; gap: 8px; align-items: center; font-weight: 700; color: var(--sl-ink); text-decoration: none; overflow-wrap: anywhere; }
.sl-clinks a:hover { text-decoration: underline; }
.sl-hours { margin: 0; }
.sl-hours dt { font-weight: 700; font-size: 14px; }
.sl-hours dd { margin: 2px 0 12px; color: var(--sl-muted); }
.sl-ccard details { border-top: 1px solid var(--sl-line); padding: 10px 0; }
.sl-ccard details:first-of-type { border-top: 0; padding-top: 0; }
.sl-ccard summary { cursor: pointer; font-weight: 700; padding: 4px 0; }
.sl-ccard details p { margin: 6px 0 0; color: var(--sl-muted); }
.sl-contact__form { display: grid; gap: 14px; }
.sl-contact__form .sl-hint { margin: -6px 0 0; }
.sl-cf { display: grid; gap: 6px; font-weight: 700; font-size: 14px; }
.sl-cf input, .sl-cf select, .sl-cf textarea { font: inherit; font-weight: 400; font-size: 16px; padding: 11px 12px; border: 1.5px solid #D6D3CA; border-radius: 12px; min-height: 46px; box-sizing: border-box; width: 100%; background: #fff; color: var(--sl-ink); }
.sl-cf textarea { resize: vertical; min-height: 140px; }
.sl-cf .is-bad { border-color: #C0392B; background: #FFF6F5; }
.sl-cf-row { align-items: end; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.sl-cf-row[hidden], .sl-cf-resa[hidden], .sl-contact__form [hidden] { display: none; }
.sl-cf-resa { display: grid; gap: 6px; }
.sl-opt-l { font-weight: 400; color: var(--sl-muted); }
.sl-cf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sl-check { display: flex; gap: 10px; align-items: center; font-size: 15px; }
.sl-check input { width: 20px; height: 20px; accent-color: var(--sl-ink); }
.sl-cf-err { margin: 0; padding: 10px 14px; border-radius: 10px; background: #FDECEA; color: #8E1E14; font-weight: 600; }
.sl-cf-ok { padding: 16px 18px; border-radius: 12px; background: #E3F3E9; color: #14532D; line-height: 1.5; }
.sl-contact__form .sl-btn--big { justify-self: start; }
@media (max-width: 820px) { .sl-contact { grid-template-columns: minmax(0, 1fr); } .sl-contact__form { order: 1; } .sl-contact__info { order: 2; } }
/* Contact 2.42 : accès directs, pastille d'ouverture, horaires regroupés, champs alignés. */
.sl-cquick { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; }
.sl-cq { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: #fff; border: 1px solid var(--sl-line); border-radius: 18px; color: var(--sl-ink); text-decoration: none; min-width: 0; transition: border-color .15s, box-shadow .15s, transform .15s; }
.sl-cq:hover { border-color: var(--sl-ink); box-shadow: 0 6px 18px rgba(0,0,0,.07); transform: translateY(-1px); }
.sl-cq__i { flex: 0 0 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: var(--sl-accent, #EDB52E); color: #16181B; }
.sl-cq > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.sl-cq small { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--sl-muted); }
.sl-cq b { font-size: 16px; line-height: 1.3; overflow-wrap: anywhere; }
.sl-cshop__h { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.sl-cshop__h h2 { margin: 0; }
.sl-open { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px; border-radius: 999px; background: #F4E9E6; color: #8E1E14; font-size: 13px; font-weight: 700; }
.sl-open::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.sl-open.is-on { background: #E3F3E9; color: #14532D; }
.sl-open[hidden] { display: none; }
.sl-cshop .sl-host { margin: 0; }
.sl-hours-t tbody th small { display: block; font-size: 11px; font-weight: 700; color: #9A6A00; text-transform: uppercase; letter-spacing: .05em; }
.sl-hours-t td, .sl-hours-t tbody th { padding-top: 10px; padding-bottom: 10px; }
.sl-cf-row { align-items: start; }
.sl-contact__form h2 { margin-bottom: 4px; }
.sl-opt__price s { color: var(--sl-muted); font-weight: 400; margin-left: 2px; }
.sl-opt__price.is-less { color: #1e7a46; }
.sl-opt__price strong { color: var(--sl-ink); }
.sl-opt--x .sl-opt__img.is-round { border-radius: 50%; background: #fff; object-fit: contain; }
/* Option choisie : couleur et coche en haut à droite. */
.sl-book .sl-opt--x { position: relative; transition: border-color .15s, background-color .15s; }
.sl-book .sl-opt--x.is-chosen { border-color: #1E7A46; background: #EEF8F1; box-shadow: 0 0 0 1px #1E7A46 inset; }
.sl-opt__tick { position: absolute; top: -9px; right: -9px; width: 26px; height: 26px; border-radius: 50%; background: #1E7A46; color: #fff; display: grid; place-items: center; box-shadow: 0 2px 6px rgba(0,0,0,.18); opacity: 0; transform: scale(.6); transition: opacity .15s, transform .15s; pointer-events: none; }
.sl-opt--x.is-chosen .sl-opt__tick { opacity: 1; transform: scale(1); }
.sl-opt--x select.sl-opt__qty { min-width: 84px; }

/* ---------- À apporter le jour J / Mes documents ---------- */
.sl-bring { list-style: none; margin: 10px 0; padding: 0; display: grid; gap: 8px; }
.sl-bring li { display: flex; flex-direction: column; padding: 10px 14px 10px 44px; border-radius: 12px; background: #fff; border: 1.5px solid #F0C64A; position: relative; line-height: 1.35; }
.sl-bring li::before { content: "!"; position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; border-radius: 50%; background: #E8590C; color: #fff; font-weight: 800; font-size: 13px; display: grid; place-items: center; }
.sl-bring li span { font-size: 13px; color: var(--sl-muted); }
.sl-after { margin: 16px 0 0; padding: 16px 18px; border-radius: 16px; background: #FFF8E6; border: 2px solid #F0C64A; }
.sl-after h4 { margin: 0 0 4px; font-size: 17px; }
.sl-after p { margin: 8px 0 0; }
.sl-after__acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.sl-cal { position: relative; display: inline-block; }
.sl-cal__menu { position: absolute; z-index: 20; left: 0; top: calc(100% + 6px); min-width: 230px; background: #fff; border: 1px solid var(--sl-line); border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,.15); padding: 6px; }
.sl-cal__menu[hidden] { display: none; }
.sl-cal__menu a { display: block; padding: 9px 12px; border-radius: 8px; color: var(--sl-ink); text-decoration: none; font-weight: 600; font-size: 14px; }
.sl-cal__menu a:hover { background: #F2EFE6; }
.sl-cal__menu small { display: block; font-weight: 400; color: var(--sl-muted); font-size: 12px; }
.sl-docs-page h1.sl-docs__title { margin: 4px 0 6px; font-size: 34px; }
.sl-docs__kicker { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sl-muted); }
.sl-docs__veh { margin: 0 0 20px; color: var(--sl-muted); }
.sl-docs__must { background: #FFF8E6; border: 2px solid #F0C64A; border-radius: 16px; padding: 16px 18px; margin: 0 0 24px; }
.sl-docs__must h2, .sl-docs h2 { margin: 0 0 6px; font-size: 20px; }
.sl-docs { background: #fff; border: 1px solid var(--sl-line); border-radius: 16px; padding: 18px; }
.sl-doc { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1.5px solid var(--sl-line); border-radius: 12px; margin-top: 10px; }
.sl-doc.is-req .sl-doc__txt strong::after { content: " *"; color: #A3261B; }
.sl-doc.is-ok { border-color: #1E7A46; background: #EEF8F1; }
.sl-doc.is-busy { opacity: .6; }
.sl-doc__txt { display: flex; flex-direction: column; min-width: 0; }
.sl-doc__state { font-size: 13px; color: var(--sl-muted); overflow-wrap: anywhere; }
.sl-doc.is-ok .sl-doc__state { color: #1E7A46; font-weight: 600; }
.sl-doc__btn { flex: 0 0 auto; cursor: pointer; background: var(--sl-ink); color: #fff; font-weight: 700; font-size: 14px; padding: 10px 14px; border-radius: 10px; }
.sl-docs__msg { margin: 12px 0 0; font-weight: 600; }
.sl-docs__msg.is-ok { color: #1E7A46; } .sl-docs__msg.is-err { color: #A3261B; }
.sl-docs__help { margin-top: 20px; font-size: 14px; color: var(--sl-muted); }
@media (max-width: 560px) { .sl-doc { flex-direction: column; align-items: stretch; } .sl-doc__btn { text-align: center; } }
.sl-hours-t { width: 100%; border-collapse: collapse; font-size: 14px; }
.sl-hours-t th, .sl-hours-t td { padding: 7px 8px; border-bottom: 1px solid #EFEDE6; text-align: left; vertical-align: top; }
.sl-hours-t thead th { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; border-bottom: 2px solid currentColor; }
.sl-hours-t thead th small { display: block; text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--sl-muted); }
.sl-hours-t thead th.is-loc { color: #C2571A; } .sl-hours-t thead th.is-essai { color: #1F5FAE; }
.sl-hours-t tbody th { font-weight: 700; width: 30%; }
.sl-hours-t td small { display: block; font-size: 11px; color: var(--sl-muted); }
.sl-hours-t tr.is-today { background: #FFF8E6; }
.sl-h-off { color: #A3261B; font-weight: 600; }
.sl-h-ex { margin: 12px 0 0; font-size: 13px; background: #FDECEA; border-radius: 10px; padding: 10px 12px; }
/* Erreurs de saisie (selon le pays) */
.sl-book input.sl-bad, .sl-book select.sl-bad, .sl-bad { border-color: #C0392B !important; background: #FFF6F5 !important; box-shadow: 0 0 0 1px #C0392B inset; }
.sl-ferr { display: block; margin-top: 4px; color: #A3261B; font-size: 12.5px; font-weight: 600; line-height: 1.35; }

/* ---------- Jours et heures indisponibles : grisés, non sélectionnables (tous les calendriers) ---------- */
.sl-day:disabled, .sl-day.is-past, .sl-day.is-closed, .sl-day.is-busy, .sl-day.is-nostart, .sl-day.is-out:disabled {
	background: #E7E7E4 !important; border-color: #E7E7E4 !important; color: #A2A5AA !important; cursor: not-allowed !important; opacity: 1 !important;
}
.sl-day.is-busy { text-decoration: line-through; }
.sl-day.is-holiday:disabled { background: repeating-linear-gradient(135deg, #E7E7E4, #E7E7E4 5px, #F1DCDA 5px, #F1DCDA 10px) !important; color: #B07A75 !important; }
.sl-day.is-lead:disabled, .sl-dchip.is-lead:disabled { background: #E7E7E4 !important; border: 1px solid #E7E7E4 !important; box-shadow: inset 0 -4px 0 var(--sl-lead); color: #A2A5AA !important; cursor: not-allowed !important; font-weight: 700; }
.sl-dchip:disabled { opacity: 1; background: #E7E7E4; border-color: #E7E7E4; color: #A2A5AA; }
.sl-dchip:disabled span, .sl-dchip:disabled strong { color: #A2A5AA; }
.sl-tchip.is-off, .sl-tchip:disabled { background: #E7E7E4; border-color: #E7E7E4; color: #A2A5AA; text-decoration: line-through; cursor: not-allowed; }
.sl-book select option:disabled, .sl-essai select option:disabled, select option.is-off { color: #A2A5AA; background: #EFEFEC; }
.sl-privacy-note { margin: 10px 0 0; font-size: 12.5px; color: var(--sl-muted); line-height: 1.45; }
.sl-privacy-note a { color: inherit; text-decoration: underline; }
.sl-privacy h2 { font-size: 20px; margin: 28px 0 8px; }
.sl-privacy ul { padding-left: 20px; }
.sl-privacy li { margin: 4px 0; }
.sl-privacy__intro { font-size: 17px; }
.sl-privacy__upd { margin-top: 28px; color: var(--sl-muted); font-size: 13px; }
.sl-vmsg { margin: 6px 0 4px; padding: 10px 12px; border-radius: 10px; background: #E6EEF8; color: #1F3F6E; font-size: 14px; line-height: 1.45; border-left: 4px solid #1F5FAE; }
.sl-versions { margin-top: 16px; display: grid; gap: 8px; }
.sl-versions__t { margin: 0; font-weight: 800; }
.sl-version input:checked + span strong { color: #1F5FAE; }
.sl-vmsg.is-ok { background: #E7F5EC; color: #14532D; border-left-color: #1E7A46; }
.sl-vmsg.is-ko { background: #FDECEA; color: #8E1E14; border-left-color: #B32D2E; }
.sl-vswitch { display: inline-block; margin-top: 8px; font: inherit; font-weight: 700; font-size: 14px; padding: 8px 12px; border-radius: 10px; border: 0; background: #1F5FAE; color: #fff; cursor: pointer; }

/* 2.16 : boutons Louer / Réserver un essai en majuscules. */
.sl-btn--loc, .sl-btn--essai, .sl-tab { text-transform: uppercase; letter-spacing: .04em; }
.sl-card__img img.sl-norm { padding: 0; width: 100%; height: 100%; object-fit: contain; }

/* 2.17 : adresse introuvable (propositions), permis international. */
.sl-addr-sug { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: -4px 0 8px; font-size: 14px; }
.sl-addr-sug:empty { display: none; }
.sl-addr-sug button { border: 1px solid #1F5FAE; color: #1F5FAE; background: #fff; border-radius: 999px; padding: 6px 12px; font: inherit; font-size: 13px; cursor: pointer; }
.sl-intl { margin: 0 0 10px; padding: 10px 12px; border-left: 4px solid #E8590C; background: #FFF4E8; border-radius: 8px; font-size: 14px; }

/* 2.17 : étapes jamais plus larges que l'écran (une fieldset prend par défaut la largeur de son contenu). */
fieldset.sl-step, .sl-stepper > fieldset { min-width: 0; max-width: 100%; box-sizing: border-box; }
.sl-stepper .sl-panel { min-width: 0; }
.sl-stepper .sl-panel * { min-width: 0; }
.sl-stepper .sl-panel label, .sl-stepper .sl-panel p, .sl-stepper .sl-panel span, .sl-stepper .sl-panel strong, .sl-stepper .sl-panel em { overflow-wrap: anywhere; }
@media (max-width: 600px) {
	.sl-stepnav { overflow-x: auto; scrollbar-width: none; }
	.sl-stepnav::-webkit-scrollbar { display: none; }
	.sl-stepfoot { flex-wrap: wrap; gap: 8px; }
	.sl-stepfoot .sl-stepnext { flex: 1 1 auto; }
}
.sl-stepper .sl-panel :is(span, b, em, strong, small) { white-space: normal; }
.sl-fav { margin: 14px 0 0; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.sl-fav-msg { font-size: 14px; color: #1E7A46; font-weight: 600; }
.sl-btn--ghost { background: #fff !important; color: #16181B !important; box-shadow: inset 0 0 0 2px #16181B; }
.sl-docs__back { margin: 0 0 10px; }
.sl-docs__back a { font-weight: 700; text-decoration: none; }

/* Étape « Documents » (réservation) */
.sl-dstep__list { list-style: none; margin: 10px 0 14px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sl-dstep__row { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1.5px dashed #CFCAC0; border-radius: 12px; background: #fff; }
.sl-dstep__row[hidden] { display: none; }
.sl-dstep__row.is-ok { border-style: solid; border-color: #1E7A46; background: #F2FAF5; }
.sl-dstep__t { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.sl-dstep__t b { font-size: 15px; }
.sl-dstep__f { font-size: 13px; color: #6B6F76; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sl-dstep__row.is-ok .sl-dstep__f { color: #1E7A46; font-weight: 600; }
.sl-dstep__pick { position: relative; flex: 0 0 auto; height: 44px; min-height: 0; min-width: 104px; padding: 0 16px !important; line-height: 1 !important; display: inline-flex !important; align-items: center; justify-content: center; cursor: pointer; overflow: hidden; }
.sl-dstep__pick input { position: absolute; inset: 0; opacity: 0; cursor: pointer; font-size: 0; }
.sl-dstep__pick:focus-within { outline: 2px solid var(--sl-loc); outline-offset: 2px; }
.sl-dstep.is-later .sl-dstep__list { opacity: .45; }
.sl-dstep.is-later.is-nf .sl-dstep__list { opacity: 1; }
.sl-dstep.is-later.is-nf .sl-dstep__row:not([data-type=domicile]) { opacity: .45; }
.sl-dstep__nf { margin: 0 0 10px; padding: 10px 12px; border-radius: 8px; background: #FFF4E8; color: #8A4B00; font-size: 14px; }
.sl-person label, .sl-grid2 label { position: relative; }
.sl-ac { position: absolute; left: 0; right: 0; top: 100%; z-index: 50; margin: 4px 0 0; padding: 4px; list-style: none; background: #fff; border: 1px solid #CFCCC4; border-radius: 10px; box-shadow: 0 10px 28px rgba(0,0,0,.14); max-height: 280px; overflow: auto; font-weight: 400; }
.sl-ac li { display: flex; flex-direction: column; gap: 1px; padding: 9px 10px; border-radius: 7px; cursor: pointer; line-height: 1.25; }
.sl-ac li b { font-weight: 600; font-size: 15px; } .sl-ac li span { font-size: 13px; color: #6B6F76; }
.sl-ac li:hover, .sl-ac li.is-on { background: #FFF6D6; }
.sl-dstep__later { padding: 12px 14px; border-radius: 12px; background: #F7F6F2; }

.sl-autoend { margin: 6px 0 0; padding: 8px 10px; border-radius: 8px; background: #E7F5EC; color: #1E7A46; font-size: 13.5px; font-weight: 600; }
.sl-ch-only { margin: 4px 0 0; padding: 10px 12px; border-radius: 10px; background: #FDECEA; color: #7A1D14; font-size: 14px; line-height: 1.4; border-left: 4px solid #D52B1E; }

/* Erreurs : onglet en rouge, zone entourée */
.sl-stepnav .has-err button { border-color: #C0392B; color: #A3261B; }
.sl-stepnav .has-err button b { background: #C0392B !important; color: #fff !important; }
.sl-errzone { outline: 2px solid #C0392B !important; outline-offset: 3px; border-radius: 10px; background-color: #FFF6F5; }
.sl-dstep__row.sl-errzone { border-color: #C0392B; }
/* Onglets dans une colonne étroite (fiche véhicule sur ordinateur) : numéros seuls, libellé de l'étape en cours en entier */
.sl-book__main { container-type: inline-size; }
@container (max-width: 560px) {
	.sl-stepnav { display: flex; }
	.sl-stepnav li { flex: 0 0 auto; }
	.sl-stepnav li.is-active { flex: 1 1 auto; min-width: 0; }
	.sl-stepnav li:not(.is-active) button { width: auto; padding: 8px; }
	.sl-stepnav li:not(.is-active) button span { display: none; }
}
@container (max-width: 460px) {
	.sl-dstep__row { flex-wrap: wrap; }
	.sl-dstep__t { flex-basis: 100%; }
	.sl-dstep__pick { width: 100%; }
}

/* Images des véhicules sur fond blanc */
.sl-card__img { background: #fff !important; border-bottom: 1px solid var(--sl-line); }

/* 2.34 : date en trois listes, expérience, zone identité, « Conservez ces informations ». */
.sl-book .sl-dmy select { padding-left: 10px; padding-right: 6px; }
/* Zone date de naissance / permis / expérience : mêmes espacements que les autres champs, colonnes alignées. */
.sl-book .sl-idgrid { margin-top: 16px; gap: 14px; align-items: start; grid-template-columns: 1fr; }
.sl-book .sl-idgrid > label { gap: 6px; margin: 0; }
.sl-book .sl-idgrid > label > span:first-child { line-height: 1.25; }
.sl-book .sl-idgrid .sl-exp em.sl-muted { display: inline; font-style: normal; font-weight: 500; font-size: 13px; }
.sl-book .sl-idgrid .sl-exp small.sl-hint { margin: 0; font-size: 13px; line-height: 1.4; }
.sl-book .sl-idgrid + .sl-age-info { margin: 8px 0 0; }
.sl-dmy { grid-template-columns: minmax(72px, .9fr) minmax(0, 1.5fr) minmax(86px, 1fr) !important; }
.sl-book .sl-dmy select { padding-left: 10px; padding-right: 4px; text-overflow: clip; }
@media (max-width: 600px) { .sl-book fieldset.sl-step { padding-left: 12px; padding-right: 12px; } }
.sl-book .sl-exp small { font-weight: 400; }
.sl-book .sl-age-info { margin-top: 10px; }
.sl-book .sl-nopro { margin-top: 20px; padding: 14px 16px; }
.sl-book .sl-step > label.sl-check { margin-top: 16px; padding: 12px 14px; border: 1.5px solid var(--sl-line); border-radius: 12px; background: #fff; }
.sl-book .sl-step > label.sl-check.sl-errzone { border-color: #C0392B; }
@media (min-width: 900px) { .sl-book .sl-step > label.sl-check, .sl-book .sl-nopro { margin-top: 18px; } .sl-book .sl-step .sl-check span { line-height: 1.45; } }
.sl-keep { margin: 16px 0 0; padding: 12px 14px; border: 2px dashed currentColor; border-radius: 12px; display: flex; flex-direction: column; gap: 4px; font-size: 14px; line-height: 1.45; }
.sl-keep strong { font-size: 15px; }
.sl-unpaid { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 4px; }
.sl-unpaid .sl-btn { margin: 0; }
.sl-unpaid .sl-btn--ghost { background: #fff; color: var(--sl-ink); border: 1.5px solid var(--sl-ink); }
.sl-unpaid .sl-linkbtn { border: 0; background: none; padding: 0 6px; font: inherit; font-size: 14px; font-weight: 600; color: var(--sl-muted); text-decoration: underline; cursor: pointer; }
.sl-unpaid button:disabled { opacity: .5; cursor: wait; }
.sl-unpaid__msg { margin: 6px 0 0; font-weight: 600; }
.sl-unpaid__msg:empty { display: none; }
