/*  =====================================================================
    NDI FORM SYSTEM — Shared CSS
    =====================================================================
    One file for ALL form layouts. Class-driven, no ID selectors.
    Layouts: .ndi-form--standard  (2-col: copy left + card right)
             .ndi-form--flat      (centered single-column card)
             .ndi-form--wizard    (multi-step wizard with progress bar)
    Accent color: set --accent per-instance (defaults to --brand-orange).
    ===================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');

/* ── Design Tokens ── */
.ndi-form {
    --brand-indigo: #1e1b4b;
    --brand-orange: #ea580c;
    --brand-orange-light: rgba(234, 88, 12, 0.08);
    --accent: var(--brand-orange);
    --accent-light: var(--brand-orange-light);
    --text-primary: #1e1b4b;
    --text-secondary: #334155;
    --text-muted: #64748b;
    --border: #e2e8f0;
    --border-focus: var(--accent);
    --surface: #ffffff;
    --field-bg: #f8fafc;
    --error: #dc2626;
    --success: #16a34a;
    --ease: cubic-bezier(0.16, 1, 0.3, 1);

    font-family: 'Poppins', sans-serif;
    background: #ffffff;
    padding: 100px 5% 120px;
    position: relative;
    overflow: hidden;
}

.ndi-form *, .ndi-form *::before, .ndi-form *::after { box-sizing: border-box; }


/* =====================================================================
   FLOATING DECORATIVE ACCENTS
   ===================================================================== */
.ndi-form .ndi-float { position: absolute; pointer-events: none; z-index: 0; }
.ndi-form .ndi-float.ff-1 { width: 300px; height: 300px; top: 15%; left: -5%; border-radius: 50%; background: rgba(234,88,12,0.025); animation: ndiDrift1 20s ease-in-out infinite; }
.ndi-form .ndi-float.ff-2 { width: 180px; height: 180px; bottom: 5%; right: 3%; border-radius: 50%; border: 2px solid rgba(30,27,75,0.05); animation: ndiDrift2 24s ease-in-out infinite; }
.ndi-form .ndi-float.ff-3 { width: 36px; height: 36px; top: 30%; right: 8%; background: rgba(30,27,75,0.03); border-radius: 6px; transform: rotate(45deg); animation: ndiDrift3 18s ease-in-out infinite; }

@keyframes ndiDrift1 { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(15px,20px) scale(1.04)} }
@keyframes ndiDrift2 { 0%,100%{transform:translate(0,0) rotate(0)} 50%{transform:translate(-20px,-15px) rotate(90deg)} }
@keyframes ndiDrift3 { 0%,100%{transform:rotate(45deg) translate(0,0)} 50%{transform:rotate(45deg) translate(8px,-12px)} }
@media (prefers-reduced-motion:reduce) { .ndi-form .ndi-float{animation:none!important} }


/* =====================================================================
   LAYOUT: STANDARD  —  2-column (copy left + form card right)
   ===================================================================== */
.ndi-form--standard .ndi-container { max-width:1260px; margin:0 auto; display:grid; grid-template-columns:1fr 1.2fr; gap:60px; align-items:start; position:relative; z-index:2; }

/* Left: Copy & Trust */
.ndi-form--standard .ndi-copy { padding-top:20px; position:sticky; top:120px; }
.ndi-form .ndi-kicker { display:inline-flex; align-items:center; gap:12px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:4.5px; color:var(--accent); margin-bottom:20px; }
.ndi-form .ndi-kicker::before { content:''; width:30px; height:2px; background:var(--accent); opacity:0.4; }
.ndi-form .ndi-headline { font-size:clamp(28px,3.5vw,42px); font-weight:900; line-height:1.15; color:var(--brand-indigo); margin:0 0 18px; letter-spacing:-1px; }
.ndi-form .ndi-headline span { color:var(--accent); }
.ndi-form .ndi-lead { font-size:16px; line-height:1.75; color:var(--text-muted); margin:0 0 36px; }

