/* Cadastre sua empresa: the landing's white, minimal look (landing.css supplies the tokens, header, buttons and footer).
   Only the form pieces live here; everything is scoped to .form-card so nothing leaks into the landing rules. */
.form-wrap { padding: 56px 0 96px; }
.form-card { max-width: 780px; margin-inline: auto; padding: clamp(22px, 4vw, 44px); border: 0; border-radius: 24px; background: var(--form); color: var(--navy); border: 1px solid var(--form-line); }
.form-card h1 { font-size: clamp(30px, 4.4vw, 42px); line-height: 1.12; letter-spacing: -0.025em; font-weight: 700; color: #173f73; }
.form-card h2 { font-size: 24px; margin-bottom: 12px; color: #173f73; }
.form-card > p, .form-card form > p, .form-card #step-done > p { margin-top: 12px; color: #3d4b66; }
.form-card a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.form-card .btn { text-decoration: none; }
.form-card form { margin-top: 28px; }
fieldset { border: 0; padding: 0; margin: 0 0 32px; }
legend { font-weight: 700; font-size: 19px; margin-bottom: 14px; padding: 0; color: #173f73; }
.row { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) { .row { grid-template-columns: 1fr; } .form-wrap { padding: 32px 0 64px; } }
.field { display: grid; gap: 6px; margin-bottom: 16px; align-content: start; }
.field label { font-weight: 700; font-size: 17px; color: var(--navy); }
.hint { color: #374866; font-size: 16px; }
.field input, .field select, .field textarea { font: inherit; padding: 13px 15px; border-radius: var(--r-m); border: 1px solid var(--line-strong); background: var(--white); color: var(--navy); width: 100%; }
.field input::placeholder, .field textarea::placeholder { color: #8a94a6; }
.field input[readonly], .field select:disabled, .combo input:disabled { background: var(--paper); color: var(--ink-soft); cursor: not-allowed; opacity: 1; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: #f4c430; outline: none; box-shadow: 0 0 0 2px rgba(244, 196, 48, 0.18); }
.field input[aria-invalid="true"], .field select[aria-invalid="true"], .field textarea[aria-invalid="true"] { border-color: #b42318; border-width: 2px; }
.error, .field .error { color: #b42318; font-size: 16px; min-height: 1em; display: block; }
.combo { position: relative; }
.combo-list { position: absolute; left: 0; right: 0; top: 78px; z-index: 20; margin: 0; padding: 6px; list-style: none; max-height: 260px; overflow-y: auto; overscroll-behavior: contain; border-radius: var(--r-m); border: 1px solid var(--line-strong); background: var(--white); box-shadow: 0 12px 32px rgba(5, 43, 97, 0.14); }
.combo-list li { padding: 12px; border-radius: 10px; cursor: pointer; font-size: 15px; }
.combo-list li[aria-selected="true"], .combo-list li:hover { background: rgba(255, 208, 50, 0.3); }
.combo-list .empty { cursor: default; color: var(--ink-soft); }
.consent { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.consent { color: var(--navy); }
.consent input { margin-top: 5px; width: 18px; height: 18px; accent-color: var(--navy); flex: none; }
.notice { border-radius: var(--r-m); padding: 14px 16px; margin-top: 20px; background: var(--white); border: 1px solid var(--line-strong); font-size: 15px; color: var(--navy); }
.notice.error { background: #fdecea; border-color: #b42318; color: #7a1a12; }
.notice.ok { background: #e8f5ee; border-color: #0a7a4f; color: #0a5c3b; }
#submit { display: flex; margin-inline: auto; }
.btn[disabled] { opacity: 0.6; cursor: wait; }
fieldset > .hint { margin: 0 0 16px; font-size: 16px; }
.form-card :focus-visible { outline-color: var(--navy); }
.form-card .btn-outline { background: var(--white); }
.combo-list, .combo-list li { color: var(--navy); }
