/* Luxury Car Booking - Default minimal styles.
   Intentionally low-specificity and free of !important so Elementor controls
   can override everything easily. */

/* Blindage global des titres (h1-h3) : de nombreux thèmes WordPress (dont celui utilisé ici)
   appliquent des tailles de h1/h2/h3 énormes avec une spécificité suffisante pour écraser une
   simple classe seule. On neutralise ça une bonne fois pour toutes en ciblant chaque titre à
   l'intérieur de n'importe quel conteneur du plugin, avec un sélecteur "conteneur + balise"
   assez spécifique pour gagner presque partout — tout en laissant les contrôles Typography
   d'Elementor (encore plus spécifiques grâce à son wrapper unique par widget) les surcharger.
   Doublé par le sélecteur automatique .elementor-widget-{nom_du_widget} qu'Elementor ajoute
   lui-même autour de chaque widget, pour une fiabilité maximale même sans nos propres classes. */
.lcb-vehicle-card h1, .lcb-vehicle-card h2, .lcb-vehicle-card h3,
.lcb-booking-form h1, .lcb-booking-form h2, .lcb-booking-form h3,
.lcb-details-widget h1, .lcb-details-widget h2, .lcb-details-widget h3,
.lcb-search-form h1, .lcb-search-form h2, .lcb-search-form h3,
.lcb-vehicle-grid h1, .lcb-vehicle-grid h2, .lcb-vehicle-grid h3,
.lcb-search-results h1, .lcb-search-results h2, .lcb-search-results h3,
.lcb-booking-confirmation h1, .lcb-booking-confirmation h2, .lcb-booking-confirmation h3,
.lcb-vehicle-single h1, .lcb-vehicle-single h2, .lcb-vehicle-single h3,
.elementor-widget-lcb_vehicle_title h1, .elementor-widget-lcb_vehicle_title h2, .elementor-widget-lcb_vehicle_title h3,
.elementor-widget-lcb_vehicle_grid h1, .elementor-widget-lcb_vehicle_grid h2, .elementor-widget-lcb_vehicle_grid h3,
.elementor-widget-lcb_vehicle_details h1, .elementor-widget-lcb_vehicle_details h2, .elementor-widget-lcb_vehicle_details h3,
.elementor-widget-lcb_vehicle_booking_form h1, .elementor-widget-lcb_vehicle_booking_form h2, .elementor-widget-lcb_vehicle_booking_form h3,
.elementor-widget-lcb_search_results h1, .elementor-widget-lcb_search_results h2, .elementor-widget-lcb_search_results h3,
.elementor-widget-lcb_car_search h1, .elementor-widget-lcb_car_search h2, .elementor-widget-lcb_car_search h3 {
	font-family: inherit; line-height: 1.3; font-weight: 700; margin: 0 0 12px;
}
.lcb-vehicle-card h3, .lcb-vehicle-grid h3, .elementor-widget-lcb_vehicle_grid h3,
.elementor-widget-lcb_vehicle_title .lcb-widget-vehicle-title,
.lcb-booking-form h3, .elementor-widget-lcb_vehicle_booking_form h3 { font-size: 18px; }
.lcb-details-widget h1, .lcb-vehicle-single h1,
.elementor-widget-lcb_vehicle_details h1, .elementor-widget-lcb_vehicle_title h1 { font-size: 24px; }
.lcb-details-widget h2, .lcb-vehicle-single h2, .lcb-booking-confirmation h2,
.elementor-widget-lcb_vehicle_details h2 { font-size: 20px; }

