/* ==========================================================================
   QUIZ BANCÁRIO PREMIUM — Dra. Ana Maria Magalhães
   Design editorial (Off-White, Deep Navy, Rich Gold, Emerald)
   ========================================================================== */

:root {
    --ink: #173a36;
    --ink-soft: #31534e;
    --muted: #687a76;
    --muted-light: #91a09d;
    --burgundy: #680b12;
    --burgundy-soft: #f5e9e9;
    --gold: #b69652;
    --gold-bright: #cfb36e;
    --gold-soft: #faf5e9;
    --accent: var(--burgundy);
    --accent-soft: var(--burgundy-soft);
    --surface: #fbfcfa;
    --surface-muted: #e9f0ed;
    --line: #d6e1dc;
    --radius-lg: 24px;
    --radius-md: 12px;
    --radius-sm: 7px;
    --shadow-main: 0 18px 48px -28px rgba(23, 58, 54, 0.34);
    --shadow-hover: 0 12px 24px -18px rgba(180, 95, 75, 0.42);
    --transition: all 0.24s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Identidade visual: bordeaux e dourado sobre o fundo original. */
.shell {
    border-color: rgba(182, 150, 82, 0.52);
}

.shell::before {
    background: var(--burgundy);
}

.brand-crest {
    background: var(--burgundy);
    color: var(--gold-bright);
    border: 1px solid rgba(182, 150, 82, 0.7);
}

.brand-tag,
.eyebrow,
.progress-meta b {
    color: var(--burgundy);
}

.aside-title em {
    color: var(--burgundy);
}

.aside-proof {
    position: relative;
    overflow: hidden;
    margin-top: 1.4rem;
    padding: 1.35rem 1.4rem 1.45rem;
    border: 1px solid rgba(207, 179, 110, 0.72);
    border-radius: 1rem;
    background: var(--burgundy);
    color: #fffaf1;
    box-shadow: 0 16px 30px -24px rgba(104, 11, 18, 0.85);
}

.aside-proof::after {
    content: "";
    position: absolute;
    top: -2.8rem;
    right: -2.8rem;
    width: 7rem;
    height: 7rem;
    border: 1px solid rgba(207, 179, 110, 0.28);
    border-radius: 50%;
}

.aside-proof-label {
    margin-bottom: 0.55rem;
    color: var(--gold-bright);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.aside-proof-title {
    max-width: 16ch;
    color: #fffdf8;
    font-family: 'DM Serif Display', Georgia, serif;
    font-size: 1.55rem;
    line-height: 1.05;
    text-wrap: balance;
}

.aside-proof p {
    max-width: 42ch;
    margin-top: 0.75rem;
    color: rgba(255, 250, 241, 0.82);
    font-size: 0.78rem;
    line-height: 1.55;
}

.aside-signals {
    display: grid;
    gap: 0.75rem;
    margin-top: 1rem;
}

.aside-signals > div {
    padding: 0.75rem 0.85rem;
    border-left: 1px solid var(--gold);
    background: rgba(255, 255, 255, 0.42);
}

.aside-signals strong,
.aside-signals span {
    display: block;
}

.aside-signals strong {
    color: var(--ink);
    font-size: 0.78rem;
}

.aside-signals span {
    margin-top: 0.2rem;
    color: var(--muted);
    font-size: 0.7rem;
    line-height: 1.4;
}

.bar {
    background: var(--burgundy);
}

.opt,
.success-step #leadForm,
.laudo-option-box,
.disq-box {
    border-color: rgba(182, 150, 82, 0.46);
}

.opt,
.opt:nth-child(n) {
    --tone: var(--burgundy);
    --tone-soft: var(--burgundy-soft);
}

.opt::before {
    background: var(--burgundy);
}

.opt-ico,
.opt-ico.alert,
.opt-ico.highlight {
    border-color: rgba(182, 150, 82, 0.48);
}

.authority-card {
    max-width: 610px;
    margin: 0 auto 1.6rem;
    padding: 1.65rem 1.55rem 1.35rem;
    border: 1px solid rgba(182, 150, 82, 0.62);
    border-radius: 1.35rem;
    background: linear-gradient(145deg, #fffdf8 0%, var(--gold-soft) 100%);
    color: var(--ink);
    text-align: center;
    box-shadow: 0 20px 38px -30px rgba(104, 11, 18, 0.5);
}

.authority-kicker {
    color: #866b32;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.authority-stat {
    display: grid;
    justify-items: center;
    gap: 0.35rem;
    margin: 0.7rem 0;
}

.authority-stat strong {
    color: var(--burgundy);
    font-family: 'DM Serif Display', Georgia, serif;
    font-size: clamp(3.7rem, 10vw, 5rem);
    font-weight: 400;
    font-variant-numeric: tabular-nums;
    line-height: 0.9;
}

.score-value {
    display: inline-block;
    min-inline-size: 2ch;
    text-shadow: 0 8px 20px rgba(104, 11, 18, 0.12);
    transition: color 240ms ease, transform 240ms cubic-bezier(0.16, 1, 0.3, 1);
}

.score-value.is-counting {
    transform: translateY(-2px) scale(1.04);
}

.authority-stat span {
    color: var(--muted);
    font-size: 0.78rem;
    line-height: 1.45;
}

.authority-stat small {
    color: #866b32;
    font-size: 0.72rem;
    font-weight: 700;
}

.authority-status {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0.35rem 0.7rem;
    border: 1px solid rgba(182, 150, 82, 0.58);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    color: var(--burgundy);
    font-size: 0.68rem;
    font-weight: 800;
}

.authority-card[data-tone="urgent"] .authority-status {
    border-color: rgba(104, 11, 18, 0.32);
    background: var(--burgundy-soft);
}

.authority-divider {
    margin: 1rem 0 0.95rem;
    border-top: 1px dashed rgba(182, 150, 82, 0.5);
}

.authority-card h3 {
    margin-bottom: 0.75rem;
    color: var(--ink);
    font-family: 'DM Serif Display', Georgia, serif;
    font-size: 1.05rem;
    font-weight: 400;
}

.authority-points {
    display: grid;
    gap: 0.6rem;
    max-width: 470px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
    text-align: left;
}

.authority-points li {
    position: relative;
    padding-left: 1.25rem;
    color: var(--ink-soft);
    font-size: 0.76rem;
    font-weight: 600;
    line-height: 1.4;
}

.authority-points li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--burgundy);
    font-weight: 900;
}

.authority-disclaimer {
    margin: 1rem 0 0;
    padding-top: 0.8rem;
    border-top: 1px solid rgba(182, 150, 82, 0.3);
    color: var(--muted);
    font-size: 0.64rem;
    font-style: italic;
    line-height: 1.5;
}

.contact-intro {
    border: 1px solid rgba(182, 150, 82, 0.62);
    border-bottom: 0;
    background: linear-gradient(135deg, #680b12, #7c1820);
}

.success-step #leadForm {
    border-color: rgba(182, 150, 82, 0.62);
}

.success-step .field input,
.success-step select {
    border-color: rgba(182, 150, 82, 0.48);
}

.success-step .field input:focus,
.success-step select:focus,
.free-response textarea:focus {
    border-color: var(--burgundy);
    outline: 3px solid rgba(104, 11, 18, 0.1);
}

.cta-btn,
.free-response .free-submit {
    background: var(--burgundy);
}

.cta-btn:hover,
.free-response .free-submit:hover {
    background: #7b151d;
}

.phone-input-row {
    display: flex;
    gap: 0.65rem;
}

.phone-input-row > #whatsapp {
    min-width: 0;
    flex: 1;
}

