/* /Components/Inputs/AddressAutocomplete.razor.rz.scp.css */
.addr-wrap[b-wjh3nuemq5] {
    position: relative;
    width: 100%;
}

.addr-input[b-wjh3nuemq5] {
    width: 100%;
}

.addr-list[b-wjh3nuemq5] {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    z-index: 50;
    border-radius: 12px;
    border: 1px solid rgba(17,24,39,0.12);
    background: white;
    box-shadow: 0 18px 40px rgba(0,0,0,0.12);
    overflow: hidden;
}

.addr-item[b-wjh3nuemq5] {
    width: 100%;
    text-align: left;
    padding: 10px 12px;
    background: transparent;
    border: 0;
    cursor: pointer;
}

    .addr-item:hover[b-wjh3nuemq5],
    .addr-item.active[b-wjh3nuemq5] {
        background: rgba(33,85,205,0.08);
    }

.addr-error[b-wjh3nuemq5] {
    margin-top: 8px;
    font-size: 13px;
    color: var(--danger-color);
}
/* /Components/Intake/AssistantHero.razor.rz.scp.css */
/* ==========================================================================
   Assistant hero (open onboarding style)
   ========================================================================== */

.assistant-hero[b-yrwf1xx4oo] {
    width: 100%;
    max-width: 820px;
    margin: 18px auto 64px; /* extra separation from step content */
    text-align: center;
    display: grid;
    justify-items: center;
    gap: 12px;
}

    /* subtle separator */
    .assistant-hero[b-yrwf1xx4oo]::after {
        content: "";
        display: block;
        width: min(720px, 92%);
        height: 1px;
        margin-top: 18px;
        background: rgba(0, 0, 0, 0.06);
    }

/* Avatar-like icon */
.assistant-avatar[b-yrwf1xx4oo] {
    width: 72px;
    height: 72px;
    border-radius: 999px;
    padding: 10px;
    background: rgba(17, 24, 39, 0.035);
    border: 1px solid rgba(17, 24, 39, 0.06);
    object-fit: contain;
}

/* Headline */
.assistant-title[b-yrwf1xx4oo] {
    margin: 0;
    font-size: 40px;
    line-height: 1.15;
    font-weight: 650;
    color: rgba(17, 24, 39, 0.88);
    letter-spacing: -0.3px;
}

/* Subtitle */
.assistant-subtitle[b-yrwf1xx4oo] {
    margin: 0;
    max-width: 60ch;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    color: rgba(17, 24, 39, 0.60);
}

/* Error block */
.assistant-error[b-yrwf1xx4oo] {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid rgba(217, 45, 32, 0.25);
    background: rgba(217, 45, 32, 0.07);
    color: var(--danger-color);
    font-size: 14px;
}

@media (prefers-reduced-motion: no-preference) {
    @keyframes assistantFloat-b-yrwf1xx4oo {
        0%, 100% {
            transform: translateY(0);
        }

        50% {
            transform: translateY(-2px);
        }
    }

    .assistant-avatar[b-yrwf1xx4oo] {
        animation: assistantFloat-b-yrwf1xx4oo 3.6s ease-in-out infinite;
    }
}

@media (max-width: 640px) {
    .assistant-title[b-yrwf1xx4oo] {
        font-size: 28px;
    }

    .assistant-avatar[b-yrwf1xx4oo] {
        width: 64px;
        height: 64px;
    }
}

/* --- Assistant copy fade animation (duration is provided from Intake.razor) --- */

:root[b-yrwf1xx4oo] {
    /* Fallback if not provided inline */
    --step-transition-ms: 300ms;
}

/* Wrap your assistant title/subtitle in this */
.assistant-copy[b-yrwf1xx4oo] {
    /* Smooth opacity change */
    opacity: 1;
}

/* We use CSS animations instead of transition so it feels “intentional”
   and always replays when class changes. */
.assistant-fade-out[b-yrwf1xx4oo] {
    animation: assistantFadeOut-b-yrwf1xx4oo var(--step-transition-ms) ease both;
}

.assistant-fade-in[b-yrwf1xx4oo] {
    animation: assistantFadeIn-b-yrwf1xx4oo var(--step-transition-ms) ease both;
}

@keyframes assistantFadeOut-b-yrwf1xx4oo {
    from {
        opacity: 1;
        transform: translateY(0);
    }

    to {
        opacity: 0;
        transform: translateY(2px);
    }
}

