
/* ===== Formulaires publics premium NOVALEX ===== */
.nx-form-shell { max-width: 1080px; margin: 0 auto; }
.nx-form-intro { display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; margin-top:14px; font-size:.92rem; color:rgba(255,255,255,.9); }
.nx-form-intro span { display:inline-flex; align-items:center; gap:7px; }
.nx-form-intro i { color:#fff; }
.nx-form-body { padding:28px; }
@media (min-width: 992px){ .nx-form-body{padding:42px 46px;} }
.nx-form-note { background:#f6f8fb; border:1px solid #e5eaf1; border-radius:12px; padding:12px 14px; color:#52627a; font-size:.9rem; margin-bottom:26px; }
.nx-form-note i { color:#0f3460; }
.nx-form-section { border:1px solid #e6ebf2; border-radius:16px; padding:22px; margin-bottom:22px; background:#fff; }
.nx-form-section-title { display:flex; gap:13px; align-items:flex-start; margin-bottom:20px; }
.nx-form-section-number { width:34px; height:34px; flex:0 0 34px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800; color:#fff; font-size:.9rem; }
.nx-form-section-copy h5 { margin:0 0 3px; font-weight:800; color:#17213b; }
.nx-form-section-copy p { margin:0; color:#718096; font-size:.9rem; }
.nx-field-label { display:flex; justify-content:space-between; gap:10px; align-items:baseline; margin-bottom:7px; font-weight:700; color:#27334d; }
.nx-required { color:#dc3545; font-weight:800; }
.nx-field-help { display:block; margin-top:6px; color:#7a8799; font-size:.82rem; }
.nx-form-body .form-control, .nx-form-body .form-select { min-height:50px; border-radius:10px; border:1px solid #d8e0ea; padding:12px 14px; box-shadow:none; transition:border-color .18s, box-shadow .18s, background .18s; }
.nx-form-body textarea.form-control { min-height:120px; resize:vertical; }
.nx-form-body .form-control:focus, .nx-form-body .form-select:focus { border-color:#06bbcc; box-shadow:0 0 0 4px rgba(6,187,204,.10); }
.nx-form-body .form-control:invalid:not(:placeholder-shown), .nx-form-body .form-select:invalid:not(:focus) { }
.nx-type-grid { row-gap:12px; }
.nx-type-option { position:relative; display:block; height:100%; margin:0; cursor:pointer; }
.nx-type-option input { position:absolute; opacity:0; pointer-events:none; }
.nx-type-card { height:100%; min-height:112px; border:1.5px solid #dce3eb; border-radius:14px; padding:16px 14px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:7px; background:#fff; transition:.2s ease; }
.nx-type-card:hover { border-color:#06bbcc; transform:translateY(-2px); box-shadow:0 8px 22px rgba(23,33,59,.08); }
.nx-type-option input:focus-visible + .nx-type-card { outline:3px solid rgba(6,187,204,.24); outline-offset:2px; }
.nx-type-option input:checked + .nx-type-card { border-color:#06bbcc; background:linear-gradient(180deg,#f2fdff,#fff); box-shadow:0 0 0 3px rgba(6,187,204,.10); }
.nx-type-icon { width:46px; height:46px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:#f0f5fa; font-size:1.45rem; }
.nx-type-option input:checked + .nx-type-card .nx-type-icon { background:rgba(6,187,204,.12); }
.nx-type-check { position:absolute; top:9px; right:9px; width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#06bbcc; color:#fff; font-size:.7rem; opacity:0; transform:scale(.7); transition:.18s; }
.nx-type-option input:checked ~ .nx-type-check { opacity:1; transform:scale(1); }
.nx-consents { background:#f8fafc; border:1px solid #e2e8f0; border-radius:14px; padding:18px; }
.nx-consent { display:flex; gap:11px; align-items:flex-start; padding:10px 0; margin:0; }
.nx-consent + .nx-consent { border-top:1px solid #e8edf3; }
.nx-consent .form-check-input { width:19px; height:19px; flex:0 0 19px; margin:2px 0 0; border-color:#b9c4d2; }
.nx-consent .form-check-input:checked { background-color:#06bbcc; border-color:#06bbcc; }
.nx-consent .form-check-label { color:#46546a; line-height:1.55; font-size:.9rem; }
.nx-submit-area { margin-top:24px; }
.nx-submit-btn { min-height:56px; border:0; border-radius:12px; letter-spacing:.1px; box-shadow:0 8px 22px rgba(15,52,96,.16); transition:.2s; }
.nx-submit-btn:hover { transform:translateY(-1px); box-shadow:0 11px 26px rgba(15,52,96,.22); }
.nx-submit-meta { display:flex; justify-content:center; flex-wrap:wrap; gap:10px 22px; margin-top:12px; color:#7b8798; font-size:.8rem; }
.nx-submit-meta span { display:inline-flex; align-items:center; gap:6px; }
.nx-validation { display:none; margin:0 0 18px; border-radius:12px; }
.nx-validation.show { display:block; }
.nx-type-error { color:#b42318; font-size:.84rem; margin-top:10px; display:none; }
.nx-type-error.show { display:block; }
.nx-success-card { max-width:700px; margin:0 auto; border:1px solid #d8efe2; background:#fbfffc; border-radius:18px; }
.nx-form-card .alert-info { border:1px solid #cfe7f5; border-radius:12px; background:#f4fbff; color:#3d5d72; }
@media (max-width: 575.98px){ .nx-form-body{padding:18px;} .nx-form-section{padding:17px;} .nx-form-section-title{margin-bottom:16px;} .nx-type-card{min-height:102px;padding:13px 8px;} .nx-type-icon{width:40px;height:40px;font-size:1.25rem;} }

.nx-form-header-icon{width:46px;height:46px;flex:0 0 46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.16);font-size:1.25rem;color:#fff;}

.nx-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
.nx-form-section{min-width:0;}
.nx-form-section legend{float:none;width:auto;}
