/*==================================================
    GUIA COMERCIAL
    STYLE.CSS
    PARTE 1
====================================================*/

/*==============================
RESET
==============================*/

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

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Poppins',sans-serif;
    background:#f8f9fa;
    color:#2f2f2f;
    overflow-x:hidden;
}

img{
    max-width:100%;
    display:block;
}

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

ul{
    list-style:none;
}

button,
input{
    font-family:inherit;
}

/*==============================
VARIÁVEIS
==============================*/

:root{

    --primary:#3B95B6;
    --primary-dark:#2D6E8B;

    --secondary:#F4B400;
    --secondary-dark:#D89C00;

    --white:#ffffff;

    --light:#f8f9fa;

    --border:#ececec;

    --text:#2f2f2f;

    --text-light:#757575;

    --radius:18px;

    --shadow:0 12px 35px rgba(0,0,0,.08);

    --transition:.35s;

}

/*==============================
CONTAINER
==============================*/

.container{

    width:1200px;
    max-width:92%;
    margin:auto;

}

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

header{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    height:82px;

    background:#fff;

    display:flex;

    align-items:center;

    z-index:9999;

    box-shadow:0 4px 20px rgba(0,0,0,.05);

}

.header{

    width:100%;

    display:flex;

    align-items:center;

    justify-content:space-between;

}

/*==============================
LOGO
==============================*/

.logo{

    font-size:30px;

    font-weight:700;

    color:var(--secondary);

    letter-spacing:.5px;

}

.logo span{

    color:var(--primary);

}

/*==============================
MENU
==============================*/

.menu{

    display:flex;

    align-items:center;

    gap:35px;

}

.menu a{

    color:var(--text);

    font-size:15px;

    font-weight:500;

    transition:var(--transition);

    position:relative;

}

.menu a:hover{

    color:var(--primary);

}

.menu a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:0;

    height:3px;

    background:var(--secondary);

    transition:.3s;

    border-radius:10px;

}

.menu a:hover::after{

    width:100%;

}

/*==============================
AÇÕES HEADER
==============================*/

.actions{

    display:flex;

    align-items:center;

    gap:15px;

}

/*==============================
BOTÕES
==============================*/

.btn{

    padding:12px 22px;

    border-radius:12px;

    transition:var(--transition);

    font-size:14px;

    font-weight:600;

    display:inline-flex;

    align-items:center;

    justify-content:center;

}

.btn-outline{

    border:2px solid var(--primary);

    color:var(--primary);

}

.btn-outline:hover{

    background:var(--primary);

    color:#fff;

}

.btn-primary{

    background:var(--secondary);

    color:#fff;

}

.btn-primary:hover{

    background:var(--secondary-dark);

    transform:translateY(-2px);

}

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

.hero{

    margin-top:82px;

    min-height:650px;

    position:relative;

    display:flex;

    align-items:center;

    background:url("../img/banner.png") center center;

    background-size:cover;

    overflow:hidden;

}

/*==============================
OVERLAY
==============================*/

.hero::before{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(

        135deg,

        rgba(45,110,139,.90),

        rgba(59,149,182,.72)

    );

}

/*==============================
CONTEÚDO HERO
==============================*/

.hero-content{

    position:relative;

    z-index:2;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:60px;

}

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

.hero-text{

    flex:1;

}

.hero-text h1{

    color:#fff;

    font-size:58px;

    line-height:66px;

    margin-bottom:22px;

    font-weight:700;

}

.hero-text p{

    color:#f5f5f5;

    font-size:20px;

    line-height:34px;

    max-width:580px;

}

/*==============================
CAIXA PESQUISA
==============================*/

.search-box{

    width:430px;

    background:#fff;

    border-radius:20px;

    padding:35px;

    box-shadow:0 30px 60px rgba(0,0,0,.20);

}

.search-box h3{

    margin-bottom:25px;

    color:var(--text);

    font-size:22px;

}

/*==============================
INPUTS
==============================*/