@keyframes assistantFadeIn-b-yrwf1xx4oo {
    from {
        opacity: 0;
        transform: translateY(-2px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}
/* /Components/Intake/EstimateFinalPanel.razor.rz.scp.css */
.estimate-final[b-fzg5vmsnd6] {
    display: grid;
    gap: 18px;
}

/* Big emphasis for the estimate */
.estimate-spotlight[b-fzg5vmsnd6] {
    border-radius: 18px;
    padding: 18px 18px 16px;
    background: linear-gradient(180deg, rgba(255,255,255,.90), rgba(255,255,255,.75));
    border: 1px solid rgba(0,0,0,.06);
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
    text-align: center;
}

.estimate-spotlight__label[b-fzg5vmsnd6] {
    font-size: 0.95rem;
    opacity: 0.75;
    margin-bottom: 6px;
}

.estimate-spotlight__value[b-fzg5vmsnd6] {
    font-size: clamp(2.0rem, 4vw, 3.2rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.05;
    margin: 6px 0 8px;
}

.estimate-spotlight__value--pending[b-fzg5vmsnd6] {
    opacity: 0.7;
    font-weight: 700;
}

.estimate-spotlight__subtitle[b-fzg5vmsnd6] {
    font-size: 0.95rem;
    opacity: 0.85;
}

/* Follow-up section */
.estimate-followup[b-fzg5vmsnd6] {
    border-radius: 16px;
    padding: 14px 14px 12px;
    border: 1px solid rgba(0,0,0,.06);
    background: rgba(255,255,255,.60);
}

.estimate-followup__headline[b-fzg5vmsnd6] {
    font-weight: 700;
    margin-bottom: 10px;
}

.estimate-followup__cards[b-fzg5vmsnd6] {
    display: grid;
    gap: 12px;
}

@media (min-width: 720px) {
    .estimate-followup__cards[b-fzg5vmsnd6] {
        grid-template-columns: 1fr 1fr;
    }
}

.contact-card[b-fzg5vmsnd6] {
    border-radius: 14px;
    padding: 12px;
    border: 1px solid rgba(0,0,0,.06);
    background: rgba(255,255,255,.85);
}

.contact-card__title[b-fzg5vmsnd6] {
    font-weight: 700;
    margin-bottom: 6px;
}

.contact-card__link[b-fzg5vmsnd6] {
    display: inline-block;
    font-weight: 700;
    text-decoration: none;
    margin-bottom: 10px;
    word-break: break-word;
}

.contact-card__actions[b-fzg5vmsnd6] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* Bottom: de-emphasized close button */
.estimate-bottom[b-fzg5vmsnd6] {
    display: grid;
    gap: 8px;
    justify-items: center;
    padding-top: 6px;
}

.btn-quiet[b-fzg5vmsnd6] {
    background: transparent;
    border: 1px solid rgba(0,0,0,.12);
    color: rgba(0,0,0,.70);
    border-radius: 10px;
    padding: 8px 12px;
}

    .btn-quiet:hover[b-fzg5vmsnd6] {
        border-color: rgba(0,0,0,.18);
        color: rgba(0,0,0,.85);
    }

.estimate-bottom__hint[b-fzg5vmsnd6] {
    font-size: 0.9rem;
    opacity: 0.75;
    text-align: center;
    max-width: 42ch;
}
/* /Components/Intake/IntakeStepper.razor.rz.scp.css */
/* ==========================================================================
   Shared step visuals (desktop + mobile)
   ========================================================================== */

.step[b-na9o9eyxaz] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    padding-right: 22px;
    position: relative;
    color: rgba(17, 24, 39, 0.55);
}

.step-label[b-na9o9eyxaz] {
    white-space: nowrap;
}

.step-dot[b-na9o9eyxaz] {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: rgba(17, 24, 39, 0.18);
    flex: 0 0 auto;
}

/* Connector: fills only for DONE steps (desktop uses this unchanged) */
.step:not(:last-child)[b-na9o9eyxaz]::after {
    content: "";
    width: 44px;
    height: 2px;
    margin-left: 12px;
    border-radius: 999px;
    background-color: rgba(17, 24, 39, 0.10);
    background-image: linear-gradient(to right, rgba(33, 85, 205, 0.55), rgba(33, 85, 205, 0.55));
    background-repeat: no-repeat;
    background-position: left center;
    background-size: 0% 100%;
    transition: background-size 520ms ease;
    display: inline-block;
    vertical-align: middle;
}

.step.done[b-na9o9eyxaz],
.step.active[b-na9o9eyxaz] {
    font-weight: 600;
    color: rgba(17, 24, 39, 0.80);
}

    .step.done .step-dot[b-na9o9eyxaz] {
        background: rgba(33, 85, 205, 0.55);
    }

    .step.active .step-dot[b-na9o9eyxaz] {
        background: var(--primary-color);
    }

.stepper-mobile .step.done:has(+ li.step)[b-na9o9eyxaz]::after {
    background-size: 100% 100%;
}

.step-icon[b-na9o9eyxaz] {
    width: 22px;
    height: 22px;
    margin-left: 4px;
    opacity: 0.78;
    flex: 0 0 auto;
    align-self: center;
    display: block;
}

.step.active .step-icon[b-na9o9eyxaz],
.step.done .step-icon[b-na9o9eyxaz] {
    opacity: 0.95;
}

/* Active dot pulse */
@media (prefers-reduced-motion: no-preference) {
    @keyframes stepDotPulse-b-na9o9eyxaz {
        0% {
            box-shadow: 0 0 0 0 rgba(33, 85, 205, 0.35);
        }

        70% {
            box-shadow: 0 0 0 7px rgba(33, 85, 205, 0);
        }

        100% {
            box-shadow: 0 0 0 0 rgba(33, 85, 205, 0);
        }
    }

    .step.active .step-dot[b-na9o9eyxaz] {
        animation: stepDotPulse-b-na9o9eyxaz 1.4s ease-out infinite;
    }
}

/* ==========================================================================
   Desktop / tablet stepper container (UNCHANGED)
   ========================================================================== */

.stepper-desktop[b-na9o9eyxaz] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0;
    flex-wrap: nowrap;
    white-space: nowrap;
}

/* ==========================================================================
   Mobile stepper: condensed desktop (prev / current / next)
   Connector is centered between nodes, never touching dots.
   ========================================================================== */

.stepper-mobile[b-na9o9eyxaz] {
    display: none;
    list-style: none;
    padding: 0;
    margin: 0 auto;
    width: 100%;
    max-width: 520px;
    justify-content: center;
    align-items: center;
    gap: 0;
    white-space: nowrap;
    overflow: visible;
}

/* spacer keeps center aligned when no prev/next */
.mobile-spacer[b-na9o9eyxaz] {
    width: 110px;
    height: 1px;
}

/* In mobile we don't want the desktop layout padding */
.stepper-mobile .step[b-na9o9eyxaz] {
    padding-right: 0;
    gap: 0; /* spacing handled in node */
}

/* This is the fixed "node" that contains dot + icon (+ label) */
.stepper-mobile .mobile-node[b-na9o9eyxaz] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    position: relative;
    padding-right: 34px; /* reserve a consistent connector lane */
}

/* Draw the connector INSIDE the reserved lane, centered */
/* Mobile: only draw connector when there IS a next step */
.stepper-mobile .step:has(+ li.step)[b-na9o9eyxaz]::after {
    /* reset desktop connector sizing */
    width: auto;
    margin-left: 0;
    /* place it in the lane */
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: calc(100% - 30px); /* start inside lane */
    right: 10px; /* end before next dot */

    height: 2px;
    display: block;
    z-index: 0; /* behind dot/icon */
}

/* Ensure dot/icon render above connector */
.stepper-mobile .step-dot[b-na9o9eyxaz],
.stepper-mobile .step-icon[b-na9o9eyxaz] {
    position: relative;
    z-index: 2;
}

/* De-emphasize side steps */
.stepper-mobile .mobile-prev[b-na9o9eyxaz],
.stepper-mobile .mobile-next[b-na9o9eyxaz] {
    opacity: 0.70;
    filter: saturate(0.92);
}

    /* Hide labels on side steps */
    .stepper-mobile .mobile-prev .step-label[b-na9o9eyxaz],
    .stepper-mobile .mobile-next .step-label[b-na9o9eyxaz] {
        display: none;
    }

    /* Side steps: smaller visuals */
    .stepper-mobile .mobile-prev .step-icon[b-na9o9eyxaz],
    .stepper-mobile .mobile-next .step-icon[b-na9o9eyxaz] {
        width: 18px;
        height: 18px;
        margin-left: 2px;
        opacity: 0.75;
    }

    .stepper-mobile .mobile-prev .step-dot[b-na9o9eyxaz],
    .stepper-mobile .mobile-next .step-dot[b-na9o9eyxaz] {
        width: 9px;
        height: 9px;
    }

/* Current step emphasized */
.stepper-mobile .mobile-current .step-icon[b-na9o9eyxaz] {
    width: 30px;
    height: 30px;
    margin-left: 4px;
    opacity: 0.98;
}

.stepper-mobile .mobile-current .step-dot[b-na9o9eyxaz] {
    width: 12px;
    height: 12px;
}

.stepper-mobile .mobile-current .step-label[b-na9o9eyxaz] {
    display: inline;
    font-size: 15px;
    font-weight: 750;
    letter-spacing: 0.01em;
}

/* Prevent connector "bleed-through" look by adding a small background ring */
@media (max-width: 640px) {
    .stepper-mobile .step-dot[b-na9o9eyxaz] {
        box-shadow: 0 0 0 4px var(--background-color);
    }

    .stepper-mobile .step.done .step-dot[b-na9o9eyxaz] {
        background: rgba(33, 85, 205, 1);
    }
}

