* {
    box-sizing: border-box;
}

html {
    font-family:
        Inter,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
}

body {
    margin: 0;
    background: #f6f7f9;
    color: #17191c;
}

.container {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
}

.topbar {
    background: #ffffff;
    border-bottom: 1px solid #e5e7eb;
}

.topbar .container {
    min-height: 68px;
    display: flex;
    align-items: center;
}

.brand {
    font-weight: 800;
    font-size: 20px;
}

.hero {
    padding: 64px 0;
    background: #ffffff;
}

.hero-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 48px;
    align-items: center;
}

.badge {
    display: inline-block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    margin-bottom: 16px;
}

h1 {
    font-size: clamp(36px, 5vw, 60px);
    line-height: 1.05;
    margin: 0 0 20px;
}

.hero-text {
    font-size: 20px;
    line-height: 1.5;
    max-width: 620px;
}

.card {
    padding: 28px;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .08);
}

.card h2 {
    margin-top: 0;
}

label {
    display: block;
    font-weight: 700;
    margin-bottom: 8px;
}

input {
    width: 100%;
    min-height: 52px;
    padding: 0 14px;
    border-radius: 10px;
    border: 1px solid #cfd4dc;
    font-size: 17px;
    outline: none;
}

input:focus {
    border-color: #17191c;
}

button {
    width: 100%;
    min-height: 52px;
    margin-top: 14px;
    border: 0;
    border-radius: 10px;
    background: #17191c;
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
}

.result {
    margin-top: 16px;
    font-size: 14px;
    line-height: 1.5;
}

.benefits {
    padding: 56px 0;
}

.benefit-grid,
.admin-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.benefit-card,
.admin-card {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 22px;
}

.benefit-card strong,
.admin-card strong {
    display: block;
    font-size: 18px;
    margin-bottom: 8px;
}

.benefit-card span,
.admin-card span {
    color: #666;
}

.admin-page {
    padding: 48px 0;
}

.admin-page h1 {
    font-size: 38px;
}

.footer {
    padding: 32px 0;
    background: #17191c;
    color: #ffffff;
}

@media (max-width: 800px) {

    .hero {
        padding: 36px 0;
    }

    .hero-grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .benefit-grid,
    .admin-grid {
        grid-template-columns: 1fr;
    }

    h1 {
        font-size: 38px;
    }

    .hero-text {
        font-size: 18px;
    }

}


/* ==========================================================
   CONSULTA DE VIABILIDADE
   ========================================================== */

.result {
    display: none;
}

.result:not(:empty) {
    display: block;
    padding: 16px;
    border-radius: 12px;
}

.result strong {
    display: block;
    font-size: 17px;
    margin-bottom: 6px;
}

.result-loading {
    background: #f3f4f6;
}

.result-success {
    background: #ecfdf3;
    border: 1px solid #bbf7d0;
}

.result-warning {
    background: #fffbeb;
    border: 1px solid #fde68a;
}

.result-error {
    background: #fef2f2;
    border: 1px solid #fecaca;
}

.coverage-address {
    margin-top: 10px;
    font-size: 14px;
    opacity: .8;
}

.continue-button {
    margin-top: 14px;
}


/* ==========================================================
   CAPTURA DE LEAD
   ========================================================== */

.lead-box {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(0, 0, 0, .08);
}

.lead-box-heading {
    margin-bottom: 18px;
}

.lead-box-heading strong {
    font-size: 20px;
}

.lead-box-heading span {
    display: block;
    margin-top: 5px;
    color: #667085;
}

.lead-box label {
    margin-top: 14px;
}

.optional {
    font-size: 12px;
    font-weight: 500;
    color: #667085;
}

.lead-result {
    margin-top: 14px;
}

.lead-success {
    padding: 14px;
    border-radius: 10px;
    background: #ecfdf3;
    border: 1px solid #bbf7d0;
}

.lead-success strong,
.lead-success span {
    display: block;
}

button:disabled {
    opacity: .6;
    cursor: not-allowed;
}


/* ==========================================================
   ADMIN / CRM
   ========================================================== */

.admin-link {
    display: block;
    text-decoration: none;
    color: inherit;
    transition:
        transform .15s ease,
        box-shadow .15s ease;
}

.admin-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .08);
}

.admin-eyebrow {
    display: block;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    color: #667085;
}

.admin-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 30px;
}

.admin-toolbar h1 {
    margin-bottom: 8px;
}

.back-link {
    display: inline-block;
    margin-bottom: 20px;
    text-decoration: none;
    color: #17191c;
    font-weight: 700;
}

.metric-card {
    min-width: 140px;
    padding: 18px 22px;
    border-radius: 14px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
}

.metric-card span {
    display: block;
    font-size: 13px;
    color: #667085;
}

.metric-card strong {
    display: block;
    margin-top: 5px;
    font-size: 30px;
}

.table-card {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    overflow: hidden;
}

.table-scroll {
    overflow-x: auto;
}

table {
    width: 100%;
    border-collapse: collapse;
    white-space: nowrap;
}