.lcb-search-form { display: flex; flex-direction: column; gap: 16px; }
.lcb-search-row { display: flex; flex-wrap: wrap; gap: 20px; margin-bottom: 22px; }
.lcb-booking-form .lcb-field { margin-bottom: 22px; }
.lcb-booking-form .lcb-checkbox-inline { margin-bottom: 8px; }
.lcb-booking-form .lcb-booking-step h3 { margin-bottom: 24px; }
.lcb-field { display: flex; flex-direction: column; gap: 7px; flex: 1 1 200px; }
.lcb-field label { font-size: 13px; font-weight: 600; }
.lcb-field input, .lcb-field select, .lcb-field textarea {
	padding: 12px 14px; border: 1px solid #ddd; border-radius: 8px; font-size: 14px;
	line-height: 1.4; box-sizing: border-box; width: 100%;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.lcb-field select { height: 45px; } /* aligne visuellement la hauteur des menus déroulants sur celle des champs texte */
.lcb-field input:focus, .lcb-field select:focus, .lcb-field textarea:focus {
	outline: none; border-color: #111; box-shadow: 0 0 0 3px rgba(17,17,17,.08);
}

/* Labels flottants (façon Material Design) : le libellé est superposé au champ et remonte en
   petit dès qu'on clique dedans ou qu'il contient déjà du texte. Technique CSS pure basée sur
   :placeholder-shown — nécessite que le champ ait un placeholder=" " (espace) et que le <label>
   suive l'<input>/<textarea> dans le HTML (sélecteur de fratrie "+"). */
.lcb-floating { position: relative; }
.lcb-floating label {
	position: absolute; left: 14px; top: 14px; font-size: 14px; color: #888; font-weight: 400;
	pointer-events: none; transition: top .15s ease, font-size .15s ease, color .15s ease;
	background: #fff; padding: 0 4px; margin: 0; transform-origin: left top;
}
.lcb-floating input, .lcb-floating textarea { padding: 14px; }
.lcb-floating textarea ~ label { top: 14px; }
.lcb-floating input:focus + label,
.lcb-floating input:not(:placeholder-shown) + label,
.lcb-floating textarea:focus + label,
.lcb-floating textarea:not(:placeholder-shown) + label {
	top: -8px; font-size: 11px; color: #111; font-weight: 600;
}
.lcb-checkbox-inline { display: flex; align-items: center; gap: 6px; font-size: 13px; margin-top: 6px; }

.lcb-btn {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 12px 24px; border-radius: 6px; font-weight: 600; text-decoration: none;
	cursor: pointer; border: 1px solid transparent; transition: all .2s ease;
}
.lcb-btn-primary { background: #111; color: #fff; }
.lcb-btn-primary:hover { background: #333; color: #fff; }
.lcb-btn-outline { background: transparent; border-color: #111; color: #111; }
.lcb-btn-large { padding: 14px 28px; font-size: 16px; }
.lcb-btn-whatsapp { background: #25D366; color: #fff; margin-top: 16px; }

/* Spécificité renforcée (préfixée par le conteneur racine de chaque contexte) : de nombreux
   thèmes WordPress appliquent leurs propres couleurs de bouton avec une priorité suffisante
   pour écraser une simple classe unique. Ce préfixe garantit nos couleurs par défaut sans
   empêcher les contrôles de style Elementor (encore plus spécifiques) de les surcharger ensuite. */
.lcb-booking-form .lcb-btn-primary,
.lcb-details-widget .lcb-btn-primary,
.lcb-vehicle-card .lcb-btn-primary,
.lcb-search-form .lcb-btn-primary {
	background: #111; color: #fff; border-color: #111;
}
.lcb-booking-form .lcb-btn-primary:hover,
.lcb-details-widget .lcb-btn-primary:hover,
.lcb-vehicle-card .lcb-btn-primary:hover,
.lcb-search-form .lcb-btn-primary:hover {
	background: #333; color: #fff;
}
.lcb-booking-form .lcb-btn-outline,
.lcb-details-widget .lcb-btn-outline,
.lcb-vehicle-card .lcb-btn-outline,
.lcb-search-form .lcb-btn-outline {
	background: transparent; color: #111; border-color: #111;
}

.lcb-vehicle-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
@media (max-width: 992px) { .lcb-vehicle-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .lcb-vehicle-grid { grid-template-columns: 1fr; } }

.lcb-vehicle-card {
	border: 1px solid #eee; border-radius: 10px; overflow: hidden; background: #fff;
	display: flex; flex-direction: column; position: relative;
}
.lcb-vehicle-card-link { position: absolute; inset: 0; z-index: 1; }
.lcb-vehicle-card-image, .lcb-vehicle-card-body { position: relative; z-index: 0; }
.lcb-vehicle-actions { position: relative; z-index: 2; }
.lcb-vehicle-card-image { position: relative; aspect-ratio: 16/10; overflow: hidden; }
.lcb-vehicle-card-image img { width: 100%; height: 100%; object-fit: contain; background: #f7f7f7; display: block; }
.lcb-badge {
	position: absolute; top: 10px; left: 10px; background: #111; color: #fff;
	font-size: 11px; padding: 4px 8px; border-radius: 4px; text-transform: uppercase;
}
.lcb-vehicle-card-body { padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.lcb-vehicle-category { font-size: 12px; text-transform: uppercase; color: #888; }
.lcb-vehicle-name { margin: 0; font-size: 18px; }
.lcb-vehicle-features { list-style: none; display: flex; gap: 12px; padding: 0; margin: 0; font-size: 13px; color: #555; flex-wrap: wrap; }
.lcb-vehicle-price { display: flex; align-items: baseline; gap: 4px; }
.lcb-price-amount { font-size: 20px; font-weight: 700; }
.lcb-vehicle-total { font-size: 13px; color: #555; }
.lcb-vehicle-actions { display: flex; gap: 8px; margin-top: 8px; }

.lcb-results-summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.lcb-results-summary-info { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.lcb-results-count { margin-bottom: 16px; color: #555; }
.lcb-empty-state { padding: 40px; text-align: center; color: #888; grid-column: 1 / -1; }
.lcb-form-error { color: #c0392b; font-size: 13px; }

.lcb-booking-form {
	display: flex; gap: 32px; flex-wrap: wrap; align-items: flex-start;
	max-width: 1140px; margin: 0 auto;
}
.lcb-booking-form-main {
	flex: 2 1 460px; display: flex; flex-direction: column; gap: 24px;
	background: #fff; border: 1px solid #eee; border-radius: 14px; padding: 32px;
}

/* Assistant par étapes : une seule .lcb-booking-step visible à la fois (contrôlé en JS via
   la classe is-active). Le formulaire garde tout son HTML dans le DOM (accessibilité, pas
   de rechargement AJAX entre étapes), seul l'affichage change. */
.lcb-booking-step { display: none; }
.lcb-booking-step.is-active { display: block; }
.lcb-booking-step h3 { font-size: 20px; margin: 0 0 20px; }

.lcb-booking-steps-nav { display: flex; align-items: flex-start; margin-bottom: 12px; }
.lcb-step-dot {
	display: flex; flex-direction: column; align-items: center; gap: 6px; flex: 1 1 0;
	position: relative; text-align: center;
}
.lcb-step-dot:not(:last-child)::after {
	content: ""; position: absolute; top: 13px; left: 50%; width: 100%; height: 2px;
	background: #e5e5e5; z-index: 0;
}
.lcb-step-dot.is-done:not(:last-child)::after { background: #111; }
.lcb-step-number {
	width: 26px; height: 26px; border-radius: 50%; border: 2px solid #e5e5e5; background: #fff;
	display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700;
	color: #999; position: relative; z-index: 1; flex-shrink: 0;
}
.lcb-step-label { font-size: 11px; color: #999; max-width: 90px; line-height: 1.3; }
.lcb-step-dot.is-active .lcb-step-number { border-color: #111; color: #111; }
.lcb-step-dot.is-active .lcb-step-label { color: #111; font-weight: 600; }
.lcb-step-dot.is-done .lcb-step-number { border-color: #111; background: #111; color: #fff; }
.lcb-step-dot.is-done .lcb-step-label { color: #111; }

.lcb-step-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 20px; }
.lcb-step-actions .lcb-btn { min-width: 110px; }
.lcb-step-actions .lcb-step-next,
.lcb-step-actions button[type="submit"] { margin-left: auto; }

/* Récapitulatif : carte à part, clairement étiquetée comme lecture seule (aucun champ à y
   remplir) pour éviter toute confusion avec le formulaire. Se met à jour automatiquement à
   chaque changement dans le formulaire à gauche. */
.lcb-booking-summary {
	flex: 1 1 300px; position: sticky; top: 20px;
	background: #fff; border: 1px solid #eee; border-radius: 14px; padding: 24px;
	box-shadow: 0 4px 20px rgba(0,0,0,.05);
}
.lcb-booking-summary-eyebrow {
	font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: #999;
	font-weight: 700; margin: 0 0 4px;
}
.lcb-booking-summary h3 { font-size: 18px; margin: 0 0 14px; }
.lcb-booking-summary img { width: 100%; height: auto; display: block; border-radius: 10px; margin-bottom: 16px; }
.lcb-summary-lines { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; font-size: 14px; color: #555; }
.lcb-summary-lines > div { display: flex; justify-content: space-between; }
.lcb-summary-total { border-top: 1px solid #eee; padding-top: 10px; font-weight: 700; font-size: 17px; color: #111; }
.lcb-extras-list { display: flex; flex-direction: column; gap: 10px; }
.lcb-extra-item { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; column-gap: 12px; row-gap: 2px; padding: 14px 16px; border: 1px solid #e8e8e8; border-radius: 12px; background: #fff; cursor: pointer; transition: border-color .2s, box-shadow .2s, background .2s; }
.lcb-extra-item:hover { border-color: #cfcfcf; }
.lcb-extra-item:has(input[type="checkbox"]:checked) { border-color: #111; background: #fafafa; box-shadow: 0 0 0 1px #111 inset; }
.lcb-extra-item input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: #111; }
.lcb-extra-name { font-weight: 600; color: #111; }
.lcb-extra-price { font-weight: 600; color: #111; white-space: nowrap; }
.lcb-extra-desc { grid-column: 2 / 4; grid-row: 2; font-size: 13px; line-height: 1.45; color: #777; }
.lcb-extra-item .lcb-extra-qty { grid-column: 4; grid-row: 1 / span 2; align-self: center; height: 40px; padding: 6px 8px; margin: 0; }
.lcb-summary-lines dt { padding-right: 12px; }
.lcb-summary-lines dd { white-space: nowrap; }
.lcb-extra-qty { width: 64px; }

@media (max-width: 900px) {
	.lcb-booking-form-main { padding: 24px; }
	.lcb-booking-summary { position: static; }
}

.lcb-booking-confirmation { text-align: center; padding: 40px 20px; }
.lcb-confirmation-details { text-align: left; max-width: 420px; margin: 24px auto; display: flex; flex-direction: column; gap: 6px; }

.lcb-skeleton { animation: lcb-pulse 1.2s infinite ease-in-out; background: #eee; border-radius: 6px; }
@keyframes lcb-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .5; } }

/* Vehicle Details widget: contenu à gauche, petite barre latérale sticky à droite. */
.lcb-details-layout {
	display: flex;
	align-items: flex-start;
	gap: 32px;
	flex-wrap: wrap;
}
.lcb-details-left { flex: 1 1 420px; min-width: 0; }
.lcb-details-right { flex: 0 0 340px; width: 340px; }

.lcb-details-widget.lcb-sticky-enabled .lcb-details-sidebar {
	position: sticky;
	top: 20px;
}

.lcb-details-sidebar {
	border: 1px solid #eee;
	border-radius: 12px;
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.lcb-details-sidebar-price {
	display: flex; align-items: baseline; gap: 6px;
	background: #f7f7f7; padding: 12px 14px; border-radius: 8px; flex-wrap: wrap;
}
.lcb-details-sidebar-price .lcb-price-amount { font-size: 26px; font-weight: 700; }
.lcb-details-sidebar-price .lcb-price-from { color: #777; font-size: 13px; }
.lcb-details-sidebar-price .lcb-price-unit { color: #777; font-size: 13px; }
.lcb-details-sidebar-features { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 0; font-size: 13px; color: #555; }
.lcb-details-sidebar-cta { width: 100%; text-align: center; }
.lcb-details-sidebar-whatsapp { width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px; white-space: nowrap; text-align: center; margin-top: 0; }
.lcb-details-sidebar-whatsapp .lcb-icon-whatsapp { width: 22px; height: 22px; flex: none; }

/* Colonne de gauche : traitée comme une vraie carte de contenu (même logique visuelle que
   la sidebar), avec un rythme vertical resserré et des séparateurs discrets entre sections
   plutôt que de grands blocs qui flottent sans structure. */
.lcb-details-widget .lcb-details-left {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 12px;
	padding: 24px;
}

.lcb-details-gallery { margin: -24px -24px 20px; }
.lcb-details-gallery-main {
	position: relative; overflow: hidden;
	border-radius: 12px 12px 0 0;
}
.lcb-details-gallery-main img { width: 100%; height: auto; display: block; }
.lcb-details-gallery-thumbs { display: flex; gap: 8px; margin: 10px 24px 0; overflow-x: auto; }
.lcb-details-gallery-thumbs img {
	width: 64px; height: 48px; object-fit: cover; border-radius: 6px; cursor: pointer;
	border: 2px solid transparent; flex: 0 0 auto; opacity: .7; transition: opacity .15s, border-color .15s;
}
.lcb-details-gallery-thumbs img:hover,
.lcb-details-gallery-thumbs img.is-active { opacity: 1; border-color: #111; }

/* Spécificité volontairement renforcée (.lcb-details-widget en préfixe) : beaucoup de thèmes
   WordPress imposent leurs propres styles de titres (h1, h2) avec une spécificité suffisante
   pour écraser une simple règle de classe. Ce préfixe garantit un rendu propre "prêt à l'emploi"
   sans empêcher les contrôles de style Elementor de surcharger ensuite si besoin. */
.lcb-details-widget .lcb-details-title { margin: 0 0 14px; font-size: 24px; line-height: 1.25; font-weight: 700; }
.lcb-details-widget .lcb-details-features {
	list-style: none; display: flex; flex-wrap: wrap; gap: 14px; padding: 0 0 18px;
	margin: 0 0 18px; color: #555; font-size: 14px; border-bottom: 1px solid #f0f0f0;
}
.lcb-details-widget .lcb-details-description { margin-bottom: 20px; line-height: 1.65; color: #444; }
.lcb-details-widget .lcb-details-subheading {
	font-size: 16px; font-weight: 700; margin: 0 0 12px; padding-top: 4px;
	text-transform: uppercase; letter-spacing: .03em; color: #333;
}
.lcb-details-specs { list-style: none; padding: 0; margin: 0; }
.lcb-details-specs li { display: flex; justify-content: space-between; padding: 9px 0; border-bottom: 1px solid #f0f0f0; font-size: 14px; }
.lcb-details-specs li:last-child { border-bottom: none; }

@media (max-width: 782px) {
	.lcb-details-left { flex-basis: 100%; }
	.lcb-details-right { flex-basis: 100%; width: 100%; }
	.lcb-details-widget.lcb-sticky-enabled .lcb-details-sidebar { position: static; }
}

/* Widgets "fiche véhicule" standalone : bases de mise en page en classes CSS (pas de style
   inline) afin que tous les contrôles Elementor (couleur, alignement, espacement...) puissent
   réellement surcharger ces règles — un style inline aurait toujours priorité sinon. */
.lcb-widget-features { list-style: none; display: flex; flex-wrap: wrap; gap: 12px; padding: 0; margin: 0; }
.lcb-widget-extras { list-style: none; padding: 0; margin: 0; }
.lcb-widget-extras li,
.lcb-widget-specs li { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #eee; gap: 12px; }
.lcb-widget-specs { list-style: none; padding: 0; margin: 0; }
.lcb-widget-gallery {
	display: grid;
	grid-template-columns: repeat(var(--lcb-gallery-columns, 4), 1fr);
	gap: 10px;
}
.lcb-widget-gallery img { width: 100%; border-radius: 6px; object-fit: contain; background: #f7f7f7; aspect-ratio: 4/3; }

/* Icônes de caractéristiques (SVG inline, voir lcb_feature_icon()) : taille et alignement
   cohérents partout où elles apparaissent (carte grille, fiche détails, widgets standalone). */
.lcb-icon {
	width: 16px; height: 16px; flex: 0 0 auto;
	vertical-align: -3px; margin-right: 5px; color: currentColor; opacity: .75;
}
.lcb-vehicle-features li,
.lcb-details-features li,
.lcb-details-sidebar-features li,
.lcb-widget-features li { display: flex; align-items: center; }

/* Sidebar "Vehicle Details" : le formulaire de réservation complet, conçu par défaut en 2
   colonnes (champs + récap), doit s'afficher en 1 seule colonne une fois imbriqué dans une
   barre latérale étroite. On neutralise aussi son propre récap sticky interne pour éviter un
   double effet "sticky" imbriqué disgracieux. */
/* Formulaire de réservation intégré dans la sidebar "Vehicle Details" : ce formulaire a été
   conçu pour une page pleine largeur (2 colonnes champs + récap). Une fois réduit à ~340px de
   large, il a besoin de sa propre feuille de style compacte plutôt que d'hériter des espacements
   larges par défaut — c'est ce qui produisait un rendu "aéré n'importe où" et des vides disgracieux. */
.lcb-details-sidebar-bookingform { border-top: 1px solid #ececec; padding-top: 18px; margin-top: 4px; }
.lcb-details-sidebar-bookingform .lcb-booking-form { flex-direction: column; gap: 0; align-items: stretch; max-width: none; margin: 0; }
.lcb-details-sidebar-bookingform .lcb-booking-form-main { gap: 18px; background: none; border: none; padding: 0; border-radius: 0; }
.lcb-details-sidebar-bookingform .lcb-booking-step { margin: 0; }
.lcb-details-sidebar-bookingform .lcb-booking-step h3 {
	font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: #999;
	margin: 0 0 10px; font-weight: 700;
}
.lcb-details-sidebar-bookingform .lcb-search-row { flex-direction: column; gap: 10px; margin: 0; }
.lcb-details-sidebar-bookingform .lcb-field { gap: 4px; flex: 1 1 auto; min-width: 0; }
.lcb-details-sidebar-bookingform .lcb-field label { font-size: 12px; color: #666; }
.lcb-details-sidebar-bookingform .lcb-field input,
.lcb-details-sidebar-bookingform .lcb-field select,
.lcb-details-sidebar-bookingform .lcb-field textarea {
	padding: 9px 10px; font-size: 13px; border-radius: 6px; width: 100%; box-sizing: border-box; height: auto;
}
.lcb-details-sidebar-bookingform .lcb-search-row,
.lcb-details-sidebar-bookingform .lcb-field { margin-bottom: 0; }
.lcb-details-sidebar-bookingform .lcb-checkbox-inline { font-size: 12px; }
.lcb-details-sidebar-bookingform .lcb-extras-list { gap: 8px; }
.lcb-details-sidebar-bookingform .lcb-extra-item { font-size: 13px; }
.lcb-details-sidebar-bookingform .lcb-booking-summary {
	position: static; width: 100%; padding: 14px 0 0; border: none; box-shadow: none;
	border-top: 1px solid #ececec; margin-top: 4px;
}
.lcb-details-sidebar-bookingform .lcb-summary-lines > div { font-size: 13px; }
.lcb-details-sidebar-bookingform .lcb-btn-large { width: 100%; padding: 12px 16px; font-size: 14px; margin-top: 4px; }
.lcb-details-sidebar-bookingform .lcb-form-error { font-size: 12px; }
.lcb-details-sidebar-bookingform .lcb-step-label { display: none; }
.lcb-details-sidebar-bookingform .lcb-step-number { width: 22px; height: 22px; font-size: 11px; }
.lcb-details-sidebar-bookingform .lcb-step-dot:not(:last-child)::after { top: 11px; }
.lcb-details-sidebar-bookingform .lcb-step-actions .lcb-btn { min-width: 0; flex: 1; font-size: 13px; padding: 9px 12px; }

/* Améliorations générales de finition (ombres douces, hiérarchie visuelle plus nette). */
.lcb-details-sidebar { box-shadow: 0 4px 20px rgba(0,0,0,.06); }
.lcb-vehicle-card { transition: box-shadow .2s ease, transform .2s ease; }
.lcb-vehicle-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,.08); transform: translateY(-2px); }
.lcb-btn { transition: opacity .15s ease, transform .1s ease; }
.lcb-btn:hover { opacity: .9; }
.lcb-btn-primary:active { transform: scale(.98); }

/* =====================================================================
   SÉLECTEUR DE DATES (Flatpickr) : thème Marou — sobre, arrondi, aéré.
   Noir = sélection, or = accent (aujourd'hui, survol), heure en grand.
   ===================================================================== */
.lcb-field input.lcb-dt-input { cursor: pointer; background-color: #fff; padding-right: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 9.5h18M8 3v3M16 3v3'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 14px center; background-size: 18px; }
.lcb-field input.lcb-dt-input.active, .lcb-field input.lcb-dt-input:focus { border-color: #111; box-shadow: 0 0 0 3px rgba(17,17,17,.08); }

.flatpickr-calendar.lcb-datepicker { --lcb-dp-ink: #111; --lcb-dp-gold: #cf9a3a; --lcb-dp-soft: #f6f2ea; --lcb-dp-muted: #9a9a9a;
	width: 316px; padding: 14px; border: 1px solid #ececec; border-radius: 18px; background: #fff; font-family: inherit;
	box-shadow: 0 24px 60px -20px rgba(17,17,17,.28), 0 4px 14px rgba(17,17,17,.06); }
.flatpickr-calendar.lcb-datepicker.open { animation: lcbDpIn .22s cubic-bezier(.2,.8,.2,1); }
@keyframes lcbDpIn { from { opacity: 0; transform: translateY(6px) scale(.985); } to { opacity: 1; transform: none; } }
.flatpickr-calendar.lcb-datepicker::before, .flatpickr-calendar.lcb-datepicker::after { display: none; }
.lcb-datepicker .flatpickr-months { align-items: center; margin-bottom: 8px; }
.lcb-datepicker .flatpickr-months .flatpickr-month { height: 40px; color: var(--lcb-dp-ink); }
.lcb-datepicker .flatpickr-current-month { padding-top: 9px; font-size: 16px; font-weight: 600; }
.lcb-datepicker .flatpickr-current-month span.cur-month { font-weight: 600; text-transform: capitalize; }
.lcb-datepicker .flatpickr-current-month .numInputWrapper { width: 6ch; }
.lcb-datepicker .flatpickr-current-month input.cur-year { font-weight: 600; }
.lcb-datepicker .flatpickr-months .flatpickr-prev-month, .lcb-datepicker .flatpickr-months .flatpickr-next-month {
	top: 14px; height: 34px; width: 34px; padding: 8px; border-radius: 50%; color: var(--lcb-dp-ink); transition: background .2s; }
.lcb-datepicker .flatpickr-months .flatpickr-prev-month { left: 14px; }
.lcb-datepicker .flatpickr-months .flatpickr-next-month { right: 14px; }
.lcb-datepicker .flatpickr-months .flatpickr-prev-month:hover, .lcb-datepicker .flatpickr-months .flatpickr-next-month:hover { background: var(--lcb-dp-soft); color: var(--lcb-dp-ink); }
.lcb-datepicker .flatpickr-months .flatpickr-prev-month svg, .lcb-datepicker .flatpickr-months .flatpickr-next-month svg { width: 18px; height: 18px; fill: none; }
.lcb-datepicker .flatpickr-prev-month.flatpickr-disabled { opacity: .25; }
.lcb-datepicker .flatpickr-innerContainer, .lcb-datepicker .flatpickr-rContainer, .lcb-datepicker .flatpickr-days, .lcb-datepicker .dayContainer { width: 100%; min-width: 0; max-width: none; }
.lcb-datepicker span.flatpickr-weekday { color: var(--lcb-dp-muted); font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: .04em; }
.lcb-datepicker .flatpickr-day { max-width: none; height: 40px; line-height: 38px; margin: 1px 0; border-radius: 12px; border: 1px solid transparent; color: var(--lcb-dp-ink); font-size: 14px; transition: background .15s, color .15s; }
.lcb-datepicker .flatpickr-day:hover, .lcb-datepicker .flatpickr-day:focus { background: var(--lcb-dp-soft); border-color: transparent; }
.lcb-datepicker .flatpickr-day.today { border-color: var(--lcb-dp-gold); font-weight: 600; }
.lcb-datepicker .flatpickr-day.today:hover { background: var(--lcb-dp-gold); color: #fff; }
.lcb-datepicker .flatpickr-day.selected, .lcb-datepicker .flatpickr-day.selected:hover { background: var(--lcb-dp-ink); border-color: var(--lcb-dp-ink); color: #fff; font-weight: 600; }
.lcb-datepicker .flatpickr-day.prevMonthDay, .lcb-datepicker .flatpickr-day.nextMonthDay { color: #cfcfcf; }
.lcb-datepicker .flatpickr-day.flatpickr-disabled, .lcb-datepicker .flatpickr-day.flatpickr-disabled:hover { color: #d6d6d6; background: transparent; text-decoration: line-through; text-decoration-color: rgba(0,0,0,.12); }
.flatpickr-calendar.lcb-datepicker.hasTime .flatpickr-time, .lcb-datepicker .flatpickr-time { overflow: visible; margin-top: 10px; border-top: 1px solid #f0f0f0 !important; padding-top: 12px; height: auto; max-height: none; line-height: 1; }
.flatpickr-calendar.lcb-datepicker.hasTime .flatpickr-time { height: auto; max-height: none; }
.lcb-datepicker .flatpickr-time .numInputWrapper { height: 46px; background: var(--lcb-dp-soft); border-radius: 12px; }
.lcb-datepicker .flatpickr-time input { height: 46px; font-size: 20px; font-weight: 600; color: var(--lcb-dp-ink); background: transparent; }
.lcb-datepicker .flatpickr-time input:hover, .lcb-datepicker .flatpickr-time input:focus { background: transparent; }
.lcb-datepicker .flatpickr-time .flatpickr-time-separator { height: 46px; line-height: 46px; padding: 0 6px; font-weight: 600; color: var(--lcb-dp-ink); }
.lcb-datepicker .flatpickr-time .numInputWrapper span { border: 0; opacity: .5; }
.lcb-datepicker .flatpickr-time .numInputWrapper span:hover { background: transparent; opacity: 1; }
@media (max-width: 480px) {
	.flatpickr-calendar.lcb-datepicker { width: calc(100vw - 32px) !important; max-width: 340px; }
}

/* =====================================================================
   ÉTAPE « VOS INFORMATIONS » : champs modernes, espacement resserré,
   labels flottants à l'intérieur du champ, case CGV personnalisée.
   ===================================================================== */
.lcb-booking-form [data-step="customer"] .lcb-search-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; margin: 0 0 14px; }
.lcb-booking-form [data-step="customer"] .lcb-field { margin: 0; }
.lcb-booking-form [data-step="customer"] > .lcb-field { margin-bottom: 14px; }
.lcb-booking-form [data-step="customer"] .lcb-floating input,
.lcb-booking-form [data-step="customer"] .lcb-floating textarea {
	height: 58px; padding: 24px 16px 8px; border: 1px solid #e4e4e4 !important; border-radius: 12px !important;
	background: #fafafa !important; color: #111; font-size: 15px; box-shadow: none;
	transition: border-color .2s, background .2s, box-shadow .2s;
}
.lcb-booking-form [data-step="customer"] .lcb-floating textarea { height: auto; min-height: 104px; padding-top: 28px; resize: vertical; }
.lcb-booking-form [data-step="customer"] .lcb-floating input:hover,
.lcb-booking-form [data-step="customer"] .lcb-floating textarea:hover { border-color: #cfcfcf !important; }
.lcb-booking-form [data-step="customer"] .lcb-floating input:focus,
.lcb-booking-form [data-step="customer"] .lcb-floating textarea:focus { border-color: #111 !important; background: #fff !important; box-shadow: 0 0 0 4px rgba(17,17,17,.06); outline: none; }
.lcb-booking-form [data-step="customer"] .lcb-floating label {
	position: absolute; left: 17px; top: 19px; margin: 0; padding: 0; background: transparent;
	font-size: 15px; font-weight: 400; color: #8d8d8d; pointer-events: none; transform-origin: left top;
	transition: top .18s ease, font-size .18s ease, color .18s ease, letter-spacing .18s ease;
}
.lcb-booking-form [data-step="customer"] .lcb-floating input:focus + label,
.lcb-booking-form [data-step="customer"] .lcb-floating input:not(:placeholder-shown) + label,
.lcb-booking-form [data-step="customer"] .lcb-floating textarea:focus + label,
.lcb-booking-form [data-step="customer"] .lcb-floating textarea:not(:placeholder-shown) + label {
	top: 9px; font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #6b6b6b; background: transparent;
}
.lcb-booking-form [data-step="customer"] .lcb-floating input:focus + label,
.lcb-booking-form [data-step="customer"] .lcb-floating textarea:focus + label { color: #111; }
.lcb-booking-form [data-step="customer"] .lcb-floating input:user-invalid { border-color: #d14343 !important; }

/* Adresse de livraison : apparaît en douceur, mise en avant par un liseré or. */
.lcb-delivery-address[hidden] { display: none !important; }
.lcb-booking-form [data-step="customer"] .lcb-delivery-address { animation: lcbFieldIn .3s ease; }
.lcb-booking-form [data-step="customer"] .lcb-delivery-address textarea { min-height: 84px; border-left: 3px solid #cf9a3a !important; }
@keyframes lcbFieldIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* Case « J'accepte les conditions générales ». */
.lcb-booking-form [data-step="customer"] .lcb-checkbox-inline { gap: 10px; margin: 6px 0 22px; font-size: 14px; color: #444; line-height: 1.5; cursor: pointer; }
.lcb-booking-form [data-step="customer"] .lcb-checkbox-inline input[type="checkbox"] {
	appearance: none; -webkit-appearance: none; flex: none; width: 20px; height: 20px; margin: 0; border: 1.5px solid #bdbdbd; border-radius: 6px;
	background: #fff center / 12px no-repeat; cursor: pointer; transition: background-color .15s, border-color .15s;
}
.lcb-booking-form [data-step="customer"] .lcb-checkbox-inline input[type="checkbox"]:checked {
	background-color: #111; border-color: #111;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
.lcb-booking-form [data-step="customer"] .lcb-checkbox-inline input[type="checkbox"]:focus-visible { outline: 2px solid #111; outline-offset: 2px; }
.lcb-booking-form [data-step="customer"] .lcb-checkbox-inline a { color: #111 !important; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: #cf9a3a; }
.lcb-booking-form [data-step="customer"] .lcb-checkbox-inline a:hover { text-decoration-color: #111; }

@media (max-width: 600px) {
	.lcb-booking-form [data-step="customer"] .lcb-search-row { grid-template-columns: 1fr; gap: 12px; margin-bottom: 12px; }
}

/* =====================================================================
   ÉTAPE « VOTRE TRAJET » : même style que « Vos informations » —
   libellé en petites majuscules à l'intérieur du champ, fond gris clair.
   ===================================================================== */
.lcb-booking-form [data-step="trip"] .lcb-search-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; margin: 0 0 14px; }
.lcb-booking-form [data-step="trip"] .lcb-field { position: relative; margin: 0; gap: 0; }
.lcb-booking-form [data-step="trip"] .lcb-field > label {
	position: absolute; top: 9px; left: 17px; z-index: 2; margin: 0; pointer-events: none;
	font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #6b6b6b; transition: color .18s;
}
.lcb-booking-form [data-step="trip"] .lcb-field:focus-within > label { color: #111; }
.lcb-booking-form [data-step="trip"] .lcb-field select,
.lcb-booking-form [data-step="trip"] .lcb-field input.lcb-dt-input {
	height: 58px; padding: 24px 44px 8px 16px; border: 1px solid #e4e4e4 !important; border-radius: 12px !important;
	background-color: #fafafa !important; color: #111; font-size: 15px; line-height: 1.3; box-shadow: none;
	transition: border-color .2s, background-color .2s, box-shadow .2s;
}
.lcb-booking-form [data-step="trip"] .lcb-field select {
	appearance: none; -webkit-appearance: none; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: right 16px center !important; background-size: 16px !important;
}
.lcb-booking-form [data-step="trip"] .lcb-field input.lcb-dt-input { background-position: right 16px center; }
.lcb-booking-form [data-step="trip"] .lcb-field input.lcb-dt-input::placeholder { color: #9a9a9a; }
.lcb-booking-form [data-step="trip"] .lcb-field select:hover,
.lcb-booking-form [data-step="trip"] .lcb-field input.lcb-dt-input:hover { border-color: #cfcfcf !important; }
.lcb-booking-form [data-step="trip"] .lcb-field select:focus,
.lcb-booking-form [data-step="trip"] .lcb-field input.lcb-dt-input:focus,
.lcb-booking-form [data-step="trip"] .lcb-field input.lcb-dt-input.active { border-color: #111 !important; background-color: #fff !important; box-shadow: 0 0 0 4px rgba(17,17,17,.06); outline: none; }
.lcb-booking-form [data-step="trip"] .lcb-step-actions { margin-top: 10px; }

@media (max-width: 600px) {
	.lcb-booking-form [data-step="trip"] .lcb-search-row { grid-template-columns: 1fr; gap: 12px; margin-bottom: 12px; }
}

/* =====================================================================
   FORMULAIRE DE CONTACT (Contact Form 7) — même langage visuel que le
   formulaire de réservation : champs gris clair arrondis, focus noir.
   ===================================================================== */
.mlc-cf { display: flex; flex-direction: column; gap: 16px; }
.mlc-cf-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.mlc-cf-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.mlc-cf-field > label { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #555; }
.mlc-cf .wpcf7-form-control-wrap { display: block; }
.mlc-cf input[type="text"], .mlc-cf input[type="email"], .mlc-cf input[type="tel"], .mlc-cf input[type="date"], .mlc-cf select, .mlc-cf textarea {
	width: 100%; box-sizing: border-box; margin: 0; height: 52px; padding: 0 16px; border: 1px solid #e4e4e4; border-radius: 12px;
	background-color: #fafafa; color: #111; font: inherit; font-size: 15px; line-height: 1.4; box-shadow: none; outline: none;
	transition: border-color .2s, background-color .2s, box-shadow .2s;
}
.mlc-cf textarea { height: auto; min-height: 130px; padding: 14px 16px; resize: vertical; }
.mlc-cf select { appearance: none; -webkit-appearance: none; padding-right: 44px; cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-position: right 16px center; background-size: 16px; }
.mlc-cf input::placeholder, .mlc-cf textarea::placeholder { color: #a3a3a3; }
.mlc-cf input:hover, .mlc-cf select:hover, .mlc-cf textarea:hover { border-color: #cfcfcf; }
.mlc-cf input:focus, .mlc-cf select:focus, .mlc-cf textarea:focus { border-color: #111; background-color: #fff; box-shadow: 0 0 0 4px rgba(17,17,17,.06); }
.mlc-cf .wpcf7-not-valid { border-color: #d14343 !important; background-color: #fff8f8 !important; }
.mlc-cf .wpcf7-not-valid-tip { margin-top: 6px; font-size: 12px; color: #d14343; }

.mlc-cf-consent { font-size: 13px; line-height: 1.5; color: #555; }
.mlc-cf-consent .wpcf7-list-item { margin: 0; }
.mlc-cf-consent label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.mlc-cf-consent input[type="checkbox"] { appearance: none; -webkit-appearance: none; flex: none; width: 20px; height: 20px; margin: 0; border: 1.5px solid #bdbdbd; border-radius: 6px; background: #fff center / 12px no-repeat; cursor: pointer; transition: background-color .15s, border-color .15s; }
.mlc-cf-consent input[type="checkbox"]:checked { background-color: #111; border-color: #111;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E"); }

.mlc-cf-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 20px; margin-top: 4px; }
.mlc-cf input.wpcf7-submit { height: auto; width: auto; padding: 16px 30px; border: 0; border-radius: 12px; background: #111; color: #fff; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; transition: background .25s, transform .25s, box-shadow .25s; }
.mlc-cf input.wpcf7-submit:hover { background: #D39634; transform: translateY(-2px); box-shadow: 0 12px 24px -12px rgba(211,150,52,.7); }
.mlc-cf input.wpcf7-submit:disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; }
.mlc-cf .wpcf7-spinner { margin: 0; }
.mlc-cf-note { font-size: 13px; color: #8a8a8a; }

.wpcf7 form .wpcf7-response-output { margin: 18px 0 0; padding: 14px 16px; border: 0 !important; border-radius: 12px; font-size: 14px; }
.wpcf7 form.sent .wpcf7-response-output { background: #eaf7ef; color: #1c6b3a; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output { background: #fdf3e3; color: #8a5a12; }
.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output, .wpcf7 form.spam .wpcf7-response-output { background: #fdecec; color: #a12d2d; }

@media (max-width: 600px) {
	.mlc-cf-row { grid-template-columns: 1fr; }
	.mlc-cf input.wpcf7-submit { width: 100%; }
}

/* =====================================================================
   PAGE CONTACT — finitions premium (panneau sombre, accents or)
   ===================================================================== */
.mlc-contact-panel { position: relative; overflow: hidden; isolation: isolate; }
.mlc-contact-panel::before { content: ""; position: absolute; z-index: -1; top: -140px; right: -160px; width: 420px; height: 420px; border-radius: 50%;
	background: radial-gradient(circle, rgba(211,150,52,.28) 0%, rgba(211,150,52,0) 68%); pointer-events: none; }
.mlc-contact-panel::after { content: ""; position: absolute; z-index: -1; inset: 0; border-radius: inherit; pointer-events: none;
	background: linear-gradient(90deg, rgba(211,150,52,0) 0%, rgba(211,150,52,.9) 50%, rgba(211,150,52,0) 100%) top / 100% 1px no-repeat; }
.mlc-contact-item .elementor-icon { transition: background-color .3s, color .3s, transform .3s; }
.mlc-contact-item:hover .elementor-icon { background-color: #D39634 !important; color: #111 !important; fill: #111 !important; transform: rotate(-8deg) scale(1.06); }
.mlc-contact-item .elementor-icon-box-title a { color: inherit; }
.mlc-contact-list .mlc-contact-item:last-child { border-bottom: 0 !important; }
.mlc-form-card { position: relative; }
.mlc-form-card::before { content: ""; position: absolute; top: 0; left: 52px; width: 64px; height: 3px; border-radius: 0 0 3px 3px; background: #D39634; }
@media (max-width: 767px) { .mlc-form-card::before { left: 20px; } }

/* Apparitions au défilement (activées par public.js via html.mlc-anim). */
.mlc-anim .mlc-reveal--clip { clip-path: inset(0 0 100% 0 round 24px); transition: clip-path 1.15s cubic-bezier(.77,0,.18,1); }
.mlc-anim .mlc-reveal--clip.is-in { clip-path: inset(0 0 0 0 round 24px); }
.mlc-anim .mlc-reveal--rise { opacity: 0; transform: translateY(70px) scale(.97); filter: blur(8px);
	transition: opacity .9s ease .2s, transform 1.2s cubic-bezier(.2,.8,.2,1) .2s, filter .9s ease .2s; }
.mlc-anim .mlc-reveal--rise.is-in { opacity: 1; transform: none; filter: none; }
.mlc-anim .mlc-reveal--clip .mlc-reveal-item { opacity: 0; transform: translateX(-22px);
	transition: opacity .6s ease, transform .8s cubic-bezier(.2,.8,.2,1); transition-delay: calc(.55s + var(--i, 0) * 80ms); }
.mlc-anim .mlc-reveal--rise .mlc-cf-row, .mlc-anim .mlc-reveal--rise .mlc-cf > .mlc-cf-field,
.mlc-anim .mlc-reveal--rise .mlc-cf-consent, .mlc-anim .mlc-reveal--rise .mlc-cf-actions { opacity: 0; transform: translateY(16px);
	transition: opacity .6s ease, transform .7s cubic-bezier(.2,.8,.2,1); transition-delay: calc(.6s + var(--i, 0) * 90ms); }
.mlc-anim .is-in .mlc-reveal-item, .mlc-anim .is-in .mlc-cf-row, .mlc-anim .is-in .mlc-cf > .mlc-cf-field,
.mlc-anim .is-in .mlc-cf-consent, .mlc-anim .is-in .mlc-cf-actions { opacity: 1; transform: none; }

/* =====================================================================
   PAGES LÉGALES (CGV, confidentialité) — lecture confortable + sommaire
   ===================================================================== */
.mlc-legal { font-family: Poppins, sans-serif; font-size: 15.5px; line-height: 1.85; color: #4a4a4a; }
.mlc-legal > p:first-child { display: inline-flex; margin: 0 0 26px; padding: 7px 14px; border-radius: 999px; background: #f6f1e7; color: #8a6420; font-size: 13px; line-height: 1.4; }
.mlc-legal > p:first-child em { font-style: normal; }
.mlc-legal h2 { counter-increment: mlcLegal; position: relative; margin: 52px 0 14px; padding-top: 34px; border-top: 1px solid #ececec;
	font-family: "Lexend Deca", sans-serif; font-size: 24px !important; font-weight: 600; line-height: 1.3; color: #111; scroll-margin-top: 120px; }
.mlc-legal h2:first-of-type { margin-top: 26px; }
.mlc-legal p { margin: 0 0 14px; }
.mlc-legal ul, .mlc-legal ol { margin: 0 0 18px; padding-left: 0; list-style: none; }
.mlc-legal li { position: relative; margin: 0 0 8px; padding-left: 22px; }
.mlc-legal li::before { content: ""; position: absolute; left: 4px; top: .78em; width: 7px; height: 7px; border-radius: 50%; background: #D39634; }
.mlc-legal strong { color: #111; font-weight: 600; }
.mlc-legal a { color: #111; text-decoration: underline; text-decoration-color: #D39634; text-underline-offset: 3px; }

.mlc-legal-side { position: sticky !important; top: 110px; align-self: flex-start; }
.mlc-legal-toc { padding: 26px 24px; border: 1px solid #ececec; border-radius: 20px; background: #fff; box-shadow: 0 24px 60px -36px rgba(17,17,17,.25); }
.mlc-legal-toc__titre { margin: 0 0 14px; font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #D39634; }
.mlc-legal-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: mlcToc; }
.mlc-legal-toc li { counter-increment: mlcToc; margin: 0; }
.mlc-legal-toc a { position: relative; display: block; padding: 8px 0 8px 32px; font-size: 13.5px; line-height: 1.45; color: #6b6b6b; text-decoration: none; transition: color .25s, padding .3s; }
.mlc-legal-toc a::before { content: counter(mlcToc, decimal-leading-zero); position: absolute; left: 0; top: 8px; font-size: 11px; font-weight: 600; color: #b8b8b8; transition: color .25s; }
.mlc-legal-toc a:hover, .mlc-legal-toc a.is-active { color: #111; padding-left: 36px; }
.mlc-legal-toc a.is-active::before { color: #D39634; }
.mlc-legal-help { margin-top: 18px; padding: 24px; border-radius: 20px; background: #111; color: #bdbdbd; font-size: 13.5px; line-height: 1.6; }
.mlc-legal-help p { margin: 0 0 14px; }
.mlc-legal-help .mlc-legal-help__t { margin: 0 0 6px; font-family: "Lexend Deca", sans-serif; font-size: 18px; font-weight: 600; color: #fff; }
.mlc-legal-help a { display: inline-flex; padding: 11px 18px; border-radius: 10px; background: #D39634; color: #111 !important; font-weight: 600; text-decoration: none; transition: background .25s; }
.mlc-legal-help a:hover { background: #fff; }
@media (max-width: 1024px) {
	.mlc-legal-side { position: static !important; }
	.mlc-legal-toc ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
}
@media (max-width: 600px) {
	.mlc-legal-toc ol { grid-template-columns: 1fr; }
	.mlc-legal h2 { font-size: 20px !important; }
}

/* Bloc d'appel à l'action pleine largeur avec marges latérales (pages services) :
   largeur = 100 % moins les marges, pour éviter le défilement horizontal. */
.e-con.e-parent.mlc-cta-panel { --width: calc(100% - 40px); max-width: calc(100% - 40px); }
@media (max-width: 767px) { .e-con.e-parent.mlc-cta-panel { --width: calc(100% - 32px); max-width: calc(100% - 32px); margin-left: 16px !important; margin-right: 16px !important; } }
