/**
 * Formulaire de demande de devis.
 *
 * Habillé à la charte de Leocleme Prestige : crème sur fond sombre translucide,
 * pour se poser sur l'image de fond de la page. La teinte arrive du PHP, dérivée
 * de la couleur de la structure — la même mécanique que le planning.
 */

.lcg-devis {
	--lcg-teinte-rgb: 255, 225, 165;
	--lcg-teinte: rgb(var(--lcg-teinte-rgb));
	--lcg-trait: rgba(var(--lcg-teinte-rgb), .42);
	--lcg-trait-fort: rgba(var(--lcg-teinte-rgb), .8);
	--lcg-voile: rgba(0, 0, 0, .30);
	--lcg-voile-fort: rgba(0, 0, 0, .48);
	--lcg-doux: rgba(var(--lcg-teinte-rgb), .86);

	max-width: 1180px;
	margin: 0 auto;
	padding: 18px;
	color: var(--lcg-teinte);
	font-size: 17px;
	line-height: 1.45;
}

.lcg-devis * { box-sizing: border-box; }

.lcg-devis-titre {
	text-align: center;
	font-weight: 400;
	/* Marges égales au-dessus et au-dessous : le titre respire de la même façon
	   des deux côtés, sans dépendre du remplissage que le thème ajoute autour. */
	margin: 0 0 30px;
	color: var(--lcg-teinte);
}

.lcg-devis.lcg-avec-titre {
	padding-top: 30px;
}

.lcg-carte {
	background: var(--lcg-voile);
	border: 1px solid var(--lcg-trait);
	border-radius: 8px;
	padding: 20px;
	margin-bottom: 14px;
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
}

.lcg-carte h3 {
	font-weight: 400;
	text-align: center;
	margin: 0 0 16px;
	font-size: 25px;
	color: var(--lcg-teinte);
}

.lcg-colonne h4 {
	text-transform: uppercase;
	font-size: 20px;
	letter-spacing: 1px;
	font-weight: 400;
	text-align: center;
	margin: 0 0 14px;
	color: var(--lcg-teinte);
}