th {
    padding: 13px 15px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    text-align: left;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #667085;
}

td {
    padding: 14px 15px;
    border-bottom: 1px solid #eef0f2;
    font-size: 14px;
}

td small {
    display: block;
    margin-top: 3px;
    color: #667085;
}

.status {
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border-radius: 999px;
    background: #f3f4f6;
    font-size: 12px;
    font-weight: 700;
}

.status-success {
    background: #ecfdf3;
}

.status-warning {
    background: #fffbeb;
}

.empty-table {
    padding: 40px;
    text-align: center;
    color: #667085;
}

@media (max-width: 800px) {

    .admin-toolbar {
        flex-direction: column;
    }

    .metric-card {
        width: 100%;
    }

}


/* ==========================================================
   LOGIN ADMINISTRATIVO
   ========================================================== */

.login-page {
    min-height: calc(100vh - 140px);
    padding: 60px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.login-card {
    width: min(100%, 430px);
    padding: 34px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    box-shadow:
        0 24px 60px
        rgba(0, 0, 0, .08);
}

.login-card h1 {
    margin: 0 0 8px;
    font-size: 34px;
}

.login-card p {
    margin-bottom: 26px;
    color: #667085;
}

.login-card label {
    margin-top: 16px;
}

.login-error {
    padding: 13px 14px;
    margin-bottom: 18px;
    border-radius: 10px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}


.admin-session {
    width: min(
        1120px,
        calc(100% - 32px)
    );
    margin: 18px auto 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    font-size: 13px;
}

.admin-session form {
    margin: 0;
}

.logout-button {
    width: auto;
    min-height: auto;
    margin: 0;
    padding: 7px 12px;
    border-radius: 8px;
    font-size: 12px;
}


/* ==========================================================
   CATALOGO COMERCIAL
   ========================================================== */

.catalog-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
    margin-top: 30px;
}

.catalog-section {
    padding: 24px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
}

.catalog-section-wide {
    grid-column: 1 / -1;
}

.catalog-section h2 {
    margin-top: 0;
}

.section-help {
    color: #667085;
    font-size: 14px;
}

.catalog-form {
    padding: 20px;
    margin-top: 18px;
    background: #f9fafb;
    border-radius: 12px;
}

.catalog-form label {
    margin-top: 14px;
}

.catalog-form label:first-of-type {
    margin-top: 0;
}

.catalog-form select,
.catalog-form textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid #cfd4dc;
    border-radius: 10px;
    background: #fff;
    font: inherit;
}

.catalog-list {
    margin-top: 20px;
}

.catalog-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 13px 0;
    border-bottom: 1px solid #eef0f2;
}

.catalog-row strong,
.catalog-row small {
    display: block;
}

.catalog-row small {
    margin-top: 3px;
    color: #667085;
}

.small-button {
    width: auto;
    min-height: auto;
    margin: 0;
    padding: 7px 11px;
    font-size: 12px;
}

.empty-mini {
    padding: 18px 0;
    color: #667085;
}

.form-grid {
    display: grid;
    grid-template-columns:
        repeat(4, 1fr);
    gap: 14px;
}

.checkbox-line {
    display: flex;
    align-items: center;
    gap: 9px;
}

.checkbox-line input {
    width: auto;
    min-height: auto;
}

.offers-table {
    margin-top: 24px;
    overflow-x: auto;
}

@media (max-width: 900px) {

    .catalog-layout {
        grid-template-columns: 1fr;
    }

    .catalog-section-wide {
        grid-column: auto;
    }

    .form-grid {
        grid-template-columns: 1fr 1fr;
    }

}

@media (max-width: 600px) {

    .form-grid {
        grid-template-columns: 1fr;
    }

}


/* BLOCO 8 - OFERTAS PUBLICAS */

.public-offers {
    display: grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(220px, 1fr)
        );
    gap: 16px;
    margin-top: 22px;
}

.public-offer-card {
    position: relative;
    padding: 22px;
    background: #fff;
    border: 1px solid #dfe3e8;
    border-radius: 16px;
}

.featured-offer {
    border-width: 2px;
    border-color: #17191c;
}

.offer-badge {
    display: inline-block;
    margin-bottom: 10px;
    padding: 5px 8px;
    border-radius: 999px;
    background: #17191c;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
}

.offer-operator {
    margin-bottom: 5px;
    font-size: 12px;
    font-weight: 800;
    color: #667085;
}

.public-offer-card h3 {
    margin: 0 0 6px;
    font-size: 22px;
}

.offer-speed {
    margin: 10px 0;
    font-size: 26px;
    font-weight: 900;
}

.offer-benefits {
    padding-left: 20px;
    margin: 18px 0;
}

.offer-benefits li {
    margin: 8px 0;
}

.offer-price {
    margin-top: 18px;
}

.offer-price strong {
    display: inline;
    font-size: 28px;
}

.offer-price span {
    font-size: 13px;
    color: #667085;
}

.installation-note {
    display: block;
    margin-top: 5px;
    color: #667085;
}