/* ==========================================================================
   Responsive switch
   ========================================================================== */

@media (max-width: 640px) {
    .stepper-desktop[b-na9o9eyxaz] {
        display: none;
    }

    .stepper-mobile[b-na9o9eyxaz] {
        display: flex;
    }
}

/* Connector from PREV -> CURRENT */
.stepper-mobile .mobile-prev[b-na9o9eyxaz]::after {
    width: auto;
    margin-left: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: calc(100% - 30px);
    right: 10px;
    height: 2px;
    display: block;
    z-index: 0;
}

/* Connector from CURRENT -> NEXT (only when next exists) */
.stepper-mobile.has-next .mobile-current[b-na9o9eyxaz]::after {
    width: auto;
    margin-left: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: calc(100% - 30px);
    right: 10px;
    height: 2px;
    display: block;
    z-index: 0;
}

/* No connector after CURRENT when there is no next step */
.stepper-mobile.no-next .mobile-current[b-na9o9eyxaz]::after {
    content: none;
    display: none;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.app-shell[b-bz1ym4ncvc] {
    min-height: 100vh;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-rva1utnmd2],
.components-reconnect-repeated-attempt-visible[b-rva1utnmd2],
.components-reconnect-failed-visible[b-rva1utnmd2],
.components-pause-visible[b-rva1utnmd2],
.components-resume-failed-visible[b-rva1utnmd2],
.components-rejoining-animation[b-rva1utnmd2] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-rva1utnmd2],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-rva1utnmd2],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-rva1utnmd2],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-rva1utnmd2],
#components-reconnect-modal.components-reconnect-retrying[b-rva1utnmd2],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-rva1utnmd2],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-rva1utnmd2],
#components-reconnect-modal.components-reconnect-failed[b-rva1utnmd2],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-rva1utnmd2] {
    display: block;
}


#components-reconnect-modal[b-rva1utnmd2] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-rva1utnmd2 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-rva1utnmd2 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-rva1utnmd2 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-rva1utnmd2]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-rva1utnmd2 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-rva1utnmd2 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-rva1utnmd2 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-rva1utnmd2 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-rva1utnmd2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-rva1utnmd2] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-rva1utnmd2] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-rva1utnmd2] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-rva1utnmd2] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-rva1utnmd2] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-rva1utnmd2] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-rva1utnmd2 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-rva1utnmd2] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-rva1utnmd2 {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Intake.razor.rz.scp.css */
/*
 * Lease Intake Wizard (CSS isolation)
 * Theme variables live in wwwroot/app.css (:root)
 */

/* ==========================================================================
   Layout
   ========================================================================== */

.wizard[b-q4zrign720] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--background-color);
    color: var(--text-color);
}

/* SHELF HEADER (desktop/tablet) */
.wizard-header[b-q4zrign720] {
    position: sticky;
    top: 0;
    z-index: 50; /* higher than any hero/icon content */
    background: var(--background-color); /* same as app background */
    border: 0;
    box-shadow: 0 10px 22px rgba(17, 24, 39, 0.10); /* subtle "shelf" shadow */
    padding: 18px 28px 8px;
}

    /* Optional subtle edge definition; helps the cutoff feel crisp */
    .wizard-header[b-q4zrign720]::after {
        content: "";
        display: block;
        height: 1px;
        background: rgba(17, 24, 39, 0.06);
        margin-top: 10px;
    }

.header-grid[b-q4zrign720] {
    display: grid;
    grid-template-columns: 1fr auto 1fr; /* logo | stepper | spacer */
    align-items: center;
    margin: 0 auto;
    max-width: 1280px;
}

.logo-area[b-q4zrign720] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.brand-link[b-q4zrign720] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

    .brand-link:focus-visible[b-q4zrign720] {
        outline: 3px solid var(--focus-ring);
        outline-offset: 4px;
        border-radius: 14px;
    }

.brand-icon[b-q4zrign720] {
    width: 96px;
    height: 96px;
    object-fit: contain;
}

.stepper-area[b-q4zrign720] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
}

.wizard-body[b-q4zrign720] {
    flex: 1;
    display: flex;
    justify-content: center;
    max-width: 1400px;
    margin: 0 auto;
    align-items: flex-start;
    padding: 0 28px 80px; /* breathing room */
}

/* Main content widths */
.panel > form[b-q4zrign720],
.panel > section[b-q4zrign720] {
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
}

    /* Upload step can stay wide */
    .panel > section:has(.upload-dropzone)[b-q4zrign720] {
        max-width: 1080px;
    }

/* Footer */
.wizard-footer[b-q4zrign720] {
    padding: 10px 16px;
    text-align: center;
    font-size: 12px;
    color: rgba(17, 24, 39, 0.55);
}

/* ==========================================================================
   Panel transitions (single-panel animation: .panel-anim + classes)
   ========================================================================== */

.panel[b-q4zrign720] {
    width: 100%;
}

.panel-anim[b-q4zrign720] {
    margin-top: 4px;
}

@media (prefers-reduced-motion: no-preference) {

    .panel-anim.enter-from-right[b-q4zrign720] {
        animation: enterFromRight-b-q4zrign720 520ms cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
    }

    .panel-anim.enter-from-left[b-q4zrign720] {
        animation: enterFromLeft-b-q4zrign720 520ms cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
    }

    .panel-anim.leave-to-left[b-q4zrign720] {
        animation: leaveToLeft-b-q4zrign720 260ms cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
    }

    .panel-anim.leave-to-right[b-q4zrign720] {
        animation: leaveToRight-b-q4zrign720 260ms cubic-bezier(0.25, 0.1, 0.25, 1) forwards;
    }

    @keyframes enterFromRight-b-q4zrign720 {
        0% {
            transform: translateX(96px);
            opacity: 0;
        }

        40% {
            opacity: 1;
        }

        100% {
            transform: translateX(0);
            opacity: 1;
        }
    }

    @keyframes enterFromLeft-b-q4zrign720 {
        0% {
            transform: translateX(-96px);
            opacity: 0;
        }

        40% {
            opacity: 1;
        }

        100% {
            transform: translateX(0);
            opacity: 1;
        }
    }

    @keyframes leaveToLeft-b-q4zrign720 {
        0% {
            transform: translateX(0);
            opacity: 1;
        }

        55% {
            opacity: 1;
        }

        100% {
            transform: translateX(-96px);
            opacity: 0;
        }
    }

    @keyframes leaveToRight-b-q4zrign720 {
        0% {
            transform: translateX(0);
            opacity: 1;
        }

        55% {
            opacity: 1;
        }

        100% {
            transform: translateX(96px);
            opacity: 0;
        }
    }
}

/* ==========================================================================
   Fields
   ========================================================================== */

