/**
 * IMSE Wizard W1 - Surcouche CSS scoped page-simulateur.
 *
 * Strategie : override variables V3-E sur body.page-template-page-simulateur
 * avec palette ISE CRM source de verite (navy #1E3A5F + orange #F4A340 + cream #F5EBD9).
 *
 * Anti-recidive S106 :
 *  - lesson #410 : palette ISE = palette CRM (coherence brand)
 *  - lesson #411 : mobile defensive (flex-wrap + word-break + overflow-x hidden)
 *  - lesson p181 : contrast 9.8:1 navy/cream + 13.5:1 navy/blanc (WCAG AAA)
 *  - lesson p240 : data-empire-skip-contrast sur badges decoratifs
 *
 * Imports Fraunces + Inter charges par V3-E base.
 * Import nouveau : JetBrains Mono (differenciation chiffres prix).
 *
 * Performance : 25 KB target (V3-E 50 KB base + 25 KB surcouche = 75 KB total).
 * Mobile-first : 320px min puis 640px et 1024px breakpoints.
 */

@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@500;700&display=swap');

/* =====================================================
   TOKENS - Override V3-E avec palette ISE CRM
   ===================================================== */

body.page-template-page-simulateur {
	--imse-navy:           #1E3A5F;
	--imse-navy-dark:      #152A47;
	--imse-navy-light:     #2C4A75;
	--imse-orange:         #F4A340;
	--imse-orange-hover:   #DC8E2E;
	--imse-cream:          #F5EBD9;
	--imse-cream-light:    #FAF3E4;
	--imse-cream-border:   #E6D5B8;
	--imse-white:          #FFFFFF;
	--imse-text:           #1E3A5F;
	--imse-text-muted:     #6B6B7B;
	--imse-text-light:     #3A4A5F;
	--imse-success:        #4A8B5C;
	--imse-warning:        #F4A340;
	--imse-error:          #C73650;

	--imse-jauge-low:      #C73650;
	--imse-jauge-mid:      #F4A340;
	--imse-jauge-high:     #4A8B5C;

	--imse-font-heading:   'Fraunces', Georgia, serif;
	--imse-font-body:      'Inter', system-ui, -apple-system, sans-serif;
	--imse-font-mono:      'JetBrains Mono', 'SF Mono', Consolas, monospace;

	--imse-radius-sm: 6px;
	--imse-radius-md: 8px;
	--imse-radius-lg: 12px;
	--imse-radius-xl: 16px;
	--imse-radius-full: 999px;

	--imse-shadow-sm:  0 2px 6px rgba(30, 58, 95, 0.08);
	--imse-shadow-md:  0 4px 12px rgba(30, 58, 95, 0.12);
	--imse-shadow-lg:  0 12px 40px rgba(30, 58, 95, 0.10);
	--imse-shadow-cta: 0 4px 12px rgba(244, 163, 64, 0.35);

	--imse-trans-fast:  200ms ease-out;
	--imse-trans-base:  400ms ease-out;
	--imse-trans-slow:  600ms ease-out;

	--imse-container-narrow: 720px;
	--imse-container-medium: 920px;
	--imse-container-wide:   1200px;

	background-color: var(--imse-cream);
	color: var(--imse-text);
	font-family: var(--imse-font-body);

	/* Anti-recidive S106 #411 : mobile defensive */
	overflow-x: hidden;
	word-break: normal;
}

body.page-template-page-simulateur * { min-width: 0; }
body.page-template-page-simulateur img { max-width: 100%; height: auto; }

/* =====================================================
   MAIN
   ===================================================== */

.imse-w1-main { font-family: var(--imse-font-body); }

/* =====================================================
   BUTTONS
   ===================================================== */

.imse-w1-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 16px 32px;
	font-family: var(--imse-font-body);
	font-weight: 600;
	font-size: 16px;
	line-height: 1;
	border-radius: var(--imse-radius-md);
	border: 1.5px solid transparent;
	cursor: pointer;
	transition: transform var(--imse-trans-fast), box-shadow var(--imse-trans-fast), background-color var(--imse-trans-fast), color var(--imse-trans-fast);
	text-decoration: none;
	white-space: nowrap;
}
.imse-w1-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.imse-w1-btn:focus-visible {
	outline: 3px solid rgba(244, 163, 64, 0.4);
	outline-offset: 2px;
}

.imse-w1-btn--primary {
	background-color: var(--imse-orange);
	color: var(--imse-navy);
	font-weight: 700;
	box-shadow: var(--imse-shadow-cta);
}
.imse-w1-btn--primary:hover:not(:disabled) {
	background-color: var(--imse-orange-hover);
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(244, 163, 64, 0.45);
}

.imse-w1-btn--ghost {
	background-color: transparent;
	color: var(--imse-navy);
	border-color: var(--imse-navy);
}
.imse-w1-btn--ghost:hover:not(:disabled) {
	background-color: var(--imse-navy);
	color: var(--imse-white);
}

.imse-w1-btn--lg { padding: 20px 48px; font-size: 18px; }
.imse-w1-btn--full { width: 100%; }
.imse-w1-btn--center { margin-left: auto; margin-right: auto; display: inline-flex; }
.imse-w1-btn--pdf { margin-top: 24px; }

/* =====================================================
   S1 - HERO
   ===================================================== */