.choose-offer-button {
    margin-top: 18px;
}

@media (max-width: 600px) {

    .public-offers {
        grid-template-columns: 1fr;
    }

}

:root {
    --lp-primary: #d71920;
    --lp-secondary: #111827;
    --lp-accent: #f7c325;
    --lp-bg: #f7f8fb;
    --lp-text: #1f2937;
}

.landing-root {
    background: var(--lp-bg);
    color: var(--lp-text);
}

.landing-loading {
    padding: 80px 20px;
    text-align: center;
}

.lp-header {
    background: #fff;
    border-bottom: 1px solid #ebeef3;
    position: sticky;
    top: 0;
    z-index: 50;
}

.lp-header-inner {
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.lp-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 24px;
}

.lp-logo-icon {
    color: var(--lp-primary);
    font-size: 18px;
}

.lp-nav {
    display: flex;
    align-items: center;
    gap: 24px;
}

.lp-nav a,
.footer-column a {
    text-decoration: none;
    color: var(--lp-secondary);
}

.lp-header-actions {
    display: flex;
    gap: 12px;
    align-items: center;
}

.ghost-btn,
.header-login-btn,
.primary-btn,
.footer-link-btn {
    border: none;
    text-decoration: none;
    border-radius: 999px;
    padding: 12px 20px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ghost-btn {
    border: 1px solid var(--lp-primary);
    color: var(--lp-primary);
    background: #fff;
}

.header-login-btn,
.primary-btn {
    background: var(--lp-primary);
    color: #fff;
}

.primary-btn {
    background: var(--lp-accent);
    color: #111827;
}

.inline-btn,
.large-btn,
.small-btn {
    width: auto;
}

.hero-section {
    background:
        radial-gradient(circle at left, rgba(255,255,255,0.08), transparent 45%),
        linear-gradient(135deg, #8b0b13, var(--lp-primary));
    padding: 56px 0 50px;
    color: #fff;
}

.hero-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 34px;
    align-items: stretch;
}

.hero-copy h1 {
    font-size: 64px;
    line-height: 1.04;
    margin: 14px 0 18px;
    max-width: 820px;
}

.hero-copy p {
    font-size: 21px;
    line-height: 1.6;
    max-width: 760px;
    margin-bottom: 26px;
}

.hero-eyebrow,
.section-eyebrow,
.exit-intent-tag {
    display: inline-block;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    border-radius: 999px;
    padding: 7px 12px;
    background: rgba(255,255,255,0.12);
    color: inherit;
}

.section-eyebrow {
    background: rgba(215,25,32,0.08);
    color: var(--lp-primary);
}

.hero-form-group {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    background: #fff;
    border-radius: 999px;
    padding: 8px;
    max-width: 640px;
}

.hero-form-group input {
    border: none;
    box-shadow: none;
    padding: 15px 18px;
    border-radius: 999px;
}

.hero-highlights {
    margin-top: 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.hero-highlights span {
    padding: 11px 16px;
    border-radius: 999px;
    background: rgba(255,255,255,0.09);
    font-size: 14px;
}

.hero-visual-card {
    min-height: 100%;
    border-radius: 28px;
    padding: 28px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.14), rgba(255,255,255,0.05)),
        rgba(0,0,0,0.08);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 0 18px 50px rgba(0,0,0,0.22);
}

.hero-side-title {
    font-size: 34px;
    font-weight: 900;
    line-height: 1.1;
    max-width: 280px;
}

.hero-combo-card {
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 24px;
    padding: 20px;
}

.hero-combo-card strong {
    display: block;
    font-size: 28px;
    margin-bottom: 10px;
}

.section-spacious {
    padding: 72px 0;
}

