/* pj-simulateur-ptz — feuille de style scopée .pj-calc.pj-calc-ptz
 *
 * Charte synchronisée avec pj-calculettes/assets/style.css (palette,
 * typographies, composants .pj-calc-*). Toute évolution visuelle des
 * calculettes doit être répliquée ici. Les classes .pj-calc-ptz-*
 * portent les éléments propres au simulateur PTZ (badges zone/tranche,
 * encarts d'explications, grille différé/remboursement/total).
 */

.pj-calc.pj-calc-ptz {
	--pj-bleu:        #3550a0;
	--pj-bleu-hover:  #4159a0;
	--pj-cyan:        #0b8ad7;
	--pj-orange:      #ff6c00;
	--pj-rouge:       #C70307;
	--pj-vert:        #1B7A4A;
	--pj-vert-bg:     #E8F5EC;
	--pj-orange-warn: #C67A1A;
	--pj-orange-bg:   #FFF3E0;
	--pj-rouge-bg:    #FDEAEA;
	--pj-gris-input:  #50646E;
	--pj-gris-bord:   #D4E8EE;
	--pj-gris-fond:   #FAFCFD;
	--pj-fond:        #ffffff;
	--pj-texte:       #2c3e50;
	--pj-mute:        #6b7c85;

	font-family: 'Lato', Helvetica, Arial, sans-serif;
	color: var(--pj-texte);
	max-width: 640px;
	margin: 0 auto 2.5rem;
	padding: 0 8px;
	line-height: 1.5;
	box-sizing: border-box;
}
.pj-calc.pj-calc-ptz *,
.pj-calc.pj-calc-ptz *::before,
.pj-calc.pj-calc-ptz *::after { box-sizing: border-box; }

.pj-calc.pj-calc-ptz [hidden] { display: none !important; }

/* ===================================================================
   Titres
   =================================================================== */

.pj-calc-ptz h2.pj-calc-titre {
	font-family: 'Playfair Display', Georgia, serif;
	color: var(--pj-orange);
	font-size: 1.85rem;
	font-weight: 700;
	margin: 0 0 1rem;
	text-align: center;
	line-height: 1.2;
}
.pj-calc-ptz h3.pj-calc-soustitre {
	color: var(--pj-cyan);
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0 0 1.25rem;
	text-align: center;
	letter-spacing: 0.02em;
}
.pj-calc-ptz h3.pj-calc-section {
	font-family: 'Playfair Display', Georgia, serif;
	color: var(--pj-orange);
	font-size: 1.45rem;
	font-weight: 700;
	margin: 0 0 1rem;
	text-align: center;
}

/* ===================================================================
   Carte / formulaire
   =================================================================== */

.pj-calc-ptz .pj-calc-card {
	background: var(--pj-fond);
	border: 1px solid var(--pj-gris-bord);
	border-radius: 12px;
	box-shadow: 0 2px 16px rgba(53, 80, 160, 0.06);
	padding: 1.25rem;
	margin-bottom: 1.5rem;
}

.pj-calc-ptz .pj-calc-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.35rem;
	margin-bottom: 0.9rem;
}
@media (min-width: 480px) {
	.pj-calc-ptz .pj-calc-row {
		grid-template-columns: 1fr 1.2fr;
		gap: 0.75rem;
		align-items: center;
	}
	.pj-calc-ptz .pj-calc-row > label { text-align: right; }
}
.pj-calc-ptz .pj-calc-row > label {
	font-size: 0.95rem;
	color: var(--pj-texte);
	font-weight: 400;
}
.pj-calc-ptz .pj-calc-row > label .pj-calc-ptz-help {
	display: inline-block;
	margin-left: 0.25rem;
	color: var(--pj-cyan);
	font-weight: 700;
	cursor: help;
}

.pj-calc-ptz .pj-calc-input,
.pj-calc-ptz .pj-calc-select {
	width: 100%;
	font-family: inherit;
	font-size: 1rem;
	padding: 0.55rem 0.75rem;
	border: 1px solid var(--pj-gris-input);
	border-radius: 6px;
	background: var(--pj-gris-fond);
	color: var(--pj-texte);
	transition: border-color 0.15s, box-shadow 0.15s;
	-webkit-appearance: none;
	appearance: none;
}
.pj-calc-ptz .pj-calc-input:focus,
.pj-calc-ptz .pj-calc-select:focus {
	outline: none;
	border-color: var(--pj-bleu);
	box-shadow: 0 0 0 3px rgba(53, 80, 160, 0.15);
}
.pj-calc-ptz .pj-calc-input:disabled,
.pj-calc-ptz .pj-calc-input.pj-calc-disabled,
.pj-calc-ptz .pj-calc-select:disabled {
	background: #eef1f4;
	color: var(--pj-mute);
}