.ddi-control {
    flex: 0 0 82px;
}

.ddi-control label {
    display: block;
    margin-bottom: 0.3rem;
}

.ddi-control input {
    width: 100%;
    text-align: center;
}

@media (max-width: 600px) {
    .authority-card {
        padding: 1.4rem 1rem 1.1rem;
        border-radius: 1.1rem;
    }

    .authority-stat strong {
        font-size: 3.8rem;
    }

    .phone-input-row {
        gap: 0.5rem;
    }

    .ddi-control {
        flex-basis: 74px;
    }
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    -webkit-font-smoothing: antialiased;
}

html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

body {
    background: #e8efec;
    color: var(--muted);
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem 1rem;
}

/* Base Stage */
.stage {
    width: 100%;
    min-width: 0;
    max-width: 1050px;
}

.shell {
    width: 100%;
    min-width: 0;
    display: flex;
    background: var(--bg-card);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-main);
    overflow: hidden;
    position: relative;
}

/* Fita dourada no topo */
.shell::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--accent);
    z-index: 10;
}

/* ASIDE PAINEL LATERAL (DESKTOP) */
.aside {
    flex: 0 0 42%;
    background: var(--surface-muted);
    padding: 2.5rem 2rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border-right: 1px solid var(--line);
}

.brand-aside {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.brand-crest {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--ink);
    color: #f2c7b9;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(21, 50, 79, 0.2);
}

.brand-info h2 {
    font-family: 'Fraunces', serif;
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.2;
}

.brand-tag {
    font-size: 0.725rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--accent);
}

.aside-main {
    margin: 2rem 0;
}

.eyebrow {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--gold);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.eyebrow::before {
    content: "";
    width: 16px;
    height: 2px;
    background: var(--gold);
    border-radius: 2px;
}

.aside-title {
    font-family: 'DM Serif Display', Georgia, serif;
    font-size: 1.85rem;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.2;
    letter-spacing: -0.01em;
    margin-bottom: 1.5rem;
}

.aside-title em {
    font-style: normal;
    color: var(--accent);
}

.aside-title > span,
.aside-title em {
    display: block;
}

.aside-title em {
    max-inline-size: 15ch;
    margin-top: 0.16em;
    font-size: clamp(1.45rem, 2.2vw, 2rem);
    line-height: 1.08;
    letter-spacing: -0.02em;
    overflow-wrap: break-word;
    text-wrap: balance;
}

.vcard {
    background: var(--ink);
    color: #ffffff;
    border-radius: var(--radius-md);
    padding: 1.25rem 1.4rem;
    position: relative;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.vcard::after {
    content: "";
    position: absolute;
    right: -20px;
    top: -20px;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 2px solid rgba(231, 192, 105, 0.15);
}

.vcard-label {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #f2c7b9;
}

.vcard-num {
    font-family: 'Fraunces', serif;
    font-size: 2.2rem;
    font-weight: 600;
    color: var(--gold-bright);
    line-height: 1.1;
    margin: 0.4rem 0;
}

.vcard-num span {
    font-size: 1rem;
    color: #d5e2de;
    font-family: 'DM Sans', sans-serif;
    font-weight: 500;
}

.vcard-det {
    font-size: 0.85rem;
    color: #d5e2de;
    line-height: 1.45;
}

.trust-badge-row {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.trust-badge {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--navy);
}

.badge-icon {
    color: var(--emerald);
}

.aside-foot {
    font-size: 0.75rem;
    color: var(--muted-light);
    line-height: 1.4;
}

/* CARD DO QUIZ (LADO DIREITO) */
.card {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    background: var(--surface);
}

.head {
    padding: 1.25rem 1.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--border-cool);
}

.brand {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.brand-mark {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--navy);
    color: var(--gold-bright);
    font-family: 'Fraunces', serif;
    font-weight: 700;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.brand-txt b {
    display: block;
    font-family: 'Fraunces', serif;
    font-size: 1rem;
    color: var(--navy);
    line-height: 1.1;
}

.brand-txt span {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--gold);
}

.secure-tag {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--emerald-deep);
    background: var(--emerald-bg);
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid rgba(18, 161, 102, 0.2);
}

/* PROGRESS BAR */
.progress-wrap {
    padding: 1rem 1.75rem 0;
}

.progress-meta {
    display: flex;
    justify-content: space-between;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--muted-light);
    margin-bottom: 0.4rem;
}

.progress-meta b {
    color: var(--accent);
}

.track {
    height: 7px;
    background: var(--line);
    border-radius: 999px;
    overflow: hidden;
}

.bar {
    height: 100%;
    background: var(--accent);
    border-radius: 999px;
    transition: width 0.4s var(--transition);
}

/* QUIZ BODY */
.body {
    min-width: 0;
    padding: 1.75rem;
    flex: 1;
}

.quiz-step {
    min-width: 0;
    display: none;
    animation: fadeIn 0.35s var(--transition) forwards;
}