.section-highlight {
    background: linear-gradient(180deg, #fff, #fff6f6);
}

.section-soft {
    background: #fff;
}

.section-header {
    max-width: 760px;
    margin-bottom: 34px;
}

.section-header h2 {
    margin: 12px 0 10px;
    font-size: 52px;
    line-height: 1.12;
    color: var(--lp-secondary);
}

.section-header p {
    font-size: 20px;
    line-height: 1.6;
    color: #5b6472;
}

.category-divider {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    padding: 0 0 26px;
    margin-bottom: 18px;
    border-bottom: 1px solid #e8ebf1;
}

.category-divider span,
.business-feature-item {
    background: #fff;
    border: 1px solid #edf1f6;
    padding: 12px 16px;
    border-radius: 999px;
    color: #5b6472;
    font-weight: 600;
}


.plan-grid {

    display:
        grid;

    grid-template-columns:
        repeat(
            4,
            minmax(
                0,
                1fr
            )
        );

    align-items:
        stretch;

    gap:
        22px;

}


.smaller-gap {

    margin-top:
        26px;

    grid-template-columns:
        repeat(
            2,
            minmax(
                0,
                1fr
            )
        );

}


.plan-card {

    position:
        relative;


    min-width:
        0;

    height:
        100%;


    display:
        flex;

    flex-direction:
        column;


    padding:
        20px;


    background:
        #FFFFFF;


    border:
        1px solid
        #EBEFF5;


    border-radius:
        20px;


    box-shadow:
        0 12px 32px
        rgba(
            17,
            24,
            39,
            .06
        );

}


.plan-tag-slot {

    min-height:
        28px;


    display:
        flex;

    align-items:
        flex-start;

}


.plan-tag {

    display:
        inline-flex;

    align-items:
        center;


    min-height:
        24px;


    margin:
        0;


    padding:
        0 10px;


    border-radius:
        999px;


    background:
        var(
            --lp-primary
        );


    color:
        #FFFFFF;


    font-size:
        11px;

    font-weight:
        800;

    line-height:
        1;


    white-space:
        nowrap;

}


.plan-card-title,
.plan-card h3 {

    min-height:
        58px;


    margin:
        10px 0 8px;


    color:
        var(
            --lp-secondary
        );


    font-size:
        24px;

    font-weight:
        700;

    line-height:
        1.2;


    overflow-wrap:
        anywhere;

}


.plan-description-slot {

    min-height:
        46px;

}


.plan-description {

    margin:
        0;


    color:
        var(
            --lp-primary
        );


    font-size:
        13px;

    font-weight:
        700;

    line-height:
        1.35;

}


.plan-list {

    flex:
        1 1 auto;


    min-height:
        0;


    margin:
        10px 0 0;


    padding-left:
        17px;


    color:
        #5B6472;


    font-size:
        13px;

    line-height:
        1.45;

}


.plan-list li {

    margin:
        0 0 7px;

    padding-left:
        2px;

}


.plan-list li:last-child {

    margin-bottom:
        0;

}


.plan-card-footer {

    flex:
        0 0 auto;


    display:
        grid;


    gap:
        11px;


    margin-top:
        18px;

}


.plan-price {

    min-width:
        0;

    min-height:
        42px;


    display:
        flex;

    align-items:
        baseline;


    gap:
        7px;


    margin:
        0;


    color:
        var(
            --lp-secondary
        );


    white-space:
        nowrap;

}


.plan-price-main {

    min-width:
        0;


    display:
        inline-flex;

    align-items:
        baseline;


    gap:
        4px;


    white-space:
        nowrap;

}


.plan-currency {

    flex:
        0 0 auto;


    font-size:
        20px;

    font-weight:
        700;

    line-height:
        1;

}


.plan-price strong {

    flex:
        0 0 auto;


    color:
        inherit;


    font-size:
        32px;

    font-weight:
        700;

    line-height:
        1;


    letter-spacing:
        -.025em;


    white-space:
        nowrap;

}


.plan-price-cycle {

    flex:
        0 0 auto;


    color:
        inherit;


    font-size:
        11px;

    font-weight:
        500;

    line-height:
        1;


    white-space:
        nowrap;

}


.plan-card
.choose-plan-button {

    width:
        100%;


    min-width:
        0;

    height:
        42px;

    min-height:
        42px;


    margin:
        0;


    padding:
        0 14px;


    border-radius:
        999px;


    font-size:
        13px;

    font-weight:
        600;

    line-height:
        1;


    white-space:
        nowrap;

}


.plan-details-link {

    display:
        inline-flex;

    align-items:
        center;


    min-height:
        20px;


    margin:
        0;


    color:
        #2563EB;


    font-size:
        12px;

    font-weight:
        600;

    line-height:
        1.3;

}


/*
==============================================================
 PLANOS RESIDENCIAIS
 APARENCIA INDEPENDENTE DO TEMA GLOBAL
==============================================================
*/

#planos {

    background:
        var(
            --res-section-bg,
            var(--lp-bg)
        );

}


#planos .section-header h2 {

    color:
        var(
            --res-title,
            var(--lp-secondary)
        );

}


#planos .section-header p {

    color:
        var(
            --res-subtitle,
            #64748B
        );

}


#planos .section-eyebrow {

    color:
        var(
            --res-eyebrow-text,
            var(--lp-primary)
        );


    background:
        var(
            --res-eyebrow-bg,
            #FBE8E9
        );


    border-color:
        color-mix(
            in srgb,
            var(
                --res-eyebrow-text,
                var(--lp-primary)
            )
            18%,
            transparent
        );

}


#planos .category-divider span {

    background:
        var(
            --res-chip-bg,
            #FFFFFF
        );


    color:
        var(
            --res-chip-text,
            #334155
        );

}


#planos .plan-card {

    background:
        var(
            --res-card-bg,
            #FFFFFF
        );


    border-color:
        var(
            --res-card-border,
            #EBEFF5
        );

}


#planos .plan-card-title,
#planos .plan-card h3 {

    color:
        var(
            --res-plan-title,
            var(--lp-secondary)
        );

}


#planos .plan-description {

    color:
        var(
            --res-plan-description,
            var(--lp-primary)
        );

}


#planos .plan-list {

    color:
        var(
            --res-benefit-text,
            #5B6472
        );

}


