/* ============================================================================
   LANDING PAC AIR/EAU — DIRECTION ARTISTIQUE "BLEU THERMIQUE"
   Remplace integralement /css/custom.css
   Charge APRES /demos/construction/construction.css (theme-head.php:26-27),
   donc les :root ci-dessous gagnent par ordre de cascade, sans !important.
   ============================================================================ */

/* ---------------------------------------------------------------------------
   1. TOKENS
   Bleu institutionnel = registre "energie / service public / ADEME", pas BTP.
   Ambre = seule note chaude (chauffage) et unique couleur d'ACTION.
   Vert = reserve aux mentions d'aide financiere (prime CEE, TVA).
   Ratios WCAG verifies en commentaire.
--------------------------------------------------------------------------- */
:root {
	--pac-blue-900: #072B41;	/* blanc dessus : 14.68:1 */
	--pac-blue-800: #0A3D62;	/* blanc dessus : 11.31:1 */
	--pac-blue-700: #0C4A6E;	/* THEME. blanc dessus 9.46:1 / sur blanc 9.46:1 */
	--pac-blue-600: #10527A;	/* blanc dessus : 8.37:1 */
	--pac-blue-500: #14708F;	/* blanc dessus : 5.61:1 — bordures actives, icones */
	--pac-blue-100: #D6E6F2;	/* sur blue-900 : 11.50:1 */
	--pac-blue-050: #EAF2F8;	/* blue-700 dessus : 8.36:1 — etat selectionne */

	--pac-amber-600: #D98407;	/* ink dessus : 5.57:1 — hover CTA */
	--pac-amber-500: #F5A524;	/* ink dessus : 7.90:1 — CTA. JAMAIS de blanc (2.04:1) */
	--pac-amber-050: #FEF5E4;	/* blue-700 dessus : 8.74:1 */

	--pac-green-700: #0F7A5A;	/* blanc dessus : 5.31:1 / sur blanc : 5.31:1 */
	--pac-green-050: #E8F5EF;

	--pac-ink:      #16222E;	/* sur blanc : 16.12:1 */
	--pac-ink-2:    #4A5A68;	/* sur blanc : 7.11:1 / sur surface : 6.67:1 */
	--pac-line:     #D8E0E7;
	--pac-danger:   #B3261E;	/* sur blanc : 6.54:1 (vs #c0392b a 5.44:1) */
	--pac-danger-bg:#FDECEA;
	--pac-surface:  #F5F8FA;

	--pac-r-sm: 8px;
	--pac-r:    14px;
	--pac-r-lg: 22px;

	/* Ombre a 3 couches : contact + portee + ambiance. Une carte blanche posee
	   sur un fond sombre a besoin des 3, sinon elle "flotte" en decoupe. */
	--pac-shadow-card:
		0 1px 2px rgba(7,43,65,.10),
		0 10px 24px -8px rgba(7,43,65,.30),
		0 40px 72px -32px rgba(7,43,65,.45);

	--pac-focus-ring: 0 0 0 3px #FFF, 0 0 0 6px var(--pac-blue-500);

	/* --- Surcharge des variables Canvas (construction.css:6-10) --- */
	--cnvs-themecolor: #0C4A6E;
	/* IMPERATIF : .bg-color / .bg-color-* utilisent rgba(var(--cnvs-themecolor-rgb),..)
	   (style.css:14194). Sans cette ligne, les badges resteraient orange. */
	--cnvs-themecolor-rgb: 12, 74, 110;

	--cnvs-body-font:    'Inter', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
	--cnvs-primary-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;

	--cnvs-heading-color: var(--pac-ink);
	--bs-body-color: var(--pac-ink-2);	/* Canvas n'expose pas --cnvs-body-color */
	--cnvs-line-height-content: 1.62;

	/* Confort de lecture 40-70 ans : base a 17px au lieu de 16px */
	--bs-body-font-size: 1.0625rem;
	--cnvs-font-size-h1: clamp(2rem, 1.4rem + 1.8vw, 2.75rem);
	--cnvs-font-size-h2: clamp(1.65rem, 1.3rem + 1.2vw, 2.125rem);
	--cnvs-font-size-h3: clamp(1.35rem, 1.15rem + 0.7vw, 1.625rem);
}