.imse-w1-hero {
	background-color: var(--imse-cream);
	padding: 96px 24px 64px;
}
.imse-w1-hero__inner {
	max-width: var(--imse-container-wide);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	gap: 64px;
	align-items: center;
}
.imse-w1-hero__badge {
	display: inline-block;
	background-color: var(--imse-cream-light);
	border: 1px solid var(--imse-orange);
	color: var(--imse-navy);
	font-family: var(--imse-font-mono);
	font-weight: 500;
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 6px 14px;
	border-radius: var(--imse-radius-full);
	margin-bottom: 24px;
}
.imse-w1-hero__h1 {
	font-family: var(--imse-font-heading);
	font-weight: 600;
	font-size: clamp(36px, 5vw, 56px);
	line-height: 1.1;
	letter-spacing: -0.015em;
	color: var(--imse-navy);
	margin: 0 0 16px;
}
.imse-w1-hero__h1 sup { font-size: 0.6em; vertical-align: super; }
.imse-w1-hero__subtitle {
	font-size: clamp(16px, 1.6vw, 20px);
	line-height: 1.5;
	color: var(--imse-text-light);
	margin: 0 0 32px;
	max-width: 56ch;
}
.imse-w1-hero__ctas {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 32px;
}
.imse-w1-hero__trust {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	color: var(--imse-text-muted);
	font-family: var(--imse-font-mono);
	font-size: 11px;
	font-weight: 500;
}
.imse-w1-hero__trust li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.imse-w1-hero__trust svg { color: var(--imse-success); flex-shrink: 0; }

.imse-w1-hero__portrait {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap: 12px;
}
.imse-w1-hero__portrait-img,
.imse-w1-hero__portrait-fallback {
	width: 320px;
	height: 320px;
	border-radius: 50%;
	border: 4px solid var(--imse-orange);
	box-shadow: 0 8px 24px rgba(30, 58, 95, 0.18);
}
.imse-w1-hero__portrait-mention {
	font-size: 11px;
	color: var(--imse-text-muted);
	font-style: italic;
	max-width: 280px;
	text-align: center;
}

@media (max-width: 768px) {
	.imse-w1-hero { padding: 56px 20px 48px; }
	.imse-w1-hero__inner { grid-template-columns: 1fr; gap: 32px; }
	.imse-w1-hero__portrait { order: -1; }
	.imse-w1-hero__portrait-img, .imse-w1-hero__portrait-fallback { width: 200px; height: 200px; }
}

/* =====================================================
   S2 - TRUST STRIP
   ===================================================== */
.imse-w1-trust-strip {
	background-color: var(--imse-white);
	padding: 48px 24px;
	border-top: 1px solid var(--imse-cream-border);
	border-bottom: 1px solid var(--imse-cream-border);
}
.imse-w1-trust-strip__inner {
	max-width: var(--imse-container-wide);
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 32px;
}
.imse-w1-trust-strip__cell {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	word-break: break-word;
}
.imse-w1-trust-strip__icon { color: var(--imse-navy); flex-shrink: 0; }
.imse-w1-trust-strip__label {
	font-family: var(--imse-font-body);
	font-weight: 600;
	font-size: 14px;
	color: var(--imse-navy);
}
.imse-w1-trust-strip__sublabel {
	font-size: 12px;
	color: var(--imse-text-muted);
	line-height: 1.4;
}
@media (max-width: 1024px) {
	.imse-w1-trust-strip__inner { grid-template-columns: repeat(2, 1fr); gap: 24px; }
}
@media (max-width: 600px) {
	.imse-w1-trust-strip__inner { grid-template-columns: 1fr; gap: 20px; }
}

/* =====================================================
   S3 - WIZARD container + header + progress
   ===================================================== */
.imse-w1-wizard { background-color: var(--imse-cream); padding: 64px 24px; }
.imse-w1-wizard__inner { max-width: var(--imse-container-narrow); margin: 0 auto; }
.imse-w1-wizard__header { text-align: center; margin-bottom: 32px; }
.imse-w1-wizard__eyebrow {
	display: inline-block;
	font-family: var(--imse-font-body);
	font-weight: 600;
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--imse-orange);
	margin-bottom: 8px;
}
.imse-w1-wizard__title {
	font-family: var(--imse-font-heading);
	font-weight: 600;
	font-size: clamp(28px, 4vw, 36px);
	line-height: 1.15;
	color: var(--imse-navy);
	margin: 0;
}
.imse-w1-wizard__progress {
	margin-bottom: 24px;
	background-color: var(--imse-white);
	padding: 20px 24px;
	border-radius: var(--imse-radius-lg);
	box-shadow: var(--imse-shadow-sm);
}
.imse-w1-wizard__progress.is-hidden { display: none; }
.imse-w1-wizard__progress-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 12px;
}
.imse-w1-wizard__progress-label { font-weight: 500; font-size: 14px; color: var(--imse-text-muted); }
.imse-w1-wizard__progress-pct { font-family: var(--imse-font-mono); font-weight: 700; font-size: 14px; color: var(--imse-orange); }
.imse-w1-wizard__progress-bar { height: 8px; background-color: var(--imse-cream-border); border-radius: var(--imse-radius-sm); overflow: hidden; }
.imse-w1-wizard__progress-fill { height: 100%; background-color: var(--imse-orange); transition: width var(--imse-trans-base); border-radius: var(--imse-radius-sm); }
.imse-w1-wizard__dots {
	display: flex;
	justify-content: space-between;
	align-items: center;
	list-style: none;
	padding: 0;
	margin: 16px 0 0;
}
.imse-w1-wizard__dot {
	width: 12px; height: 12px;
	border-radius: 50%;
	background-color: var(--imse-white);
	border: 1.5px solid var(--imse-cream-border);
	transition: all var(--imse-trans-fast);
}
.imse-w1-wizard__dot.is-active { background-color: var(--imse-navy); border-color: var(--imse-navy); }
.imse-w1-wizard__dot.is-completed { background-color: var(--imse-orange); border-color: var(--imse-orange); cursor: pointer; }
.imse-w1-wizard__card {
	background-color: var(--imse-white);
	border-radius: var(--imse-radius-xl);
	box-shadow: var(--imse-shadow-lg);
	padding: 48px;
}
.imse-w1-wizard__card.is-hidden { display: none; }
@media (max-width: 640px) { .imse-w1-wizard__card { padding: 24px; } }