.pj-calc-ptz .pj-calc-suffix { display: flex; align-items: stretch; }
.pj-calc-ptz .pj-calc-suffix .pj-calc-input {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
	text-align: right;
	border-right: none;
}
.pj-calc-ptz .pj-calc-suffix .pj-calc-suffix-tag {
	background: #e9eef3;
	border: 1px solid var(--pj-gris-input);
	border-left: none;
	border-top-right-radius: 6px;
	border-bottom-right-radius: 6px;
	padding: 0 0.75rem;
	display: flex;
	align-items: center;
	font-size: 0.95rem;
	color: var(--pj-texte);
	min-width: 3rem;
	justify-content: center;
}

.pj-calc-ptz .pj-calc-radios {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	padding: 0.25rem 0;
}
.pj-calc-ptz .pj-calc-radios label {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	cursor: pointer;
	font-size: 0.95rem;
}
.pj-calc-ptz .pj-calc-radios input[type="radio"],
.pj-calc-ptz .pj-calc-radios input[type="checkbox"] {
	accent-color: var(--pj-bleu);
	width: 1.05rem;
	height: 1.05rem;
}

/* ===================================================================
   Boutons
   =================================================================== */

.pj-calc-ptz .pj-calc-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1.25rem;
}

.pj-calc-ptz .pj-calc-btn {
	display: inline-block;
	font-family: 'Lato', Helvetica, Arial, sans-serif;
	font-weight: 900;
	font-size: 16px;
	line-height: 1;
	padding: 0.85em 1.6em;
	border-radius: 100px;
	border: none;
	cursor: pointer;
	text-decoration: none;
	text-align: center;
	transition: background-color 200ms ease, transform 100ms ease;
}
.pj-calc-ptz .pj-calc-btn-primary {
	background: var(--pj-bleu);
	color: #ffffff;
}
.pj-calc-ptz .pj-calc-btn-primary:hover,
.pj-calc-ptz .pj-calc-btn-primary:focus {
	background: var(--pj-bleu-hover);
	color: #ffffff;
	text-decoration: none;
}
.pj-calc-ptz .pj-calc-btn-secondary {
	background: #ffffff;
	color: var(--pj-bleu);
	box-shadow: inset 0 0 0 2px var(--pj-bleu);
}
.pj-calc-ptz .pj-calc-btn-secondary:hover,
.pj-calc-ptz .pj-calc-btn-secondary:focus {
	background: var(--pj-bleu);
	color: #ffffff;
	text-decoration: none;
}
.pj-calc-ptz .pj-calc-btn-ghost {
	background: transparent;
	color: var(--pj-bleu);
	box-shadow: inset 0 0 0 1.5px var(--pj-bleu);
	font-size: 14px;
	padding: 0.6em 1.2em;
}
.pj-calc-ptz .pj-calc-btn-ghost:hover,
.pj-calc-ptz .pj-calc-btn-ghost:focus {
	background: var(--pj-bleu);
	color: #ffffff;
}
.pj-calc-ptz .pj-calc-btn-xl {
	font-size: 17px;
	padding: 1em 1.8em;
	box-shadow: 0 4px 14px rgba(53, 80, 160, 0.25);
}
.pj-calc-ptz .pj-calc-btn-xl:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 20px rgba(53, 80, 160, 0.32);
}

/* ===================================================================
   Spécifique PTZ — badges zone et tranche
   =================================================================== */