.search-box input,
.search-box select{

    width:100%;

    height:55px;

    border:none;

    background:#f5f6f7;

    border-radius:12px;

    padding:0 18px;

    margin-bottom:16px;

    font-size:15px;

    transition:.3s;

}

.search-box input:focus,
.search-box select:focus{

    outline:none;

    background:#fff;

    box-shadow:0 0 0 3px rgba(59,149,182,.20);

}

/*==============================
BOTÃO BUSCAR
==============================*/

.search-box button{

    width:100%;

    height:56px;

    border:none;

    border-radius:12px;

    background:var(--secondary);

    color:#fff;

    font-size:17px;

    font-weight:600;

    cursor:pointer;

    transition:.3s;

}

.search-box button:hover{

    background:var(--secondary-dark);

    transform:translateY(-2px);

}

/*==============================
ANIMAÇÕES
==============================*/

.fade-up{

    animation:fadeUp .8s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

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

@media(max-width:992px){

    .hero-content{

        flex-direction:column;

        text-align:center;

    }

    .hero-text h1{

        font-size:42px;

        line-height:52px;

    }

    .search-box{

        width:100%;

        max-width:500px;

    }

}

@media(max-width:768px){

    header{

        height:75px;

    }

    .menu{

        display:none;

    }

    .hero{

        padding:60px 0;

        min-height:auto;

    }

    .hero-text h1{

        font-size:34px;

        line-height:42px;

    }

    .hero-text p{

        font-size:17px;

        line-height:28px;

    }

    .logo{

        font-size:24px;

    }

    .actions{

        gap:8px;

    }

    .btn{

        padding:10px 16px;

        font-size:13px;

    }

}

/*==================================================
    GUIA COMERCIAL
    STYLE.CSS
    PARTE 2
====================================================*/

/*==============================
SEÇÕES
==============================*/

.section{

    padding:90px 0;

}

.section-title{

    text-align:center;

    margin-bottom:15px;

    font-size:42px;

    font-weight:700;

    color:var(--text);

}

.section-subtitle{

    text-align:center;

    color:var(--text-light);

    font-size:18px;

    margin-bottom:55px;

    max-width:700px;

    margin-left:auto;

    margin-right:auto;

}

/*==============================
BARRA DE BUSCA
==============================*/

.search-section{

    margin-top:-70px;

    position:relative;

    z-index:20;

}

.search-bar{

    background:#fff;

    border-radius:22px;

    padding:25px;

    box-shadow:var(--shadow);

    display:grid;

    grid-template-columns:2fr 1.5fr 180px;

    gap:18px;

}

.search-field{

    display:flex;

    flex-direction:column;

}

.search-field label{

    font-size:13px;

    font-weight:600;

    color:var(--text-light);

    margin-bottom:8px;

}

.search-field input,
.search-field select{

    height:56px;

    border:1px solid var(--border);

    border-radius:14px;

    padding:0 18px;

    background:#fff;

    transition:.3s;

    font-size:15px;

}

.search-field input:focus,
.search-field select:focus{

    outline:none;

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(59,149,182,.15);

}

.search-button{

    display:flex;

    align-items:flex-end;

}

.search-button button{

    width:100%;

    height:56px;

    border:none;

    border-radius:14px;

    background:var(--secondary);

    color:#fff;

    font-size:16px;

    font-weight:600;

    cursor:pointer;

    transition:var(--transition);

}

.search-button button:hover{

    background:var(--secondary-dark);

    transform:translateY(-3px);

}

/*==============================
CATEGORIAS
==============================*/

.categories{

    background:#fff;

}

.categories-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));

    gap:28px;

}

.category-card{

    background:#fff;

    border:1px solid var(--border);

    border-radius:22px;

    padding:35px 25px;

    text-align:center;

    transition:.35s;

    box-shadow:0 8px 25px rgba(0,0,0,.05);

    cursor:pointer;

}

.category-card:hover{

    transform:translateY(-10px);

    border-color:var(--secondary);

    box-shadow:0 18px 40px rgba(0,0,0,.12);

}