/* ---------------------------------------------------------------------------
   2. ACCESSIBILITE — anneau de focus
   style.css:13786-13789 applique `:active,:focus { outline:none !important }`
   sur TOUT le document : plus aucun focus clavier visible (WCAG 2.4.7, AA).
   On le restaure via :focus-visible, en battant le !important du theme.
--------------------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.choice:focus-visible,
.button:focus-visible,
.lead-card .check input:focus-visible {
	outline: 3px solid var(--pac-blue-500) !important;
	outline-offset: 2px !important;
	border-radius: var(--pac-r-sm);
}

/* ---------------------------------------------------------------------------
   3. TYPOGRAPHIE
   Une seule famille (Inter) : Roboto + Source Sans Pro sont deux sans-serif au
   squelette quasi identique — l'appairage ne cree aucune hierarchie, il coute
   8 fichiers de fontes pour rien. Ici la hierarchie vient du poids, de la
   taille et de la couleur.
   A faire aussi dans theme-head.php:21 :
   <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
--------------------------------------------------------------------------- */
body {
	font-size: var(--bs-body-font-size);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	color: var(--pac-ink-2);
	background: #FFF;
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4 {
	letter-spacing: -0.018em;
	line-height: 1.18;
	color: var(--pac-ink);
	font-weight: 700;
}

h1, .h1, .display-5 { line-height: 1.1; letter-spacing: -0.025em; }

.lead { font-size: 1.1875rem; line-height: 1.55; font-weight: 400; }

/* Chiffres alignes : code postal, m2, "5,5 %", "5 jours" */
.lead-card, .header-extras, .hero-stats { font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------------------
   4. LOGO INLINE (voir le SVG a poser dans theme-head.php:37-41)
--------------------------------------------------------------------------- */
#logo .pac-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; }
#logo .pac-logo svg { flex: 0 0 auto; display: block; }
#logo .pac-logo-txt { line-height: 1.05; }
#logo .pac-logo-txt b {
	display: block;
	font-size: 1.0625rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--pac-blue-800);
}
#logo .pac-logo-txt span {
	display: block;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--pac-ink-2);
}
#header { background-color: #FFF; border-bottom: 1px solid var(--pac-line); }

