/* Widget « Être rappelé » — bas droit, aux couleurs de la maquette (bleu nuit / or). */
.nds-rappel { position: fixed; right: 1.25rem; display: flex; flex-direction: column; align-items: flex-end; bottom: 1.25rem; z-index: 40; font: 400 1rem/1.5 var(--font-sans); color: var(--text); }
.nds-rappel *, .nds-rappel *::before, .nds-rappel *::after { box-sizing: border-box; }

.nds-rappel-bouton {
	display: inline-flex; align-items: center; gap: .6rem; min-height: 3.25rem; padding: .7rem 1.2rem .7rem 1rem;
	border: 1.5px solid rgba(255,255,255,.18); border-radius: 999px; background: var(--navy-deep); color: #fff;
	font: 750 .95rem/1.15 var(--font-sans); cursor: pointer; box-shadow: 0 12px 30px rgba(9,30,53,.28);
	transition: transform .2s ease, background .2s ease;
}
.nds-rappel-bouton:hover { background: var(--navy); transform: translateY(-2px); }
.nds-rappel-bouton svg { width: 1.35rem; height: 1.35rem; color: var(--gold); flex: 0 0 auto; }
.nds-rappel-bouton[aria-expanded="true"] { display: none; }

.nds-rappel-panneau {
	position: relative; width: min(23rem, calc(100vw - 2.5rem)); max-height: calc(100vh - 2.5rem); overflow-y: auto;
	padding: 1.5rem 1.4rem 1.3rem; border-radius: .55rem; background: var(--paper); border-top: 3px solid var(--gold);
	box-shadow: 0 24px 60px rgba(9,30,53,.3);
}
.nds-rappel-panneau[hidden] { display: none; }
.nds-rappel-fermer {
	position: absolute; top: .6rem; right: .6rem; width: 2.5rem; height: 2.5rem; border: 0; border-radius: 50%;
	background: transparent; color: var(--navy); font: 400 1.6rem/1 var(--font-sans); cursor: pointer;
}
.nds-rappel-fermer:hover { background: var(--ivory); }
.nds-rappel-titre { margin: 0 2.5rem .35rem 0; color: var(--navy); font: 750 1.3rem/1.2 var(--font-sans); letter-spacing: -.02em; }
.nds-rappel-intro { margin: 0 0 1rem; color: var(--steel); font-size: .88rem; }

.nds-rappel-form { display: grid; gap: .3rem; margin: 0; }
.nds-rappel-form > label:not(.nds-rappel-consent) { margin-top: .45rem; font-size: .82rem; font-weight: 700; color: var(--text); }
.nds-rappel-form label span { font-weight: 400; color: var(--steel); }
.nds-rappel-form input:not([type="checkbox"]), .nds-rappel-form textarea {
	width: 100%; min-height: 2.75rem; padding: .6rem .75rem; border: 1px solid #bcc5cb; border-radius: .35rem;
	background: #fff; color: var(--text); font: inherit; font-size: .95rem;
}
.nds-rappel-form textarea { min-height: 4.5rem; resize: vertical; }
.nds-rappel-form input:focus, .nds-rappel-form textarea:focus { border-color: var(--navy-soft); outline: 2px solid rgba(37,71,102,.22); outline-offset: 0; }
.nds-rappel-form [aria-invalid="true"] { border-color: #a12a1f; }
.nds-rappel-consent { display: flex; align-items: start; gap: .55rem; margin: .7rem 0 .4rem; font-size: .8rem; color: #34485e; }
.nds-rappel-consent input { width: 1.05rem; height: 1.05rem; margin: .15rem 0 0; flex: 0 0 auto; accent-color: var(--navy); }
.nds-rappel-consent a { color: var(--navy); text-decoration: underline; text-underline-offset: .18em; }
.nds-rappel-envoyer {
	min-height: 3rem; margin-top: .3rem; border: 0; border-radius: .55rem; background: var(--gold); color: var(--navy-deep);
	font: 750 .98rem/1.15 var(--font-sans); cursor: pointer; transition: background .2s ease;
}
.nds-rappel-envoyer:hover { background: #f0c458; }
.nds-rappel-envoyer[disabled] { opacity: .65; cursor: progress; }
.nds-rappel-statut { min-height: 1.2rem; margin: .4rem 0 0; font-size: .85rem; font-weight: 700; color: var(--navy); }
.nds-rappel-statut.is-error { color: #a12a1f; }
.nds-rappel-form.is-sent > :not(.nds-rappel-statut) { display: none; }

/* Le menu mobile Xpro (z-index 999) passe au-dessus ; l'en-tête collant reste au-dessus du contenu. */
body.menu-open .nds-rappel { display: none; }
@media (max-width: 600px) {
	.nds-rappel { right: .75rem; bottom: .75rem; }
	.nds-rappel-bouton { min-height: 3rem; padding: .6rem 1rem .6rem .85rem; font-size: .9rem; }
	.nds-rappel-panneau { width: calc(100vw - 1.5rem); max-height: calc(100vh - 1.5rem); }
}
@media (prefers-reduced-motion: reduce) {
	.nds-rappel-bouton, .nds-rappel-envoyer { transition: none; }
}
