/* Nexus RDV — landing. Tout est préfixé pour éviter toute collision. */
:root{
	--nx-blue:#002EA6;
	--nx-blue-deep:#001C63;
	--nx-turq:#52B9C9;
	--nx-white:#ffffff;
	--nx-ink:#0d1b3e;
	--nx-line:#dfe6f5;
}
*{box-sizing:border-box}

/* Anti-scroll horizontal (usage mobile) : rien ne dépasse la largeur de l'écran,
   seul le défilement vertical est possible. */
html,body.nexus-rdv-body{
	margin:0;padding:0;
	width:100%;max-width:100%;
	overflow-x:hidden;
	overscroll-behavior-x:none;
}
body.nexus-rdv-body{
	font-family:"Helvetica Neue",Arial,sans-serif;
	color:var(--nx-white);
	background:linear-gradient(160deg,var(--nx-blue) 0%,var(--nx-blue-deep) 100%);
	min-height:100vh;
	-webkit-font-smoothing:antialiased;
	position:relative;
}
img,iframe,input,select,textarea{max-width:100%}

/* Un élément caché reste caché même s'il a display:flex (labels .nx-field) */
[hidden]{display:none !important}

/* Constellations discrètes (décor, jamais de vert) */
.nx-decor{
	position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;
	background-image:
		radial-gradient(circle,var(--nx-turq) 2px,transparent 2.5px),
		radial-gradient(circle,rgba(255,255,255,.55) 1.5px,transparent 2px),
		radial-gradient(circle,rgba(255,255,255,.35) 1.5px,transparent 2px);
	background-size:220px 200px,160px 180px,300px 260px;
	background-position:20px 40px,120px 160px,60px 300px;
}
.nx-wrap{
	position:relative;z-index:1;
	width:100%;max-width:560px;margin:0 auto;padding:32px 20px 56px;
}

/* Logo */
.nx-logo{display:block;max-width:150px;height:auto;margin:0 auto 22px}
.nx-logo-text{
	text-align:center;font-weight:800;font-size:34px;line-height:1;
	letter-spacing:.5px;margin:0 auto 22px;color:var(--nx-white);
}
.nx-logo-text span{display:block;font-size:15px;letter-spacing:6px;color:var(--nx-turq);margin-top:4px}

/* Hero */
.nx-hero{text-align:center;margin-bottom:26px}
.nx-kicker{color:var(--nx-turq);font-weight:700;letter-spacing:.5px;margin:0 0 10px;font-size:15px}
.nx-title{font-size:30px;line-height:1.15;font-weight:800;margin:0 0 14px;overflow-wrap:break-word}
.nx-accent{color:var(--nx-turq)}
.nx-subtitle{font-size:16px;line-height:1.5;color:rgba(255,255,255,.9);margin:0 auto;max-width:440px}

/* Carte formulaire (fond blanc) */
.nx-card{
	background:var(--nx-white);color:var(--nx-ink);
	border-radius:18px;padding:22px 20px 26px;
	box-shadow:0 18px 50px rgba(0,10,60,.35);
	overflow-wrap:break-word;
}
.nx-card-intro{font-weight:700;font-size:17px;margin:0 0 18px;text-align:center;color:var(--nx-blue)}