.field[b-q4zrign720] {
    width: 100%;
    max-width: 520px;
    margin: 22px auto;
    display: grid;
    gap: 8px;
}

    .field label[b-q4zrign720] {
        display: block;
        text-align: left;
        font-size: 15px;
        font-weight: 500;
        color: rgba(17, 24, 39, 0.75);
    }

    .field .validation-message[b-q4zrign720] {
        font-size: 13px;
        margin-top: 2px;
    }

/* ==========================================================================
   Buttons / Actions
   ========================================================================== */

.actions[b-q4zrign720] {
    width: 100%;
    max-width: 560px;
    margin: 22px auto 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

    /* When only primary exists, keep on the right */
    .actions:has(.primary):not(:has(.secondary))[b-q4zrign720] {
        justify-content: flex-end;
    }

    /* IMPORTANT: Final actions row should align with the revealed contact area width (desktop + mobile) */
    .actions.actions-final[b-q4zrign720] {
        max-width: 980px; /* match .estimate-final__contacts max-width */
        justify-content: space-between;
        align-items: flex-end;
    }

.primary[b-q4zrign720],
.secondary[b-q4zrign720] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 18px;
    border-radius: 12px;
    border: 2px solid transparent;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.01em;
    cursor: pointer;
    transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 120ms ease;
}

/* Ensure anchors using button classes render exactly like buttons */
a.primary[b-q4zrign720],
a.secondary[b-q4zrign720] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.primary[b-q4zrign720] {
    background: var(--primary-color);
    color: #fff;
    box-shadow: 0 6px 14px rgba(33, 85, 205, 0.18);
}

    .primary:hover[b-q4zrign720] {
        background: var(--primary-color-light);
        transform: translateY(-1px);
    }

    .primary:disabled[b-q4zrign720] {
        opacity: 0.55;
        cursor: not-allowed;
        transform: none;
    }

.secondary[b-q4zrign720] {
    background: transparent;
    color: var(--primary-color);
    border-color: rgba(33, 85, 205, 0.35);
}

    .secondary:hover[b-q4zrign720] {
        background: rgba(33, 85, 205, 0.08);
        border-color: rgba(33, 85, 205, 0.55);
    }

    .secondary:disabled[b-q4zrign720] {
        opacity: 0.55;
        cursor: not-allowed;
    }

.button-like[b-q4zrign720] {
    user-select: none;
}

.muted[b-q4zrign720] {
    color: var(--muted-color);
}

/* Navigation Buttons (Back / Continue) */
.nav-button[b-q4zrign720] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.nav-icon[b-q4zrign720] {
    width: 24px;
    height: 24px;
    flex: 0 0 auto;
    transition: transform 220ms ease;
}

.nav-back:hover .nav-icon[b-q4zrign720] {
    transform: translateX(-4px);
}

.nav-next:hover .nav-icon[b-q4zrign720] {
    transform: translateX(4px);
}

.nav-button:disabled .nav-icon[b-q4zrign720] {
    transform: none;
    opacity: 0.7;
}

.nav-next:hover[b-q4zrign720] {
    box-shadow: 0 8px 22px rgba(33, 85, 205, 0.22);
}

/* Ensure anchor nav-buttons behave like your button nav-controls */
a.nav-button[b-q4zrign720] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-decoration: none;
}

/* Right-side cluster (Finish + Start another session): stacked + right-justified */
.final-actions-right[b-q4zrign720] {
    display: flex;
    flex-direction: column; /* stack vertically */
    align-items: flex-end; /* right edge aligned */
    justify-content: center;
    gap: 8px; /* tight cluster */
}

/* Quiet variant built on top of your existing .secondary button system */
.secondary.nav-quiet[b-q4zrign720] {
    background: rgba(17, 24, 39, 0.02);
    border-color: rgba(17, 24, 39, 0.14);
    color: rgba(17, 24, 39, 0.78);
    box-shadow: none;
    min-width: 240px; /* uniform cluster width on desktop */
    justify-content: center;
}

    /* Keep it subtle (still clickable) */
    .secondary.nav-quiet:hover[b-q4zrign720] {
        background: rgba(17, 24, 39, 0.05);
        border-color: rgba(17, 24, 39, 0.20);
        color: rgba(17, 24, 39, 0.88);
    }

/* Mobile: keep the cluster stacked and centered, full width */
@media (max-width: 900px) {
    .actions.actions-final[b-q4zrign720] {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .final-actions-right[b-q4zrign720] {
        width: 100%;
        align-items: center;
    }

    .secondary.nav-quiet[b-q4zrign720],
    .nav-back[b-q4zrign720] {
        width: 100%;
        min-width: 0;
    }
}

/* ==========================================================================
   Upload (Wide Landscape Card)
   ========================================================================== */

.file-input-hidden[b-q4zrign720],
.upload-dropzone input[type="file"][b-q4zrign720] {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
}

.upload-dropzone[b-q4zrign720] {
    position: relative; /* overlay support */
    cursor: pointer;
    width: 100%;
    max-width: 980px;
    margin: 16px auto 8px;
    border-radius: 22px;
    border: 2px dashed rgba(17, 24, 39, 0.28);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.06);
    transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease, background-color 140ms ease;
    padding: 28px 24px;
}

    .upload-dropzone:hover[b-q4zrign720],
    .upload-dropzone:focus[b-q4zrign720] {
        outline: none;
        border-color: rgba(17, 24, 39, 0.42);
        box-shadow: 0 18px 40px rgba(0, 0, 0, 0.10);
        transform: translateY(-1px);
    }

    .upload-dropzone:focus-visible[b-q4zrign720] {
        box-shadow: 0 0 0 4px var(--focus-ring), 0 22px 60px rgba(17, 24, 39, 0.12);
        border-color: rgba(33, 85, 205, 0.55);
    }

    .upload-dropzone.dragover[b-q4zrign720] {
        transform: translateY(-6px) scale(1.01);
        border-color: var(--primary-color);
        background: rgba(33, 85, 205, 0.095);
        box-shadow: 0 28px 80px rgba(33, 85, 205, 0.18);
    }

.upload-dropzone-inner[b-q4zrign720] {
    width: 100%;
    display: grid;
    gap: 14px;
    justify-items: center;
    text-align: center;
    max-width: 760px;
    margin: 0 auto;
}

.upload-cyber-icon[b-q4zrign720] {
    width: 96px;
    height: 96px;
    display: block;
    opacity: 0.97;
    transition: transform 180ms ease, opacity 180ms ease;
}

.upload-dropzone:hover .upload-cyber-icon[b-q4zrign720] {
    transform: translateY(-2px) scale(1.04);
    opacity: 1;
}

.upload-dropzone.dragover .upload-cyber-icon[b-q4zrign720] {
    transform: translateY(-4px) scale(1.06);
    opacity: 1;
}

.upload-title[b-q4zrign720] {
    font-size: 22px;
    font-weight: 950;
    color: var(--text-color);
    margin-top: 0;
}

.upload-subtext[b-q4zrign720] {
    display: grid;
    gap: 6px;
    justify-items: center;
    text-align: center;
    margin-top: 2px;
}