.quiz-step.active {
    display: block;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.q-title {
    font-family: 'DM Serif Display', Georgia, serif;
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.25;
    margin-bottom: 0.5rem;
    overflow-wrap: anywhere;
}

.q-help {
    font-size: 0.9rem;
    color: var(--muted);
    line-height: 1.5;
    margin-bottom: 1.35rem;
}

/* OPTIONS GRID */
.opts {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.opt {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.1rem 1.25rem;
    background: #ffffff;
    border: 1.5px solid var(--border-cool);
    border-radius: var(--radius-md);
    color: var(--navy);
    text-align: left;
    cursor: pointer;
    transition: var(--transition);
    box-shadow: 0 1px 2px rgba(21, 50, 79, 0.04);

}

.opt:hover {
    border-color: var(--gold);
    background: var(--gold-bg);
    transform: translateY(-2px);
    box-shadow: var(--shadow-hover);
}

.opt-ico {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--gold-bg);
    color: var(--gold);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: var(--transition);
}

.opt:hover .opt-ico {
    background: var(--gold);
    color: #ffffff;
}

.opt-ico.alert {
    background: rgba(245, 158, 11, 0.15);
    color: #d97706;
}

.opt-txt {
    flex: 1;
    min-width: 0;
}

.opt-txt strong {
    display: block;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 0.15rem;
}

.opt-txt span {
    display: block;
    font-size: 0.8rem;
    color: var(--slate);
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.opt-arrow {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #faf2dd;
    color: var(--gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1rem;
    transition: var(--transition);
}

.opt:hover .opt-arrow {
    background: var(--gold);
    color: #ffffff;
    transform: translateX(3px);
}

/* BACK BUTTON */
.back-btn {
    background: transparent;
    border: none;
    color: var(--slate-dim);
    font-size: 0.85rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
    margin-bottom: 1rem;
    transition: var(--transition);
}

.back-btn:hover {
    color: var(--navy);
}

/* RESULT BADGES */
.result-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.9rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.result-badge.success {
    background: var(--emerald-bg);
    color: var(--emerald-deep);
    border: 1px solid rgba(18, 161, 102, 0.3);
}

.result-badge.calm {
    background: var(--border-cool);
    color: var(--navy);
    border: 1px solid var(--border-warm);
}

/* SUMMARY CARD */
.summary-card {
    background: var(--gold-bg);
    border: 1px solid #ecdcb6;
    border-radius: var(--radius-md);
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.summary-line {
    display: flex;
    justify-content: space-between;
    font-size: 0.875rem;
}

.summary-label {
    color: var(--slate);
}

.summary-val {
    font-weight: 700;
    color: var(--navy);
}

/* LAUDO TÉCNICO BOX (R$ 150) */
.laudo-option-box {
    background: linear-gradient(135deg, #fff9ed 0%, #fef3c7 100%);
    border: 1.5px solid #f59e0b;
    border-radius: var(--radius-md);
    padding: 1.25rem;
    margin-bottom: 1.5rem;
    text-align: center;
}

.laudo-tag {
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    color: #b45309;
    letter-spacing: 0.1em;
    margin-bottom: 0.3rem;
}

.laudo-option-box h3 {
    font-family: 'Fraunces', serif;
    font-size: 1.15rem;
    color: var(--navy);
    margin-bottom: 0.4rem;
}

.laudo-option-box p {
    font-size: 0.85rem;
    color: var(--slate);
    line-height: 1.4;
    margin-bottom: 1rem;
}

.btn-laudo {
    display: inline-block;
    width: 100%;
    padding: 0.85rem;
    background: #d97706;
    color: #ffffff;
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: var(--transition);
}

.btn-laudo:hover {
    background: #b45309;
}

.laudo-divider {
    font-size: 0.75rem;
    color: var(--slate-dim);
    margin-top: 0.75rem;
    font-weight: 600;
}

/* FORM FIELDS */
.field {
    margin-bottom: 1.1rem;
}

.field label {
    display: block;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--navy);
    margin-bottom: 0.4rem;
}

.field input {
    width: 100%;
    padding: 0.85rem 1rem;
    background: #ffffff;
    border: 1.5px solid var(--border-cool);
    border-radius: var(--radius-sm);
    color: var(--navy);
    font-size: 0.95rem;
    outline: none;
    transition: var(--transition);
}

.field input:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(176, 133, 41, 0.15);
}

.cta-btn {
    width: 100%;
    padding: 1.1rem;
    background: linear-gradient(180deg, #1bb978 0%, var(--emerald-deep) 100%);
    color: #ffffff;
    border: none;
    border-radius: var(--radius-md);
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    box-shadow: 0 12px 26px -10px rgba(12, 132, 83, 0.5);
    transition: var(--transition);

}

.cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 30px -10px rgba(12, 132, 83, 0.65);
}

.form-status {
    margin: 12px 0 0;
    color: var(--bordeaux, #7c111b);
    font-size: 0.84rem;
    line-height: 1.45;
    text-align: center;
}

.trust-footer {
    text-align: center;
    font-size: 0.75rem;
    color: var(--slate-dim);
    margin-top: 1rem;
}

/* DISQUALIFIED TELA */
.disqualified-icon {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: var(--gold-bg);
    color: var(--gold);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
}

.disq-box {
    background: var(--border-cool);
    border-left: 4px solid var(--gold);
    border-radius: var(--radius-sm);
    padding: 1.1rem 1.25rem;
    margin: 1.25rem 0;
    font-size: 0.875rem;
    line-height: 1.6;
    color: var(--navy);
}

.disq-box ul {
    margin-top: 0.5rem;
    padding-left: 1.2rem;
}

.disq-box li {
    margin-bottom: 0.4rem;
}

.btn-restart {
    background: #ffffff;
    border: 1.5px solid var(--border-cool);
    color: var(--navy);
    padding: 0.75rem 1.25rem;
    border-radius: var(--radius-sm);
    font-size: 0.85rem;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: var(--transition);
}

.btn-restart:hover {
    background: var(--border-cool);
}

.partner-step {
    max-width: 620px;
    margin: 0 auto;
}

.partner-confirmation-card {
    display: grid;
    gap: 0.9rem;
    padding: 1.25rem;
    border: 1px solid rgba(182, 150, 82, 0.58);
    border-radius: var(--radius-md);
    background: var(--gold-bg);
}

.partner-confirmation-card p {
    margin: 0;
    color: var(--muted);
    line-height: 1.55;
}

.partner-confirmation-card .btn-restart {
    justify-self: center;
}

/* FOOTER FIXO */
.foot {
    padding: 1rem 1.75rem;
    border-top: 1px solid var(--border-cool);
    font-size: 0.725rem;
    color: var(--slate-dim);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-align: center;
}

/* Adaptação mobile */
@media (max-width: 860px) {
    body {
        padding: 0.5rem;
    }

    .shell {
        flex-direction: column;
    }

    .aside {
        display: none; /* Em mobile, o quiz ocupa a tela cheia para evitar distrações */
    }

    .card {
        width: 100%;
    }

    .head {
        padding: 1rem;
    }

    .body {
        padding: 1.25rem 1rem;
    }

    .q-title {
        font-size: 1.25rem;
    }

    .opt {
        padding: 0.9rem 1rem;
        gap: 0.75rem;
    }

    .opt-ico {
        width: 32px;
        height: 32px;
    }
}

/* Premium editorial pass: quiet surfaces, one accent, clear hierarchy. */
.shell {
    background: var(--surface);
    border-color: var(--line);
    box-shadow: var(--shadow-main);
}

.shell::before {
    height: 2px;
    background: var(--accent);
}

.aside {
    background: var(--surface-muted);
    border-right: 1px solid var(--line);
}

.brand-info h2,
.aside-title,
.q-title,
.laudo-option-box h3 {
    font-family: 'DM Serif Display', Georgia, serif;
    color: var(--ink);
}

.brand-tag,
.eyebrow,
.eyebrow::before,
.progress-meta b {
    color: var(--accent);
}

.eyebrow {
    text-transform: none;
    letter-spacing: 0.03em;
    font-weight: 600;
}

.eyebrow::before {
    background: currentColor;
}

.aside-title {
    font-size: clamp(2rem, 3vw, 2.75rem);
    line-height: 1.08;
    text-wrap: balance;
}

.aside-title em {
    color: var(--accent);
}

.vcard {
    background: var(--ink);
    border-radius: var(--radius-md);
    box-shadow: none;
}

.vcard-label {
    color: #e9b9aa;
    letter-spacing: 0.08em;
}

.vcard-num {
    color: #f2c7b9;
    font-size: 1.85rem;
}

.vcard-num span,
.vcard-det {
    color: #d5e2de;
}

.aside-foot {
    color: var(--muted-light);
}

.card {
    background: var(--surface);
}

.progress-wrap {
    padding: 1.5rem 2.25rem 0;
}

.progress-meta {
    color: var(--muted);
}

.track {
    height: 2px;
    background: var(--line);
}

.bar {
    background: var(--accent);
}

.body {
    padding: 2rem 2.25rem 2.5rem;
}

.q-title {
    font-size: clamp(1.65rem, 2.4vw, 2.2rem);
    line-height: 1.08;
    letter-spacing: -0.02em;
    text-wrap: balance;
}

.q-help {
    max-width: 52ch;
    color: var(--muted);
}

.opts {
    gap: 0;
    border-top: 1px solid var(--line);
}

.opt {
    gap: 1rem;
    padding: 1.15rem 0.25rem;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    box-shadow: none;
    color: var(--ink);
}

.opt:hover {
    background: var(--accent-soft);
    border-color: var(--line);
    transform: none;
    box-shadow: none;
}

.opt:active,
.cta-btn:active,
.btn-restart:active {
    transform: translateY(1px) scale(0.99);
}

.opt:focus-visible,
.back-btn:focus-visible,
.cta-btn:focus-visible,
.btn-restart:focus-visible,
.btn-laudo:focus-visible,
.field input:focus-visible,
.field select:focus-visible,
.free-response textarea:focus-visible,
.consent-field input:focus-visible {
    outline: 3px solid rgba(180, 95, 75, 0.32);
    outline-offset: 3px;
}

.opt-ico,
.opt-ico.alert,
.opt-ico.highlight {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--accent-soft);
    color: var(--accent);
}

.opt-txt strong {
    color: var(--ink);
    font-weight: 600;
}

.opt-txt span {
    color: var(--muted);
}

.opt-arrow {
    width: auto;
    height: auto;
    background: transparent;
    color: var(--accent);
    font-size: 1.25rem;
}

.opt:hover .opt-ico,
.opt:hover .opt-arrow {
    background: transparent;
    color: var(--accent);
    transform: none;
}

.back-btn {
    color: var(--muted);
}

.back-btn:hover {
    color: var(--ink);
}

.result-badge.success,
.result-badge.calm {
    background: var(--accent-soft);
    border-color: transparent;
    color: var(--accent);
}

.summary-card {
    background: var(--surface-muted);
    border: 1px solid var(--line);
    border-radius: var(--radius-md);
}

.summary-label,
.laudo-option-box p,
.laudo-divider,
.trust-footer {
    color: var(--muted);
}

.summary-val,
.field label,
.disq-box,
.btn-restart {
    color: var(--ink);
}

.laudo-option-box {
    background: var(--accent-soft);
    border-color: rgba(180, 95, 75, 0.35);
}

.laudo-tag {
    color: var(--accent);
}

.btn-laudo,
.btn-laudo:hover {
    background: var(--ink);
}

.field input {
    background: var(--surface);
    border-color: var(--line);
    color: var(--ink);
}

.field input:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(180, 95, 75, 0.14);
}

.cta-btn {
    background: var(--ink);
    box-shadow: 0 12px 24px -18px rgba(23, 58, 54, 0.7);
}

.cta-btn:hover {
    background: var(--ink-soft);
    box-shadow: 0 16px 28px -18px rgba(23, 58, 54, 0.72);
}

.disqualified-icon {
    background: var(--accent-soft);
    color: var(--accent);
}

.disq-box {
    background: var(--surface-muted);
    border-left-color: var(--accent);
}

.btn-restart {
    background: var(--surface);
    border-color: var(--line);
}

.btn-restart:hover {
    background: var(--surface-muted);
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Texto disponível para leitores de tela. */
.sr-only {
    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;
}

/* Entry screen now prioritizes business banking cases. */
.legacy-entry-options {
    display: none !important;
}

.entry-options .opt-ico span,
#valueOptions .opt-ico span,
#step2Options .opt-ico span {
    color: var(--accent);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.entry-options .opt-txt strong {
    color: var(--ink);
}

.entry-options {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.7rem;
}

.opt-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
}

.opt-heading strong {
    min-width: 0;
    overflow-wrap: anywhere;
}

.urgency-indicator {
    margin: 0.9rem 0 0;
    padding: 1rem;
    border: 1px solid rgba(104, 11, 18, 0.2);
    border-radius: 15px 2px 15px 2px;
    background: rgba(255, 255, 255, 0.68);
    text-align: left;
}

.authority-card .urgency-label {
    margin: 0;
    color: var(--ink);
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    font-size: 0.78rem;
    font-weight: 800;
}

.urgency-track {
    position: relative;
    height: 0.5rem;
    margin-top: 0.65rem;
    overflow: visible;
    border-radius: 999px;
    background: linear-gradient(90deg, #628c72 0 33%, #d2a23a 33% 66%, #941f2e 66% 100%);
    box-shadow: inset 0 1px 2px rgba(59, 23, 32, 0.18);
}

.urgency-fill {
    position: absolute;
    inset: 0 auto 0 0;
    display: block;
    width: 38%;
    height: 100%;
    border-radius: inherit;
    background: rgba(255, 255, 255, 0.2);
    transition: width 240ms cubic-bezier(0.16, 1, 0.3, 1);
}

.urgency-marker {
    position: absolute;
    top: 50%;
    left: 52%;
    width: 0.9rem;
    height: 0.9rem;
    border: 3px solid #fffdf8;
    border-radius: 50%;
    background: var(--burgundy);
    box-shadow: 0 2px 8px rgba(59, 23, 32, 0.34), 0 0 0 1px rgba(59, 23, 32, 0.3);
    transform: translate(-50%, -50%);
    transition: left 240ms cubic-bezier(0.16, 1, 0.3, 1), background-color 240ms ease;
}

.urgency-indicator[data-level="green"] .urgency-marker {
    background: #628c72;
}

.urgency-indicator[data-level="yellow"] .urgency-marker {
    background: #b58219;
}

.urgency-indicator[data-level="red"] .urgency-marker {
    background: #941f2e;
}

.urgency-legend {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    margin-top: 0.42rem;
    color: var(--muted);
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.urgency-legend span:nth-child(2) {
    text-align: center;
}

.urgency-legend span:last-child {
    color: var(--burgundy);
    text-align: right;
}

.urgency-status,
.urgency-deadline {
    margin: 0.65rem 0 0;
    color: var(--muted);
    font-size: 0.72rem;
    line-height: 1.5;
}

.urgency-deadline {
    color: var(--burgundy);
    font-weight: 700;
}

.urgency-deadline[hidden] {
    display: none;
}

@media (max-width: 600px) {
    .entry-options .opt {
        display: grid;
        grid-template-columns: 40px minmax(0, 1fr);
        align-items: flex-start;
        gap: 0.7rem;
        padding-inline: 0.8rem;
    }

    .entry-options .opt-txt {
        width: 100%;
        min-width: 0;
    }

    .entry-options .opt-heading {
        display: flex;
        flex-direction: row;
        align-items: flex-start;
        justify-content: space-between;
        gap: 0.5rem;
        width: 100%;
    }

    .entry-options .opt-heading strong {
        flex: 1 1 auto;
        min-width: 0;
    }

    .entry-options .opt-arrow {
        display: none;
    }
}

.profile-switch {
    display: inline-flex;
    gap: 0.2rem;
    margin: 0 0 1rem;
    padding: 0.2rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface-muted);
}

.profile-btn {
    min-height: 32px;
    padding: 0.35rem 0.75rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
    font: inherit;
    font-size: 0.72rem;
    font-weight: 700;
}

.profile-btn.is-active {
    background: var(--surface);
    color: var(--ink);
    box-shadow: 0 2px 8px rgba(23, 58, 54, 0.1);
}

.contact-grid {
    display: grid;
    grid-template-columns: 1fr 0.32fr;
    gap: 0.75rem;
}

.success-step select {
    width: 100%;
    min-height: 52px;
    padding: 0.85rem 1rem;
    border: 1px solid var(--line);
    border-radius: 0.8rem;
    background: var(--surface);
    color: var(--ink);
    font: inherit;
}

.consent-field {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    margin: 0.3rem 0 1rem;
    color: var(--muted);
    font-size: 0.72rem;
    line-height: 1.4;
}

.consent-field input {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    accent-color: var(--burgundy);
}

.free-response {
    display: grid;
    gap: 0.75rem;
}

.free-response textarea {
    width: 100%;
    min-height: 120px;
    padding: 1rem;
    resize: vertical;
    border: 1px solid var(--line);
    border-radius: 0.9rem;
    background: var(--surface);
    color: var(--ink);
    font: inherit;
}

.free-response .free-submit {
    min-height: 48px;
    border: 0;
    border-radius: 0.8rem;
    background: var(--ink);
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
}

@media (max-width: 600px) {
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }
}

/* Success screen: editorial proof card + clear WhatsApp handoff. */
.success-step {
    padding-top: 1.2rem;
}

.success-step > .result-badge,
.success-step > .q-title,
.success-step > .q-help {
    display: none;
}

.success-hero {
    max-width: 610px;
    margin: 0 auto 1.5rem;
    text-align: center;
}

.success-hero .result-badge {
    margin-bottom: 0.8rem;
}

.success-hero .q-title {
    margin-bottom: 0.7rem;
    font-size: clamp(2rem, 5vw, 3.05rem);
    line-height: 1.06;
}

.success-hero .q-title em {
    color: #ad7a17;
    font-style: normal;
}

.success-hero .q-help {
    max-width: 480px;
    margin-inline: auto;
}

.evidence-card {
    max-width: 610px;
    margin: 0 auto 1.5rem;
    padding: 1.55rem 1.4rem 1.35rem;
    background: linear-gradient(145deg, #fff9e9, #fff1c9);
    border: 1px solid #edd49a;
    border-radius: 1.5rem;
    color: var(--ink);
    text-align: center;
    box-shadow: 0 16px 35px rgba(133, 99, 28, 0.1);
}

.evidence-kicker,
.evidence-caption {
    color: #9a6d18;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.evidence-number {
    margin: 0.65rem 0 0.15rem;
    font-family: 'DM Serif Display', Georgia, serif;
    font-size: clamp(3.1rem, 10vw, 4.1rem);
    line-height: 0.95;
    color: #173a56;
}

.evidence-card > p {
    margin: 0;
    color: #5d6265;
    font-size: 0.82rem;
    line-height: 1.35;
}

.evidence-card > p strong {
    color: #9a6d18;
}

.evidence-card > p span {
    font-size: 0.72rem;
}

.evidence-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0.8rem 0 0.95rem;
    padding: 0.45rem 0.8rem;
    border: 1px solid #a8dfc4;
    border-radius: 999px;
    background: #e5f8ee;
    color: #078459;
    font-size: 0.74rem;
    font-weight: 800;
}

.evidence-pill span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #08a567;
    box-shadow: 0 0 0 4px rgba(8, 165, 103, 0.12);
}

.evidence-divider {
    border-top: 1px dashed rgba(154, 109, 24, 0.25);
    margin-bottom: 0.9rem;
}

.evidence-caption {
    max-width: 320px;
    margin: 0 auto 0.65rem;
    font-size: 0.66rem;
    line-height: 1.35;
    text-transform: none;
}

.evidence-list {
    display: grid;
    gap: 0.5rem;
    max-width: 510px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
    text-align: left;
}

.evidence-list li {
    position: relative;
    padding-left: 1.35rem;
    color: #173a56;
    font-size: 0.78rem;
    font-weight: 650;
    line-height: 1.35;
}

.evidence-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: #079963;
    font-weight: 900;
}

