
:root{
    --green:#1f6b3a;
    --green-dark:#164d2b;
    --green-light:#eef6f0;

    --red:#b51f29;
    --red-light:#fff0f1;

    --cream:#f6f4ee;
    --white:#ffffff;

    --text:#22221f;
    --muted:#71716c;

    --border:#e4e2da;

    --shadow:0 15px 40px rgba(0,0,0,.07);
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:"DM Sans",Arial,sans-serif;
    background:var(--cream);
    color:var(--text);
}

a{
    text-decoration:none;
    color:inherit;
}

button,
input{
    font:inherit;
}

button{
    border:0;
}

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

/* ======================================================
   ÍCONES
====================================================== */

.icon{
    width:20px;
    height:20px;
    display:inline-block;
    flex:none;
}

.icon svg{
    display:block;
    width:100%;
    height:100%;
    stroke:currentColor;
}

/* ======================================================
   HEADER
====================================================== */

.header{
    height:84px;
    background:#fff;
    border-bottom:1px solid var(--border);
    display:flex;
    align-items:center;
    position:sticky;
    top:0;
    z-index:1000;
}

.header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
}

.logo img{
    display:block;
    max-height:65px;
    width:auto;
}

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

.nav a{
    font-size:14px;
    font-weight:600;
    transition:.2s;
}

.nav a:hover,
.nav a.active{
    color:var(--green);
}

/* ======================================================
   HERO
====================================================== */

.hero{
    position:relative;
    overflow:hidden;
    padding:90px 0 100px;
    text-align:center;

    background:
        radial-gradient(circle at 15% 15%,rgba(31,107,58,.10),transparent 28%),
        radial-gradient(circle at 90% 80%,rgba(181,31,41,.07),transparent 28%),
        #f8f6f0;
}

.hero::before{
    content:"";
    position:absolute;
    width:300px;
    height:300px;
    border:1px solid rgba(31,107,58,.08);
    border-radius:50%;
    left:-150px;
    bottom:-150px;
}

.hero::after{
    content:"";
    position:absolute;
    width:400px;
    height:400px;
    border:1px solid rgba(181,31,41,.07);
    border-radius:50%;
    right:-230px;
    top:-230px;
}

.eyebrow{
    color:var(--red);
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:2.2px;
    margin-bottom:15px;
}

.hero h1{
    font-family:"Playfair Display",serif;
    font-size:clamp(42px,5.5vw,68px);
    line-height:1.05;
    max-width:850px;
    margin:0 auto 20px;
}

.hero h1 span{
    color:var(--green);
}

.hero p{
    max-width:680px;
    margin:auto;
    color:var(--muted);
    font-size:18px;
    line-height:1.7;
}

/* ======================================================
   BUSCA
====================================================== */

.search-wrapper{
    position:relative;
    z-index:10;
    margin-top:-35px;
}

.search-box{
    max-width:820px;
    margin:auto;
    background:#fff;
    border-radius:17px;
    padding:10px 18px;
    min-height:70px;
    display:flex;
    align-items:center;
    gap:10px;
    box-shadow:0 18px 50px rgba(0,0,0,.12);
}

.search-box .icon{
    width:23px;
    height:23px;
    color:var(--green);
}

.search-box input{
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    padding:12px 5px;
    font-size:16px;
    color:var(--text);
}

.search-box input::placeholder{
    color:#9a9a95;
}

/* ======================================================
   INTRO
====================================================== */

.units-section{
    padding:55px 0 90px;
}

.section-heading{
    text-align:center;
    margin-bottom:32px;
}

.section-heading span{
    display:block;
    color:var(--red);
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:2px;
    margin-bottom:8px;
}

.section-heading h2{
    font-family:"Playfair Display",serif;
    font-size:38px;
    margin-bottom:10px;
}

.section-heading p{
    color:var(--muted);
}

.result-count{
    margin-top:12px;
    font-size:13px;
    color:var(--green);
    font-weight:800;
}

/* ======================================================
   REGIÕES
====================================================== */

.regions{
    max-width:1000px;
    margin:auto;
    display:flex;
    flex-direction:column;
    gap:14px;
}

.region{
    background:#fff;
    border:1px solid var(--border);
    border-radius:17px;
    overflow:hidden;
    transition:.25s;
}

.region.open{
    box-shadow:var(--shadow);
    border-color:transparent;
}

.region-header{
    width:100%;
    background:#fff;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:23px 25px;
    text-align:left;
}

.region-header-left{
    display:flex;
    align-items:center;
    gap:16px;
}

.region-icon{
    width:44px;
    height:44px;
    border-radius:50%;
    background:var(--green-light);
    color:var(--green);
    display:flex;
    align-items:center;
    justify-content:center;
    flex:none;
}

.region-icon .icon{
    width:22px;
    height:22px;
}

.region-title{
    font-family:"Playfair Display",serif;
    font-size:22px;
    font-weight:700;
}

.region-subtitle{
    color:var(--muted);
    font-size:13px;
    margin-top:3px;
}

.region-right{
    display:flex;
    align-items:center;
    gap:15px;
}

.region-counter{
    background:#f4f3ee;
    border-radius:30px;
    padding:7px 12px;
    font-size:12px;
    font-weight:800;
    color:#666;
    white-space:nowrap;
}

.chevron{
    width:35px;
    height:35px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f5f5f2;
    transition:.25s;
    color:#555;
}

.region.open .chevron{
    transform:rotate(180deg);
    background:var(--green);
    color:#fff;
}

.region-content{
    display:none;
    border-top:1px solid var(--border);
}