.ndi-form .ndi-trust { display:flex; flex-direction:column; gap:18px; }
.ndi-form .ndi-trust-item { display:flex; align-items:center; gap:14px; font-size:14px; color:var(--text-secondary); font-weight:500; }
.ndi-form .ndi-trust-icon { width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0; background:var(--accent-light); color:var(--accent); }

/* Right: Form Card */
.ndi-form .ndi-card { background:var(--surface); border:1px solid var(--border); border-radius:20px; padding:44px 40px 48px; box-shadow:0 20px 50px rgba(30,27,75,0.04),0 4px 12px rgba(0,0,0,0.02); position:relative; }
.ndi-form .ndi-card-title { font-size:22px; font-weight:800; color:var(--brand-indigo); margin:0 0 6px; letter-spacing:-0.5px; }
.ndi-form .ndi-card-sub { font-size:14px; color:var(--text-muted); margin:0 0 32px; font-weight:400; }


/* =====================================================================
   FORM FIELDS — shared across all layouts
   ===================================================================== */
.ndi-form .ndi-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.ndi-form .ndi-row.full { grid-template-columns:1fr; }
.ndi-form .ndi-field { position:relative; }
.ndi-form .ndi-field label { display:block; font-size:12px; font-weight:600; color:var(--text-secondary); margin-bottom:6px; letter-spacing:0.2px; }
.ndi-form .ndi-field label .req { color:var(--accent); margin-left:2px; }