.contact-intro {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    max-width: 610px;
    margin: 0 auto;
    padding: 1.25rem 1.35rem;
    border-radius: 1.35rem 1.35rem 0 0;
    background: linear-gradient(135deg, #078b59, #13a66e);
    color: #fff;
}

.whatsapp-mark {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 50%;
    background: rgba(255,255,255,0.14);
    font-size: 1.7rem;
    transform: rotate(-45deg);
}

.contact-intro h3 {
    margin: 0 0 0.35rem;
    color: #fff;
    font-family: 'DM Serif Display', Georgia, serif;
    font-size: 1.3rem;
    line-height: 1.05;
}

.contact-intro p {
    margin: 0;
    color: rgba(255,255,255,0.88);
    font-size: 0.78rem;
    line-height: 1.5;
}

.success-step .summary-card {
    display: none;
}

.success-step #leadForm {
    max-width: 610px;
    margin: 0 auto;
    padding: 1.25rem 1.35rem 1.1rem;
    border: 1px solid var(--line);
    border-top: 0;
    border-radius: 0 0 1.35rem 1.35rem;
    background: var(--surface);
}

.success-step .field label {
    color: #52606a;
    font-size: 0.75rem;
}

.success-step .field label b {
    color: #b27a1a;
}

.success-step .field label span {
    color: var(--muted);
    font-weight: 500;
}