.pj-calc-ptz-zone-badge,
.pj-calc-ptz-tranche-badge,
.pj-calc-ptz-status-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.2rem 0.6rem;
	border-radius: 100px;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.pj-calc-ptz-zone-badge { background: #e8eef9; color: var(--pj-bleu); }
.pj-calc-ptz-zone-badge[data-zone="Abis"],
.pj-calc-ptz-zone-badge[data-zone="A"]    { background: #d8e3f8; }
.pj-calc-ptz-zone-badge[data-zone="B1"]   { background: #e8eef9; }
.pj-calc-ptz-zone-badge[data-zone="B2"]   { background: #e6f0f7; }
.pj-calc-ptz-zone-badge[data-zone="C"]    { background: #eef3f7; color: var(--pj-cyan); }

.pj-calc-ptz-tranche-badge { background: var(--pj-orange-bg); color: var(--pj-orange-warn); }

.pj-calc-ptz-status-badge[data-statut="eligible"]     { background: var(--pj-vert-bg); color: var(--pj-vert); }
.pj-calc-ptz-status-badge[data-statut="non_eligible"] { background: var(--pj-rouge-bg); color: var(--pj-rouge); }

/* ===================================================================
   Encart résultat (PTZ — montant principal)
   =================================================================== */

.pj-calc-ptz .pj-calc-resultat-lead {
	background: linear-gradient(180deg, #f6f9ff 0%, #ffffff 100%);
	border: 1px solid var(--pj-gris-bord);
	border-radius: 14px;
	box-shadow: 0 4px 28px rgba(53, 80, 160, 0.10);
	text-align: center;
	padding: 1.6rem 1.25rem 1.5rem;
	margin: 1.25rem 0;
}
.pj-calc-ptz .pj-calc-resultat-lead[hidden] { display: none; }

.pj-calc-ptz .pj-calc-enveloppe-label {
	font-family: 'Lato', Helvetica, Arial, sans-serif;
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--pj-cyan);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin: 0 0 0.4rem;
}
.pj-calc-ptz .pj-calc-enveloppe-value {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 2.8rem;
	font-weight: 700;
	color: var(--pj-orange);
	line-height: 1.05;
	margin: 0 0 0.6rem;
	font-variant-numeric: tabular-nums;
}
@media (min-width: 480px) {
	.pj-calc-ptz .pj-calc-enveloppe-value { font-size: 3.4rem; }
}
.pj-calc-ptz .pj-calc-enveloppe-mention {
	font-size: 0.82rem;
	color: var(--pj-mute);
	line-height: 1.5;
	margin: 0 auto 1.1rem;
	max-width: 30em;
}

/* Grille différé / remboursement / total */
.pj-calc-ptz-duree-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.6rem;
	margin: 0.8rem auto 1rem;
	max-width: 32em;
}
.pj-calc-ptz-duree-cell {
	background: #ffffff;
	border: 1px solid var(--pj-gris-bord);
	border-radius: 8px;
	padding: 0.6rem 0.4rem;
	text-align: center;
}
.pj-calc-ptz-duree-cell .label {
	display: block;
	font-size: 0.75rem;
	color: var(--pj-mute);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 0.15rem;
}
.pj-calc-ptz-duree-cell .value {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 1.3rem;
	font-weight: 700;
	color: var(--pj-bleu);
	line-height: 1.05;
	font-variant-numeric: tabular-nums;
}
.pj-calc-ptz-duree-cell .unit {
	font-size: 0.78rem;
	color: var(--pj-mute);
	margin-top: 0.15rem;
	display: block;
}

/* ===================================================================
   Bloc d'explications (info / warning / error) — KEY de la spec §6
   =================================================================== */

.pj-calc-ptz-explanations {
	margin: 1rem 0;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.pj-calc-ptz-explanation {
	display: flex;
	gap: 0.6rem;
	padding: 0.75rem 0.9rem;
	border-radius: 8px;
	font-size: 0.92rem;
	line-height: 1.45;
	border-left: 4px solid transparent;
}
.pj-calc-ptz-explanation[data-niveau="info"] {
	background: #f1f6ff;
	border-left-color: var(--pj-cyan);
	color: var(--pj-texte);
}
.pj-calc-ptz-explanation[data-niveau="warning"] {
	background: var(--pj-orange-bg);
	border-left-color: var(--pj-orange-warn);
	color: var(--pj-orange-warn);
}
.pj-calc-ptz-explanation[data-niveau="error"] {
	background: var(--pj-rouge-bg);
	border-left-color: var(--pj-rouge);
	color: var(--pj-rouge);
}
.pj-calc-ptz-explanation .pj-calc-ptz-explanation-icon {
	flex: none;
	width: 1.4rem;
	height: 1.4rem;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 900;
	font-size: 0.8rem;
	background: rgba(255, 255, 255, 0.6);
}
.pj-calc-ptz-explanation-body { flex: 1; }
.pj-calc-ptz-explanation-body .court { font-weight: 700; margin: 0 0 0.15rem; }
.pj-calc-ptz-explanation-body .long  { margin: 0; color: var(--pj-texte); font-weight: 400; }
.pj-calc-ptz-explanation[data-niveau="warning"] .pj-calc-ptz-explanation-body .long,
.pj-calc-ptz-explanation[data-niveau="error"]   .pj-calc-ptz-explanation-body .long { color: inherit; }

.pj-calc-ptz-explanation-toggle {
	background: none;
	border: none;
	color: var(--pj-bleu);
	font-weight: 700;
	cursor: pointer;
	font-size: 0.85rem;
	padding: 0.25rem 0 0;
}
.pj-calc-ptz-explanation-toggle:hover { text-decoration: underline; }

/* ===================================================================
   Récap synthétique des paramètres retenus (sous le résultat)
   =================================================================== */

.pj-calc-ptz-recap {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.4rem 1rem;
	margin: 0.75rem auto 1rem;
	max-width: 32em;
	font-size: 0.9rem;
}
.pj-calc-ptz-recap dt {
	color: var(--pj-mute);
	margin: 0;
}
.pj-calc-ptz-recap dd {
	margin: 0;
	font-weight: 700;
	color: var(--pj-texte);
	text-align: right;
	font-variant-numeric: tabular-nums;
}

/* ===================================================================
   Note "Situation fiscale particulière" — sous le bloc résultat
   Affichage discret pour ne pas concurrencer le CTA principal.
   =================================================================== */

.pj-calc-ptz-fiscal-note {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	margin: 1rem 0;
	padding: 0.75rem 0.9rem;
	background: #f6f7f9;
	border: 1px solid var(--pj-gris-bord);
	border-radius: 8px;
	color: var(--pj-mute);
	font-size: 0.85rem;
	line-height: 1.5;
}
.pj-calc-ptz-fiscal-note[hidden] { display: none; }
.pj-calc-ptz-fiscal-icon {
	flex: none;
	color: var(--pj-cyan);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.4;
}
.pj-calc-ptz-fiscal-note p {
	margin: 0;
}
.pj-calc-ptz-fiscal-note strong {
	color: var(--pj-texte);
	font-weight: 700;
	margin-right: 0.25rem;
}
.pj-calc-ptz-fiscal-note a {
	color: var(--pj-bleu);
	text-decoration: underline;
	font-weight: 700;
}
.pj-calc-ptz-fiscal-note a:hover {
	color: var(--pj-bleu-hover);
}

/* ===================================================================
   État "incomplet" et "refaire une simulation"
   =================================================================== */

.pj-calc-ptz-incomplet {
	background: #f6f9ff;
	border: 1px dashed var(--pj-gris-bord);
	border-radius: 10px;
	padding: 1rem 1.25rem;
	margin: 1rem 0;
	color: var(--pj-mute);
	text-align: center;
	font-size: 0.92rem;
}
.pj-calc-ptz-incomplet strong { color: var(--pj-texte); }

/* ===================================================================
   Mention permanente / watermark anti-copie
   =================================================================== */

.pj-calc-ptz-watermark {
	margin: 1.5rem 0 0;
	padding: 1rem;
	background: var(--pj-gris-fond);
	border: 1px solid var(--pj-gris-bord);
	border-radius: 8px;
	font-size: 0.78rem;
	color: var(--pj-mute);
	line-height: 1.5;
	text-align: center;
}
.pj-calc-ptz-watermark p { margin: 0 0 0.5rem; }
.pj-calc-ptz-watermark p:last-child { margin-bottom: 0; }
.pj-calc-ptz-watermark .build-id {
	display: block;
	font-family: 'Courier New', monospace;
	font-size: 0.72rem;
	color: var(--pj-mute);
	opacity: 0.8;
	margin-top: 0.5rem;
}

.pj-calc-ptz .pj-calc-mentions {
	font-size: 0.78rem;
	color: var(--pj-mute);
	text-align: center;
	margin: 0.75rem 0 0;
	line-height: 1.45;
}
.pj-calc-ptz .pj-calc-mentions a {
	color: var(--pj-bleu);
	text-decoration: underline;
}

/* ===================================================================
   Erreur de saisie inline
   =================================================================== */

.pj-calc-ptz .pj-calc-erreur {
	background: var(--pj-rouge-bg);
	color: var(--pj-rouge);
	border: 1px solid #f4c4c4;
	border-radius: 8px;
	padding: 0.6rem 0.85rem;
	margin: 0.75rem 0;
	font-size: 0.95rem;
}
.pj-calc-ptz .pj-calc-erreur[hidden] { display: none; }

/* ===================================================================
   CTA bleu (encart lead)
   =================================================================== */

.pj-calc-ptz .pj-calc-cta {
	background: var(--pj-bleu);
	color: #ffffff;
	border-radius: 12px;
	padding: 1.25rem;
	margin: 1.25rem 0;
	text-align: center;
}
.pj-calc-ptz .pj-calc-cta-titre {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 1.2rem;
	font-weight: 700;
	margin: 0 0 0.4rem;
	color: #ffffff;
}
.pj-calc-ptz .pj-calc-cta-texte {
	margin: 0 0 1rem;
	color: rgba(255, 255, 255, 0.92);
	font-size: 0.95rem;
}
.pj-calc-ptz .pj-calc-cta .pj-calc-btn-primary {
	background: #ffffff;
	color: var(--pj-bleu);
}
.pj-calc-ptz .pj-calc-cta .pj-calc-btn-primary:hover {
	background: rgba(255, 255, 255, 0.9);
	color: var(--pj-bleu);
}

/* ===================================================================
   Modale lead capture — clone fonctionnel de pj-calculettes
   (hors scope .pj-calc, donc variables redéfinies)
   =================================================================== */

.pj-calc-lead-modal {
	--pj-bleu:        #3550a0;
	--pj-bleu-hover:  #4159a0;
	--pj-cyan:        #0b8ad7;
	--pj-orange:      #ff6c00;
	--pj-rouge:       #C70307;
	--pj-vert:        #1B7A4A;
	--pj-vert-bg:     #E8F5EC;
	--pj-rouge-bg:    #FDEAEA;
	--pj-gris-input:  #50646E;
	--pj-gris-fond:   #FAFCFD;
	--pj-mute:        #6b7c85;
	--pj-texte:       #2c3e50;

	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	font-family: 'Lato', Helvetica, Arial, sans-serif;
	color: var(--pj-texte);
	box-sizing: border-box;
}
.pj-calc-lead-modal[hidden] { display: none; }
.pj-calc-lead-modal *,
.pj-calc-lead-modal *::before,
.pj-calc-lead-modal *::after { box-sizing: border-box; }

.pj-calc-lead-overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 25, 50, 0.55);
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
	animation: pjPtzFade 180ms ease;
}
.pj-calc-lead-dialog {
	position: relative;
	background: #ffffff;
	border-radius: 14px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
	width: 100%;
	max-width: 520px;
	max-height: 90vh;
	overflow-y: auto;
	padding: 1.6rem 1.5rem 1.4rem;
	animation: pjPtzSlide 220ms ease;
}
@keyframes pjPtzFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pjPtzSlide {
	from { opacity: 0; transform: translateY(12px); }
	to   { opacity: 1; transform: translateY(0); }
}

.pj-calc-lead-close {
	position: absolute;
	top: 0.5rem;
	right: 0.7rem;
	background: transparent;
	border: none;
	font-size: 1.8rem;
	line-height: 1;
	color: var(--pj-mute);
	cursor: pointer;
	padding: 0.25rem 0.5rem;
}
.pj-calc-lead-close:hover { color: var(--pj-bleu); }

.pj-calc-lead-titre {
	font-family: 'Playfair Display', Georgia, serif;
	color: var(--pj-bleu);
	font-size: 1.45rem;
	font-weight: 700;
	margin: 0 0 0.3rem;
	padding-right: 1.5rem;
}
.pj-calc-lead-intro {
	font-size: 0.95rem;
	color: var(--pj-texte);
	margin: 0 0 1rem;
}
.pj-calc-lead-summary {
	background: #f6f9ff;
	border-left: 3px solid var(--pj-orange);
	border-radius: 6px;
	padding: 0.7rem 0.9rem;
	margin: 0 0 1.1rem;
	font-size: 0.9rem;
}
.pj-calc-lead-summary ul { margin: 0; padding: 0 0 0 1.1rem; }
.pj-calc-lead-summary li { margin-bottom: 0.2rem; line-height: 1.45; }
.pj-calc-lead-summary li strong { color: var(--pj-orange); }

.pj-calc-lead-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.7rem 0.8rem;
	margin-bottom: 0.9rem;
}
@media (min-width: 460px) {
	.pj-calc-lead-grid { grid-template-columns: 1fr 1fr; }
}
.pj-calc-lead-field {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}
.pj-calc-lead-field > span {
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--pj-texte);
}
.pj-calc-lead-field input,
.pj-calc-lead-field textarea {
	font-family: inherit;
	font-size: 1rem;
	padding: 0.55rem 0.75rem;
	border: 1px solid var(--pj-gris-input);
	border-radius: 6px;
	background: var(--pj-gris-fond);
	color: var(--pj-texte);
	width: 100%;
}
.pj-calc-lead-field textarea {
	resize: vertical;
	min-height: 70px;
	line-height: 1.4;
}
.pj-calc-lead-field input:focus,
.pj-calc-lead-field textarea:focus {
	outline: none;
	border-color: var(--pj-bleu);
	box-shadow: 0 0 0 3px rgba(53, 80, 160, 0.15);
}
.pj-calc-lead-field-full {
	grid-column: 1 / -1;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	margin-bottom: 0.9rem;
}
.pj-calc-lead-honeypot {
	position: absolute;
	left: -9999px;
	top: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.pj-calc-lead-rgpd {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	font-size: 0.88rem;
	margin: 0.5rem 0 0.9rem;
	line-height: 1.45;
}
.pj-calc-lead-rgpd input[type="checkbox"] {
	margin-top: 0.2rem;
	accent-color: var(--pj-bleu);
	width: 1.1rem;
	height: 1.1rem;
	flex: none;
}
.pj-calc-lead-msg {
	padding: 0.6rem 0.85rem;
	border-radius: 6px;
	font-size: 0.9rem;
	margin: 0 0 0.8rem;
}
.pj-calc-lead-msg[data-niveau="erreur"] {
	background: var(--pj-rouge-bg);
	color: var(--pj-rouge);
	border: 1px solid #f4c4c4;
}
.pj-calc-lead-actions {
	display: flex;
	justify-content: center;
	margin: 0.4rem 0 0.7rem;
}
.pj-calc-lead-actions .pj-calc-btn { width: 100%; }
@media (min-width: 460px) {
	.pj-calc-lead-actions .pj-calc-btn { width: auto; min-width: 240px; }
}
.pj-calc-lead-mentions {
	font-size: 0.74rem;
	color: var(--pj-mute);
	line-height: 1.5;
	margin: 0;
	text-align: center;
}
.pj-calc-lead-mentions a {
	color: var(--pj-bleu);
	text-decoration: underline;
}
.pj-calc-lead-success {
	text-align: center;
	padding: 1rem 0.5rem;
}
.pj-calc-lead-success[hidden] { display: none; }
.pj-calc-lead-success-icon {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--pj-vert-bg);
	color: var(--pj-vert);
	font-size: 2.2rem;
	font-weight: 900;
	line-height: 64px;
	margin: 0 auto 0.9rem;
}

/* ===================================================================
   Tooltip / aide contextuelle
   =================================================================== */

.pj-calc-ptz-tooltip {
	position: relative;
	cursor: help;
	display: inline-block;
	margin-left: 0.2rem;
	color: var(--pj-cyan);
	font-weight: 700;
}
.pj-calc-ptz-tooltip[data-tooltip]:hover::after,
.pj-calc-ptz-tooltip[data-tooltip]:focus::after {
	content: attr(data-tooltip);
	position: absolute;
	bottom: calc(100% + 6px);
	left: 50%;
	transform: translateX(-50%);
	background: var(--pj-texte);
	color: #ffffff;
	padding: 0.55rem 0.75rem;
	border-radius: 6px;
	font-size: 0.78rem;
	line-height: 1.45;
	white-space: normal;
	width: max-content;
	max-width: 280px;
	z-index: 10;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
	text-align: left;
}
.pj-calc-ptz-tooltip-wide[data-tooltip]:hover::after,
.pj-calc-ptz-tooltip-wide[data-tooltip]:focus::after {
	max-width: 380px;
}
/* Sur petits écrans, ancrer le tooltip à gauche du conteneur radios
   pour éviter le débordement à droite. */
@media (max-width: 640px) {
	.pj-calc-ptz-tooltip[data-tooltip]:hover::after,
	.pj-calc-ptz-tooltip[data-tooltip]:focus::after {
		left: 0;
		transform: none;
		max-width: calc(100vw - 2rem);
	}
}

/* ===================================================================
   Impression
   =================================================================== */

@media print {
	.pj-calc-ptz .pj-calc-actions,
	.pj-calc-ptz .pj-calc-cta,
	.pj-calc-ptz form,
	.pj-calc-ptz .pj-calc-mentions a { display: none !important; }
	.pj-calc-ptz { max-width: 100%; }
	.pj-calc-ptz .pj-calc-resultat-lead { background: #ffffff; border: 1px solid #ccc; box-shadow: none; }
	.pj-calc-ptz-watermark { background: #ffffff; border: 1px solid #ccc; }
}