/* ---------------------------------------------------------------------------
   5. HERO — remplacement de la photo de chantier
   slider/1.jpg est une grue de chantier sur un batiment tertiaire : hors sujet,
   et le voile noir a .45 laisse le texte en op-08 a ~4.0:1 sur les zones
   claires du ciel (echec AA). On remplace par un fond 100 % CSS : degrade
   bleu profond + "champ thermique" en SVG inline (aucun asset a telecharger).
   HTML : retirer le style="background:url(...)" de index.php:10 et le
   <div class="video-overlay"> de index.php:11, puis ajouter class="pac-hero".
--------------------------------------------------------------------------- */
.pac-hero {
	position: relative;
	isolation: isolate;
	background:
		radial-gradient(120% 90% at 78% 12%, rgba(20,112,143,.55) 0%, rgba(20,112,143,0) 60%),
		radial-gradient(90% 70% at 8% 88%, rgba(245,165,36,.16) 0%, rgba(245,165,36,0) 62%),
		linear-gradient(158deg, #0A3D62 0%, #072B41 55%, #051E2F 100%);
	min-height: 0;
}

/* Trame "ondes de chaleur" : SVG inline en data-uri, ~0 octet reseau */
.pac-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: .5;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23BFE0F0' stroke-width='1.1' stroke-linecap='round' opacity='.30'%3E%3Cpath d='M0 40c20-14 40-14 60 0s40 14 60 0 40-14 60 0'/%3E%3Cpath d='M0 80c20-14 40-14 60 0s40 14 60 0 40-14 60 0'/%3E%3Cpath d='M0 120c20-14 40-14 60 0s40 14 60 0 40-14 60 0'/%3E%3C/g%3E%3C/svg%3E");
	background-size: 200px 200px;
	-webkit-mask-image: linear-gradient(105deg, transparent 0%, #000 45%, transparent 92%);
	        mask-image: linear-gradient(105deg, transparent 0%, #000 45%, transparent 92%);
}

.pac-hero { padding-block: clamp(2.25rem, 1rem + 5vw, 5rem); }
.pac-hero .hero-form-wrap { padding-block: 0 !important; }

/* Texte du hero : blanc plein sur un fond desormais maitrise (>= 10.9:1).
   On supprime l'effet de l'utilitaire .op-08 qui faisait tomber le chapo
   sous le seuil AA. */
.pac-hero .lead.op-08,
.pac-hero .op-08 { opacity: 1 !important; color: #D6E6F2; }	/* 11.50:1 sur blue-900 */

.pac-hero h1,
.pac-hero h2 { color: #FFF; text-wrap: balance; }

.pac-hero .badge.bg-color {
	background: rgba(245,165,36,.16) !important;
	color: #FBD68B !important;			/* ~9.4:1 sur le fond bleu */
	border: 1px solid rgba(245,165,36,.45);
	font-weight: 600;
	font-size: .75rem;
	padding: .5em .85em;
	border-radius: 999px;
}

/* Bandeau de reassurance du hero (index.php:18-22) */
.pac-hero .hero-stats { gap: 0; border-top: 1px solid rgba(214,230,242,.22); padding-top: 1.25rem; }
.pac-hero .hero-stats strong { color: #FFF !important; font-size: 1.5rem; letter-spacing: -0.02em; }
.pac-hero .hero-stats small { color: #B9D2E4; font-size: .8125rem; line-height: 1.3; display: block; max-width: 15ch; }
.pac-hero .hero-stats > div { padding-right: 1.75rem; }

/* ---------------------------------------------------------------------------
   6. CARTE FORMULAIRE
   Objectif : que la carte soit le seul objet "clair" de l'ecran, avec une
   hierarchie en 3 niveaux (titre > question > options) et une zone de
   consentement visuellement distincte du reste du formulaire.
--------------------------------------------------------------------------- */
.lead-card {
	background: #FFF;
	border-radius: var(--pac-r-lg);
	box-shadow: var(--pac-shadow-card);
	border: 1px solid rgba(255,255,255,.6);
	color: var(--pac-ink-2);
	position: relative;
}

/* Filet ambre en tete de carte : rappelle l'accent chaleur et "ouvre" la carte */
.lead-card::before {
	content: "";
	position: absolute;
	inset: 0 0 auto 0;
	height: 4px;
	border-radius: var(--pac-r-lg) var(--pac-r-lg) 0 0;
	background: linear-gradient(90deg, var(--pac-amber-500), var(--pac-blue-500));
}

.lead-card h3 {
	font-size: 1.1875rem;
	margin: 0;
	color: var(--pac-ink);
	letter-spacing: -0.015em;
}

#step-label {
	font-size: .8125rem;
	font-weight: 600;
	color: var(--pac-blue-700) !important;
	background: var(--pac-blue-050);
	border-radius: 999px;
	padding: .2rem .6rem;
	white-space: nowrap;
}

.lead-progress {
	height: 8px;
	background: var(--pac-blue-050);
	border-radius: 99px;
	overflow: hidden;
	margin-bottom: 1.25rem;
}

.lead-progress span {
	display: block;
	height: 100%;
	width: 10%;
	border-radius: 99px;
	background: linear-gradient(90deg, var(--pac-blue-600), var(--pac-blue-500));
	transition: width .3s cubic-bezier(.4,0,.2,1);
}

/* Enonce de la question — niveau 2 de la hierarchie */
.lead-card .step > p.fw-bold {
	font-size: 1.1875rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--pac-ink);
	letter-spacing: -0.012em;
}

/* ---------------------------------------------------------------------------
   7. BOUTONS DE CHOIX
   Cible tactile >= 56px, etat selectionne signale par 3 canaux redondants
   (couleur + epaisseur de bordure + pastille cochee) et non par la seule
   couleur — indispensable pour un public 40-70 ans et pour WCAG 1.4.1.
   L'ancien etat selectionne (texte #F18052 sur #fff6f1) mesurait 2.48:1.
--------------------------------------------------------------------------- */
.choices { display: grid; grid-template-columns: 1fr; gap: 10px; }
.choices.two { grid-template-columns: 1fr 1fr; }

.choice {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 14px 48px 14px 16px;
	text-align: left;
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--pac-ink);
	background: #FFF;
	border: 1.5px solid var(--pac-line);
	border-radius: var(--pac-r-sm);
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}

/* Pastille de selection, a droite : cible visuelle stable, ne bouge jamais */
.choice::after {
	content: "";
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 1.5px solid var(--pac-line);
	background: #FFF;
	transition: inherit;
}

@media (hover: hover) {
	.choice:hover {
		border-color: var(--pac-blue-500);
		background: var(--pac-blue-050);
	}
	.choice:hover::after { border-color: var(--pac-blue-500); }
}

.choice:active { transform: translateY(1px); }

.choice.is-on {
	border-color: var(--pac-blue-700);
	border-width: 2px;
	padding: 13.5px 47.5px 13.5px 15.5px;	/* compense les 0.5px de bordure */
	background: var(--pac-blue-050);		/* texte ink : 13.9:1 */
	font-weight: 600;
	box-shadow: 0 2px 8px rgba(12,74,110,.14);
}

.choice.is-on::after {
	border-color: var(--pac-blue-700);
	background: var(--pac-blue-700);
	/* coche blanche, SVG inline */
	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.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-size: 14px 14px;
	background-position: center;
	background-repeat: no-repeat;
}

/* ---------------------------------------------------------------------------
   8. CHAMPS DE SAISIE
   38px de haut en sortie de theme (padding .375rem) : trop court au pouce.
--------------------------------------------------------------------------- */
.lead-card .form-label {
	font-size: .875rem;
	font-weight: 600;
	color: var(--pac-ink);
	margin-bottom: .35rem;
}

.lead-card .form-control {
	--cnvs-input-btn-padding-y: .75rem;
	--cnvs-input-btn-padding-x: .875rem;
	--cnvs-input-btn-font-size: 1.0625rem;
	--cnvs-form-control-radius: var(--pac-r-sm);
	--cnvs-input-btn-border-color: var(--pac-line);
	--cnvs-input-btn-border-width: 1.5px;
	--cnvs-input-focus-border-color: var(--pac-blue-500);
	--cnvs-input-focus-box-shadow: 0 0 0 3px rgba(20,112,143,.20);
	min-height: 52px;
	color: var(--pac-ink);
}

/* iOS zoome sur tout champ < 16px : on ne descend jamais sous 1rem */
@media (max-width: 767.98px) {
	.lead-card .form-control { font-size: 1.0625rem; }
}

/* ---------------------------------------------------------------------------
   9. CONSENTEMENTS RGPD
   13px / #555 pour un texte qui doit rendre le consentement "eclaire" est
   un risque en soi. On passe a 14.4px / 1.55 / #4A5A68 (7.11:1) et on isole
   le bloc dans une surface dediee. Cases 22px : cliquables au pouce.
--------------------------------------------------------------------------- */
.lead-card .check {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: .9rem;
	line-height: 1.55;
	color: var(--pac-ink-2);
	margin: 0 0 12px;
	padding: 12px 14px;
	background: var(--pac-surface);
	border: 1px solid var(--pac-line);
	border-radius: var(--pac-r-sm);
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease;
}

.lead-card .check:last-of-type { margin-bottom: 0; }

.lead-card .check.required {
	border-left: 4px solid var(--pac-blue-700);
	background: #FFF;
}

.lead-card .check:has(input:checked) {
	border-color: var(--pac-blue-700);
	background: var(--pac-blue-050);
	color: var(--pac-ink);
}

.lead-card .check input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	margin: 1px 0 0;
	border: 2px solid var(--pac-ink-2);
	border-radius: 5px;
	background: #FFF;
	cursor: pointer;
	transition: background-color .12s ease, border-color .12s ease;
}

.lead-card .check input[type="checkbox"]:checked {
	background: var(--pac-blue-700) 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.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center / 15px 15px no-repeat;
	border-color: var(--pac-blue-700);
}

/* Marque "facultatif" : le prospect doit voir d'un coup d'oeil ce qui
   est obligatoire et ce qui ne l'est pas (consentement libre, RGPD). */
.lead-card .check:not(.required)::after {
	content: "facultatif";
	position: absolute;
}
.lead-card .check { position: relative; }
.lead-card .check:not(.required)::after {
	top: -9px;
	right: 12px;
	font-size: .6875rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--pac-ink-2);
	background: #FFF;
	padding: 0 6px;
	border-radius: 4px;
}

.lead-card .hp { position: absolute; left: -9999px; }

/* ---------------------------------------------------------------------------
   10. BOUTONS D'ACTION
   Le bouton de soumission est aujourd'hui `.button-small.button-black` :
   40px de haut, noir, visuellement identique au "Retour" a cote. C'est le
   bouton qui vaut le lead. On le remet en ambre pleine largeur (7.90:1),
   seul element chaud de la page.
--------------------------------------------------------------------------- */
.lead-card [type="submit"],
.pac-cta {
	--cnvs-btn-color: var(--pac-amber-500);
	background: var(--pac-amber-500) !important;
	color: var(--pac-ink) !important;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
	letter-spacing: -0.005em;
	text-transform: none;
	min-height: 56px;
	padding: 1rem 1.5rem !important;
	border: 0;
	border-radius: var(--pac-r-sm);
	box-shadow: 0 2px 0 var(--pac-amber-600), 0 6px 16px rgba(217,132,7,.30);
}

.lead-card [type="submit"]:hover,
.pac-cta:hover {
	background: var(--pac-amber-600) !important;
	color: var(--pac-ink) !important;
	box-shadow: 0 1px 0 #B36C05, 0 4px 12px rgba(217,132,7,.35);
	transform: translateY(1px);
}

.lead-card [type="submit"][disabled] { opacity: .6; box-shadow: none; cursor: progress; }

/* Le dernier ecran : le submit passe devant, "Retour" devient discret */
.lead-card .step:last-of-type .d-flex { flex-direction: column-reverse; gap: 12px; align-items: stretch; }
.lead-card .step:last-of-type [type="submit"] { width: 100%; }

/* Boutons "Retour" / "Continuer" : hierarchie secondaire assumee */
.lead-card .button.button-border {
	--cnvs-btn-color: transparent;
	color: var(--pac-ink-2) !important;
	border-color: var(--pac-line) !important;
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
	border-radius: var(--pac-r-sm);
}
.lead-card .button.button-border:hover {
	color: var(--pac-blue-700) !important;
	border-color: var(--pac-blue-700) !important;
	background: transparent !important;
}

/* Le "Continuer" de l'etape localisation reste une action primaire douce */
.lead-card [data-next] {
	--cnvs-btn-color: var(--pac-blue-700);
	background: var(--pac-blue-700) !important;
	color: #FFF !important;			/* 9.46:1 */
	min-height: 48px;
	border-radius: var(--pac-r-sm);
	text-transform: none;
	letter-spacing: 0;
	font-weight: 600;
}
.lead-card [data-next]:hover { background: var(--pac-blue-600) !important; }

/* ---------------------------------------------------------------------------
   11. MESSAGE D'ERREUR
   Actuellement une simple ligne rouge 14px sous un formulaire de 10 etapes :
   invisible si l'erreur porte sur un champ situe plus haut.
--------------------------------------------------------------------------- */
.lead-err {
	color: var(--pac-danger);		/* 6.54:1 sur blanc, 5.72:1 sur --pac-danger-bg */
	font-size: .9375rem;
	font-weight: 600;
	line-height: 1.45;
	min-height: 0;
	margin: 12px 0 0;
	padding: 0;
}
.lead-err:not(:empty) {
	padding: 12px 14px 12px 40px;
	background: var(--pac-danger-bg);
	border: 1px solid rgba(179,38,30,.30);
	border-radius: var(--pac-r-sm);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B3261E' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v6M12 16.5v.01'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 13px 13px;
	background-size: 18px 18px;
}

/* ---------------------------------------------------------------------------
   12. RYTHME VERTICAL
   index.php melange `.container` nu (l.205, l.265), `.section` (l.243, l.301)
   et `mb-6` : les blocs se touchent ou se decollent sans logique. On impose
   une seule cadence.
--------------------------------------------------------------------------- */
#content .content-wrap { padding: 0; }

#content > .content-wrap > .container,
#content > .content-wrap > .section {
	padding-block: clamp(3rem, 1.6rem + 5.5vw, 5.5rem);
	margin-block: 0;
}