.success-step .field input {
    min-height: 52px;
    border-radius: 0.8rem;
}

.success-step .cta-btn {
    min-height: 54px;
    background: linear-gradient(135deg, #079a61, #12ad70);
    border-radius: 0.8rem;
    box-shadow: 0 14px 24px -12px rgba(7, 139, 89, 0.6);
}

.success-step .cta-btn:hover {
    background: linear-gradient(135deg, #067e50, #079a61);
}

.success-step .trust-footer {
    max-width: 610px;
    margin: 0.8rem auto 0;
    color: #9a6d18;
    font-size: 0.72rem;
    font-weight: 700;
}

@media (max-width: 600px) {
    .success-step {
        inline-size: 100%;
        min-inline-size: 0;
        max-inline-size: 100%;
        padding-top: 0.9rem;
    }

    .authority-card,
    .authority-stat,
    .urgency-indicator,
    .contact-intro,
    .success-step #leadForm {
        box-sizing: border-box;
        inline-size: 100%;
        min-inline-size: 0;
        max-inline-size: 100%;
    }

    .urgency-status,
    .urgency-deadline {
        overflow-wrap: anywhere;
    }

    .authority-stat span,
    .authority-stat small {
        overflow-wrap: anywhere;
    }

    .success-hero .q-title {
        font-size: 2.15rem;
    }

    .evidence-card {
        padding-inline: 1.05rem;
        border-radius: 1.25rem;
    }

    .contact-intro {
        align-items: flex-start;
        padding: 1.15rem 1rem;
    }

    .contact-intro h3 {
        font-size: 1.2rem;
    }

    .success-step #leadForm {
        padding-inline: 1rem;
    }
}