.upload-allowed[b-q4zrign720] {
    font-size: 13px;
    font-weight: 500;
    color: rgba(17, 24, 39, 0.50);
}

.upload-dropzone .button-like[b-q4zrign720],
.choose-file-visual[b-q4zrign720] {
    pointer-events: none;
}

/* Inline upload status (centered) */
.upload-inline-status[b-q4zrign720] {
    margin-top: 12px;
    font-size: 13px;
    color: var(--muted-color);
    text-align: center;
}

.upload-inline-strong[b-q4zrign720] {
    font-weight: 800;
    color: var(--text-color);
    margin-bottom: 2px;
}

.upload-inline-muted[b-q4zrign720] {
    color: var(--muted-color);
}

.upload-inline-error .upload-inline-strong[b-q4zrign720] {
    color: var(--danger-color);
}

/* ==========================================================================
   Upload feedback (spinner + checkmark) — scoped to Intake.razor
   ========================================================================== */

.upload-feedback[b-q4zrign720] {
    margin-top: 14px;
    display: flex;
    justify-content: center;
}

.upload-feedback-inner[b-q4zrign720] {
    width: min(720px, 100%);
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid rgba(17, 24, 39, 0.10);
    background: rgba(17, 24, 39, 0.03);
}

.upload-feedback-text[b-q4zrign720] {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.upload-feedback-title[b-q4zrign720] {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.2px;
    color: rgba(17, 24, 39, 0.88);
}

.upload-feedback-subtitle[b-q4zrign720] {
    font-size: 14px;
    font-weight: 500;
    color: rgba(17, 24, 39, 0.62);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.upload-feedback-note[b-q4zrign720] {
    margin-top: 2px;
    font-size: 13px;
    color: rgba(17, 24, 39, 0.58);
}

/* Spinner */
.upload-spinner[b-q4zrign720] {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    border: 3px solid rgba(17, 24, 39, 0.14);
    border-top-color: rgba(17, 24, 39, 0.65);
    animation: uploadSpin-b-q4zrign720 700ms linear infinite;
    flex: 0 0 auto;
}

@keyframes uploadSpin-b-q4zrign720 {
    to {
        transform: rotate(360deg);
    }
}

/* Success / error icon containers */
.upload-check[b-q4zrign720],
.upload-x[b-q4zrign720] {
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.upload-check-svg[b-q4zrign720],
.upload-x-svg[b-q4zrign720] {
    width: 36px;
    height: 36px;
}

.upload-check-circle[b-q4zrign720],
.upload-x-circle[b-q4zrign720] {
    stroke: rgba(17, 24, 39, 0.22);
    stroke-width: 3;
    stroke-dasharray: 160;
    stroke-dashoffset: 160;
    animation: uploadDrawCircle-b-q4zrign720 260ms ease-out forwards;
}

.upload-check-mark[b-q4zrign720] {
    stroke: rgba(17, 24, 39, 0.78);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 48;
    stroke-dashoffset: 48;
    animation: uploadDrawMark-b-q4zrign720 220ms 120ms ease-out forwards;
}

.upload-x-mark[b-q4zrign720] {
    stroke: var(--danger-color, rgba(217, 45, 32, 0.92));
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 34;
    stroke-dashoffset: 34;
    animation: uploadDrawX-b-q4zrign720 200ms 120ms ease-out forwards;
}

@keyframes uploadDrawCircle-b-q4zrign720 {
    to {
        stroke-dashoffset: 0;
    }
}

@keyframes uploadDrawMark-b-q4zrign720 {
    to {
        stroke-dashoffset: 0;
    }
}

@keyframes uploadDrawX-b-q4zrign720 {
    to {
        stroke-dashoffset: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .upload-spinner[b-q4zrign720] {
        animation: none;
    }

    .upload-check-circle[b-q4zrign720],
    .upload-check-mark[b-q4zrign720],
    .upload-x-circle[b-q4zrign720],
    .upload-x-mark[b-q4zrign720] {
        animation: none;
        stroke-dashoffset: 0;
    }
}

/* ==========================================================================
   Upload overlay spinner + drawn checkmark (Intake step 2)
   ========================================================================== */

.upload-dropzone-busy[b-q4zrign720] {
    pointer-events: none;
}

.upload-overlay[b-q4zrign720] {
    position: absolute;
    inset: 0;
    z-index: 5;
    border-radius: inherit;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(2px);
}

.upload-overlay-center[b-q4zrign720] {
    display: grid;
    place-items: center;
}

/* Large spinner */
.upload-spinner-lg[b-q4zrign720] {
    width: 120px;
    height: 120px;
    border-radius: 999px;
    border: 12px solid rgba(37, 99, 235, 0.16);
    border-top-color: rgba(37, 99, 235, 0.95);
    animation: uploadSpinSatisfying-b-q4zrign720 1800ms linear infinite;
    transform-origin: 50% 50%;
}

@keyframes uploadSpinSatisfying-b-q4zrign720 {
    0% {
        transform: rotate(0deg);
    }

    5% {
        transform: rotate(21.71deg);
    }

    10% {
        transform: rotate(43.05deg);
    }

    15% {
        transform: rotate(63.71deg);
    }

    20% {
        transform: rotate(83.41deg);
    }

    25% {
        transform: rotate(102deg);
    }

    30% {
        transform: rotate(119.41deg);
    }

    35% {
        transform: rotate(135.71deg);
    }

    40% {
        transform: rotate(151.05deg);
    }

    45% {
        transform: rotate(165.71deg);
    }

    50% {
        transform: rotate(180deg);
    }

    55% {
        transform: rotate(194.29deg);
    }

    60% {
        transform: rotate(208.95deg);
    }

    65% {
        transform: rotate(224.29deg);
    }

    70% {
        transform: rotate(240.59deg);
    }

    75% {
        transform: rotate(258deg);
    }

    80% {
        transform: rotate(276.59deg);
    }

    85% {
        transform: rotate(296.29deg);
    }

    90% {
        transform: rotate(316.95deg);
    }

    95% {
        transform: rotate(338.29deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.upload-check-draw[b-q4zrign720] {
    width: 120px;
    height: 120px;
    opacity: 0;
    animation: uploadOverlayFadeIn-b-q4zrign720 260ms ease-out forwards, uploadOverlayFadeOut-b-q4zrign720 380ms ease-in forwards;
    animation-delay: 0ms, 1550ms;
}

@keyframes uploadOverlayFadeIn-b-q4zrign720 {
    to {
        opacity: 1;
    }
}

@keyframes uploadOverlayFadeOut-b-q4zrign720 {
    to {
        opacity: 0;
    }
}

.upload-check-path[b-q4zrign720] {
    stroke: #16a34a;
    stroke-width: 8;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 80;
    stroke-dashoffset: 80;
    animation: uploadDrawCheck-b-q4zrign720 1200ms cubic-bezier(0.3, 0.9, 0.2, 1) forwards;
    animation-delay: 180ms;
}

@keyframes uploadDrawCheck-b-q4zrign720 {
    to {
        stroke-dashoffset: 0;
    }
}

/* Blue confirmation text */
.upload-confirm-blue[b-q4zrign720] {
    margin-top: 16px;
    text-align: center;
    font-size: 26px;
    font-weight: 800;
    letter-spacing: -0.3px;
    color: rgba(37, 99, 235, 0.95);
}

.upload-confirm-error[b-q4zrign720] {
    margin-top: 14px;
    text-align: center;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.2px;
    color: var(--danger-color);
}

/* Optional bypass link on Upload step (feature-gated) */
.upload-skip[b-q4zrign720] {
    margin-top: 14px;
    text-align: center;
}

.upload-skip .link-button[b-q4zrign720] {
    color: rgba(107, 114, 128, 0.95);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}

.upload-skip .link-button:hover[b-q4zrign720] {
    text-decoration: underline;
    text-decoration-thickness: 1px;
}

.link-button[b-q4zrign720] {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    color: var(--primary-color);
    text-decoration: underline;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.link-button:hover[b-q4zrign720] {
    text-decoration-thickness: 2px;
}

.link-button:disabled[b-q4zrign720] {
    opacity: 0.55;
    cursor: not-allowed;
    text-decoration: none;
}

@media (prefers-reduced-motion: reduce) {
    .upload-spinner-lg[b-q4zrign720] {
        animation: none;
    }

    .upload-check-draw[b-q4zrign720] {
        animation: none;
        opacity: 1;
    }

    .upload-check-path[b-q4zrign720] {
        animation: none;
        stroke-dashoffset: 0;
    }
}

/* Upload status crossfade */
.upload-status[b-q4zrign720] {
    opacity: 1;
    transition: opacity 600ms cubic-bezier(0.4, 0.0, 0.2, 1);
    will-change: opacity;
}

    .upload-status.upload-status-in[b-q4zrign720] {
        opacity: 1;
    }

    .upload-status.upload-status-out[b-q4zrign720] {
        opacity: 0;
    }

.upload-status-line[b-q4zrign720] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.upload-status-icon[b-q4zrign720] {
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
}

@media (max-width: 640px) {
    .upload-status-line[b-q4zrign720] {
        flex-direction: column;
        align-items: center;
        gap: 6px;
        text-align: center;
    }

    .upload-confirm-blue[b-q4zrign720],
    .upload-confirm-error[b-q4zrign720] {
        text-align: center;
    }
}

/* ==========================================================================
   Inputs (HARD OVERRIDE kept last to win against everything)
   ========================================================================== */

.wizard .field :is(input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"], input:not([type]))[b-q4zrign720] {
    appearance: none !important;
    -webkit-appearance: none !important;
    width: 100%;
    margin: 0 auto;
    border: 0 !important;
    outline: none !important;
    background: rgba(17, 24, 39, 0.06) !important;
    color: var(--text-color) !important;
    border-radius: 8px !important;
    padding: 18px 16px !important;
    font-size: 18px !important;
    line-height: 1.2 !important;
    box-shadow: inset 0 -2px 0 rgba(17, 24, 39, 0.18) !important;
    transition: box-shadow 180ms ease, background-color 180ms ease, transform 140ms ease !important;
}

    .wizard .field :is(input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"], input:not([type]))[b-q4zrign720]::placeholder {
        color: rgba(17, 24, 39, 0.45) !important;
        font-weight: 500 !important;
    }

    .wizard .field :is(input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"], input:not([type])):hover[b-q4zrign720] {
        cursor: text;
        background: rgba(17, 24, 39, 0.075) !important;
        box-shadow: inset 0 -2px 0 rgba(33, 85, 205, 0.35), 0 10px 26px rgba(17, 24, 39, 0.10) !important;
        transform: translateY(-1px) !important;
    }

    .wizard .field :is(input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="url"], input:not([type])):focus[b-q4zrign720] {
        background: rgba(17, 24, 39, 0.085) !important;
        box-shadow: inset 0 -4px 0 var(--primary-color), 0 0 0 4px rgba(33, 85, 205, 0.18), 0 14px 32px rgba(33, 85, 205, 0.16) !important;
        transform: translateY(-1px) !important;
    }

/* ==========================================================================
   Field label layout + icons + pills
   ========================================================================== */

.field label.field-label[b-q4zrign720] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    text-align: left;
    font-size: 15px;
    font-weight: 500;
    color: rgba(17, 24, 39, 0.78);
}

.field-label-left[b-q4zrign720] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.field-label-icon[b-q4zrign720] {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    opacity: 0.78;
    display: block;
}

.field-label-text[b-q4zrign720] {
    font-weight: 500;
    line-height: 1.2;
}

.field-label-tag[b-q4zrign720] {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.01em;
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid rgba(17, 24, 39, 0.10);
    background: rgba(17, 24, 39, 0.04);
    color: rgba(17, 24, 39, 0.62);
    white-space: nowrap;
}

.field-label-tag-muted[b-q4zrign720] {
    opacity: 0.85;
}

.field-label-tag.pill[b-q4zrign720] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.78rem;
    line-height: 1;
    font-weight: 600;
    border: 1px solid transparent;
    user-select: none;
    white-space: nowrap;
}

    .field-label-tag.pill .pill-icon[b-q4zrign720] {
        width: 14px;
        height: 14px;
        flex: 0 0 auto;
    }

.field-label-tag.pill-required-empty[b-q4zrign720] {
    background: rgba(239, 68, 68, 0.16);
    border-color: rgba(239, 68, 68, 0.22);
    color: rgba(185, 28, 28, 0.95);
}

.field-label-tag.pill-optional-empty[b-q4zrign720] {
    background: rgba(234, 179, 8, 0.18);
    border-color: rgba(234, 179, 8, 0.22);
    color: rgba(133, 77, 14, 0.95);
}

.field-label-tag.pill-ok[b-q4zrign720] {
    background: rgba(34, 197, 94, 0.16);
    border-color: rgba(34, 197, 94, 0.22);
    color: rgba(21, 128, 61, 0.98);
}

/* ==========================================================================
   Estimate (legacy)
   ========================================================================== */

.estimate-card[b-q4zrign720] {
    border: 0;
    background: transparent;
    padding: 0;
    margin-top: 18px;
    text-align: left;
}

.estimate-amount[b-q4zrign720] {
    font-size: 34px;
    font-weight: 1000;
    color: var(--primary-color);
}

/* Center the estimate card on the Estimate step */
.estimate-stage[b-q4zrign720] {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

/* Make the estimate value larger */
.estimate-amount-lg[b-q4zrign720] {
    font-size: clamp(2.2rem, 4.2vw, 3.6rem);
    line-height: 1.05;
}

/* Shared XL estimate value style (used by estimate-final markup) */
.estimate-amount-xl[b-q4zrign720] {
    font-size: clamp(2.2rem, 4.8vw, 3.4rem);
    font-weight: 850;
    letter-spacing: -0.02em;
    line-height: 1.05;
    margin-bottom: 8px;
}

/* ==========================================================================
   Final Estimate: two-phase layout + contacts
   ========================================================================== */

.estimate-final[b-q4zrign720] {
    display: grid;
    gap: 18px;
    min-height: auto;
}

    .estimate-final.is-initial[b-q4zrign720] {
        min-height: min(62vh, 520px);
        align-content: center;
        justify-items: center;
    }

    .estimate-final.is-revealed[b-q4zrign720] {
        min-height: auto;
        align-content: start;
        justify-items: stretch;
        grid-template-rows: auto auto;
        padding-top: 6px;
        padding-bottom: 18px;
    }

/* Estimate block */
.estimate-final__estimate[b-q4zrign720] {
    width: 100%;
    display: grid;
    justify-items: center;
    text-align: center;
    gap: 10px;
    padding-top: 10px;
    transition: transform 420ms ease, opacity 420ms ease;
}

.estimate-final__value[b-q4zrign720] {
    font-size: clamp(2.4rem, 5.2vw, 3.8rem);
    font-weight: 850;
    letter-spacing: -0.02em;
    line-height: 1.05;
}

.estimate-final__caption[b-q4zrign720] {
    margin-top: -2px;
}

/* Interactive annual-rent entry (feature-gated) */
.rent-entry[b-q4zrign720] {
    margin-bottom: 8px;
    text-align: center;
}

.rent-entry__label[b-q4zrign720] {
    font-weight: 850;
    letter-spacing: -0.01em;
}

.rent-entry__prompt[b-q4zrign720] {
    margin-top: 8px;
    max-width: 46ch;
    margin-left: auto;
    margin-right: auto;
}

.rent-entry__input[b-q4zrign720] {
    margin-top: 14px;
    width: min(520px, 92vw);
    text-align: center;
    font-size: clamp(2.0rem, 6.2vw, 3.2rem);
    font-weight: 500;
    letter-spacing: 0;
    padding: 18px 18px;
    border-radius: 0;
}

.rent-entry__error[b-q4zrign720] {
    margin-top: 10px;
    display: inline-block;
}

.estimate-calc[b-q4zrign720] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 6px;
    font-weight: 800;
}

.estimate-final__continue[b-q4zrign720] {
    margin-top: 10px;
    min-width: 170px;
}

/* Contacts block (hidden initially) */
.estimate-final__contacts[b-q4zrign720] {
    opacity: 0;
    transform: translateY(14px);
    pointer-events: none;
    transition: opacity 420ms ease, transform 420ms ease;
}

/* Move/shrink estimate into header position */
.estimate-final.is-revealed .estimate-final__estimate[b-q4zrign720] {
    justify-items: center;
    text-align: center;
    transform: translateY(-14px) scale(0.72);
    transform-origin: top center;
    padding-top: 32px;
}

/* Revealed estimate typography */
.estimate-final.is-revealed .estimate-final__value[b-q4zrign720] {
    font-size: clamp(1.35rem, 2.6vw, 1.9rem);
    line-height: 1.15;
    letter-spacing: -0.01em;
}

/* Bring contacts in */
.estimate-final.is-revealed .estimate-final__contacts[b-q4zrign720] {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    transition-delay: 120ms;
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    padding: 0px 18px 18px;
    margin-top: 8px;
    display: grid;
    gap: 18px;
}

/* Contact headline */
.followup-title[b-q4zrign720] {
    font-weight: 750;
    font-size: 1.5rem;
    margin-bottom: 14px;
    text-align: center;
}

.followup-row[b-q4zrign720] {
    display: grid;
    gap: 18px;
}

@media (min-width: 900px) {
    .followup-row[b-q4zrign720] {
        grid-template-columns: 1fr 1fr;
        gap: 22px;
    }
}

.followup-col[b-q4zrign720] {
    padding: 26px 20px;
    border: none;
    background: rgba(255,255,255,.65);
    border-radius: 22px;
    box-shadow: 0 10px 28px rgba(0,0,0,.06);
    display: grid;
    gap: 12px;
    justify-items: center;
    text-align: center;
    min-height: 210px;
}

/* Mobile order: WhatsApp, Phone, Booking, Email */
.followup-col--whatsapp[b-q4zrign720] {
    order: 1;
}

.followup-col--phone[b-q4zrign720] {
    order: 2;
}

.followup-col--booking[b-q4zrign720] {
    order: 3;
}

.followup-col--email[b-q4zrign720] {
    order: 4;
}

/* Desktop order: Booking + WhatsApp on top row */
@media (min-width: 900px) {
    .followup-col--booking[b-q4zrign720] {
        order: 1;
    }

    .followup-col--whatsapp[b-q4zrign720] {
        order: 2;
    }

    .followup-col--phone[b-q4zrign720] {
        order: 3;
    }

    .followup-col--email[b-q4zrign720] {
        order: 4;
    }
}

.followup-label[b-q4zrign720] {
    font-weight: 800;
    font-size: 1.05rem;
    opacity: 0.95;
}

.followup-line[b-q4zrign720] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-width: 0;
    padding-top: 2px;
}

.followup-link[b-q4zrign720] {
    font-weight: 800;
    font-size: 1.1rem;
    text-decoration: none;
    word-break: break-word;
    min-width: 0;
}

.followup-actions[b-q4zrign720] {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    padding-top: 6px;
}

.followup-hint[b-q4zrign720] {
    margin-top: 8px;
}

.estimate-final .followup-actions .nav-button[b-q4zrign720] {
    padding: 12px 16px;
    min-width: 170px;
    justify-content: center;
}

.estimate-final .followup-actions .nav-button.contact-action[b-q4zrign720] {
    border: 1px solid transparent;
    gap: 10px;
}

.contact-action__icon-wrap[b-q4zrign720] {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: inset 0 0 0 1px rgba(17, 24, 39, 0.10);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.contact-action__icon[b-q4zrign720] {
    width: 18px;
    height: 18px;
    object-fit: contain;
    display: block;
}

.estimate-final .followup-actions .nav-button.contact-action--booking[b-q4zrign720] {
    background: linear-gradient(180deg, #0078d4 0%, #0067b8 100%);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.22);
    box-shadow: 0 8px 18px rgba(0, 120, 212, 0.28);
}

.estimate-final .followup-actions .nav-button.contact-action--booking:hover[b-q4zrign720] {
    background: linear-gradient(180deg, #006fc8 0%, #005a9e 100%);
    box-shadow: 0 10px 22px rgba(0, 120, 212, 0.34);
}

.estimate-final .followup-actions .nav-button.contact-action--whatsapp[b-q4zrign720] {
    background: linear-gradient(180deg, #25d366 0%, #20bc5a 100%);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.22);
    box-shadow: 0 8px 18px rgba(37, 211, 102, 0.30);
}

.estimate-final .followup-actions .nav-button.contact-action--whatsapp:hover[b-q4zrign720] {
    background: linear-gradient(180deg, #22c55e 0%, #169d50 100%);
    box-shadow: 0 10px 22px rgba(37, 211, 102, 0.36);
}

/* Icon-only copy button with tooltip */
.icon-btn[b-q4zrign720] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border-radius: 8px;
    border: 1px solid rgba(0,0,0,.12);
    background: transparent;
    cursor: pointer;
    flex: 0 0 auto;
}

    .icon-btn:hover[b-q4zrign720] {
        border-color: rgba(0,0,0,.20);
    }

    .icon-btn:focus-visible[b-q4zrign720] {
        outline: 2px solid rgba(0,0,0,.35);
        outline-offset: 2px;
    }

.icon-btn__icon[b-q4zrign720] {
    width: 16px;
    height: 16px;
    opacity: 0.85;
}

.icon-btn__tooltip[b-q4zrign720] {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.85);
    color: #fff;
    font-size: 0.75rem;
    padding: 6px 8px;
    border-radius: 8px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 120ms ease, transform 120ms ease;
}

    .icon-btn__tooltip[b-q4zrign720]::after {
        content: "";
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%);
        border-width: 6px;
        border-style: solid;
        border-color: rgba(0, 0, 0, 0.85) transparent transparent transparent;
    }

.icon-btn:hover .icon-btn__tooltip[b-q4zrign720],
.icon-btn:focus-visible .icon-btn__tooltip[b-q4zrign720] {
    opacity: 1;
    transform: translateX(-50%) translateY(-2px);
}

/* ==========================================================================
   Hero
   ========================================================================== */

.hero-region[b-q4zrign720] {
    display: grid;
    gap: 12px;
    overflow: hidden;
    max-height: 340px;
    transition: max-height 420ms ease, opacity 220ms ease, transform 420ms ease, margin 420ms ease;
    padding-top: 10px;
    position: relative;
    z-index: 0; /* keep below the header shelf */
}

.hero-divider[b-q4zrign720] {
    height: 1px;
    background: rgba(0,0,0,.10);
    width: 100%;
}

.hero-compact[b-q4zrign720] {
    display: flex;
    justify-content: center;
    margin-top: 0;
    padding-top: 4px;
    padding-bottom: 6px;
    overflow: visible;
}

.hero-mini-icon[b-q4zrign720] {
    width: 44px;
    height: 44px;
    display: block;
    opacity: 0.92;
}

/* ==========================================================================
   Mobile tweaks (RESPONSIVE)
   ========================================================================== */

@media (max-width: 640px) {

    /* No overlap while scrolling: header is no longer sticky on mobile */
    .wizard-header[b-q4zrign720] {
        position: static;
        top: auto;
        z-index: auto;
        padding: 14px 14px 10px;
        background: var(--background-color);
        box-shadow: none;
    }

        .wizard-header[b-q4zrign720]::after {
            display: none;
        }

    .header-grid[b-q4zrign720] {
        grid-template-columns: auto;
        justify-items: center;
        gap: 10px;
    }

    .logo-area[b-q4zrign720] {
        justify-content: center;
    }

    .brand-icon[b-q4zrign720] {
        width: 72px;
        height: 72px;
    }

    .stepper-area[b-q4zrign720] {
        padding: 0;
        justify-content: center;
    }

    .wizard-body[b-q4zrign720] {
        padding: 0 14px 56px;
        align-items: flex-start;
    }

    /* Center panels and prevent edge clipping */
    .panel > form[b-q4zrign720],
    .panel > section[b-q4zrign720] {
        margin: 0 auto;
        max-width: 520px;
    }

    /* Buttons centered and stacked */
    .actions[b-q4zrign720] {
        flex-direction: column;
        align-items: stretch;
        justify-content: center;
        gap: 12px;
        margin-top: 22px;
        max-width: 520px;
    }

        /* Mobile button order: Continue on top, Back on bottom */
        .actions .nav-next[b-q4zrign720] {
            order: 0;
        }

        .actions .nav-back[b-q4zrign720] {
            order: 1;
        }

        .actions .secondary[b-q4zrign720] {
            margin-right: 0;
        }

    .primary[b-q4zrign720],
    .secondary[b-q4zrign720] {
        width: 100%;
        justify-content: center;
    }

    .nav-button[b-q4zrign720] {
        justify-content: center;
    }

    .upload-dropzone[b-q4zrign720] {
        max-width: 100%;
        min-height: 320px;
        padding: 28px 18px;
        border-radius: 26px;
    }

    .upload-cyber-icon[b-q4zrign720] {
        width: 72px;
        height: 72px;
    }

    .upload-title[b-q4zrign720] {
        font-size: 18px;
    }

    /* Center estimate on mobile */
    .estimate-card[b-q4zrign720] {
        text-align: center;
    }

    /* Stack final actions right group naturally on mobile */
    .final-actions-right[b-q4zrign720] {
        align-items: center;
        width: 100%;
    }
}

/* Fallback estimate UI */
.fallback-note[b-q4zrign720] {
    font-size: 0.95rem;
    line-height: 1.35;
    opacity: 0.9;
    text-align: center;
}

.fallback-caption[b-q4zrign720] {
    margin-top: 8px;
    text-align: center;
}

.fallback-table-wrap[b-q4zrign720] {
    margin-top: 14px;
    width: 100%;
    overflow-x: auto;
}

/* Center the table so headers line up with the visual columns */
.fallback-table[b-q4zrign720] {
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.95rem;
    border: 1px solid rgba(59, 130, 246, 0.18);
    border-radius: 12px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.02);
}

    /* Column sizing */
    .fallback-table .col-left[b-q4zrign720] {
        width: 38%;
    }

    .fallback-table .col-right[b-q4zrign720] {
        width: 62%;
    }

    /* Ensure no global table styles interfere */
    .fallback-table th[b-q4zrign720],
    .fallback-table td[b-q4zrign720] {
        text-align: left;
        padding: 12px 14px;
        vertical-align: middle;
        white-space: nowrap;
    }

    .fallback-table thead th[b-q4zrign720] {
        font-weight: 650;
        color: inherit;
        background: rgba(59, 130, 246, 0.06);
        border-bottom: 1px solid rgba(59, 130, 246, 0.22);
    }

    /* Right column numeric alignment */
    .fallback-table .num[b-q4zrign720] {
        text-align: right;
    }

    /* Row dividers (subtle blue) */
    .fallback-table tbody td[b-q4zrign720] {
        border-bottom: 1px solid rgba(59, 130, 246, 0.10);
    }

/* Remove the thin divider line since the header shelf shadow is now the separator */
.hero-divider[b-q4zrign720] {
    display: none;
}

/* Auto-reveal countdown UI (initial estimate state) */
.estimate-auto[b-q4zrign720] {
    width: min(420px, 92%);
    display: grid;
    gap: 8px;
    margin-top: 10px;
    opacity: 0.9;
}

.estimate-auto__label[b-q4zrign720] {
    font-size: 0.95rem;
    color: rgba(17, 24, 39, 0.70);
}

.estimate-auto__bar[b-q4zrign720] {
    height: 10px;
    border-radius: 999px;
    background: rgba(17, 24, 39, 0.10);
    overflow: hidden;
}

.estimate-auto__barFill[b-q4zrign720] {
    height: 100%;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.85);
    transition: width 100ms linear;
}