#planos .plan-tag {

    background:
        var(
            --res-badge-bg,
            var(--lp-primary)
        );


    color:
        var(
            --res-badge-text,
            #FFFFFF
        );

}


#planos .plan-price {

    color:
        var(
            --res-price,
            var(--lp-secondary)
        );

}


#planos
.choose-plan-button {

    background:
        var(
            --res-button-bg,
            var(--lp-accent)
        );


    color:
        var(
            --res-button-text,
            #111827
        );

}


#planos
.plan-details-link {

    color:
        var(
            --res-details,
            #2563EB
        );

}


.business-header {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 30px;
    align-items: start;
}

.business-feature-box {
    display: grid;
    gap: 12px;
}

.benefit-grid,
.step-grid {
    display: grid;
    gap: 20px;
}

.benefit-grid {
    grid-template-columns: repeat(3, 1fr);
}

.step-grid {
    grid-template-columns: repeat(4, 1fr);
}

.benefit-card,
.step-card,
.faq-box,
.checkout-preview-form {
    background: #fff;
    border: 1px solid #ebeff5;
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 10px 28px rgba(17, 24, 39, 0.05);
}

.step-number {
    display: inline-flex;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    align-items: center;
    justify-content: center;
    background: var(--lp-primary);
    color: #fff;
    font-weight: 800;
    margin-bottom: 16px;
}

.dual-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px;
}

.faq-row {
    border-top: 1px solid #edf1f6;
    padding: 14px 0;
}

.faq-row summary {
    cursor: pointer;
    font-weight: 700;
    color: var(--lp-secondary);
}

.faq-answer {
    color: #5b6472;
    margin-top: 10px;
    line-height: 1.6;
}

.checkout-section {
    background: linear-gradient(180deg, #fff, #fff9ef);
}

.checkout-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
    margin-bottom: 22px;
}

.checkout-note {
    background: #fff4cf;
    border: 1px solid #f7df82;
    color: #5b4a11;
    padding: 14px 16px;
    border-radius: 16px;
    margin-bottom: 18px;
}

.final-cta {
    background: linear-gradient(135deg, #8b0b13, var(--lp-primary));
    color: #fff;
    padding: 54px 0;
}

.final-cta-inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
}

.final-cta-form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    min-width: 420px;
}

.final-cta-form input {
    border-radius: 999px;
    border: none;
    padding: 14px 18px;
}

.lp-footer {
    background: #7f1117;
    color: #fff;
}

.footer-grid {
    padding: 46px 0;
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr 1fr;
    gap: 28px;
}

.footer-column h4,
.footer-brand strong {
    margin-bottom: 14px;
    display: block;
}

.footer-column a {
    display: block;
    color: #fff;
    opacity: 0.95;
    margin-bottom: 10px;
}

.footer-cookie {
    background: rgba(0,0,0,0.15);
    padding: 16px 0;
}

.footer-cookie-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.cookie-actions {
    display: flex;
    gap: 10px;
    align-items: center;
}

.footer-link-btn {
    background: transparent;
    color: #fff;
    text-decoration: underline;
    padding: 0;
}

.builder-form {
    margin-top: 22px;
}

.builder-block {
    background: #fff;
    border: 1px solid #ebeff5;
    border-radius: 18px;
    padding: 22px;
    margin-bottom: 22px;
}

.builder-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.builder-grid .full {
    grid-column: 1 / -1;
}

.exit-intent-modal.hidden {
    display: none;
}

.exit-intent-modal {
    position: fixed;
    inset: 0;
    z-index: 200;
}

.exit-intent-overlay {
    position: absolute;
    inset: 0;
    background: rgba(17, 24, 39, 0.6);
}

.exit-intent-card {
    position: relative;
    z-index: 2;
    width: min(560px, 92vw);
    margin: 10vh auto 0;
    background: #fff;
    border-radius: 24px;
    padding: 28px;
    box-shadow: 0 30px 80px rgba(0,0,0,0.35);
}

.exit-intent-close {
    position: absolute;
    top: 10px;
    right: 12px;
    width: auto;
    min-height: auto;
    background: none;
    border: none;
    font-size: 34px;
    cursor: pointer;
}

@media (max-width: 1200px) {
    .plan-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .benefit-grid,
    .step-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 900px) {
    .lp-nav {
        display: none;
    }

    .hero-grid,
    .business-header,
    .dual-column,
    .footer-grid,
    .final-cta-inner {
        grid-template-columns: 1fr;
    }

    .hero-copy h1,
    .section-header h2 {
        font-size: 40px;
    }

    .final-cta-form {
        min-width: auto;
    }
}

@media (max-width: 640px) {
    .hero-form-group,
    .final-cta-form,
    .checkout-grid,
    .plan-grid,
    .smaller-gap,
    .benefit-grid,
    .step-grid,
    .builder-grid {
        grid-template-columns: 1fr;
    }

    .lp-header-inner {
        flex-wrap: wrap;
    }

    .lp-header-actions {
        width: 100%;
    }

    .ghost-btn,
    .header-login-btn,
    .primary-btn {
        width: 100%;
    }

    .hero-copy h1,
    .section-header h2 {
        font-size: 32px;
    }

    .section-spacious {
        padding: 54px 0;
    }
}