#content > .content-wrap > .section { background: var(--pac-surface); }
#content > .content-wrap > .section.bg-transparent { background: #FFF; }

.heading-block { margin-bottom: 2.5rem; }
.heading-block h3 { margin-bottom: .5rem; }
.heading-block > span { font-size: 1.0625rem; color: var(--pac-ink-2); }

.mb-6 { margin-bottom: 0 !important; }	/* la cadence est portee par le padding */

/* Bandeaux promo (index.php:191 et 343) : le .promo-light du theme est un gris
   a 5 % quasi invisible. On en fait deux paliers de reassurance en bleu. */
.promo.promo-light {
	--cnvs-promo-light: var(--pac-blue-900);
	--cnvs-promo-light-text-color: #FFF;
	border-radius: 0;
	color: #D6E6F2;
}
.promo.promo-light h1,
.promo.promo-light h2,
.promo.promo-light h3,
.promo.promo-light .h3 { color: #FFF; }
.promo.promo-light span { color: #B9D2E4; }
.promo.promo-light .button {
	--cnvs-btn-color: var(--pac-amber-500);
	background: var(--pac-amber-500) !important;
	color: var(--pac-ink) !important;
	font-weight: 700;
	min-height: 56px;
	display: inline-flex;
	align-items: center;
}
.promo.promo-light .button:hover { background: var(--pac-amber-600) !important; }

/* ---------------------------------------------------------------------------
   13. BLOCS DE CONTENU — remplacement des photos de chantier
   services/1.jpg (menuisier + metre) etiquete "Prime CEE" et services/3.jpg
   (deux ouvriers en gilet) etiquete "TVA 5,5 %" desservent la credibilite :
   ils promettent un metier qui n'est pas celui de la page. On remplace le
   <img> par un pictogramme sur aplat (voir HTML propose).
--------------------------------------------------------------------------- */
.pac-tile {
	height: 100%;
	background: #FFF;
	border: 1px solid var(--pac-line);
	border-radius: var(--pac-r);
	padding: 1.75rem;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.pac-tile:hover {
	border-color: var(--pac-blue-500);
	box-shadow: 0 12px 28px -14px rgba(7,43,65,.35);
	transform: translateY(-2px);
}
.pac-tile-ico {
	width: 56px; height: 56px;
	display: grid; place-items: center;
	border-radius: var(--pac-r-sm);
	background: var(--pac-blue-050);
	color: var(--pac-blue-700);
	margin-bottom: 1.25rem;
}
.pac-tile-ico svg { width: 30px; height: 30px; }
.pac-tile--aide  .pac-tile-ico { background: var(--pac-green-050); color: var(--pac-green-700); }
.pac-tile--chaud .pac-tile-ico { background: var(--pac-amber-050); color: var(--pac-amber-600); }

.pac-tile h3 { font-size: 1.1875rem; margin-bottom: .35rem; }
.pac-tile h3 .subtitle {
	display: block;
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pac-ink-2);
	margin-top: .3rem;
}
.pac-tile p { margin: 0; font-size: 1rem; line-height: 1.6; }

/* Si on garde malgre tout une photo du theme : traitement duotone bleu.
   Elle cesse d'etre lue comme une preuve pour devenir une texture de marque. */
.pac-duotone {
	position: relative;
	border-radius: var(--pac-r);
	overflow: hidden;
	background: var(--pac-blue-800);
}
.pac-duotone img {
	display: block;
	width: 100%;
	filter: grayscale(1) contrast(1.05) brightness(.92);
	mix-blend-mode: luminosity;
	opacity: .55;
}

/* Liste de qualification (index.php:253-259) */
.iconlist li { line-height: 1.55; margin-bottom: .85rem; }
.iconlist i.color { color: var(--pac-green-700) !important; }	/* 5.31:1 */

/* Etapes 01/02/03 (index.php:271-297) */
.fbox-plain .fbox-icon img { display: none; }	/* icones BTP du theme : hors sujet */
.feature-box.fbox-plain h3 {
	text-transform: none;
	letter-spacing: -0.01em;
	font-size: 1.125rem;
}

/* Accordeon FAQ */
.accordion-title { font-size: 1.0625rem; font-weight: 600; color: var(--pac-ink); }
.accordion-content { font-size: 1rem; line-height: 1.65; color: var(--pac-ink-2); }

/* ---------------------------------------------------------------------------
   14. PIED DE PAGE
--------------------------------------------------------------------------- */
#footer.dark { background: var(--pac-blue-900); border-top: 0; }
#footer.dark .op-07 { opacity: 1 !important; color: #B9D2E4; }	/* 8.3:1 */
#footer .footer-big-contacts span { color: #7FB3D1; }
#copyrights { background: #051E2F; }

/* ---------------------------------------------------------------------------
   15. MOBILE
   Le formulaire fait 10 etapes : sur telephone il doit apparaitre le plus
   haut possible, sans que le hero mange un ecran entier.
--------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
	.choices.two { grid-template-columns: 1fr; }

	.pac-hero { padding-block: 1.75rem 2.25rem; }
	.pac-hero .col-lg-6:first-child { margin-bottom: 1.5rem; }
	.pac-hero .hero-stats { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; padding-top: 1rem; }
	.pac-hero .hero-stats > div { padding-right: 0; margin-bottom: 0 !important; }
	.pac-hero .hero-stats strong { font-size: 1.125rem; display: inline !important; }
	.pac-hero .hero-stats small { display: inline; max-width: none; }

	.lead-card { border-radius: var(--pac-r); }
	.lead-card.p-4 { padding: 1.25rem !important; }
	.choice { min-height: 60px; font-size: 1.0625rem; }
}

@media (prefers-reduced-motion: reduce) {
	.choice, .lead-progress span, .pac-tile, .button { transition: none !important; }
	.choice:active, .pac-tile:hover, .pac-cta:hover { transform: none !important; }
}

/* ---------------------------------------------------------------------------
   16. AJOUTS HORS AUDIT
--------------------------------------------------------------------------- */

/* style.css:20097 impose une texture images/grid.png absente de cette
   installation : la requete partait en 404 a chaque chargement. */
.video-overlay,
.video-placeholder { background-image: none; }

/* Marqueur des valeurs d'identite non renseignees dans includes/config.php.
   Volontairement voyant : il ne doit pas passer inapercu en preproduction. */
.cfg-todo {
	background: #FFF3CD;
	color: #7A5B00;
	border: 1px dashed #C9A227;
	border-radius: 4px;
	padding: 0 .35em;
	font-weight: 600;
	font-size: .9em;
}

/* Lien d'evitement : premier element focusable du document (WCAG 2.4.1). */
.pac-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	background: var(--pac-blue-700);
	color: #FFF;
	padding: .85rem 1.25rem;
	border-radius: 0 0 var(--pac-r-sm) 0;
	font-weight: 600;
}
.pac-skip:focus { left: 0; }

/* Barre d'action collante sur mobile : le formulaire fait 10 ecrans, le
   visiteur qui lit le bas de page doit pouvoir y revenir en un geste. */
.pac-sticky-cta {
	position: fixed;
	inset: auto 0 0 0;
	z-index: 300;
	display: none;
	gap: .75rem;
	align-items: center;
	padding: .7rem .9rem calc(.7rem + env(safe-area-inset-bottom));
	background: rgba(255,255,255,.97);
	backdrop-filter: blur(10px);
	border-top: 1px solid var(--pac-line);
	box-shadow: 0 -6px 20px rgba(7,43,65,.12);
}
.pac-sticky-cta p {
	margin: 0;
	flex: 1 1 auto;
	font-size: .8125rem;
	line-height: 1.25;
	color: var(--pac-ink-2);
}
.pac-sticky-cta .pac-cta { flex: 0 0 auto; min-height: 48px; padding: .75rem 1.15rem !important; }

@media (max-width: 991.98px) {
	.pac-sticky-cta.is-on { display: flex; }
	body.has-sticky-cta { padding-bottom: 78px; }
}

/* ---------------------------------------------------------------------------
   17. FIELDSET / LEGEND
   Les questions sont desormais des <legend> dans un <fieldset> : c'est ce qui
   permet au lecteur d'ecran d'annoncer la question avant chaque option.
   Bootstrap met les legend en width:100% + float, et les fieldset ont une
   bordure par defaut : on neutralise, l'apparence ne doit pas changer.
--------------------------------------------------------------------------- */
.lead-card fieldset {
	border: 0;
	margin: 0;
	padding: 0;
	min-width: 0;
}
.lead-card legend {
	float: none;
	width: auto;
	padding: 0;
	margin-bottom: .75rem;
	font-size: 1.1875rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--pac-ink);
	letter-spacing: -0.012em;
}
.lead-card legend:focus { outline: none; }
.lead-card legend:focus-visible { outline: 3px solid var(--pac-blue-500); outline-offset: 3px; }