/* Loading state: a calm, tactile progress moment instead of a generic spinner. */
.analysis-step {
    align-items: center;
    text-align: center;
    min-height: 330px;
    padding: 2.5rem 1rem 3rem;
}

.analysis-step .eyebrow,
.analysis-step .q-help {
    max-width: 440px;
}

.analysis-orb {
    width: 88px;
    height: 88px;
    margin: 0 auto 1.65rem;
    border: 1px solid rgba(180, 95, 75, 0.2);
    box-shadow: 0 12px 30px rgba(180, 95, 75, 0.09);
    animation: analysisFloat 2.4s ease-in-out infinite;
}

.analysis-orb::before {
    inset: 10px;
    border-width: 3px;
    border-top-color: transparent;
    border-left-color: rgba(180, 95, 75, 0.35);
    animation: analysisSpin 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.analysis-orb::after {
    inset: 28px;
    background: var(--accent);
    box-shadow: 0 0 0 8px rgba(180, 95, 75, 0.06), 0 0 24px rgba(180, 95, 75, 0.25);
    animation: analysisPulse 1.8s ease-in-out infinite;
}

.analysis-orb span {
    inset: -9px;
    border: 1px dashed rgba(180, 95, 75, 0.28);
    animation: analysisSpinReverse 5s linear infinite;
}

.analysis-step .q-title {
    max-width: 520px;
    margin-bottom: 0.6rem;
}

.analysis-status {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 1.25rem;
    margin-top: 1.35rem;
    color: var(--muted);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 5px rgba(180, 95, 75, 0.1);
    animation: statusBlink 1.2s ease-in-out infinite;
}

#analysisStatus.is-changing {
    animation: statusChange 0.36s ease both;
}

@keyframes analysisFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-5px); }
}

@keyframes analysisSpinReverse {
    to { transform: rotate(-360deg); }
}

@keyframes statusBlink {
    0%, 100% { opacity: 0.45; transform: scale(0.8); }
    50% { opacity: 1; transform: scale(1); }
}

@keyframes statusChange {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 860px) {
    .analysis-step {
        min-height: 390px;
        padding-inline: 0.5rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .analysis-orb,
    .analysis-orb span,
    .status-dot,
    #analysisStatus.is-changing {
        animation: none;
    }
}