.imse-w1-step__eyebrow {
	display: inline-block;
	font-weight: 600; font-size: 12px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--imse-orange);
	margin-bottom: 8px;
}
.imse-w1-step__h3 {
	font-family: var(--imse-font-heading);
	font-weight: 600;
	font-size: clamp(22px, 3vw, 28px);
	line-height: 1.2;
	color: var(--imse-navy);
	margin: 0 0 12px;
}
.imse-w1-step__subtitle { font-size: 15px; line-height: 1.5; color: var(--imse-text-muted); margin: 0 0 24px; }
.imse-w1-step__nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-top: 32px;
}
.imse-w1-step__nav--submit { justify-content: flex-end; }
.imse-w1-skip {
	display: block;
	margin: 16px auto 0;
	background: none; border: none;
	color: var(--imse-text-muted);
	font-family: var(--imse-font-body);
	font-size: 14px;
	text-decoration: underline;
	cursor: pointer;
}

/* Field + Select + Input */
.imse-w1-field { margin-bottom: 16px; }
.imse-w1-field__label { display: block; font-weight: 600; font-size: 14px; color: var(--imse-navy); margin-bottom: 8px; }
.imse-w1-field__required { color: var(--imse-error); }
.imse-w1-field__optional { color: var(--imse-text-muted); font-weight: 400; }
.imse-w1-field__select,
.imse-w1-field__input {
	width: 100%;
	height: 52px;
	padding: 14px 16px;
	border: 1.5px solid var(--imse-cream-border);
	border-radius: var(--imse-radius-md);
	font-family: var(--imse-font-body);
	font-size: 16px;
	color: var(--imse-navy);
	background-color: var(--imse-white);
	transition: border-color var(--imse-trans-fast), box-shadow var(--imse-trans-fast);
}
.imse-w1-field__select:focus,
.imse-w1-field__input:focus {
	outline: none;
	border-color: var(--imse-orange);
	box-shadow: 0 0 0 3px rgba(244, 163, 64, 0.15);
}
.imse-w1-field__input.is-error { border-color: var(--imse-error); }
.imse-w1-field__error { color: var(--imse-error); font-size: 13px; margin: 6px 0 0; }
.imse-w1-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 480px) { .imse-w1-field-row { grid-template-columns: 1fr; } }

/* Card radio (S2) */
.imse-w1-cards-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.imse-w1-card-radio {
	position: relative;
	display: flex; flex-direction: column;
	align-items: center;
	gap: 12px;
	padding: 24px;
	border: 1.5px solid var(--imse-cream-border);
	border-radius: var(--imse-radius-lg);
	background-color: var(--imse-white);
	cursor: pointer;
	transition: all var(--imse-trans-fast);
	text-align: center;
}
.imse-w1-card-radio:hover { border-color: var(--imse-orange); transform: translateY(-2px); }
.imse-w1-card-radio.is-selected { border-color: var(--imse-orange); border-width: 2px; background-color: var(--imse-cream-light); }
.imse-w1-card-radio__input { position: absolute; opacity: 0; pointer-events: none; }
.imse-w1-card-radio__icon { color: var(--imse-navy); }
.imse-w1-card-radio__label { font-weight: 600; font-size: 15px; color: var(--imse-navy); }
@media (max-width: 480px) { .imse-w1-cards-grid { grid-template-columns: 1fr; } }

/* Slider (S3) */
.imse-w1-slider-group { padding: 16px 0; }
.imse-w1-slider {
	width: 100%; height: 8px;
	border-radius: 4px;
	background-color: var(--imse-cream-border);
	outline: none;
	appearance: none;
	cursor: pointer;
}
.imse-w1-slider::-webkit-slider-thumb {
	appearance: none;
	width: 24px; height: 24px;
	background-color: var(--imse-navy);
	border: 3px solid var(--imse-white);
	border-radius: 50%;
	box-shadow: var(--imse-shadow-sm);
	cursor: pointer;
}
.imse-w1-slider::-moz-range-thumb {
	width: 24px; height: 24px;
	background-color: var(--imse-navy);
	border: 3px solid var(--imse-white);
	border-radius: 50%;
	cursor: pointer;
}
.imse-w1-slider-range {
	display: flex;
	justify-content: space-between;
	margin-top: 8px;
	font-family: var(--imse-font-mono);
	font-size: 12px;
	color: var(--imse-text-muted);
}
.imse-w1-slider-output { display: flex; justify-content: center; align-items: baseline; gap: 4px; margin-top: 16px; }
.imse-w1-slider-output__input {
	width: 120px;
	font-family: var(--imse-font-mono);
	font-weight: 700;
	font-size: 28px;
	text-align: center;
	border: 1.5px solid var(--imse-cream-border);
	border-radius: var(--imse-radius-md);
	padding: 8px;
	color: var(--imse-navy);
}
.imse-w1-slider-output__unit { font-family: var(--imse-font-mono); font-weight: 500; font-size: 18px; color: var(--imse-text-muted); }