.category-icon{

    width:78px;

    height:78px;

    margin:auto;

    margin-bottom:22px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(59,149,182,.10);

    color:var(--primary);

    font-size:34px;

    transition:.35s;

}

.category-card:hover .category-icon{

    background:var(--secondary);

    color:#fff;

}

.category-card h3{

    font-size:20px;

    margin-bottom:10px;

    color:var(--text);

}

.category-card p{

    color:var(--text-light);

    font-size:14px;

    line-height:24px;

    margin-bottom:18px;

}

.category-total{

    display:inline-block;

    padding:7px 16px;

    border-radius:30px;

    background:rgba(244,180,0,.15);

    color:var(--secondary-dark);

    font-size:13px;

    font-weight:600;

}

/*==============================
EMPRESAS
==============================*/

.featured{

    background:var(--light);

}

.company-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(330px,1fr));

    gap:32px;

}

.company-card{

    background:#fff;

    border-radius:22px;

    overflow:hidden;

    box-shadow:var(--shadow);

    transition:.35s;

}

.company-card:hover{

    transform:translateY(-8px);

}

.company-image{

    position:relative;

    overflow:hidden;

}

.company-image img{

    width:100%;

    height:220px;

    object-fit:cover;

    transition:.4s;

}

.company-card:hover img{

    transform:scale(1.06);

}

.company-badge{

    position:absolute;

    top:18px;

    left:18px;

    background:var(--secondary);

    color:#fff;

    padding:8px 14px;

    border-radius:30px;

    font-size:12px;

    font-weight:600;

}

.company-content{

    padding:24px;

}

.company-category{

    color:var(--primary);

    font-size:14px;

    font-weight:600;

    margin-bottom:8px;

}

.company-title{

    font-size:24px;

    margin-bottom:10px;

    color:var(--text);

}

.company-address{

    color:var(--text-light);

    line-height:26px;

    margin-bottom:18px;

}

.company-rating{

    display:flex;

    align-items:center;

    justify-content:space-between;

    margin-bottom:22px;

}

.stars{

    color:#ffb400;

    font-size:18px;

}

.rating-value{

    color:var(--text-light);

    font-size:14px;

}

.company-button{

    display:block;

    width:100%;

    text-align:center;

    padding:15px;

    background:var(--primary);

    color:#fff;

    border-radius:14px;

    font-weight:600;

    transition:.35s;

}

.company-button:hover{

    background:var(--primary-dark);

}

/*==============================
ANIMAÇÃO DOS CARDS
==============================*/

.category-card,
.company-card{

    animation:cardFade .7s ease;

}