.region.open .region-content{
    display:block;
}

/* ======================================================
   UNIDADE
====================================================== */

.unit{
    border-bottom:1px solid var(--border);
}

.unit:last-child{
    border-bottom:0;
}

.unit-header{
    width:100%;
    padding:19px 25px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    cursor:pointer;
    background:#fff;
    text-align:left;
    transition:.2s;
}

.unit-header:hover{
    background:#fafaf7;
}

.unit-left{
    display:flex;
    align-items:center;
    gap:14px;
}

.pin{
    width:36px;
    height:36px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--red-light);
    color:var(--red);
    flex:none;
}

.pin .icon{
    width:18px;
    height:18px;
}

.unit-name{
    font-weight:800;
    font-size:16px;
}

.unit-uf{
    color:var(--muted);
    font-size:12px;
    margin-top:2px;
}

.unit-plus{
    width:31px;
    height:31px;
    border-radius:50%;
    border:1px solid var(--border);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--green);
    font-size:22px;
    font-weight:400;
    transition:.2s;
    flex:none;
}

.unit.open .unit-plus{
    transform:rotate(45deg);
    color:var(--red);
}

/* DETALHES */

.unit-details{
    display:none;
    padding:0 25px 24px 75px;
    background:#fff;
}

.unit.open .unit-details{
    display:block;
}

.details-box{
    background:#f8f8f5;
    border-radius:13px;
    padding:20px;
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    gap:25px;
}

.info-row{
    display:flex;
    align-items:flex-start;
    gap:10px;
    color:#555;
    line-height:1.5;
    font-size:14px;
    margin-bottom:10px;
}

.info-row:last-child{
    margin-bottom:0;
}

.info-row .icon{
    width:18px;
    height:18px;
    color:var(--green);
    margin-top:1px;
}

.info-row strong{
    color:var(--text);
}

.unit-actions{
    display:flex;
    gap:9px;
}

.action{
    min-height:45px;
    padding:0 17px;
    border-radius:9px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-size:13px;
    font-weight:800;
    white-space:nowrap;
    transition:.2s;
}

.action-whatsapp{
    background:var(--green);
    color:#fff;
}

.action-whatsapp:hover{
    background:var(--green-dark);
    transform:translateY(-1px);
}

.action-map{
    background:#fff;
    color:var(--text);
    border:1px solid var(--border);
}

.action-map:hover{
    border-color:var(--green);
    color:var(--green);
}

.action .icon{
    width:17px;
    height:17px;
}

/* ======================================================
   SEM RESULTADOS
====================================================== */

.no-results{
    display:none;
    max-width:700px;
    margin:20px auto 0;
    text-align:center;
    padding:50px 25px;
    background:#fff;
    border-radius:17px;
    border:1px solid var(--border);
}

.no-results-icon{
    width:55px;
    height:55px;
    margin:0 auto 15px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--green-light);
    color:var(--green);
}

.no-results h3{
    font-family:"Playfair Display",serif;
    font-size:26px;
    margin-bottom:7px;
}

.no-results p{
    color:var(--muted);
}

/* ======================================================
   FRANQUIA CTA
====================================================== */

.cta{
    background:
        radial-gradient(circle at 10% 50%,rgba(255,255,255,.06),transparent 30%),
        var(--green-dark);

    color:#fff;
    padding:75px 20px;
    text-align:center;
}

.cta-label{
    color:#e8c9a4;
    font-size:11px;
    font-weight:800;
    letter-spacing:2px;
    text-transform:uppercase;
    margin-bottom:10px;
}

.cta h2{
    font-family:"Playfair Display",serif;
    font-size:clamp(32px,4vw,46px);
    margin-bottom:13px;
}

.cta p{
    max-width:650px;
    margin:0 auto 25px;
    color:rgba(255,255,255,.78);
    line-height:1.7;
}

.cta-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:14px 24px;
    border-radius:9px;
    background:#fff;
    color:var(--green-dark);
    font-size:14px;
    font-weight:800;
    transition:.2s;
}

.cta-button:hover{
    transform:translateY(-2px);
}

/* ======================================================
   FOOTER
====================================================== */

.footer{
    background:#11381f;
    color:rgba(255,255,255,.65);
    padding:25px 20px;
    text-align:center;
    font-size:13px;
}

/* ======================================================
   RESPONSIVO
====================================================== */

@media(max-width:800px){

    .nav{
        display:none;
    }

    .hero{
        padding:70px 0 85px;
    }

    .details-box{
        grid-template-columns:1fr;
    }

    .unit-actions{
        justify-content:flex-start;
    }
}

@media(max-width:600px){

    .container{
        width:calc(100% - 26px);
    }

    .header{
        height:72px;
    }

    .logo img{
        max-height:54px;
    }

    .hero{
        padding:55px 0 75px;
    }

    .hero p{
        font-size:16px;
    }

    .search-wrapper{
        margin-top:-30px;
    }

    .search-box{
        min-height:60px;
        padding:7px 13px;
    }

    .units-section{
        padding-top:45px;
    }

    .section-heading h2{
        font-size:31px;
    }

    .region-header{
        padding:18px 16px;
    }

    .region-icon{
        width:39px;
        height:39px;
    }

    .region-title{
        font-size:18px;
    }

    .region-counter{
        display:none;
    }

    .unit-header{
        padding:17px 15px;
    }

    .unit-details{
        padding:0 15px 18px;
    }

    .details-box{
        padding:17px;
    }

    .unit-actions{
        display:grid;
        grid-template-columns:1fr;
    }

    .action{
        width:100%;
    }
}