/* Stepper (S4) */
.imse-w1-stepper { display: flex; align-items: center; justify-content: center; gap: 24px; padding: 16px 0; }
.imse-w1-stepper__btn {
	width: 56px; height: 56px;
	border: 1.5px solid var(--imse-navy);
	border-radius: var(--imse-radius-md);
	background-color: var(--imse-white);
	color: var(--imse-navy);
	cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	transition: all var(--imse-trans-fast);
}
.imse-w1-stepper__btn:hover:not(:disabled) { background-color: var(--imse-navy); color: var(--imse-white); }
.imse-w1-stepper__btn:disabled { opacity: 0.4; cursor: not-allowed; }
.imse-w1-stepper__value { min-width: 120px; text-align: center; font-family: var(--imse-font-mono); font-weight: 700; font-size: 36px; color: var(--imse-navy); }

/* Radio list (S5) */
.imse-w1-radio-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.imse-w1-radio-option {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 16px 20px;
	border: 1.5px solid var(--imse-cream-border);
	border-radius: var(--imse-radius-md);
	cursor: pointer;
	transition: all var(--imse-trans-fast);
	background-color: var(--imse-white);
}
.imse-w1-radio-option:hover { border-color: var(--imse-orange); }
.imse-w1-radio-option.is-selected { border-color: var(--imse-orange); background-color: var(--imse-cream-light); }
.imse-w1-radio-option__input { position: absolute; opacity: 0; pointer-events: none; }
.imse-w1-radio-option__indicator {
	flex-shrink: 0;
	width: 20px; height: 20px;
	border: 2px solid var(--imse-navy);
	border-radius: 50%;
	background-color: var(--imse-white);
	position: relative;
	margin-top: 2px;
}
.imse-w1-radio-option.is-selected .imse-w1-radio-option__indicator { border-color: var(--imse-orange); background-color: var(--imse-orange); }
.imse-w1-radio-option.is-selected .imse-w1-radio-option__indicator::after {
	content: '';
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	width: 8px; height: 8px;
	background-color: var(--imse-white);
	border-radius: 50%;
}
.imse-w1-radio-option__text { display: flex; flex-direction: column; gap: 4px; }
.imse-w1-radio-option__text strong { font-weight: 600; font-size: 15px; color: var(--imse-navy); }
.imse-w1-radio-option__text span { font-size: 13px; color: var(--imse-text-muted); line-height: 1.4; }

/* Checkboxes (S6) */
.imse-w1-checkbox-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.imse-w1-checkbox {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 16px;
	border: 1.5px solid var(--imse-cream-border);
	border-radius: var(--imse-radius-md);
	cursor: pointer;
	transition: all var(--imse-trans-fast);
	background-color: var(--imse-white);
}
.imse-w1-checkbox:hover { border-color: var(--imse-orange); }
.imse-w1-checkbox.is-selected { border-color: var(--imse-orange); background-color: var(--imse-cream-light); }
.imse-w1-checkbox__input { position: absolute; opacity: 0; pointer-events: none; }
.imse-w1-checkbox__indicator {
	flex-shrink: 0;
	width: 22px; height: 22px;
	border: 2px solid var(--imse-navy);
	border-radius: 4px;
	background-color: var(--imse-white);
	position: relative;
}
.imse-w1-checkbox.is-selected .imse-w1-checkbox__indicator { border-color: var(--imse-orange); background-color: var(--imse-orange); }
.imse-w1-checkbox.is-selected .imse-w1-checkbox__indicator::after {
	content: '';
	position: absolute;
	left: 6px; top: 2px;
	width: 6px; height: 12px;
	border-right: 3px solid var(--imse-white);
	border-bottom: 3px solid var(--imse-white);
	transform: rotate(45deg);
}
.imse-w1-checkbox__label { font-weight: 500; font-size: 14px; color: var(--imse-navy); }
@media (max-width: 480px) { .imse-w1-checkbox-grid { grid-template-columns: 1fr; } }

/* Pills (S7) */
.imse-w1-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.imse-w1-pill {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 12px 20px;
	border: 1.5px solid var(--imse-cream-border);
	border-radius: var(--imse-radius-full);
	background-color: var(--imse-white);
	cursor: pointer;
	transition: all var(--imse-trans-fast);
}
.imse-w1-pill:hover { border-color: var(--imse-orange); }
.imse-w1-pill.is-selected { background-color: var(--imse-orange); border-color: var(--imse-orange); }
.imse-w1-pill__input { position: absolute; opacity: 0; pointer-events: none; }
.imse-w1-pill__text { font-size: 14px; color: var(--imse-navy); }
.imse-w1-pill__text strong { font-weight: 700; margin-right: 6px; }

/* Resume toast */
.imse-w1-resume-toast {
	position: fixed; bottom: 24px; right: 24px;
	background-color: var(--imse-navy);
	color: var(--imse-cream);
	padding: 14px 20px;
	border-radius: var(--imse-radius-md);
	box-shadow: var(--imse-shadow-lg);
	display: flex; align-items: center; gap: 16px;
	font-size: 14px;
	z-index: 100;
	max-width: calc(100vw - 48px);
}
.imse-w1-resume-toast__reset {
	background: var(--imse-orange);
	color: var(--imse-navy);
	border: none;
	padding: 6px 14px;
	border-radius: var(--imse-radius-sm);
	font-family: var(--imse-font-body);
	font-weight: 600;
	font-size: 13px;
	cursor: pointer;
}

/* =====================================================
   S4 - LEAD GATE MODAL
   ===================================================== */