.nx-form{display:flex;flex-direction:column;gap:15px}
.nx-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.nx-field>span{font-size:14px;font-weight:600;color:var(--nx-ink)}
.nx-help{color:#5a6b8c;font-size:12.5px;line-height:1.4;font-weight:400}
.nx-row{display:flex;gap:12px}
.nx-row .nx-field{flex:1;min-width:0}

/* Astérisque champ obligatoire */
.nx-req{color:#e5484d;margin-left:3px;font-weight:700}
.nx-required-note{font-size:12.5px;color:#5a6b8c;margin:2px 0 0}

.nx-field input,.nx-field select{
	width:100%;padding:12px 13px;font-size:16px;/* 16px = pas de zoom auto iOS */
	border:1.5px solid var(--nx-line);border-radius:10px;background:#fff;color:var(--nx-ink);
	font-family:inherit;
}
.nx-field input:focus,.nx-field select:focus{outline:none;border-color:var(--nx-blue);box-shadow:0 0 0 3px rgba(0,46,166,.12)}

/* Questions Oui/Non (participants + réseau) */
.nx-sup-q{font-size:14px;font-weight:600;margin-bottom:2px;color:var(--nx-ink)}
.nx-toggle{display:flex;gap:10px;margin-top:6px}
.nx-toggle-opt{flex:1;display:flex}
.nx-toggle-opt input{position:absolute;opacity:0;pointer-events:none}
.nx-toggle-opt span{
	flex:1;text-align:center;padding:11px;border:1.5px solid var(--nx-line);border-radius:10px;
	font-weight:600;cursor:pointer;transition:.15s;user-select:none;
}
.nx-toggle-opt input:checked+span{background:var(--nx-blue);border-color:var(--nx-blue);color:#fff}

/* Bloc réseau (liste + précision) */
.nx-reseau-select,.nx-reseau-autre,.nx-ville-autre{margin-top:12px}

.nx-stepper{margin-top:12px}
.nx-stepper small{display:block;font-size:13px;color:#5a6b8c;margin-bottom:6px}
.nx-stepper-ctrl{display:inline-flex;align-items:center;border:1.5px solid var(--nx-line);border-radius:10px;overflow:hidden}
.nx-step{
	width:46px;height:46px;border:none;background:#f2f5fc;font-size:22px;font-weight:700;
	color:var(--nx-blue);cursor:pointer;line-height:1;
}
.nx-step:active{background:#e3eafc}
#nx-sup{width:64px;height:46px;text-align:center;border:none;border-left:1.5px solid var(--nx-line);border-right:1.5px solid var(--nx-line);font-size:17px;font-weight:700;color:var(--nx-ink);background:#fff}

/* Mention RGPD : encadré défilant */
.nx-rgpd-box{max-height:118px;overflow-y:auto;font-size:12px;line-height:1.55;color:#5a6b8c;border:1px solid var(--nx-line);border-radius:10px;padding:10px 12px;background:#fbfcfe;-webkit-overflow-scrolling:touch}
.nx-rgpd-box a{color:var(--nx-blue);text-decoration:underline;word-break:break-word}

/* RGPD */
.nx-consent{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.45;color:#3a4763}
.nx-consent input{margin-top:2px;width:18px;height:18px;flex:0 0 auto;accent-color:var(--nx-blue)}

/* Erreurs */
.nx-errors{background:#fdecec;border:1px solid #f5b5b5;color:#a12626;border-radius:10px;padding:10px 12px;font-size:13.5px}
.nx-errors ul{margin:0;padding-left:18px}

/* Bouton */
.nx-submit{
	margin-top:4px;padding:15px;border:none;border-radius:12px;
	background:var(--nx-blue);color:#fff;font-size:17px;font-weight:700;cursor:pointer;
	transition:.15s;font-family:inherit;
}
.nx-submit:hover{background:#0038c9}
/* Désactivé (RGPD non cochée) : nettement plus clair */
.nx-submit:disabled{background:#aebfe4;color:#f2f5fc;cursor:not-allowed;opacity:1}

/* Succès */
.nx-success{text-align:center;padding:14px 6px}
.nx-check{
	width:56px;height:56px;border-radius:50%;background:var(--nx-turq);color:#fff;
	font-size:30px;line-height:56px;margin:0 auto 14px;font-weight:700;
}
.nx-success p{font-size:17px;line-height:1.5;color:var(--nx-ink);margin:0;font-weight:600}

/* Vidéo */
.nx-video{margin-top:30px;scroll-margin-top:16px}
.nx-video-title{text-align:center;font-size:19px;font-weight:700;margin:0 0 14px;color:#fff}
.nx-video-frame{position:relative;padding-top:56.25%;border-radius:14px;overflow:hidden;box-shadow:0 14px 40px rgba(0,10,60,.35)}
.nx-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}


/* Départements : puces multi-sélection */
.nx-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.nx-chip{display:inline-flex;align-items:center;gap:6px;background:#eef3ff;color:#002EA6;border:1px solid #cddaf7;border-radius:999px;padding:6px 6px 6px 12px;font-size:13px;font-weight:600}
.nx-chip-x{border:none;background:#002EA6;color:#fff;width:20px;height:20px;border-radius:50%;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex:0 0 auto}

/* Pied de la landing (sur fond bleu) */
.nx-footer{margin-top:34px;text-align:center}
.nx-footer-logo{display:block;width:auto;max-width:300px;height:auto;margin:0 auto 16px}
.nx-footer-line{color:rgba(255,255,255,.85);font-size:13px;line-height:1.5;margin:0 0 16px}
.nx-legal-box{max-height:110px;overflow-y:auto;font-size:11.5px;line-height:1.5;color:#5a6b8c;background:#fbfcfe;border:1px solid var(--nx-line);border-radius:10px;padding:10px 12px;text-align:left;-webkit-overflow-scrolling:touch}
.nx-legal-box a{color:var(--nx-blue);text-decoration:underline;word-break:break-word}

/* ≥ 640px */
@media(min-width:640px){
	.nx-wrap{padding-top:48px}
	.nx-title{font-size:38px}
	.nx-card{padding:30px 30px 34px}
}