.lcg-colonnes {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

.lcg-colonne {
	border: 1px solid rgba(var(--lcg-teinte-rgb), .34);
	border-radius: 8px;
	padding: 18px 14px;
	background: rgba(0, 0, 0, .20);
}

.lcg-duo {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}

/* ---------- Champs ---------- */

/*
 * L'étiquette reste visible en permanence, au-dessus du champ. L'ancien formulaire
 * s'appuyait sur le texte grisé à l'intérieur, qui disparaît dès qu'on clique :
 * on ne sait alors plus ce qu'on est en train de remplir.
 */

.lcg-champ {
	display: block;
	margin-bottom: 12px;
}

.lcg-champ > span {
	display: block;
	font-size: 14px;
	/* Teinte pleine, et non atténuée : à 70 % d'opacité sur un fond clair,
	   le crème vire au gris et le formulaire perd son identité. */
	color: var(--lcg-teinte);
	margin-bottom: 5px;
	letter-spacing: .3px;
}

.lcg-champ > span em {
	font-style: normal;
	color: var(--lcg-teinte);
}

.lcg-devis input[type="text"],
.lcg-devis input[type="email"],
.lcg-devis input[type="date"],
.lcg-devis input[type="time"],
.lcg-devis select,
.lcg-devis textarea {
	width: 100%;
	display: block;
	background: rgba(0, 0, 0, .48);
	color: var(--lcg-teinte);
	border: 1px solid var(--lcg-trait);
	border-radius: 5px;
	padding: 12px 14px;
	font: inherit;
	letter-spacing: .4px;
	color-scheme: dark;
}

.lcg-devis textarea { resize: vertical; min-height: 84px; }

.lcg-devis input:focus,
.lcg-devis select:focus,
.lcg-devis textarea:focus {
	outline: 2px solid var(--lcg-trait-fort);
	outline-offset: 1px;
	border-color: var(--lcg-teinte);
}

.lcg-devis select option { background: #111; color: var(--lcg-teinte); }

.lcg-devis input[aria-invalid="true"] { border-color: #ff9f95; }

.lcg-coche {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin: 0 auto 14px;
	text-align: center;
	cursor: pointer;
}

.lcg-coche input {
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
	accent-color: var(--lcg-teinte);
	cursor: pointer;
}

/* ---------- Boutons ---------- */

.lcg-devis button {
	font: inherit;
	cursor: pointer;
	background: rgba(0, 0, 0, .44);
	color: var(--lcg-teinte);
	border: 1px solid var(--lcg-trait);
	border-radius: 5px;
	padding: 11px 14px;
	letter-spacing: .4px;
	transition: background .15s ease;
}

.lcg-devis button:hover { background: rgba(var(--lcg-teinte-rgb), .16); }

.lcg-bascules { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.lcg-bascule[aria-pressed="true"] {
	background: rgba(var(--lcg-teinte-rgb), .20);
	border-color: var(--lcg-trait-fort);
}

.lcg-ajout { width: 100%; margin-top: 10px; }

.lcg-devis-envoi {
	display: block;
	width: 280px;
	margin: 18px auto 0;
	background: linear-gradient(90deg, rgba(var(--lcg-teinte-rgb), 1), rgba(var(--lcg-teinte-rgb), .72)) !important;
	color: #131313 !important;
	border: 0 !important;
	font-size: 18px;
	padding: 14px !important;
}

.lcg-devis-envoi[disabled] { opacity: .6; cursor: progress; }

/* ---------- Blocs annexes ---------- */

.lcg-lien-transport {
	border: 1px solid rgba(var(--lcg-teinte-rgb), .32);
	border-radius: 7px;
	padding: 12px;
	margin: 10px 0;
}

.lcg-repli { margin-top: 12px; }

.lcg-etape {
	border: 1px solid rgba(var(--lcg-teinte-rgb), .30);
	border-radius: 7px;
	padding: 12px;
	margin-top: 12px;
}

.lcg-avis {
	line-height: 1.65;
}

.lcg-avis,
.lcg-note,
.lcg-resume {
	background: var(--lcg-voile-fort);
	border: 1px solid var(--lcg-trait);
	border-radius: 6px;
	padding: 12px 15px;
	text-align: center;
	margin: 0 0 14px;
	font-size: 15px;
}

.lcg-note { font-size: 14px; color: var(--lcg-doux); }

.lcg-resume { font-size: 17px; }

.lcg-carte-geo {
	width: 100%;
	height: 340px;
	margin: 16px 0 14px;
	border: 1px solid var(--lcg-trait);
	border-radius: 8px;
	background: var(--lcg-voile-fort);
}

.lcg-retour {
	border: 1px solid var(--lcg-trait);
	border-radius: 8px;
	padding: 16px;
	margin-top: 16px;
	background: rgba(0, 0, 0, .16);
}

.lcg-devis-erreur {
	background: rgba(180, 35, 24, .26);
	border: 1px solid rgba(255, 159, 149, .55);
	color: #ffd5d0;
	border-radius: 6px;
	padding: 13px 16px;
	margin: 16px 0 0;
	text-align: center;
}

.lcg-devis-reponse {
	background: var(--lcg-voile-fort);
	border: 1px solid var(--lcg-trait-fort);
	border-radius: 8px;
	padding: 22px;
	margin-top: 20px;
	text-align: center;
	font-size: 18px;
	line-height: 1.6;
}

.lcg-devis-reponse strong { font-size: 22px; display: block; margin: 10px 0; }
.lcg-devis-reponse a { color: var(--lcg-teinte); }

@media (max-width: 900px) {
	.lcg-colonnes,
	.lcg-duo,
	.lcg-bascules { grid-template-columns: 1fr; }

	.lcg-devis { padding: 12px; font-size: 16px; }
	.lcg-carte { padding: 15px 11px; }
	.lcg-devis-envoi { width: 100%; }
	.lcg-carte-geo { height: 280px; }
}


/* ---------- Choix de l'itinéraire ---------- */

/*
 * Le client voit les variantes et retient la sienne. C'est celle-là qui sera chiffrée :
 * plus de discussion après la course sur les kilomètres facturés.
 */

.lcg-itineraires-titre {
	display: block;
	font-size: 15px;
	color: var(--lcg-doux);
	margin-bottom: 10px;
}

.lcg-itineraires {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
}

.lcg-devis .lcg-itineraire {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 3px;
	text-align: left;
	padding: 10px 16px;
	line-height: 1.3;
}

.lcg-devis .lcg-itineraire[aria-pressed="true"] {
	background: rgba(var(--lcg-teinte-rgb), .20);
	border-color: var(--lcg-trait-fort);
}

.lcg-itineraire-voie {
	font-size: 15px;
}

.lcg-itineraire-mesure {
	font-size: 17px;
	font-variant-numeric: tabular-nums;
	letter-spacing: .5px;
}


@media (max-width: 900px) {
	.lcg-itineraires { flex-direction: column; }
	.lcg-devis .lcg-itineraire { width: 100%; align-items: center; }
}


/* ---------- Acceptation des conditions ---------- */

.lcg-devis .lcg-consentement {
	margin: 18px auto 0;
	max-width: 640px;
	font-size: 15px;
	line-height: 1.5;
}

.lcg-devis .lcg-consentement a {
	color: var(--lcg-teinte);
	text-decoration: underline;
}

.lcg-devis .lcg-consentement em {
	font-style: normal;
}


/* ---------- Rappel de marque ---------- */

.lcg-marque {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	padding: 0 4px 18px;
	margin-bottom: 6px;
	border-bottom: 1px solid rgba(var(--lcg-teinte-rgb), .25);
}

.lcg-marque-logo {
	max-height: 74px;
	width: auto;
	display: block;
}

.lcg-marque-nom {
	font-size: 24px;
	letter-spacing: .5px;
}

.lcg-marque-retour {
	color: var(--lcg-teinte);
	text-decoration: none;
	font-size: 15px;
	border: 1px solid rgba(var(--lcg-teinte-rgb), .5);
	border-radius: 5px;
	padding: 8px 14px;
	white-space: nowrap;
}

.lcg-marque-retour:hover {
	background: rgba(var(--lcg-teinte-rgb), .15);
}

@media (max-width: 700px) {
	.lcg-marque { justify-content: center; text-align: center; }
}

.lcg-devis .lcg-mentions {
	text-align: center;
	font-size: 14px;
	margin: 8px 0 0;
	opacity: .8;
}

.lcg-devis .lcg-mentions a {
	color: var(--lcg-teinte);
	text-decoration: underline;
}

.lcg-devis .lcg-accueil {
	text-align: center;
	font-size: 17px;
	line-height: 1.6;
	margin: 14px auto 18px;
	max-width: 720px;
	padding: 14px 18px;
	background: rgba(0, 0, 0, .34);
	border: 1px solid rgba(var(--lcg-teinte-rgb), .34);
	border-radius: 8px;
}


/* ---------- Variante « encadrés » ---------- */

/*
 * Pour les sites déjà très sombres, dont l'identité repose sur des encadrés dorés
 * sans remplissage — celui de Leocleme Prestige, notamment. Les panneaux s'effacent,
 * il ne reste que le trait et le fond de la page.
 */

.lcg-devis.lcg-voile-leger .lcg-carte {
	background: rgba(0, 0, 0, .12);
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.lcg-devis.lcg-voile-leger .lcg-colonne {
	background: transparent;
}

.lcg-devis.lcg-voile-leger .lcg-avis,
.lcg-devis.lcg-voile-leger .lcg-note,
.lcg-devis.lcg-voile-leger .lcg-resume {
	background: rgba(0, 0, 0, .22);
}

.lcg-devis.lcg-voile-leger input[type="text"],
.lcg-devis.lcg-voile-leger input[type="email"],
.lcg-devis.lcg-voile-leger input[type="date"],
.lcg-devis.lcg-voile-leger input[type="time"],
.lcg-devis.lcg-voile-leger select,
.lcg-devis.lcg-voile-leger textarea {
	background: rgba(0, 0, 0, .30);
}

/* ---------- Le mot avant l'envoi ---------- */

.lcg-devis-note {
	max-width: 720px;
	margin: 16px auto 0;
	padding: 14px 18px;
	text-align: center;
	font-size: 16px;
	line-height: 1.6;
	color: var(--lcg-teinte);
	background: rgba(0, 0, 0, .30);
	border: 1px solid rgba(var(--lcg-teinte-rgb), .40);
	border-radius: 8px;
}

.lcg-devis-note strong {
	display: block;
	margin-bottom: 4px;
}


/* Le formulaire épouse la largeur de son conteneur : c'est le thème du site qui
   décide, et le formulaire s'aligne alors sur le reste de la page. */
.lcg-devis.lcg-pleine-largeur {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

.lcg-itineraires-conseil {
	display: block;
	margin-top: 12px;
	font-size: 15px;
	line-height: 1.5;
	color: var(--lcg-doux);
	font-style: italic;
}

/* Avertissements de Google : fermeture saisonnière, péage, passage de frontière.
   Discret mais visible — c'est le genre d'information qui évite une mauvaise surprise. */
.lcg-itineraires-alerte {
	display: block;
	margin-top: 10px;
	font-size: 14px;
	line-height: 1.5;
	color: #ffd9a0;
}

.lcg-itineraires-mention {
	display: block;
	margin-top: 10px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--lcg-doux);
}