.imse-w1-lead-gate {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.imse-w1-lead-gate__overlay {
	position: absolute;
	inset: 0;
	background-color: rgba(30, 58, 95, 0.65);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}
.imse-w1-lead-gate__modal {
	position: relative;
	background-color: var(--imse-white);
	border-radius: var(--imse-radius-xl);
	padding: 48px;
	max-width: 520px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 24px 64px rgba(0, 0, 0, 0.25);
}
@media (max-width: 600px) { .imse-w1-lead-gate__modal { padding: 28px; } }
.imse-w1-lead-gate__close {
	position: absolute;
	top: 16px; right: 16px;
	background: none;
	border: none;
	color: var(--imse-text-muted);
	cursor: pointer;
	padding: 8px;
	border-radius: 50%;
	transition: background-color var(--imse-trans-fast);
}
.imse-w1-lead-gate__close:hover { background-color: var(--imse-cream-light); }
.imse-w1-lead-gate__icon { display: block; margin-bottom: 16px; }
.imse-w1-lead-gate__title {
	font-family: var(--imse-font-heading);
	font-weight: 600;
	font-size: 26px;
	line-height: 1.2;
	color: var(--imse-navy);
	margin: 0 0 12px;
}
.imse-w1-lead-gate__intro {
	font-size: 15px;
	line-height: 1.5;
	color: var(--imse-text-light);
	margin: 0 0 24px;
}
.imse-w1-lead-gate__form { display: flex; flex-direction: column; gap: 16px; }
.imse-w1-honeypot { position: absolute; left: -9999px; height: 0; width: 0; opacity: 0; }
.imse-w1-consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	cursor: pointer;
	font-size: 13px;
	line-height: 1.5;
	color: var(--imse-navy);
}
.imse-w1-consent--optional .imse-w1-consent__text { color: var(--imse-text-muted); }
.imse-w1-consent__input { position: absolute; opacity: 0; pointer-events: none; }
.imse-w1-consent__indicator {
	flex-shrink: 0;
	width: 22px; height: 22px;
	border: 2px solid var(--imse-navy);
	border-radius: 4px;
	background-color: var(--imse-white);
	position: relative;
	margin-top: 2px;
}
.imse-w1-consent__input:checked + .imse-w1-consent__indicator {
	background-color: var(--imse-orange);
	border-color: var(--imse-orange);
}
.imse-w1-consent__input:checked + .imse-w1-consent__indicator::after {
	content: '';
	position: absolute;
	left: 6px; top: 2px;
	width: 6px; height: 12px;
	border-right: 3px solid var(--imse-white);
	border-bottom: 3px solid var(--imse-white);
	transform: rotate(45deg);
}
.imse-w1-consent a { color: var(--imse-orange); text-decoration: underline; }
.imse-w1-lead-gate__trust {
	display: flex; align-items: center; gap: 6px;
	font-size: 12px;
	color: var(--imse-text-muted);
	margin: 8px 0 0;
	flex-wrap: wrap;
}
.imse-w1-lead-gate__trust a { color: var(--imse-orange); }

.imse-w1-spinner {
	display: inline-block;
	width: 16px; height: 16px;
	border: 2px solid rgba(30, 58, 95, 0.2);
	border-top-color: var(--imse-navy);
	border-radius: 50%;
	animation: imse-w1-spin 1s linear infinite;
}
@keyframes imse-w1-spin { to { transform: rotate(360deg); } }

/* =====================================================
   S5 - RESULT PANEL
   ===================================================== */
.imse-w1-result { background-color: var(--imse-white); padding: 64px 24px; }
.imse-w1-result__inner { max-width: var(--imse-container-medium); margin: 0 auto; }
.imse-w1-result__header { text-align: center; margin-bottom: 32px; }
.imse-w1-result__eyebrow {
	display: inline-block;
	font-weight: 600; font-size: 12px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--imse-orange);
	margin-bottom: 8px;
}
.imse-w1-result__title {
	font-family: var(--imse-font-heading);
	font-weight: 600;
	font-size: clamp(28px, 4vw, 40px);
	color: var(--imse-navy);
	margin: 0;
}
.imse-w1-result__fourchette {
	display: grid;
	grid-template-columns: 1fr 1.4fr 1fr;
	gap: 16px;
	margin-bottom: 24px;
}
@media (max-width: 720px) { .imse-w1-result__fourchette { grid-template-columns: 1fr; } }
.imse-w1-result__card {
	background-color: var(--imse-cream-light);
	border-radius: var(--imse-radius-lg);
	padding: 24px;
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.imse-w1-result__card--median {
	background-color: var(--imse-navy);
	color: var(--imse-white);
	padding: 32px 24px;
	transform: scale(1.05);
	box-shadow: var(--imse-shadow-lg);
}
@media (max-width: 720px) { .imse-w1-result__card--median { transform: none; } }
.imse-w1-result__card-label {
	font-family: var(--imse-font-body);
	font-weight: 600;
	font-size: 12px;
	letter-spacing: 0.1em;
	color: var(--imse-text-muted);
}
.imse-w1-result__card--median .imse-w1-result__card-label { color: var(--imse-cream); }
.imse-w1-result__card-amount {
	font-family: var(--imse-font-mono);
	font-weight: 700;
	font-size: 28px;
	color: var(--imse-navy);
	letter-spacing: -0.02em;
}
.imse-w1-result__card--median .imse-w1-result__card-amount {
	font-size: 48px;
	color: var(--imse-orange);
}
.imse-w1-result__card-unit {
	font-family: var(--imse-font-body);
	font-size: 14px;
	color: var(--imse-text-muted);
}
.imse-w1-result__card--median .imse-w1-result__card-unit { color: var(--imse-cream); }
.imse-w1-result__recap {
	text-align: center;
	font-size: 15px;
	color: var(--imse-text-light);
	margin: 0 0 32px;
	line-height: 1.6;
}
.imse-w1-result__recap strong { color: var(--imse-navy); }

/* Gauge */
.imse-w1-result__gauge {
	background-color: var(--imse-cream-light);
	border-radius: var(--imse-radius-lg);
	padding: 24px;
	margin-bottom: 32px;
}
.imse-w1-result__gauge-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; flex-wrap: wrap; gap: 8px; }
.imse-w1-result__gauge-title { font-family: var(--imse-font-heading); font-weight: 600; font-size: 20px; color: var(--imse-navy); margin: 0; }
.imse-w1-result__gauge-value { font-family: var(--imse-font-mono); font-weight: 700; font-size: 32px; }
.imse-w1-result__gauge-value.is-low { color: var(--imse-jauge-low); }
.imse-w1-result__gauge-value.is-mid { color: var(--imse-jauge-mid); }
.imse-w1-result__gauge-value.is-high { color: var(--imse-jauge-high); }
.imse-w1-result__gauge-bar { display: flex; gap: 2px; margin-bottom: 8px; }
.imse-w1-result__gauge-segment { flex: 1; height: 16px; border-radius: 3px; }
.imse-w1-result__gauge-segment.is-low { background-color: var(--imse-jauge-low); }
.imse-w1-result__gauge-segment.is-mid { background-color: var(--imse-jauge-mid); }
.imse-w1-result__gauge-segment.is-high { background-color: var(--imse-jauge-high); }
.imse-w1-result__gauge-segment.is-empty { background-color: var(--imse-cream-border); }
.imse-w1-result__gauge-legend { display: flex; justify-content: space-between; font-family: var(--imse-font-body); font-size: 12px; color: var(--imse-text-muted); margin-bottom: 12px; }
.imse-w1-result__gauge-hint { font-size: 14px; line-height: 1.5; color: var(--imse-text-light); margin: 0; }