/* Reference de la fiche CEE : information reglementaire, pas un argument.
   Elle passe sous la carte, en discretion. */
.pac-hero-fiche {
	margin: 1rem 0 0;
	text-align: center;
	font-size: .8125rem;
	line-height: 1.5;
	color: #9FC3DC;
}
.pac-hero-fiche strong { color: #D6E6F2; font-weight: 600; }

/* Information article 13 RGPD, delivree AU MOMENT de la collecte. */
.pac-rgpd-note {
	margin: 1rem 0 0;
	padding: .875rem 1rem;
	background: var(--pac-surface);
	border: 1px solid var(--pac-line);
	border-radius: var(--pac-r-sm);
	font-size: .8125rem;
	line-height: 1.55;
	color: var(--pac-ink-2);
}
.pac-rgpd-note a { color: var(--pac-blue-700); text-decoration: underline; }

/* Champ en erreur : signale par la bordure en plus du message. */
.lead-card .form-control[aria-invalid="true"] {
	border-color: var(--pac-danger) !important;
	box-shadow: 0 0 0 3px rgba(179,38,30,.14);
}

/* ---------------------------------------------------------------------------
   18. AFFICHAGE DES ETAPES
   Regle vitale du formulaire multi-etapes : sans elle les 15 ecrans
   s'empilent sur la page. Elle etait presente dans l'ancien custom.css et
   avait disparu lors de la refonte.
--------------------------------------------------------------------------- */
.lead-card .step { display: none; }
.lead-card .step.is-on { display: block; }

/* ---------------------------------------------------------------------------
   19. HERO MOBILE — atteindre la premiere question sans scroller
   Sur telephone le hero poussait la carte a ~790px : le visiteur issu du
   trafic payant voyait un argumentaire, jamais un champ. On comprime le
   titre, le chapo et les chiffres.
--------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
	.pac-hero { padding-block: 1.25rem 1.5rem; }

	.pac-hero h1 {
		font-size: 1.55rem;
		line-height: 1.2;
		margin-bottom: .6rem;
		text-wrap: pretty;
	}

	.pac-hero .lead { font-size: 1rem; line-height: 1.45; margin-bottom: 1rem !important; }

	/* Les 3 rassurances passent en une ligne compacte, sans retour a la ligne. */
	.pac-hero .hero-stats {
		display: flex;
		flex-wrap: wrap;
		gap: .35rem .9rem;
		border-top: 1px solid rgba(214,230,242,.22);
		padding-top: .75rem;
		margin: 0;
	}
	.pac-hero .hero-stats > div {
		width: auto;
		padding: 0;
		margin: 0 !important;
		display: flex;
		align-items: baseline;
		gap: .35rem;
	}
	.pac-hero .hero-stats strong { font-size: .9375rem !important; }
	.pac-hero .hero-stats small { font-size: .75rem; color: #9FC3DC; }
	/* Le detail de chaque chiffre n'apporte rien sur 390px de large. */
	.pac-hero .hero-stats small { display: none; }
	.pac-hero .hero-stats > div::after {
		content: "";
		width: 4px; height: 4px;
		border-radius: 50%;
		background: rgba(214,230,242,.45);
		align-self: center;
	}
	.pac-hero .hero-stats > div:last-child::after { display: none; }

	.pac-hero .col-lg-6:first-child { margin-bottom: 1rem !important; }
	.pac-hero .row.col-mb-50 > [class*="col-"] { margin-bottom: 0 !important; }
	.pac-hero-fiche { margin-top: .75rem; font-size: .75rem; }
}

/* ---------------------------------------------------------------------------
   20. PAGE DE REMERCIEMENT
   Elle ne sert pas a remercier : elle sert a ce que le prospect DECROCHE
   quand l'installateur appellera depuis un numero qu'il ne connait pas.
--------------------------------------------------------------------------- */
.pac-merci-head { text-align: center; margin-bottom: 2.5rem; }

.pac-merci-ico {
	width: 68px; height: 68px;
	margin: 0 auto 1.25rem;
	display: grid; place-items: center;
	border-radius: 50%;
	background: var(--pac-green-050);
	color: var(--pac-green-700);
}
.pac-merci-ico svg { width: 34px; height: 34px; }

.pac-merci-head h1 { font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.375rem); margin-bottom: .75rem; }
.pac-merci-head .lead { color: var(--pac-ink-2); max-width: 46ch; margin: 0 auto; }