.ndi-form .ndi-field input,
.ndi-form .ndi-field select,
.ndi-form .ndi-field textarea {
    width:100%; padding:14px 16px;
    font-family:'Poppins',sans-serif; font-size:14px; font-weight:500;
    color:var(--text-primary); background:var(--field-bg);
    border:1.5px solid var(--border); border-radius:10px;
    outline:none; appearance:none; -webkit-appearance:none; box-sizing:border-box;
    transition:border-color .25s ease,background .2s ease,box-shadow .25s ease;
}
.ndi-form .ndi-field textarea { resize:vertical; min-height:100px; }
.ndi-form .ndi-field input::placeholder,
.ndi-form .ndi-field textarea::placeholder { color:#94a3b8; font-weight:400; }
.ndi-form .ndi-field input:focus,
.ndi-form .ndi-field select:focus,
.ndi-form .ndi-field textarea:focus { border-color:var(--border-focus); background:#fff; box-shadow:0 0 0 4px rgba(234,88,12,0.08); }

/* Select arrow */
.ndi-form .ndi-select { position:relative; }
.ndi-form .ndi-select::after { content:'\f107'; font-family:'Font Awesome 6 Free'; font-weight:900; position:absolute; right:16px; bottom:16px; font-size:13px; color:var(--text-muted); pointer-events:none; }

/* Validation error */
.ndi-form .ndi-field.has-error input,
.ndi-form .ndi-field.has-error select,
.ndi-form .ndi-field.has-error textarea { border-color:var(--error); box-shadow:0 0 0 4px rgba(220,38,38,0.06); }
.ndi-form .ndi-field-error { display:none; font-size:11px; color:var(--error); margin-top:4px; font-weight:500; }
.ndi-form .ndi-field.has-error .ndi-field-error { display:block; }

/* Honeypot */
.ndi-form .ndi-hp { position:absolute; left:-9999px; opacity:0; height:0; width:0; overflow:hidden; pointer-events:none; }


/* =====================================================================
   RADIO CARD SELECTOR  — used by foundation & package forms
   ===================================================================== */
.ndi-form .ndi-card-selector { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:28px; }
.ndi-form .ndi-card-selector input[type="radio"] { position:absolute; opacity:0; width:0; height:0; }
.ndi-form .ndi-card-selector label { display:flex; flex-direction:column; align-items:center; gap:6px; padding:18px 12px; border:2px solid var(--border); border-radius:14px; cursor:pointer; transition:border-color .25s ease,background .25s ease,box-shadow .25s ease; text-align:center; background:var(--field-bg); }
.ndi-form .ndi-card-selector label:hover { border-color:rgba(30,27,75,0.15); background:#ffffff; }
.ndi-form .ndi-card-selector .sel-icon { width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:15px; transition:transform .25s var(--ease); background:var(--accent-light); color:var(--accent); }
.ndi-form .ndi-card-selector .sel-name { font-size:11px; font-weight:700; color:var(--text-primary); letter-spacing:-0.2px; line-height:1.3; }
.ndi-form .ndi-card-selector input[type="radio"]:checked + label { border-color:var(--accent); background:#ffffff; box-shadow:0 4px 16px rgba(234,88,12,0.08); }
.ndi-form .ndi-card-selector input[type="radio"]:checked + label .sel-icon { transform:scale(1.1); }
.ndi-form .ndi-card-selector input[type="radio"]:focus-visible + label { outline:2px solid var(--accent); outline-offset:2px; }

/* Per-icon color overrides for package selector */
.ndi-form .sel-icon--indigo { background:rgba(30,27,75,0.05); color:var(--brand-indigo); }
.ndi-form .sel-icon--violet { background:rgba(124,58,237,0.08); color:#7c3aed; }


/* =====================================================================
   SUBMIT BUTTON
   ===================================================================== */
.ndi-form .ndi-submit-row { margin-top:28px; }
.ndi-form .ndi-submit { width:100%; padding:18px 32px; font-family:'Poppins',sans-serif; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:#fff; background:linear-gradient(135deg,var(--accent),#f97316); border:none; border-radius:12px; cursor:pointer; transition:transform .3s var(--ease),box-shadow .3s ease,opacity .2s ease; box-shadow:0 10px 30px rgba(234,88,12,0.2); position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; gap:10px; min-height:58px; }
.ndi-form .ndi-submit:hover { transform:translateY(-2px); box-shadow:0 16px 40px rgba(234,88,12,0.3); }
.ndi-form .ndi-submit:active { transform:translateY(0); }
.ndi-form .ndi-submit:disabled { opacity:0.7; cursor:not-allowed; transform:none; }
.ndi-form .ndi-submit i { font-size:12px; transition:transform .3s var(--ease); }
.ndi-form .ndi-submit:hover i { transform:translateX(3px); }
.ndi-form .ndi-submit .ndi-spinner { display:none; width:20px; height:20px; border:2.5px solid rgba(255,255,255,0.3); border-top-color:#fff; border-radius:50%; animation:ndiSpin .7s linear infinite; }
.ndi-form .ndi-submit.loading .btn-text { display:none; }
.ndi-form .ndi-submit.loading .ndi-spinner { display:block; }
.ndi-form .ndi-submit.loading i { display:none; }
@keyframes ndiSpin { to{transform:rotate(360deg)} }


/* =====================================================================
   STATUS MESSAGES & PRIVACY
   ===================================================================== */
.ndi-form .ndi-status { margin-top:16px; padding:14px 20px; border-radius:10px; font-size:13.5px; font-weight:500; line-height:1.5; display:none; }
.ndi-form .ndi-status.success { display:block; background:rgba(22,163,74,0.06); color:var(--success); border:1px solid rgba(22,163,74,0.15); }
.ndi-form .ndi-status.error { display:block; background:rgba(220,38,38,0.06); color:var(--error); border:1px solid rgba(220,38,38,0.15); }
.ndi-form .ndi-privacy { margin-top:16px; font-size:11.5px; color:#94a3b8; line-height:1.6; text-align:center; }
.ndi-form .ndi-privacy i { margin-right:4px; font-size:10px; }
.ndi-form .ndi-privacy a { color:var(--brand-indigo); text-decoration:underline; }


/* =====================================================================
   OVERLAYS — Loading & Success (standard layout)
   ===================================================================== */
.ndi-form .ndi-overlay { position:absolute; inset:0; border-radius:20px; display:flex; flex-direction:column; align-items:center; justify-content:center; z-index:50; opacity:0; pointer-events:none; transition:opacity .4s ease; }
.ndi-form .ndi-overlay.active { opacity:1; pointer-events:auto; }
.ndi-form .ndi-overlay--loading { background:rgba(255,255,255,0.88); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.ndi-form .ndi-overlay-spinner { width:56px; height:56px; border-radius:50%; border:4px solid rgba(234,88,12,0.12); border-top-color:var(--accent); animation:ndiOverlaySpin .9s linear infinite; margin-bottom:22px; }
@keyframes ndiOverlaySpin { to{transform:rotate(360deg)} }
.ndi-form .ndi-overlay-text { font-size:15px; font-weight:600; color:var(--text-secondary); animation:ndiPulse 1.6s ease-in-out infinite; }
@keyframes ndiPulse { 0%,100%{opacity:1} 50%{opacity:.45} }
.ndi-form .ndi-overlay--success { background:rgba(255,255,255,0.96); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.ndi-form .ndi-overlay-check { width:72px; height:72px; border-radius:50%; background:linear-gradient(135deg,#16a34a,#22c55e); display:flex; align-items:center; justify-content:center; margin-bottom:20px; box-shadow:0 12px 36px rgba(22,163,74,0.25); animation:ndiPop .5s cubic-bezier(.16,1,.3,1) forwards; transform:scale(0); }
.ndi-form .ndi-overlay-check i { font-size:30px; color:#fff; }
@keyframes ndiPop { 0%{transform:scale(0) rotate(-20deg)} 60%{transform:scale(1.15) rotate(4deg)} 100%{transform:scale(1) rotate(0)} }
.ndi-form .ndi-overlay-title { font-size:20px; font-weight:800; color:var(--brand-indigo); margin:0 0 8px; text-align:center; }
.ndi-form .ndi-overlay-msg { font-size:14px; color:var(--text-muted); line-height:1.7; text-align:center; max-width:320px; margin:0; }


/* =====================================================================
   SCROLL-REVEAL — for flat layout header/card
   ===================================================================== */
.ndi-form .ndi-reveal { opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease),transform .8s var(--ease); }
.ndi-form .ndi-reveal.revealed { opacity:1; transform:translateY(0); }
.ndi-form .ndi-reveal--delay { transition-delay:.1s; }


/* =====================================================================
   LAYOUT: FLAT — centered single-column (corporate partnership, etc.)
   ===================================================================== */
.ndi-form--flat { background:#fafbfd; }

.ndi-form--flat .ndi-flat-header { text-align:center; max-width:560px; margin:0 auto 40px; }
.ndi-form--flat .ndi-eyebrow { display:inline-flex; align-items:center; gap:10px; font-size:10px; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:3.5px; margin-bottom:14px; }
.ndi-form--flat .ndi-eyebrow-line { width:28px; height:1px; background:var(--accent); opacity:0.4; }
.ndi-form--flat h2 { font-size:clamp(26px,3.2vw,40px); font-weight:800; color:var(--brand-indigo); line-height:1.1; letter-spacing:-1.5px; margin:0 0 10px; }
.ndi-form--flat .ndi-intro { font-size:15px; font-weight:400; color:var(--text-secondary); line-height:1.8; }

.ndi-form--flat .ndi-card { max-width:680px; margin:0 auto; border-radius:0; padding:44px 40px; }
.ndi-form--flat .ndi-field input,
.ndi-form--flat .ndi-field select,
.ndi-form--flat .ndi-field textarea { border-radius:0; }
.ndi-form--flat .ndi-divider { height:1px; background:var(--border); margin:28px 0; }

/* Flat submit override — no gradient, indigo sweep */
.ndi-form--flat .ndi-submit { background:var(--accent); border-radius:0; box-shadow:none; position:relative; overflow:hidden; }
.ndi-form--flat .ndi-submit::before { content:''; position:absolute; inset:0; background:var(--brand-indigo); transform:scaleX(0); transform-origin:right; transition:transform .45s var(--ease); }
.ndi-form--flat .ndi-submit:hover::before { transform:scaleX(1); transform-origin:left; }
.ndi-form--flat .ndi-submit:hover { box-shadow:0 10px 28px rgba(30,27,75,0.12); }
.ndi-form--flat .ndi-submit span,
.ndi-form--flat .ndi-submit i { position:relative; z-index:1; }

/* Flat status & privacy */
.ndi-form--flat .ndi-status { border-radius:0; text-align:center; }


/* =====================================================================
   LAYOUT: WIZARD — multi-step form with progress bar
   ===================================================================== */
.ndi-form--wizard { background:#f7f7fb; padding:80px 5% 100px; }

/* Dot pattern background */
.ndi-form--wizard::before { content:''; position:absolute; inset:0; background-image:radial-gradient(rgba(30,27,75,0.025) 1px,transparent 1px); background-size:24px 24px; pointer-events:none; z-index:0; }

.ndi-form--wizard .ndi-wizard-wrap { max-width:640px; margin:0 auto; position:relative; z-index:1; }

/* Wizard header */
.ndi-form--wizard .ndi-wizard-header { text-align:center; margin-bottom:36px; }
.ndi-form--wizard .ndi-wizard-header .ndi-eyebrow { display:inline-flex; align-items:center; gap:10px; font-size:10px; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:3px; margin-bottom:14px; }
.ndi-form--wizard .ndi-wizard-header .ndi-eyebrow i { font-size:11px; }
.ndi-form--wizard .ndi-wizard-header h2 { font-size:clamp(26px,3.5vw,38px); font-weight:800; color:var(--brand-indigo); letter-spacing:-1.5px; line-height:1.15; margin:0 0 8px; }
.ndi-form--wizard .ndi-wizard-header h2 span { color:var(--accent); }
.ndi-form--wizard .ndi-wizard-header .ndi-wizard-sub { font-size:14px; color:var(--text-muted); margin:0; }

/* Progress bar */
.ndi-form--wizard .ndi-progress { display:flex; align-items:center; justify-content:center; gap:0; margin-bottom:32px; padding:0 20px; }
.ndi-form--wizard .ndi-step-ind { display:flex; flex-direction:column; align-items:center; gap:8px; position:relative; z-index:1; }
.ndi-form--wizard .ndi-step-circle {
    width:42px; height:42px; border-radius:14px;
    display:flex; align-items:center; justify-content:center;
    font-family:'Poppins',sans-serif; font-size:14px; font-weight:700;
    background:#f1f5f9; border:2px solid #e2e8f0; color:#94a3b8;
    transition:all .4s var(--ease);
}
.ndi-form--wizard .ndi-step-ind.active .ndi-step-circle {
    background:var(--brand-indigo); border-color:var(--brand-indigo); color:#fff;
    box-shadow:0 6px 20px rgba(30,27,75,0.18);
}
.ndi-form--wizard .ndi-step-ind.done .ndi-step-circle {
    background:var(--success); border-color:var(--success); color:#fff;
    box-shadow:none;
}
.ndi-form--wizard .ndi-step-label { font-size:10px; font-weight:600; color:#94a3b8; text-transform:uppercase; letter-spacing:.5px; transition:color .3s ease; }
.ndi-form--wizard .ndi-step-ind.active .ndi-step-label { color:var(--brand-indigo); font-weight:700; }
.ndi-form--wizard .ndi-step-ind.done .ndi-step-label { color:var(--success); }
.ndi-form--wizard .ndi-step-conn { width:60px; height:2px; background:#e2e8f0; margin:0 8px; margin-bottom:24px; position:relative; overflow:hidden; border-radius:1px; }
.ndi-form--wizard .ndi-step-conn .fill { position:absolute; top:0; left:0; height:100%; width:0; background:var(--brand-indigo); transition:width .5s var(--ease); }
.ndi-form--wizard .ndi-step-conn.filled .fill { width:100%; }

/* Wizard form card */
.ndi-form--wizard .ndi-card { padding:40px 36px; overflow:hidden; }

/* Step panes */
.ndi-form--wizard .ndi-step { display:none; animation:ndiStepIn .45s var(--ease); }
.ndi-form--wizard .ndi-step.active { display:block; }
@keyframes ndiStepIn { from{opacity:0;transform:translateX(24px)} to{opacity:1;transform:translateX(0)} }

/* Step header */
.ndi-form--wizard .ndi-step-header { margin-bottom:28px; padding-bottom:20px; border-bottom:1px solid var(--border); }
.ndi-form--wizard .ndi-step-header h3 { font-size:20px; font-weight:800; color:var(--brand-indigo); margin:0 0 4px; letter-spacing:-.5px; }
.ndi-form--wizard .ndi-step-header p { font-size:13px; color:var(--text-muted); margin:0; }

/* Wizard fields — slightly larger than standard */
.ndi-form--wizard .ndi-field { margin-bottom:20px; }
.ndi-form--wizard .ndi-field:last-child { margin-bottom:0; }
.ndi-form--wizard .ndi-field label { font-size:13px; font-weight:600; color:#1e293b; margin-bottom:8px; }
.ndi-form--wizard .ndi-field input,
.ndi-form--wizard .ndi-field select,
.ndi-form--wizard .ndi-field textarea { padding:16px 18px; font-size:15px; border-radius:12px; }
.ndi-form--wizard .ndi-field textarea { min-height:120px; }
.ndi-form--wizard .ndi-field input::placeholder,
.ndi-form--wizard .ndi-field textarea::placeholder { color:#b0bec5; }

/* Navigation buttons */
.ndi-form--wizard .ndi-nav { display:flex; justify-content:space-between; align-items:center; margin-top:32px; padding-top:24px; border-top:1px solid var(--border); gap:12px; }
.ndi-form--wizard .ndi-nav-btn { display:inline-flex; align-items:center; gap:10px; padding:16px 28px; font-family:'Poppins',sans-serif; font-size:12px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; border:none; cursor:pointer; transition:all .4s var(--ease); border-radius:12px; }
.ndi-form--wizard .ndi-nav-btn i { font-size:11px; }
.ndi-form--wizard .ndi-nav-btn--prev { background:transparent; color:var(--text-muted); border:1px solid var(--border); }
.ndi-form--wizard .ndi-nav-btn--prev:hover { border-color:var(--brand-indigo); color:var(--brand-indigo); }
.ndi-form--wizard .ndi-nav-btn--next { background:var(--brand-indigo); color:#fff; margin-left:auto; }
.ndi-form--wizard .ndi-nav-btn--next:hover { background:#272463; transform:translateY(-2px); box-shadow:0 12px 28px rgba(30,27,75,0.15); }
.ndi-form--wizard .ndi-nav-btn--submit { background:linear-gradient(135deg,var(--accent),#f97316); color:#fff; margin-left:auto; box-shadow:0 8px 24px rgba(234,88,12,0.2); }
.ndi-form--wizard .ndi-nav-btn--submit:hover { transform:translateY(-2px); box-shadow:0 16px 36px rgba(234,88,12,0.3); }
.ndi-form--wizard .ndi-nav-btn--submit:disabled { opacity:0.7; cursor:not-allowed; transform:none; }
.ndi-form--wizard .ndi-nav-btn--submit .ndi-spinner { display:none; width:16px; height:16px; border:2px solid rgba(255,255,255,0.3); border-top-color:#fff; border-radius:50%; animation:ndiSpin .7s linear infinite; }
.ndi-form--wizard .ndi-nav-btn--submit.loading .btn-text { display:none; }
.ndi-form--wizard .ndi-nav-btn--submit.loading .ndi-spinner { display:block; }
.ndi-form--wizard .ndi-nav-btn--submit.loading i { display:none; }

/* Wizard success */
.ndi-form--wizard .ndi-wizard-success { display:none; text-align:center; padding:48px 24px; animation:ndiStepIn .5s var(--ease); }
.ndi-form--wizard .ndi-wizard-success.active { display:block; }
.ndi-form--wizard .ndi-wizard-success .ndi-overlay-check { margin:0 auto 24px; width:80px; height:80px; }
.ndi-form--wizard .ndi-wizard-success .ndi-overlay-check i { font-size:32px; }
.ndi-form--wizard .ndi-wizard-success h3 { font-size:24px; font-weight:800; color:var(--brand-indigo); margin:0 0 10px; }
.ndi-form--wizard .ndi-wizard-success p { font-size:14px; color:var(--text-secondary); line-height:1.7; max-width:400px; margin:0 auto; }

/* Wizard responsive */
@media (max-width:640px) {
    .ndi-form--wizard { padding:56px 4% 72px; }
    .ndi-form--wizard .ndi-card { padding:28px 20px; border-radius:16px; }
    .ndi-form--wizard .ndi-row { grid-template-columns:1fr; }
    .ndi-form--wizard .ndi-field input,
    .ndi-form--wizard .ndi-field select,
    .ndi-form--wizard .ndi-field textarea { padding:18px; font-size:16px; border-radius:14px; }
    .ndi-form--wizard .ndi-nav { flex-direction:column-reverse; gap:10px; }
    .ndi-form--wizard .ndi-nav-btn { width:100%; justify-content:center; padding:18px; border-radius:14px; }
    .ndi-form--wizard .ndi-nav-btn--next,
    .ndi-form--wizard .ndi-nav-btn--submit { margin-left:0; }
    .ndi-form--wizard .ndi-step-conn { width:36px; }
    .ndi-form--wizard .ndi-step-circle { width:36px; height:36px; font-size:12px; }
    .ndi-form--wizard .ndi-progress { padding:0; }
}

@media (prefers-reduced-motion:reduce) {
    .ndi-form--wizard .ndi-step,
    .ndi-form--wizard .ndi-wizard-success,
    .ndi-form--wizard .ndi-wizard-success .ndi-overlay-check { animation:none; opacity:1; transform:none; }
}


/* =====================================================================
   RESPONSIVE — Standard Layout
   ===================================================================== */
@media (max-width:1024px) {
    .ndi-form--standard .ndi-container { gap:40px; }
    .ndi-form .ndi-card { padding:36px 32px 40px; }
}

@media (max-width:900px) {
    .ndi-form--standard { padding:80px 5% 100px; }
    .ndi-form--standard .ndi-container { grid-template-columns:1fr; max-width:600px; gap:40px; }
    .ndi-form--standard .ndi-copy { text-align:center; padding-top:0; position:static; }
    .ndi-form--standard .ndi-kicker::before { display:none; }
    .ndi-form--standard .ndi-trust { display:none; }
}

@media (max-width:640px) {
    .ndi-form { padding:60px 4% 80px; }
    .ndi-form .ndi-card { padding:28px 20px 32px; border-radius:16px; }
    .ndi-form .ndi-card-title { font-size:19px; }
    .ndi-form .ndi-headline { font-size:26px; }
    .ndi-form .ndi-lead { font-size:14.5px; }
    .ndi-form .ndi-row { grid-template-columns:1fr; gap:14px; margin-bottom:14px; }
    .ndi-form .ndi-field input,
    .ndi-form .ndi-field select,
    .ndi-form .ndi-field textarea { padding:16px; font-size:16px; }
    .ndi-form .ndi-submit { padding:18px 24px; min-height:56px; font-size:12px; }
    .ndi-form .ndi-overlay { border-radius:16px; }
    .ndi-form .ndi-overlay-spinner { width:46px; height:46px; }
    .ndi-form .ndi-overlay-check { width:60px; height:60px; }
    .ndi-form .ndi-overlay-check i { font-size:24px; }
    .ndi-form .ndi-overlay-title { font-size:18px; }
    .ndi-form .ndi-overlay-msg { font-size:13px; padding:0 16px; }

    /* Card selectors stack */
    .ndi-form .ndi-card-selector { grid-template-columns:1fr; gap:8px; }
    .ndi-form .ndi-card-selector label { flex-direction:row; padding:14px 16px; gap:12px; }
    .ndi-form .ndi-card-selector .sel-icon { width:34px; height:34px; font-size:14px; }

    /* Flat */
    .ndi-form--flat { padding:56px 5% 72px; }
    .ndi-form--flat .ndi-card { padding:32px 24px; }
    .ndi-form--flat .ndi-row { grid-template-columns:1fr; }
}

@media (max-width:380px) {
    .ndi-form { padding:50px 3.5% 70px; }
    .ndi-form .ndi-card { padding:24px 16px 28px; }
    .ndi-form .ndi-card-title { font-size:17px; }
}