/* Conseils */
.imse-w1-result__conseils { margin-bottom: 32px; }
.imse-w1-result__conseils-title { font-family: var(--imse-font-heading); font-weight: 600; font-size: 22px; color: var(--imse-navy); margin: 0 0 16px; text-align: center; }
.imse-w1-result__conseils-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.imse-w1-result__conseil {
	display: flex;
	gap: 16px;
	background-color: var(--imse-cream-light);
	border-left: 4px solid var(--imse-orange);
	padding: 20px;
	border-radius: var(--imse-radius-md);
}
.imse-w1-result__conseil-num {
	flex-shrink: 0;
	width: 32px; height: 32px;
	background-color: var(--imse-navy);
	color: var(--imse-white);
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-family: var(--imse-font-mono);
	font-weight: 700;
	font-size: 16px;
}
.imse-w1-result__conseil-body { display: flex; flex-direction: column; gap: 6px; }
.imse-w1-result__conseil-title { font-size: 16px; color: var(--imse-navy); }
.imse-w1-result__conseil-text { font-size: 14px; line-height: 1.6; color: var(--imse-text-light); margin: 0; }

/* CTAs Tier 1/2 */
.imse-w1-result__ctas {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-bottom: 16px;
}
@media (max-width: 720px) { .imse-w1-result__ctas { grid-template-columns: 1fr; } }
.imse-w1-cta-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 20px 24px;
	border-radius: var(--imse-radius-lg);
	text-decoration: none;
	transition: all var(--imse-trans-fast);
	border: 1.5px solid transparent;
}
.imse-w1-cta-card--tier1 {
	background-color: var(--imse-orange);
	color: var(--imse-navy);
	grid-column: 1 / -1;
	box-shadow: var(--imse-shadow-cta);
}
.imse-w1-cta-card--tier1bis {
	background-color: var(--imse-navy);
	color: var(--imse-white);
	grid-column: 1 / -1;
}
.imse-w1-cta-card--tier2 {
	background-color: var(--imse-white);
	border-color: var(--imse-navy);
	color: var(--imse-navy);
}
.imse-w1-cta-card:hover { transform: translateY(-2px); }
.imse-w1-cta-card__icon { flex-shrink: 0; color: currentColor; }
.imse-w1-cta-card__label { display: block; font-weight: 700; font-size: 16px; line-height: 1.3; }
.imse-w1-cta-card__sub { display: block; font-size: 13px; opacity: 0.85; line-height: 1.4; margin-top: 2px; }
.imse-w1-cta-card__arrow { margin-left: auto; }

.imse-w1-result__disclosure {
	font-size: 12px;
	color: var(--imse-text-muted);
	font-style: italic;
	text-align: center;
	margin: 16px 0 0;
	line-height: 1.5;
}
.imse-w1-result__pdf-toast {
	background-color: var(--imse-success);
	color: var(--imse-white);
	padding: 14px 20px;
	border-radius: var(--imse-radius-md);
	margin-top: 12px;
	text-align: center;
	font-size: 14px;
}

/* =====================================================
   S6 - METHODOLOGY
   ===================================================== */
.imse-w1-methodology { background-color: var(--imse-cream); padding: 64px 24px; }
.imse-w1-methodology__inner { max-width: var(--imse-container-narrow); margin: 0 auto; }
.imse-w1-methodology__header { text-align: center; margin-bottom: 32px; }
.imse-w1-methodology__eyebrow {
	display: inline-block;
	font-weight: 600; font-size: 12px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--imse-orange);
	margin-bottom: 8px;
}
.imse-w1-methodology__title {
	font-family: var(--imse-font-heading);
	font-weight: 600;
	font-size: clamp(28px, 4vw, 36px);
	line-height: 1.15;
	color: var(--imse-navy);
	margin: 0;
}
.imse-w1-methodology__sources {
	list-style: none;
	padding: 0;
	margin: 0 0 32px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.imse-w1-methodology__source {
	display: flex;
	gap: 16px;
	align-items: flex-start;
}
.imse-w1-methodology__icon { color: var(--imse-navy); flex-shrink: 0; }
.imse-w1-methodology__source-title {
	display: block;
	font-family: var(--imse-font-heading);
	font-weight: 600;
	font-size: 18px;
	color: var(--imse-navy);
	margin-bottom: 4px;
}
.imse-w1-methodology__source-body {
	font-size: 15px;
	line-height: 1.6;
	color: var(--imse-text-light);
	margin: 0;
}
.imse-w1-methodology__warning {
	background-color: var(--imse-cream-light);
	border-left: 4px solid var(--imse-orange);
	padding: 16px 20px;
	border-radius: var(--imse-radius-md);
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin-bottom: 32px;
}
.imse-w1-methodology__warning svg { flex-shrink: 0; margin-top: 2px; }
.imse-w1-methodology__warning p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--imse-navy); }

