/* NLC Registration Forms, shared styles */
/* Extends site tokens defined in each page's :root block */

.form-shell{max-width:880px;margin:0 auto;padding:48px 0 80px;}
.form-card{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:40px clamp(24px,5vw,56px);}
.form-intro{margin-bottom:32px;}
.form-intro h1{font-size:clamp(1.6rem,3.5vw,2.2rem);color:var(--primary);font-weight:900;line-height:1.2;}
.form-intro h1 span{color:var(--secondary);}
.form-intro p{color:var(--gray);margin-top:8px;font-size:.95rem;line-height:1.65;}

/* Stepper */
.stepper{display:flex;gap:6px;margin-bottom:36px;list-style:none;padding:0;flex-wrap:wrap;}
.stepper li{flex:1;min-width:90px;font-size:.78rem;font-weight:600;color:var(--gray-light);position:relative;padding-top:22px;text-align:center;line-height:1.3;}
.stepper li::before{content:'';position:absolute;left:0;right:0;top:8px;height:4px;background:var(--border);border-radius:2px;}
.stepper li.done::before{background:var(--secondary);}
.stepper li.active::before{background:var(--secondary);}
.stepper li.active{color:var(--primary);}
.stepper li.done{color:var(--gray);}

/* Step containers */
.form-step{display:none;}
.form-step.active{display:block;}
.form-step h2{font-size:1.25rem;color:var(--primary);font-weight:800;margin-bottom:6px;}
.form-step .step-sub{color:var(--gray);font-size:.88rem;margin-bottom:24px;line-height:1.6;}
.form-step .form-subhead{font-size:1.02rem;color:var(--primary);font-weight:700;margin:6px 0 12px;}
.form-step input[type=file]{width:100%;padding:11px 13px;border:1px dashed var(--border);border-radius:var(--radius);background:#fafafa;font-family:inherit;font-size:.86rem;color:var(--dark);cursor:pointer;}
.form-step input[type=file]:hover{border-color:var(--secondary);}
.form-step .field.invalid input[type=file]{border-color:#ef4444;}

.section-block{margin-bottom:28px;padding-bottom:24px;border-bottom:1px dashed var(--border);}
.section-block:last-child{border-bottom:none;padding-bottom:0;}
.section-block h3{font-size:.95rem;font-weight:700;color:var(--primary);margin-bottom:14px;text-transform:uppercase;letter-spacing:.5px;}

/* Fields */
.field{margin-bottom:18px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:640px){.field-row{grid-template-columns:1fr;}}
.field label{display:block;font-size:.83rem;font-weight:600;color:var(--primary);margin-bottom:6px;line-height:1.4;}
.field label .req{color:var(--secondary);margin-inline-start:3px;}
.field label .hint{display:block;font-weight:400;font-size:.75rem;color:var(--gray);margin-top:2px;}

.field input[type="text"],
.field input[type="email"],
.field input[type="tel"],
.field input[type="url"],
.field input[type="date"],
.field textarea,
.field select{
  width:100%;
  padding:11px 14px;
  font-family:inherit;
  font-size:.92rem;
  color:var(--primary);
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--radius);
  transition:var(--transition);
  outline:none;
}
.field textarea{resize:vertical;min-height:84px;line-height:1.5;}
.field input:focus,
.field textarea:focus,
.field select:focus{
  border-color:var(--secondary);
  box-shadow:0 0 0 3px rgba(246,133,31,.15);
}
.field input[dir="rtl"],
.field textarea[dir="rtl"]{text-align:right;}

/* Radio + checkbox groups */
.choice-group{display:flex;flex-direction:column;gap:8px;}
.choice-group.inline{flex-direction:row;flex-wrap:wrap;gap:10px;}
.choice{position:relative;display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:var(--transition);font-size:.88rem;color:var(--primary);user-select:none;}
.choice:hover{border-color:rgba(246,133,31,.5);background:rgba(246,133,31,.04);}
.choice input{position:absolute;opacity:0;pointer-events:none;}
.choice .mark{flex-shrink:0;width:18px;height:18px;border:2px solid var(--gray-light);border-radius:50%;margin-top:1px;display:flex;align-items:center;justify-content:center;transition:var(--transition);}
.choice .mark::after{content:'';width:8px;height:8px;border-radius:50%;background:var(--secondary);transform:scale(0);transition:transform .15s ease;}
.choice input[type="checkbox"]+.mark{border-radius:5px;}
.choice input[type="checkbox"]+.mark::after{width:10px;height:10px;border-radius:2px;}
.choice input:checked+.mark{border-color:var(--secondary);}
.choice input:checked+.mark::after{transform:scale(1);}
.choice input:checked~span{color:var(--primary);font-weight:600;}
.choice.has-other{flex-wrap:wrap;}
.choice.has-other input[type="text"]{flex:1 1 100%;margin-top:8px;margin-inline-start:28px;}

/* Validation states */
.field.invalid input,
.field.invalid textarea,
.field.invalid select{border-color:#dc2626;background:#fef2f2;}
.field.invalid .err-msg{display:block;color:#dc2626;font-size:.78rem;margin-top:5px;font-weight:500;}
.err-msg{display:none;}

/* Buttons */
.form-nav{display:flex;justify-content:space-between;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid var(--border);}
.form-nav .spacer{flex:1;}
.btn-form{padding:11px 24px;font-family:inherit;font-size:.9rem;font-weight:700;border-radius:var(--radius);cursor:pointer;border:none;transition:var(--transition);display:inline-flex;align-items:center;gap:8px;}
.btn-form.btn-prev{background:transparent;color:var(--primary);border:1.5px solid var(--border);}
.btn-form.btn-prev:hover{border-color:var(--primary);}
.btn-form.btn-next,
.btn-form.btn-submit{background:var(--secondary);color:var(--white);box-shadow:0 4px 14px rgba(246,133,31,.3);}
.btn-form.btn-next:hover,
.btn-form.btn-submit:hover{background:var(--secondary-dark);transform:translateY(-1px);}
.btn-form:disabled{opacity:.55;cursor:not-allowed;transform:none;}

/* Banking notice (vendor form page 5) */
.banking-notice{background:#fff7ed;border:1px solid #fed7aa;border-radius:var(--radius);padding:16px 18px;margin-bottom:24px;font-size:.85rem;color:#7c2d12;line-height:1.6;}
.banking-notice strong{color:#9a3412;}

/* Submit success / error states */
.form-result{display:none;text-align:center;padding:48px 24px;}
.form-result.show{display:block;}
.form-result .icon{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 20px;}
.form-result.success .icon{background:#dcfce7;color:#166534;}
.form-result.error .icon{background:#fee2e2;color:#991b1b;}
.form-result h2{color:var(--primary);font-size:1.4rem;margin-bottom:10px;}
.form-result p{color:var(--gray);max-width:520px;margin:0 auto 24px;line-height:1.6;}
.form-result a.btn-form{text-decoration:none;}

/* Saved-progress chip */
.saved-chip{display:none;align-items:center;gap:8px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:50px;padding:6px 14px;font-size:.78rem;color:#065f46;font-weight:600;width:max-content;margin-bottom:18px;}
.saved-chip.show{display:inline-flex;}
.saved-chip i{font-size:.7rem;}

/* Sub-conditional reveal */
.conditional{display:none;}
.conditional.show{display:block;animation:fadeSlide .3s ease;}
@keyframes fadeSlide{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:translateY(0);}}

/* RTL adjustments */
[dir="rtl"] .stepper li{text-align:center;}
[dir="rtl"] .form-nav{flex-direction:row-reverse;}
[dir="rtl"] .btn-form.btn-prev i{transform:scaleX(-1);}
[dir="rtl"] .btn-form.btn-next i{transform:scaleX(-1);}

/* Honeypot field: visually and programmatically hidden from real users.
   Bots that auto-fill every input will populate it and be silently dropped. */
.hp-field{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden;}