/* Mobile layout: keep brand context, reduce chrome, protect touch targets. */
@media (max-width: 860px) {
    body {
        align-items: flex-start;
        min-height: 100dvh;
        padding: 0;
        background: var(--surface);
    }

    .stage {
        width: 100%;
        min-width: 0;
        max-width: none;
        overflow: hidden;
    }

    .shell {
        flex-direction: column;
        width: 100%;
        min-width: 0;
        min-height: 100dvh;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .aside {
        display: block;
        padding: 1.15rem 1rem 1.25rem;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .brand-aside {
        gap: 0.65rem;
    }

    .brand-crest {
        width: 36px;
        height: 36px;
        border-radius: 9px;
    }

    .brand-info h2 {
        font-size: 0.98rem;
    }

    .brand-tag {
        font-size: 0.6rem;
        letter-spacing: 0.06em;
    }

    .aside-main {
        margin: 1.15rem 0 0;
    }

    .aside-main .eyebrow {
        margin-bottom: 0.35rem;
        font-size: 0.7rem;
    }

    .aside-title {
        max-width: 24ch;
        margin-bottom: 1rem;
        font-size: clamp(1.55rem, 7vw, 2rem);
        line-height: 1.08;
    }

    .vcard {
        margin-bottom: 0;
        padding: 0.85rem 1rem;
    }

    .vcard-label {
        font-size: 0.62rem;
    }

    .vcard-num {
        margin: 0.25rem 0;
        font-size: 1.55rem;
    }

    .vcard-det {
        display: none;
    }

    .aside-foot {
        display: none;
    }

    .card {
        width: 100%;
        min-width: 0;
    }

    .progress-wrap {
        padding: 1rem 1rem 0;
    }

    .body {
        width: 100%;
        min-width: 0;
        padding: 1.35rem 1rem 2rem;
    }

    .q-title {
        font-size: clamp(1.55rem, 7vw, 1.9rem);
        line-height: 1.1;
    }

    .q-help {
        margin-bottom: 1.1rem;
        font-size: 0.9rem;
    }

    .opt {
        min-width: 0;
        min-height: 68px;
        margin: 0.5rem 0;
        padding: 0.95rem 0.8rem 0.95rem 1rem;
        gap: 0.7rem;
    }

    .opt-ico,
    .opt-ico.alert,
    .opt-ico.highlight {
        width: 36px;
        height: 36px;
        flex-basis: 36px;
    }

    .opt-txt strong {
        font-size: 0.9rem;
        line-height: 1.25;
    }

    .opt-txt span {
        font-size: 0.78rem;
        line-height: 1.3;
    }

    .opt-arrow {
        min-width: 24px;
        font-size: 1.1rem;
    }

    .back-btn {
        min-height: 44px;
        margin-bottom: 0.55rem;
    }

    .field input,
    .cta-btn,
    .btn-laudo,
    .btn-restart {
        min-height: 52px;
    }

    .summary-line {
        gap: 0.75rem;
        align-items: baseline;
    }

    .summary-val {
        text-align: right;
    }
}

@media (max-width: 860px) {
    .aside {
        display: none;
    }
}

/* Quiz state transitions and final analysis state. */
.quiz-step.is-leaving {
    display: block;
    pointer-events: none;
    animation: stepExit 0.22s cubic-bezier(0.4, 0, 1, 1) both;
}

@keyframes stepExit {
    from { opacity: 1; transform: translateY(0); }
    to { opacity: 0; transform: translateY(-10px); }
}

.analysis-step {
    min-height: 300px;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.analysis-step.active {
    display: flex;
}

.analysis-step .eyebrow {
    margin-bottom: 0.65rem;
}

.analysis-orb {
    position: relative;
    width: 58px;
    height: 58px;
    margin-bottom: 1.5rem;
    border: 1px solid rgba(180, 95, 75, 0.22);
    border-radius: 50%;
}

.analysis-orb::before,
.analysis-orb::after,
.analysis-orb span {
    content: "";
    position: absolute;
    border-radius: 50%;
}

.analysis-orb::before {
    inset: 8px;
    border: 2px solid var(--accent);
    border-right-color: transparent;
    animation: analysisSpin 1.1s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.analysis-orb::after {
    inset: 20px;
    background: var(--accent);
    opacity: 0.24;
    animation: analysisPulse 1.1s ease-in-out infinite;
}

.analysis-orb span {
    inset: -6px;
    border: 1px solid rgba(180, 95, 75, 0.16);
    animation: analysisPulse 1.1s ease-in-out 0.18s infinite reverse;
}

@keyframes analysisSpin {
    to { transform: rotate(360deg); }
}

@keyframes analysisPulse {
    0%, 100% { transform: scale(0.82); opacity: 0.18; }
    50% { transform: scale(1); opacity: 0.55; }
}

.analysis-step .q-title {
    margin-bottom: 0.65rem;
}

.analysis-lines {
    display: grid;
    gap: 0.45rem;
    width: min(100%, 300px);
    margin-top: 1.25rem;
}

.analysis-lines span {
    display: block;
    height: 4px;
    overflow: hidden;
    background: var(--surface-muted);
    border-radius: 999px;
}

.analysis-lines span::after {
    content: "";
    display: block;
    width: 42%;
    height: 100%;
    background: var(--accent);
    opacity: 0.65;
    animation: analysisLine 1.5s ease-in-out infinite;
}

.analysis-lines span:nth-child(2)::after { animation-delay: 0.18s; }
.analysis-lines span:nth-child(3)::after { animation-delay: 0.36s; }

@keyframes analysisLine {
    0% { transform: translateX(-110%); }
    100% { transform: translateX(250%); }
}

@media (max-width: 860px) {
    .analysis-step {
        min-height: 360px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .quiz-step.is-leaving,
    .analysis-orb::before,
    .analysis-orb::after,
    .analysis-orb span,
    .analysis-lines span::after {
        animation: none;
    }
}

/* Focused quiz interaction: elevated cards, restrained category accents. */
.progress-wrap {
    padding: 1.35rem 2.25rem 0;
}

.progress-meta {
    display: none;
}

.track {
    height: 3px;
    background: #d8e1de;
}

.bar {
    background: var(--accent);
}

.quiz-step.active {
    animation: stepEnter 0.42s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.quiz-step.active .opt {
    animation: optionRise 0.48s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.quiz-step.active .opt:nth-child(1) { animation-delay: 0.04s; }
.quiz-step.active .opt:nth-child(2) { animation-delay: 0.09s; }
.quiz-step.active .opt:nth-child(3) { animation-delay: 0.14s; }
.quiz-step.active .opt:nth-child(4) { animation-delay: 0.19s; }
.quiz-step.active .opt:nth-child(5) { animation-delay: 0.24s; }
.quiz-step.active .opt:nth-child(6) { animation-delay: 0.29s; }

@keyframes stepEnter {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes optionRise {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

.opt {
    --tone: #617875;
    --tone-soft: #edf2f0;
    position: relative;
    margin: 0.65rem 0;
    padding: 1.05rem 1.1rem 1.05rem 1.2rem;
    background: #fffefa;
    border: 1px solid #d6e1dc;
    border-radius: var(--radius-md);
    box-shadow: 0 2px 0 rgba(23, 58, 54, 0.04), 0 10px 20px -18px rgba(23, 58, 54, 0.7);
    overflow: hidden;
}

.opt::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--tone);
    opacity: 0.9;
}

.opt:nth-child(1) { --tone: #4f7899; --tone-soft: #edf3f7; }
.opt:nth-child(2) { --tone: #ad7168; --tone-soft: #f7efec; }
.opt:nth-child(3) { --tone: #987b4b; --tone-soft: #f6f1e7; }
.opt:nth-child(4) { --tone: #777294; --tone-soft: #f0eff6; }
.opt:nth-child(5) { --tone: #9b655c; --tone-soft: #f6eeeb; }
.opt:nth-child(6) { --tone: #7c626d; --tone-soft: #f3eef0; }

.opt:hover {
    background: #fffefa;
    border-color: #c7d5d0;
    transform: translateY(-4px);
    box-shadow: 0 3px 0 rgba(23, 58, 54, 0.05), 0 18px 28px -18px rgba(23, 58, 54, 0.58);
}

.opt:active {
    transform: translateY(-1px) scale(0.995);
}

.opt-ico,
.opt-ico.alert,
.opt-ico.highlight {
    background: var(--tone-soft);
    color: var(--tone);
    border: 1px solid color-mix(in srgb, var(--tone) 18%, transparent);
}

.opt-txt span,
.opt-arrow {
    color: var(--tone);
}

.opt-arrow,
.opt:hover .opt-arrow {
    background: transparent;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .urgency-fill,
    .urgency-marker,
    .score-value {
        transition: none;
        animation: none;
    }

    .quiz-step.active,
    .quiz-step.active .opt {
        animation: none;
    }

    .opt,
    .opt:hover,
    .opt:active {
        transform: none;
    }
}

/* Sobrescritas finais da identidade visual. */
.shell { border-color: rgba(182, 150, 82, 0.52); }
.shell::before,
.bar { background: var(--burgundy); }
.brand-crest {
    border: 1px solid rgba(182, 150, 82, 0.7);
    background: var(--burgundy);
    color: var(--gold-bright);
}
.opt,
.opt:nth-child(n) {
    --tone: var(--burgundy);
    --tone-soft: var(--burgundy-soft);
    border-color: rgba(182, 150, 82, 0.46);
}
.opt:hover { border-color: rgba(182, 150, 82, 0.78); }
.contact-intro {
    border: 1px solid rgba(182, 150, 82, 0.62);
    border-bottom: 0;
    background: linear-gradient(135deg, #680b12, #7c1820);
}
.success-step #leadForm { border-color: rgba(182, 150, 82, 0.62); }
.success-step .cta-btn,
.cta-btn,
.free-response .free-submit { background: var(--burgundy); }
.success-step .cta-btn:hover,
.cta-btn:hover,
.free-response .free-submit:hover { background: #7b151d; }

/* Resposta franca: orientação clara sem aspecto de erro. */
#disqualifiedStep {
    max-width: 680px;
    margin: 0 auto;
    padding-top: 1.4rem;
    text-align: center;
}

#disqualifiedStep .disqualified-icon {
    display: none;
}

#disqualifiedStep .result-badge.calm {
    display: inline-flex;
    margin-bottom: 1rem;
    border: 1px solid rgba(182, 150, 82, 0.38);
    background: var(--burgundy-soft);
    color: var(--burgundy);
}

#disqualifiedStep .q-title {
    max-width: 18ch;
    margin: 0 auto 0.8rem;
    font-size: clamp(1.9rem, 5vw, 2.7rem);
    line-height: 1.08;
    text-wrap: balance;
}

#disqualifiedStep .q-help {
    max-width: 540px;
    margin: 0 auto 1.4rem;
    text-wrap: pretty;
}

#disqualifiedStep .disq-box {
    padding: 1.35rem 1.4rem;
    border: 1px solid rgba(182, 150, 82, 0.5);
    border-left: 3px solid var(--burgundy);
    border-radius: 1rem;
    background: #f1f4f2;
    box-shadow: 0 16px 34px -28px rgba(23, 58, 54, 0.5);
    text-align: left;
}

#disqualifiedStep .disq-box strong {
    display: block;
    margin-bottom: 0.45rem;
    color: var(--ink);
    font-size: 0.76rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

#disqualifiedStep .disq-box p {
    margin: 0;
    color: var(--muted);
    line-height: 1.65;
}

#disqualifiedStep .btn-restart {
    width: 100%;
    min-height: 52px;
    margin-top: 1.25rem;
    border: 1px solid var(--gold);
    border-radius: 0.8rem;
    background: transparent;
    color: var(--burgundy);
    font-weight: 750;
}

#disqualifiedStep .btn-restart:hover {
    border-color: var(--burgundy);
    background: var(--burgundy-soft);
}

/* Spinner da etapa de análise. */
.analysis-spinner {
    position: relative;
    width: 68px;
    height: 68px;
    margin-bottom: 1.5rem;
    border-radius: 50%;
}

.analysis-spinner::before,
.analysis-spinner::after,
.analysis-spinner span {
    content: "";
    position: absolute;
    border-radius: 50%;
}

.analysis-spinner::before {
    inset: 0;
    border: 3px solid rgba(182, 150, 82, 0.24);
    border-top-color: var(--burgundy);
    border-right-color: var(--burgundy);
    box-shadow: 0 10px 26px -16px rgba(104, 11, 18, 0.8);
    animation: spinnerRotate 0.9s linear infinite;
}

.analysis-spinner::after {
    inset: 12px;
    border: 1px solid rgba(182, 150, 82, 0.5);
}

.analysis-spinner span {
    inset: 25px;
    background: var(--burgundy);
    box-shadow: 0 0 0 6px rgba(104, 11, 18, 0.08);
    animation: spinnerPulse 1.2s ease-in-out infinite;
}

@keyframes spinnerRotate {
    to { transform: rotate(360deg); }
}

@keyframes spinnerPulse {
    0%, 100% { opacity: 0.42; transform: scale(0.82); }
    50% { opacity: 1; transform: scale(1); }
}

@media (max-width: 860px) {
    .analysis-spinner {
        width: 62px;
        height: 62px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .analysis-spinner::before {
        animation: none !important;
    }

    .analysis-spinner span { animation: none; }
}