/* =====================================================
   S7 - FAQ
   ===================================================== */
.imse-w1-faq { background: linear-gradient(180deg, var(--imse-cream-light) 0%, var(--imse-cream) 100%); padding: 64px 24px; }
.imse-w1-faq__inner { max-width: var(--imse-container-narrow); margin: 0 auto; }
.imse-w1-faq__header { text-align: center; margin-bottom: 32px; }
.imse-w1-faq__eyebrow {
	display: inline-block;
	font-weight: 600; font-size: 12px;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--imse-orange);
	margin-bottom: 8px;
}
.imse-w1-faq__title {
	font-family: var(--imse-font-heading);
	font-weight: 600;
	font-size: clamp(28px, 4vw, 36px);
	line-height: 1.15;
	color: var(--imse-navy);
	margin: 0;
}
.imse-w1-faq__list { list-style: none; padding: 0; margin: 0; }
.imse-w1-faq__item { border-bottom: 1px solid var(--imse-cream-border); }
.imse-w1-faq__question {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	width: 100%;
	padding: 20px 0;
	background: none;
	border: none;
	font-family: var(--imse-font-body);
	font-weight: 600;
	font-size: 17px;
	color: var(--imse-navy);
	text-align: left;
	cursor: pointer;
}
.imse-w1-faq__chevron { flex-shrink: 0; transition: transform var(--imse-trans-base); }
.imse-w1-faq__item.is-open .imse-w1-faq__chevron { transform: rotate(180deg); }
.imse-w1-faq__panel { padding-bottom: 20px; }
.imse-w1-faq__panel p { font-size: 15px; line-height: 1.7; color: var(--imse-text-light); margin: 0; }

/* =====================================================
   S8 - CTA FINAL
   ===================================================== */
.imse-w1-cta-final { background-color: var(--imse-navy); padding: 80px 24px; color: var(--imse-white); }
.imse-w1-cta-final__inner {
	max-width: var(--imse-container-medium);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 48px;
	align-items: center;
}
@media (max-width: 720px) { .imse-w1-cta-final__inner { grid-template-columns: 1fr; gap: 32px; text-align: center; } }
.imse-w1-cta-final__portrait { display: flex; justify-content: center; }
.imse-w1-cta-final__portrait img,
.imse-w1-cta-final__portrait svg { width: 240px; height: 240px; border-radius: 50%; border: 4px solid var(--imse-orange); }
.imse-w1-cta-final__title {
	font-family: var(--imse-font-heading);
	font-weight: 600;
	font-size: clamp(28px, 4vw, 40px);
	line-height: 1.15;
	color: var(--imse-white);
	margin: 0 0 12px;
}
.imse-w1-cta-final__subtitle { font-size: 17px; color: var(--imse-orange); margin: 0 0 24px; }
.imse-w1-cta-final__contacts {
	list-style: none;
	padding: 0;
	margin: 0 0 32px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.imse-w1-cta-final__contacts li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--imse-font-mono);
	font-weight: 500;
	font-size: 17px;
	color: var(--imse-white);
}
@media (max-width: 720px) { .imse-w1-cta-final__contacts li { justify-content: center; flex-wrap: wrap; } }
.imse-w1-cta-final__contacts a { color: var(--imse-white); text-decoration: none; }
.imse-w1-cta-final__contacts a:hover { color: var(--imse-orange); }

/* =====================================================
   S9 - FOOTER HOGUET (mobile defensive lesson S106 #411)
   ===================================================== */