.pac-merci-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1.25rem;
	margin-bottom: 2rem;
}
.pac-merci-grid .pac-tile h2 { font-size: 1.0625rem; margin-bottom: .5rem; }
.pac-merci-grid .pac-tile p { font-size: .9375rem; }

.pac-merci-note {
	background: var(--pac-blue-050);
	border: 1px solid var(--pac-line);
	border-left: 4px solid var(--pac-blue-700);
	border-radius: var(--pac-r-sm);
	padding: 1.25rem 1.375rem;
	margin-bottom: 2rem;
	font-size: .9375rem;
	line-height: 1.6;
	color: var(--pac-ink-2);
}
.pac-merci-note a { color: var(--pac-blue-700); text-decoration: underline; }

/* Pages legales : lisibilite d'un texte long. */
#contenu .table th { color: var(--pac-ink); font-weight: 600; white-space: nowrap; }
#contenu h2 { font-size: 1.375rem; margin-top: 2.25rem; margin-bottom: .75rem; }
#contenu .heading-block + h2 { margin-top: 0; }

/* Titres de colonnes du pied de page : le theme les laisse en couleur de
   titre sombre, donc illisibles sur le bleu profond du footer. */
#footer.dark .widget-title,
#footer.dark h4 {
	color: #FFF;
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	margin-bottom: .75rem;
}
#footer.dark .lead { color: #FFF; font-weight: 600; }
#footer.dark a { color: #9FC3DC; }
#footer.dark a:hover { color: #FFF; }
#copyrights, #copyrights a { color: #8FB0C7; }
#copyrights a:hover { color: #FFF; }