/* ==========================================================
   CHECKOUT V2
   ========================================================== */

.checkout-v2 {
    min-height: 100vh;
    background: #f8f7f1;
    color: #101419;
    font-family: inherit;
}

.cv2-shell {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
}

.cv2-header {
    background: #fff;
    border-bottom: 1px solid #e7e7df;
}

.cv2-header-inner {
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.cv2-brand {
    text-decoration: none;
    color: var(--lp-secondary);
    font-size: 28px;
    font-weight: 900;
}

.cv2-phone {
    text-decoration: none;
    color: #111;
    background: var(--lp-accent);
    border-radius: 999px;
    padding: 12px 22px;
    font-weight: 700;
}

.cv2-progress {
    max-width: 360px;
    margin: 36px auto 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}

.cv2-progress-bar {
    height: 7px;
    border-radius: 999px;
    background: #dce2d7;
}

.cv2-progress-bar.active {
    background: var(--lp-primary);
}

.cv2-main {
    min-height: calc(100vh - 130px);
}

.cv2-screen {
    padding: 28px 20px 70px;
}

.cv2-hidden {
    display: none !important;
}

.cv2-form-card,
.cv2-offers-wrap,
.cv2-review-main,
.cv2-no-coverage,
.cv2-success {
    width: min(900px, 100%);
    margin: 0 auto;
}

.cv2-form-card h1,
.cv2-offers-wrap > h1,
.cv2-review-main h1,
.cv2-no-coverage h1,
.cv2-success h1,
.cv2-verifying h1 {
    text-align: center;
    font-size: clamp(31px, 4vw, 46px);
    line-height: 1.1;
    margin: 22px auto 10px;
    max-width: 760px;
}

.cv2-subtitle,
.cv2-verifying p,
.cv2-no-coverage > p,
.cv2-success > p {
    text-align: center;
    color: #5e6267;
    font-size: 18px;
    line-height: 1.55;
    margin: 0 auto 30px;
    max-width: 760px;
}

.cv2-step-label {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    width: min(360px, 100%);
    margin: 0 auto;
    font-size: 15px;
}

.cv2-readonly-field {
    position: relative;
    background: #fff;
    border: 1px solid #aab1aa;
    border-radius: 12px;
    padding: 10px 52px 10px 17px;
    margin: 14px 0;
    min-height: 63px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.cv2-readonly-field.confirmed {
    border-color: #28a745;
}

.cv2-readonly-field.external {
    border-color: #e2ae1b;
}

.cv2-readonly-field > span {
    display: block;
    font-size: 13px;
    color: #72777d;
    margin-bottom: 3px;
}

.cv2-readonly-field strong {
    font-size: 17px;
    font-weight: 600;
}

.cv2-ok,
.cv2-question {
    position: absolute;
    right: 17px;
    top: 50%;
    transform: translateY(-50%);
    width: 25px;
    height: 25px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-style: normal;
    font-weight: 900;
}

.cv2-ok {
    background: #12642d;
    color: #fff;
}

.cv2-question {
    background: #f6c33b;
    color: #352800;
}

.cv2-address-message {
    padding: 13px 15px;
    border-radius: 12px;
    margin: 14px 0 20px;
}

.cv2-address-message.success {
    background: #eaf8ed;
    color: #17612d;
}

.cv2-address-message.warning {
    background: #fff5cf;
    color: #765a00;
}

.cv2-two-fields {
    display: grid;
    grid-template-columns: 0.35fr 1fr;
    gap: 14px;
    margin-top: 14px;
}

.cv2-two-fields label,
.cv2-field {
    display: block;
}

.cv2-two-fields label span,
.cv2-field span {
    display: block;
    margin-bottom: 7px;
    font-size: 14px;
    font-weight: 700;
}

.cv2-two-fields input,
.cv2-field input {
    width: 100%;
    box-sizing: border-box;
    min-height: 58px;
    border: 1px solid #9da49e;
    border-radius: 11px;
    background: #fff;
    padding: 0 15px;
    font-size: 17px;
}

.cv2-confirm-address {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 20px 0;
}

.cv2-confirm-address input {
    width: auto;
    min-height: auto;
    margin-top: 4px;
}

.cv2-primary,
.cv2-outline {
    min-height: 54px;
    border-radius: 999px;
    padding: 0 28px;
    border: 0;
    text-decoration: none;
    font-weight: 800;
    font-size: 16px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

.cv2-primary {
    background: var(--lp-accent);
    color: #111;
}

.cv2-outline {
    color: var(--lp-primary);
    border: 1px solid var(--lp-primary);
    background: transparent;
}

.cv2-form-card > .cv2-primary {
    width: min(560px, 100%);
    margin: 28px auto 0;
}

.cv2-secondary-link {
    display: block;
    text-align: center;
    margin: 18px auto 0;
    color: var(--lp-primary);
    font-weight: 700;
}

.cv2-error {
    min-height: 20px;
    margin: 14px 0 0;
    color: #b42318;
    text-align: center;
}

.cv2-verifying {
    min-height: 560px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.cv2-search-animation {
    position: relative;
    width: 190px;
    height: 190px;
    margin-bottom: 24px;
}

.cv2-globe {
    position: absolute;
    inset: 25px;
    border-radius: 50%;
    background: #e5f7de;
    color: var(--lp-primary);
    display: grid;
    place-items: center;
    font-size: 95px;
    animation: cv2-pulse 1.5s infinite ease-in-out;
}

.cv2-magnifier {
    position: absolute;
    width: 78px;
    height: 78px;
    border: 9px solid var(--lp-accent);
    border-radius: 50%;
    right: 18px;
    bottom: 25px;
    animation: cv2-search 1.4s infinite ease-in-out;
}

.cv2-magnifier::after {
    content: "";
    position: absolute;
    width: 60px;
    height: 10px;
    border-radius: 999px;
    background: var(--lp-accent);
    transform: rotate(45deg);
    right: -44px;
    bottom: -23px;
}

@keyframes cv2-pulse {
    0%,100% { transform: scale(.96); }
    50% { transform: scale(1.04); }
}

@keyframes cv2-search {
    0%,100% { transform: translate(-6px, 5px); }
    50% { transform: translate(8px, -6px); }
}

.cv2-animation-image {
    width: min(220px, 70vw);
    max-height: 220px;
    object-fit: contain;
    margin-bottom: 26px;
}

.cv2-offer-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
    margin-top: 36px;
}

.cv2-offer-card {
    position: relative;
    background: #fff;
    border: 1px solid #e3e1d8;
    border-radius: 24px;
    padding: 20px;
    box-shadow: 0 12px 28px rgba(0,0,0,.06);
    display: flex;
    flex-direction: column;
    min-height: 440px;
}

.cv2-offer-tag {
    align-self: flex-start;
    border-radius: 999px;
    padding: 7px 10px;
    background: var(--lp-primary);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
}

.cv2-offer-card h2 {
    font-size: 19px;
    margin: 18px 0 5px;
}

.cv2-speed {
    color: var(--lp-secondary);
    font-size: 34px;
    font-weight: 900;
    margin: 6px 0 10px;
}

.cv2-offer-subtitle {
    color: #5e6267;
    min-height: 42px;
}

.cv2-offer-card ul {
    padding-left: 0;
    list-style: none;
    line-height: 1.8;
    font-size: 14px;
    flex: 1;
}

.cv2-price {
    display: flex;
    align-items: baseline;
    gap: 4px;
    margin: 18px 0;
}

.cv2-price strong {
    font-size: 34px;
}

.cv2-offer-card .cv2-primary {
    width: 100%;
}

.cv2-details-button {
    border: 0;
    background: none;
    color: var(--lp-primary);
    font-weight: 700;
    padding: 14px 0 0;
    cursor: pointer;
}

.cv2-why {
    margin: 30px auto 0;
    width: min(650px, 100%);
    background: #fff;
    border-radius: 16px;
    padding: 16px 18px;
}

.cv2-why summary {
    font-weight: 700;
    cursor: pointer;
}

.cv2-field {
    margin: 17px 0;
}

.cv2-security {
    text-align: center;
    color: #135d50;
    font-weight: 700;
    margin: 30px 0 15px;
}

.cv2-review-main {
    width: min(760px, 100%);
}

.cv2-review-section {
    background: #fff;
    border: 1px solid #e3e1d8;
    border-radius: 15px;
    padding: 18px;
    margin: 14px 0;
}

.cv2-review-section span,
.cv2-review-section strong,
.cv2-review-section small {
    display: block;
}

.cv2-review-section span {
    font-size: 13px;
    color: #73777d;
    margin-bottom: 5px;
}

.cv2-review-section strong {
    font-size: 18px;
}

.cv2-review-section small {
    margin-top: 5px;
    color: #61666c;
}

.cv2-review-main > .cv2-primary {
    width: min(560px, 100%);
    margin: 26px auto 0;
}

.cv2-success,
.cv2-no-coverage {
    text-align: center;
    padding-top: 60px;
}

.cv2-success-icon,
.cv2-no-icon {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    margin: 0 auto 20px;
    display: grid;
    place-items: center;
    font-size: 46px;
    font-weight: 900;
}

.cv2-success-icon {
    background: #e5f7e8;
    color: #187238;
}

.cv2-no-icon {
    background: #fff2ce;
    color: #996e00;
}

.cv2-success-reference {
    margin: 25px auto;
    padding: 14px;
    border-radius: 14px;
    background: #fff;
    max-width: 400px;
}

.cv2-home-button {
    width: min(360px, 100%);
    margin: 20px auto;
}

.cv2-cep-confirm {
    padding: 17px;
    background: #fff;
    border: 1px solid #e2dfd3;
    border-radius: 14px;
    width: min(420px, 100%);
    margin: 28px auto;
}

.cv2-no-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    width: min(600px, 100%);
    margin: 0 auto;
}

.cv2-notify {
    width: min(720px, 100%);
    margin: 30px auto 0;
    padding: 26px;
    border-radius: 20px;
    background: #fff;
    border: 1px solid #e3e1d8;
}

.cv2-notify .cv2-two-fields {
    grid-template-columns: 1fr 1fr;
}

.cv2-notify > .cv2-primary {
    width: min(420px, 100%);
    margin: 20px auto 0;
}

.cv2-notify-success {
    margin: 35px auto;
    padding: 22px;
    max-width: 500px;
    border-radius: 16px;
    background: #e8f7eb;
    color: #17612d;
}

.checkout-resume-floating {
    position: fixed;
    left: 50%;
    bottom: 25px;
    transform: translateX(-50%);
    z-index: 500;
    width: min(720px, calc(100% - 30px));
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 16px;
    padding: 14px 16px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 15px 45px rgba(0,0,0,.2);
    border: 1px solid #e7e7e7;
}

.checkout-resume-floating strong,
.checkout-resume-floating span {
    display: block;
}

.checkout-resume-floating span {
    font-size: 13px;
    color: #6a6d71;
}

.checkout-resume-floating a {
    background: var(--lp-accent, #f7c325);
    color: #111;
    text-decoration: none;
    font-weight: 800;
    padding: 11px 18px;
    border-radius: 999px;
}

.checkout-resume-floating button {
    width: auto;
    min-height: auto;
    background: none;
    color: #333;
    font-size: 22px;
    margin: 0;
    padding: 5px;
}

@media (max-width: 1050px) {

    .cv2-offer-grid {
        grid-template-columns: repeat(2, 1fr);
    }

}

@media (max-width: 700px) {

    .cv2-shell {
        width: min(100% - 24px, 1180px);
    }

    .cv2-header-inner {
        min-height: 64px;
    }

    .cv2-brand {
        font-size: 21px;
    }

    .cv2-phone {
        font-size: 12px;
        padding: 9px 13px;
    }

    .cv2-progress {
        margin-top: 22px;
    }

    .cv2-screen {
        padding: 22px 14px 55px;
    }

    .cv2-form-card h1,
    .cv2-offers-wrap > h1,
    .cv2-review-main h1,
    .cv2-no-coverage h1,
    .cv2-success h1,
    .cv2-verifying h1 {
        font-size: 31px;
    }

    .cv2-two-fields,
    .cv2-notify .cv2-two-fields,
    .cv2-no-actions {
        grid-template-columns: 1fr;
    }

    .cv2-offer-grid {
        grid-template-columns: 1fr;
    }

    .cv2-offer-card {
        min-height: auto;
    }

    .checkout-resume-floating {
        grid-template-columns: 1fr auto;
    }

    .checkout-resume-floating a {
        grid-column: 1 / -1;
        text-align: center;
    }

}


/* ADMIN_VISUAL_READY_BEGIN */

/*
   Esta variavel só existe quando app.css
   foi realmente interpretado pelo navegador.
*/

:root {
    --admin-base-visual-ready: 1;
}

/* ADMIN_VISUAL_READY_END */



/* ADMIN_BASE_READY_BEGIN */

:root {
    --admin-base-visual-ready: 1;
}

/* ADMIN_BASE_READY_END */

/* PUBLIC_EYEBROW_THEME_BEGIN */

/*
==============================================================
 BADGE / EYEBROW DAS SEÇÕES

 Ex:
 PLANOS RESIDENCIAIS

 A cor vem de:
 Site Builder > Tema / Marca > Cor principal
==============================================================
*/

html body .section-eyebrow {

    color:
        var(
            --lp-primary,
            #D71920
        )
        !important;


    background:
        color-mix(
            in srgb,
            var(
                --lp-primary,
                #D71920
            )
            10%,
            #FFFFFF
        )
        !important;


    border:
        1px solid
        color-mix(
            in srgb,
            var(
                --lp-primary,
                #D71920
            )
            14%,
            transparent
        )
        !important;

}

/* PUBLIC_EYEBROW_THEME_END */


/* RESIDENTIAL_CARD_RESPONSIVE_V2_BEGIN */

@media (
    max-width: 1200px
) {

    .plan-grid {

        grid-template-columns:
            repeat(
                2,
                minmax(
                    0,
                    1fr
                )
            );

    }

}


@media (
    max-width: 640px
) {

    .plan-grid,
    .smaller-gap {

        grid-template-columns:
            minmax(
                0,
                1fr
            );

    }


    .plan-card {

        padding:
            20px;

    }


    .plan-tag-slot,
    .plan-card-title,
    .plan-card h3,
    .plan-description-slot {

        min-height:
            0;

    }


    .plan-card-title,
    .plan-card h3 {

        margin-top:
            10px;

    }


    .plan-price {

        flex-wrap:
            nowrap;

    }

}

/* RESIDENTIAL_CARD_RESPONSIVE_V2_END */