.imse-w1-footer-hoguet {
	background-color: var(--imse-navy-dark);
	color: var(--imse-cream);
	padding: 48px 24px 32px;
	overflow-x: hidden;
	word-break: break-word;
}
.imse-w1-footer-hoguet__inner { max-width: var(--imse-container-wide); margin: 0 auto; }
.imse-w1-footer-hoguet__cols {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	margin-bottom: 32px;
}
.imse-w1-footer-hoguet__col { min-width: 0; }
.imse-w1-footer-hoguet__col-title {
	font-family: var(--imse-font-heading);
	font-weight: 600;
	font-size: 16px;
	color: var(--imse-white);
	margin: 0 0 12px;
}
.imse-w1-footer-hoguet__col p { font-size: 13px; line-height: 1.6; color: var(--imse-cream); margin: 0 0 8px; }
.imse-w1-footer-hoguet__list { list-style: none; padding: 0; margin: 0; }
.imse-w1-footer-hoguet__list li {
	font-size: 13px;
	line-height: 1.7;
	color: var(--imse-cream);
	word-break: break-word;
}
.imse-w1-footer-hoguet__list a {
	color: var(--imse-orange);
	text-decoration: none;
	font-weight: 500;
	font-size: 13px;
}
.imse-w1-footer-hoguet__list a:hover { text-decoration: underline; }
.imse-w1-footer-hoguet__list strong { color: var(--imse-white); font-weight: 600; font-feature-settings: 'tnum'; }
.imse-w1-footer-hoguet__strip {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-top: 24px;
}
.imse-w1-footer-hoguet__strip p {
	font-size: 12px;
	line-height: 1.7;
	color: var(--imse-cream);
	margin: 0;
	font-feature-settings: 'tnum';
	word-break: break-word;
}
.imse-w1-footer-hoguet__strip strong { color: var(--imse-white); }
@media (max-width: 1024px) { .imse-w1-footer-hoguet__cols { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .imse-w1-footer-hoguet__cols { grid-template-columns: 1fr; gap: 24px; } }

/* =====================================================
   ACCESSIBILITY UTILS
   ===================================================== */
.imse-w1-main a:focus-visible,
.imse-w1-main button:focus-visible,
.imse-w1-main input:focus-visible,
.imse-w1-main select:focus-visible,
.imse-w1-main label:focus-visible {
	outline: 3px solid rgba(244, 163, 64, 0.4);
	outline-offset: 2px;
	border-radius: 4px;
}
@media (prefers-reduced-motion: reduce) {
	.imse-w1-main *,
	.imse-w1-main *::before,
	.imse-w1-main *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

/* =====================================================
   ORPHANS FIX (self-check S107)
   ===================================================== */

.imse-w1-btn__arrow { display: inline-block; vertical-align: middle; }
.imse-w1-hero__content { display: flex; flex-direction: column; justify-content: center; }
.imse-w1-cta-final__content { display: flex; flex-direction: column; gap: 4px; }
.imse-w1-result__card--low,
.imse-w1-result__card--high { /* inherits .imse-w1-result__card base styles */ }
.imse-w1-step { display: block; }

/* =====================================================
   STOP 3.5 P1 — Micro-relances Typeform + Sticky CTA mobile
   ===================================================== */

/* Micro-relance pill sous progress bar */
.imse-w1-wizard__relance {
	display: block;
	margin: 16px auto 4px;
	padding: 8px 18px;
	background: var(--imse-cream-light, #FAF3E4);
	color: var(--imse-orange, #F4A340);
	border-radius: 999px;
	font-size: 14px;
	font-style: italic;
	font-weight: 500;
	text-align: center;
	max-width: fit-content;
	border: 1px solid var(--imse-cream-border, #E6D5B8);
	transition: opacity .3s ease;
}

@media (max-width: 480px) {
	.imse-w1-wizard__relance {
		font-size: 13px;
		padding: 6px 14px;
	}
}

/* Sticky CTA tel mobile (768px et moins) */
.imse-w1-mobile-cta-sticky {
	display: none;
}

@media (max-width: 768px) {
	.imse-w1-mobile-cta-sticky {
		position: fixed;
		bottom: 12px;
		left: 12px;
		right: 12px;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		background: var(--imse-navy, #1E3A5F);
		color: var(--imse-cream, #F5EBD9);
		padding: 14px 20px;
		border-radius: 999px;
		text-decoration: none;
		text-align: center;
		font-weight: 600;
		font-size: 15px;
		z-index: 998;
		box-shadow: 0 8px 24px rgba(15, 34, 54, 0.45);
		transition: transform .3s ease, background .3s ease;
	}
	.imse-w1-mobile-cta-sticky:hover,
	.imse-w1-mobile-cta-sticky:focus-visible {
		transform: translateY(-2px);
		background: var(--imse-navy-dark, #152A47);
		color: var(--imse-cream, #F5EBD9);
	}
	.imse-w1-mobile-cta-sticky svg {
		color: var(--imse-orange, #F4A340);
		flex-shrink: 0;
	}
	.imse-w1-mobile-cta-sticky__num {
		font-variant-numeric: tabular-nums;
		font-weight: 700;
	}
	/* Padding-bottom body pour eviter overlap avec contenu fin de page */
	body.page-template-page-simulateur {
		padding-bottom: 80px;
	}
}

@media (max-width: 480px) {
	.imse-w1-mobile-cta-sticky {
		font-size: 14px;
		padding: 12px 16px;
		gap: 8px;
	}
}

/* =====================================================
   S19 - STOP 3.5 BIS — FIX CONTRASTE CTA FINAL
   ROOT CAUSE : body.imse-theme h1,h2,h3 (greffes.css L44, spec 0,1,1)
   force color:var(--navy) #0F2236 sur tous les h2 -> titre
   .imse-w1-cta-final__title (spec 0,1,0) navy sur fond navy = invisible.
   FIX : selector body.imse-theme .imse-w1-cta-final__title (spec 0,2,1)
   bat l override greffes par specificite + ordre source.
   ===================================================== */
body.imse-theme .imse-w1-cta-final__title {
	color: var(--imse-cream, #F5EBD9);
}
body.imse-theme .imse-w1-cta-final__title em {
	color: var(--imse-orange, #F4A340);
	font-style: italic;
	font-weight: 600;
}
/* Defense-in-depth : sous-titre + contacts (au cas ou greffes futur ajoute body.imse-theme p) */
body.imse-theme .imse-w1-cta-final__subtitle {
	color: var(--imse-orange, #F4A340);
}
body.imse-theme .imse-w1-cta-final__contacts,
body.imse-theme .imse-w1-cta-final__contacts li,
body.imse-theme .imse-w1-cta-final__contacts a {
	color: var(--imse-white, #FFFFFF);
}
body.imse-theme .imse-w1-cta-final__contacts a:hover,
body.imse-theme .imse-w1-cta-final__contacts a:focus-visible {
	color: var(--imse-orange, #F4A340);
}