@keyframes cardFade{

    from{

        opacity:0;

        transform:translateY(35px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

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

@media(max-width:992px){

    .search-bar{

        grid-template-columns:1fr;

    }

}

@media(max-width:768px){

    .section{

        padding:70px 0;

    }

    .section-title{

        font-size:32px;

    }

    .categories-grid{

        grid-template-columns:1fr;

    }

    .company-grid{

        grid-template-columns:1fr;

    }

    .company-image img{

        height:210px;

    }

}

/*==================================================
    GUIA COMERCIAL
    STYLE.CSS
    PARTE 3
====================================================*/

/*==============================
ESTATÍSTICAS
==============================*/

.statistics{

    padding:90px 0;

    background:linear-gradient(135deg,var(--primary),var(--primary-dark));

    color:#fff;

}

.statistics-grid{

    display:grid;

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

    gap:30px;

}

.stat-card{

    text-align:center;

    padding:35px 20px;

}

.stat-card h2{

    font-size:52px;

    margin-bottom:10px;

    font-weight:700;

}

.stat-card span{

    font-size:18px;

    opacity:.95;

}

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

.cta{

    padding:100px 0;

    background:#fff;

    text-align:center;

}

.cta h2{

    font-size:44px;

    margin-bottom:20px;

    color:var(--text);

}

.cta p{

    max-width:700px;

    margin:auto;

    margin-bottom:40px;

    color:var(--text-light);

    line-height:30px;

    font-size:18px;

}

.cta .btn{

    padding:18px 45px;

    font-size:17px;

}

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

footer{

    background:#1d2630;

    color:#d6d6d6;

    padding:80px 0 30px;

}

.footer-grid{

    display:grid;

    grid-template-columns:2fr 1fr 1fr 1fr;

    gap:40px;

    margin-bottom:50px;

}

.footer-logo{

    font-size:32px;

    font-weight:700;

    color:#fff;

    margin-bottom:20px;

}

.footer-logo span{

    color:var(--secondary);

}

.footer-about{

    line-height:30px;

    color:#bdbdbd;

}

.footer-column h3{

    color:#fff;

    margin-bottom:25px;

    font-size:20px;

}

.footer-column ul{

    display:flex;

    flex-direction:column;

    gap:15px;

}

.footer-column a{

    color:#bdbdbd;

    transition:.3s;

}

.footer-column a:hover{

    color:var(--secondary);

    padding-left:5px;

}

/*==============================
SOCIAIS
==============================*/

.social{

    display:flex;

    gap:15px;

    margin-top:25px;

}

.social a{

    width:46px;

    height:46px;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    display:flex;

    align-items:center;

    justify-content:center;

    color:#fff;

    transition:.3s;

}

.social a:hover{

    background:var(--secondary);

    transform:translateY(-4px);

}

/*==============================
COPYRIGHT
==============================*/

.copyright{

    border-top:1px solid rgba(255,255,255,.08);

    padding-top:30px;

    text-align:center;

    color:#999;

    font-size:14px;

}

/*==============================
BOTÃO TOPO
==============================*/

.back-top{

    position:fixed;

    right:25px;

    bottom:25px;

    width:52px;

    height:52px;

    border-radius:50%;

    background:var(--secondary);

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    box-shadow:var(--shadow);

    cursor:pointer;

    transition:.3s;

    z-index:999;

}

.back-top:hover{

    background:var(--secondary-dark);

    transform:translateY(-4px);

}

/*==============================
MENU MOBILE
==============================*/

.menu-toggle{

    display:none;

    font-size:32px;

    cursor:pointer;

    color:var(--primary);

}

@media(max-width:992px){

    .statistics-grid{

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

    }

    .footer-grid{

        grid-template-columns:1fr 1fr;

    }

}

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

@media(max-width:768px){

    .menu{

        display:none;

    }

    .menu-toggle{

        display:block;

    }

    .statistics{

        padding:70px 0;

    }

    .statistics-grid{

        grid-template-columns:1fr;

    }

    .stat-card h2{

        font-size:40px;

    }

    .cta{

        padding:70px 0;

    }

    .cta h2{

        font-size:34px;

    }

    .cta p{

        font-size:16px;

    }

    .footer-grid{

        grid-template-columns:1fr;

        text-align:center;

    }

    .social{

        justify-content:center;

    }

}

/*==============================
CELULARES
==============================*/

@media(max-width:480px){

    .section-title{

        font-size:28px;

    }

    .hero-text h1{

        font-size:30px;

        line-height:38px;

    }

    .hero-text p{

        font-size:16px;

    }

    .search-box{

        padding:25px;

    }

    .category-card{

        padding:28px 20px;

    }

    .company-content{

        padding:20px;

    }

    .company-title{

        font-size:20px;

    }

    .cta h2{

        font-size:28px;

    }

    .footer-logo{

        font-size:26px;

    }

    .back-top{

        width:46px;

        height:46px;

        right:18px;

        bottom:18px;

    }

}

/*==============================
DARK MODE (PREPARADO)
==============================*/

body.dark{

    background:#111827;

    color:#f3f4f6;

}

body.dark header{

    background:#1f2937;

}

body.dark .category-card,
body.dark .company-card,
body.dark .search-box{

    background:#1f2937;

    color:#f3f4f6;

    border-color:#374151;

}

body.dark footer{

    background:#0f172a;

}