:root{
    --navy:#0f2e24;
    --navy-light:#16295a;
    --blue:#149764;
    --blue-dark:#1e5fe0;
    --text-light:#ffffff;
    --text-muted:#c7cfe6;
    --bg-page:#f5f6fa;
    --card-border:#e5e7f0;
    --radius:10px;
}

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

html{scroll-behavior:smooth;}

body{
    font-family:"Inter","Segoe UI",Arial,sans-serif;
    color:#1c2331;
    background:var(--bg-page);
    -webkit-font-smoothing:antialiased;
}

a{text-decoration:none;color:inherit;}
svg{display:block;}

.topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:16px 32px;
    background:#fff;
    border-bottom:1px solid var(--card-border);
}
.search-form{
    flex:1;
    max-width:480px;
    display:flex;
    position:relative;
}
.search-icon{
    position:absolute;
    left:14px;
    top:50%;
    transform:translateY(-50%);
    color:#9aa2b6;
    pointer-events:none;
}
.search-form input{
    flex:1;
    padding:10px 14px 10px 40px;
    border:1px solid #d7dcea;
    border-radius:8px 0 0 8px;
    font-size:14px;
    font-family:inherit;
    transition:border-color .15s;
}
.search-form input:focus{
    outline:none;
    border-color:var(--blue);
}
.search-form button{
    padding:10px 16px;
    border:none;
    background:var(--blue);
    color:#fff;
    border-radius:0 8px 8px 0;
    cursor:pointer;
    display:flex;
    align-items:center;
    transition:background .15s;
}
.search-form button:hover{background:var(--blue-dark);}
.auth-links{display:flex;align-items:center;gap:8px;}
.auth-links a{
    font-weight:600;
    font-size:14px;
    color:var(--navy);
    padding:8px 4px;
    transition:color .15s;
}
.auth-links a:hover{color:var(--blue);}
.auth-links a.cta-link{
    background:var(--blue);
    color:#fff;
    padding:9px 18px;
    border-radius:8px;
    transition:background .15s, transform .15s;
}
.auth-links a.cta-link:hover{background:var(--blue-dark);color:#fff;transform:translateY(-1px);}

.layout{
    display:flex;
    min-height:100vh;
}

.sidebar{
    width:240px;
    flex-shrink:0;
    background:var(--navy);
    color:var(--text-light);
    padding:24px 0;
}
.sidebar .logo{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:18px;
    font-weight:700;
    letter-spacing:.3px;
    padding:0 24px 24px;
    color:var(--blue);
}
.sidebar .logo span{color:#fff;}
.sidebar nav{
    display:flex;
    flex-direction:column;
    gap:2px;
}
.sidebar nav a{
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px 24px;
    color:var(--text-muted);
    font-size:14px;
    font-weight:500;
    border-left:3px solid transparent;
    transition:background .15s, color .15s;
}
.sidebar nav a svg{flex-shrink:0;opacity:.85;}
.sidebar nav a:hover{
    background:var(--navy-light);
    color:#fff;
}
.sidebar nav a.active{
    background:var(--navy-light);
    color:#fff;
    border-left-color:var(--blue);
    font-weight:600;
}
.sidebar nav a.active svg{opacity:1;color:var(--blue);}

.content{
    flex:1;
    padding:32px 40px;
}

.hero{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:32px;
    background:var(--navy);
    background-image:radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px);
    background-size:18px 18px;
    color:#fff;
    border-radius:var(--radius);
    padding:56px;
    margin-bottom:40px;
    flex-wrap:wrap;
    position:relative;
    overflow:hidden;
    animation:fade-up .5s ease both;
}
.hero-copy{position:relative;z-index:1;}
.hero-tag{
    display:inline-block;
    background:rgba(47,111,237,.18);
    color:#9fbdfb;
    font-size:12px;
    font-weight:600;
    letter-spacing:.3px;
    padding:6px 12px;
    border-radius:20px;
    margin-bottom:18px;
}
.hero h1{
    font-size:42px;
    font-weight:700;
    line-height:1.15;
    letter-spacing:-.5px;
    margin-bottom:18px;
}
.hero p{
    color:var(--text-muted);
    font-size:15.5px;
    margin-bottom:28px;
    max-width:520px;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;}
.hero-actions button{
    font-size:15px;
    font-weight:600;
    font-family:inherit;
    padding:14px 26px;
    border-radius:8px;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    gap:8px;
    transition:background .15s, transform .15s, border-color .15s;
}
.hero-actions button.primary{
    background:var(--blue);
    color:#fff;
    border:none;
}
.hero-actions button.primary:hover{background:var(--blue-dark);transform:translateY(-2px);}
.hero-actions button.secondary{
    background:transparent;
    color:#fff;
    border:1px solid rgba(255,255,255,.5);
}
.hero-actions button.secondary:hover{border-color:#fff;background:rgba(255,255,255,.06);}
.hero-image{
    flex:1;
    min-width:280px;
    max-width:420px;
    aspect-ratio:4/3;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.2);
    border-radius:var(--radius);
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
    z-index:1;
}
.hero-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.section-head{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    margin-bottom:18px;
}
section h2{
    font-size:22px;
    font-weight:600;
    color:var(--navy);
    letter-spacing:-.2px;
}
.see-all{
    font-size:14px;
    font-weight:600;
    color:var(--blue);
    display:inline-flex;
    align-items:center;
    gap:4px;
    transition:gap .15s, color .15s;
}
.see-all:hover{gap:8px;color:var(--blue-dark);}

.cards{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
    gap:20px;
    margin-bottom:48px;
}
.card{
    background:#fff;
    border:1px solid var(--card-border);
    border-radius:var(--radius);
    padding:16px;
    transition:box-shadow .2s, transform .2s, border-color .2s;
}
.card:hover{
    box-shadow:0 12px 24px rgba(15,29,61,.1);
    transform:translateY(-3px);
    border-color:#d3d9ec;
}
.card .photo{
    position:relative;
    width:100%;
    aspect-ratio:4/3;
    background:linear-gradient(135deg,#eef1f8,#e4e9f5);
    border-radius:8px;
    margin-bottom:14px;
}
.card .badge{
    position:absolute;
    top:8px;
    left:8px;
    background:var(--blue);
    color:#fff;
    font-size:11px;
    font-weight:600;
    padding:3px 8px;
    border-radius:6px;
}
.card h3{
    font-size:15.5px;
    font-weight:600;
    margin-bottom:6px;
    color:var(--navy);
}
.card b{
    display:block;
    color:var(--blue);
    font-size:15px;
    font-weight:600;
    margin-bottom:4px;
}
.card p{
    font-size:13px;
    color:#8a90a3;
}

.why{
    background:#fff;
    border:1px solid var(--card-border);
    border-radius:var(--radius);
    padding:44px;
    text-align:center;
    margin-bottom:32px;
}
.why h2{margin-bottom:8px;}
.why > p{color:#666;margin:0 0 32px;font-size:15px;}
.why-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:20px;
    text-align:left;
}
.why-item{
    background:var(--bg-page);
    border-radius:8px;
    padding:22px;
    transition:background .15s;
}
.why-item:hover{background:#eef1f8;}
.why-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    border-radius:8px;
    background:rgba(47,111,237,.1);
    color:var(--blue);
    margin-bottom:12px;
}
.why-item h3{
    font-size:15px;
    font-weight:600;
    color:var(--navy);
    margin-bottom:6px;
}
.why-item p{
    font-size:13px;
    color:#666;
    line-height:1.5;
}

.site-footer{
    text-align:center;
    font-size:13px;
    color:#8a90a3;
    padding:28px 32px;
}

@keyframes fade-up{
    from{opacity:0;transform:translateY(8px);}
    to{opacity:1;transform:translateY(0);}
}
@media (prefers-reduced-motion:reduce){
    .hero{animation:none;}
    .card,.hero-actions button,.auth-links a.cta-link{transition:none;}
}

@media (max-width:900px){
    .layout{flex-direction:column;}
    .sidebar{width:100%;padding:12px 0;}
    .sidebar .logo{padding:0 16px 12px;}
    .sidebar nav{flex-direction:row;flex-wrap:wrap;padding:0 8px;}
    .sidebar nav a{padding:8px 12px;border-left:none;border-radius:6px;}
    .content{padding:24px;}
    .hero{padding:32px;}
    .hero h1{font-size:30px;}
}
@media (max-width:600px){
    .topbar{flex-direction:column;align-items:stretch;padding:12px 16px;}
    .auth-links{justify-content:flex-end;}
}

/* ===== Navbar pública (home) ===== */
.navbar-public{
    display:flex;
    align-items:center;
    gap:24px;
    padding:14px 32px;
    background:#fff;
    border-bottom:1px solid var(--card-border);
    position:sticky;
    top:0;
    z-index:50;
}
.navbar-logo{
    display:flex;
    align-items:center;
    flex-shrink:0;
}
.navbar-logo-img{
    height:34px;
    width:auto;
    display:block;
}
.navbar-links{
    display:flex;
    align-items:center;
    gap:22px;
    flex:1;
}
.navbar-links a{
    font-size:14px;
    font-weight:500;
    color:#4a5578;
    padding:6px 2px;
    border-bottom:2px solid transparent;
    transition:color .15s, border-color .15s;
}
.navbar-links a:hover{color:var(--blue);}
.navbar-links a.ativo{color:var(--navy);font-weight:600;border-bottom-color:var(--blue);}
.navbar-menu-btn{
    display:none;
    background:none;
    border:none;
    color:var(--navy);
    cursor:pointer;
    padding:6px;
}

@media (max-width:900px){
    .navbar-public{flex-wrap:wrap;padding:12px 16px;}
    .navbar-links{
        display:none;
        width:100%;
        flex-direction:column;
        align-items:flex-start;
        gap:4px;
        order:3;
        padding-top:10px;
        border-top:1px solid var(--card-border);
        margin-top:10px;
    }
    .navbar-links.aberta{display:flex;}
    .navbar-menu-btn{display:flex;}
}

/* ===== Busca em destaque (hero) ===== */
.busca-hero{padding:32px 40px 8px;}
.busca-hero-card{
    background:#fff;
    border:1px solid var(--card-border);
    border-radius:16px;
    padding:26px 30px;
    max-width:1100px;
    margin:0 auto;
    box-shadow:0 8px 24px rgba(15,29,61,.05);
}
.busca-hero-topo{
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin-bottom:18px;
}
.busca-hero-icone{
    width:44px;
    height:44px;
    border-radius:12px;
    background:rgba(47,111,237,.1);
    color:var(--blue);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}
.busca-hero-topo h1{font-size:19px;font-weight:700;color:var(--navy);margin-bottom:4px;}
.busca-hero-topo p{font-size:13.5px;color:#6b7590;}
.busca-hero-form{
    display:flex;
    align-items:center;
    position:relative;
    margin-bottom:18px;
}
.busca-hero-form-icone{
    position:absolute;
    left:14px;
    color:#9aa2b6;
    pointer-events:none;
}
.busca-hero-form input{
    flex:1;
    padding:13px 14px 13px 40px;
    border:1px solid #d7dcea;
    border-radius:10px 0 0 10px;
    font-size:14px;
    font-family:inherit;
}
.busca-hero-form input:focus{outline:none;border-color:var(--blue);}
.busca-hero-form button{
    padding:13px 22px;
    border:none;
    background:var(--blue);
    color:#fff;
    font-weight:600;
    font-size:14px;
    font-family:inherit;
    border-radius:0 10px 10px 0;
    cursor:pointer;
    transition:background .15s;
}
.busca-hero-form button:hover{background:var(--blue-dark);}
.busca-hero-badges{
    display:flex;
    flex-wrap:wrap;
    gap:20px;
}
.busca-hero-badges span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:13px;
    font-weight:600;
    color:#4a5578;
}
.busca-hero-badges svg{color:var(--blue);}

/* ===== Categorias (pills) ===== */
.categoria-pills{
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding:18px 40px 2px;
    max-width:1100px;
    margin:0 auto;
    scrollbar-width:none;
}
.categoria-pills::-webkit-scrollbar{display:none;}
.categoria-pill{
    flex-shrink:0;
    padding:9px 18px;
    border-radius:999px;
    border:1px solid var(--card-border);
    background:#fff;
    color:#4a5578;
    font-size:13.5px;
    font-weight:600;
    font-family:inherit;
    cursor:pointer;
    white-space:nowrap;
    transition:background .15s,border-color .15s,color .15s;
}
.categoria-pill:hover{border-color:var(--blue);color:var(--blue);}
.categoria-pill.ativo{background:var(--blue);border-color:var(--blue);color:#fff;}

/* ===== Produtos em destaque ===== */
.destaque-section{padding:26px 40px 0;max-width:1100px;margin:0 auto;}
.destaque-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:14px;
    margin-bottom:16px;
}
.destaque-header h2{margin-bottom:2px;}
.destaque-contagem{font-size:13px;color:#8a90a3;}
.destaque-controles{display:flex;align-items:center;gap:10px;}
.os-filtro-select{
    font-family:inherit;
    font-size:13.5px;
    padding:9px 14px;
    border:1px solid var(--card-border);
    border-radius:9px;
    color:#4a5578;
    background:#fff;
    cursor:pointer;
}
.destaque-filtros-btn{
    display:flex;
    align-items:center;
    gap:7px;
    padding:9px 16px;
    border:1px solid var(--card-border);
    border-radius:9px;
    background:#fff;
    color:#4a5578;
    font-size:13.5px;
    font-weight:600;
    font-family:inherit;
    cursor:pointer;
}
.destaque-filtros-btn:hover{border-color:var(--blue);color:var(--blue);}

.destaque-filtros-painel{
    display:none;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:14px;
    background:#fff;
    border:1px solid var(--card-border);
    border-radius:12px;
    padding:16px 18px;
    margin-bottom:20px;
}
.destaque-filtros-painel.aberto{display:flex;}
.form-campo{display:flex;flex-direction:column;gap:6px;min-width:130px;}
.form-campo label{font-size:12.5px;font-weight:600;color:#6b7590;}
.form-campo input{
    padding:9px 12px;
    border:1px solid var(--card-border);
    border-radius:8px;
    font-family:inherit;
    font-size:13.5px;
}
.form-campo input:focus{outline:none;border-color:var(--blue);}
.checkbox-linha{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#4a5578;font-weight:500;cursor:pointer;}
.botao-secundario{
    background:#fff;
    color:#4a5578;
    border:1px solid var(--card-border);
    font-family:inherit;
    font-size:13.5px;
    font-weight:600;
    padding:9px 16px;
    border-radius:9px;
    cursor:pointer;
}
.botao-secundario:hover{background:#f4f6fb;}

.produtos-publicos-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
    gap:20px;
    margin-bottom:20px;
}
.produto-publico-card{
    display:flex;
    flex-direction:column;
    background:#fff;
    border:1px solid var(--card-border);
    border-radius:14px;
    overflow:hidden;
    transition:box-shadow .2s, transform .2s, border-color .2s;
}
.produto-publico-card:hover{
    box-shadow:0 12px 24px rgba(15,29,61,.1);
    transform:translateY(-3px);
    border-color:#d3d9ec;
}
.produto-publico-foto{
    position:relative;
    width:100%;
    aspect-ratio:4/3;
    background:linear-gradient(135deg,#eef1f8,#e4e9f5);
    display:flex;
    align-items:center;
    justify-content:center;
    color:#c7cee3;
    overflow:hidden;
}
.produto-publico-foto img{width:100%;height:100%;object-fit:cover;}
.produto-publico-categoria-badge{
    position:absolute;
    top:10px;
    left:10px;
    background:rgba(15,29,61,.85);
    color:#fff;
    font-size:10.5px;
    font-weight:600;
    padding:4px 10px;
    border-radius:20px;
    z-index:1;
}
.produto-publico-favorito{
    position:absolute;
    top:8px;
    right:8px;
    width:30px;
    height:30px;
    border-radius:50%;
    background:rgba(255,255,255,.9);
    border:none;
    color:#9aa2b6;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    z-index:1;
    transition:color .15s, transform .15s;
}
.produto-publico-favorito:hover{transform:scale(1.08);}
.produto-publico-favorito.ativo{color:#e0245e;}
.produto-publico-favorito.ativo svg{fill:#e0245e;}
.produto-publico-corpo{
    display:flex;
    flex-direction:column;
    padding:14px 16px 16px;
    gap:4px;
    flex:1;
}
.produto-publico-nome{
    font-size:14.5px;
    font-weight:600;
    color:var(--navy);
    line-height:1.3;
}
.produto-publico-preco{
    font-size:15.5px;
    font-weight:700;
    color:var(--blue);
    margin-bottom:2px;
}
.produto-publico-empresa{
    display:inline-flex;
    align-items:center;
    gap:5px;
    font-size:12.5px;
    color:#8a90a3;
    margin-bottom:10px;
}
.produto-publico-check{color:#149764;flex-shrink:0;}
.produto-publico-btn{
    margin-top:auto;
    text-align:center;
    background:#f4f6fb;
    color:var(--navy);
    font-size:13px;
    font-weight:600;
    padding:9px 12px;
    border-radius:8px;
    transition:background .15s, color .15s;
}
.produto-publico-btn:hover{background:var(--blue);color:#fff;}

.estado-vazio-publico{
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:10px;
    padding:60px 20px;
    color:#9aa2b6;
    background:#fff;
    border:1px solid var(--card-border);
    border-radius:14px;
    margin-bottom:20px;
}
.estado-vazio-publico strong{color:#4a5578;font-size:15px;}
.estado-vazio-publico span{font-size:13.5px;max-width:320px;}
.botao-cta-link{
    margin-top:8px;
    background:var(--blue);
    color:#fff;
    font-size:13.5px;
    font-weight:600;
    padding:10px 20px;
    border-radius:9px;
}
.botao-cta-link:hover{background:var(--blue-dark);}

.produtos-busca-vazio{
    text-align:center;
    color:#9aa2b6;
    font-size:13.5px;
    padding:30px 0;
}

.pagina-publica .why{margin:32px 40px 40px;max-width:1100px;margin-left:auto;margin-right:auto;}

@media (max-width:640px){
    .busca-hero{padding:20px 16px 4px;}
    .categoria-pills{padding:14px 16px 2px;}
    .destaque-section{padding:20px 16px 0;}
    .busca-hero-card{padding:20px;}
}

/* ===== Página de detalhe do produto/serviço ===== */
.produto-detalhe-wrapper{max-width:1000px;margin:0 auto;padding:28px 40px 50px;}
.produto-detalhe-voltar{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:13.5px;
    font-weight:600;
    color:#4a5578;
    margin-bottom:18px;
}
.produto-detalhe-voltar:hover{color:var(--blue);}
.produto-detalhe-card{
    display:grid;
    grid-template-columns:400px 1fr;
    gap:32px;
    background:#fff;
    border:1px solid var(--card-border);
    border-radius:16px;
    padding:28px;
}
.produto-detalhe-foto{
    width:100%;
    aspect-ratio:4/3;
    border-radius:12px;
    background:linear-gradient(135deg,#eef1f8,#e4e9f5);
    color:#c7cee3;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}
.produto-detalhe-foto img{width:100%;height:100%;object-fit:cover;}
.produto-detalhe-info{display:flex;flex-direction:column;}
.produto-detalhe-categoria{
    display:inline-block;
    font-size:11.5px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.4px;
    color:var(--blue);
    margin-bottom:8px;
}
.produto-detalhe-info h1{font-size:24px;font-weight:700;color:var(--navy);margin-bottom:10px;line-height:1.25;}
.produto-detalhe-preco{font-size:24px;font-weight:700;color:var(--blue);margin-bottom:6px;}
.produto-detalhe-estoque{font-size:13.5px;color:#6b7590;margin-bottom:18px;}
.produto-detalhe-descricao{margin-bottom:20px;}
.produto-detalhe-descricao h3{font-size:14px;font-weight:600;color:var(--navy);margin-bottom:6px;}
.produto-detalhe-descricao p{font-size:14px;color:#4a5578;line-height:1.6;white-space:pre-line;}
.produto-detalhe-empresa-card{
    display:flex;
    align-items:center;
    gap:12px;
    background:var(--bg-page);
    border-radius:12px;
    padding:14px 16px;
    margin:auto 0 16px;
}
.produto-detalhe-empresa-avatar{
    width:42px;
    height:42px;
    border-radius:50%;
    background:#fff;
    border:1px solid var(--card-border);
    color:var(--navy);
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    flex-shrink:0;
}
.produto-detalhe-empresa-avatar img{width:100%;height:100%;object-fit:cover;}
.produto-detalhe-empresa-texto{display:flex;flex-direction:column;gap:3px;}
.produto-detalhe-empresa-texto strong{font-size:14.5px;color:var(--navy);}
.produto-detalhe-verificado{
    display:inline-flex;
    align-items:center;
    gap:5px;
    font-size:12px;
    color:#16a34a;
    font-weight:600;
}
.produto-detalhe-contato{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    background:var(--blue);
    color:#fff;
    font-size:14.5px;
    font-weight:600;
    padding:13px 20px;
    border-radius:10px;
    transition:background .15s;
}
.produto-detalhe-contato:hover{background:var(--blue-dark);}

@media (max-width:760px){
    .produto-detalhe-card{grid-template-columns:1fr;padding:20px;}
    .produto-detalhe-wrapper{padding:20px 16px 40px;}
}

/* ===== Busca pública de empresas (empresas.php) ===== */
.empresas-busca-form select{
    border:none;
    background:transparent;
    font-family:inherit;
    font-size:14px;
    color:#1c2331;
    padding:0 10px 0 0;
    border-right:1px solid var(--card-border);
    margin-right:6px;
    cursor:pointer;
}
.empresas-busca-form select:focus{outline:none;}

.empresas-publicas-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
    gap:20px;
    margin-bottom:20px;
}
.empresa-publica-card{
    display:flex;
    flex-direction:column;
    background:#fff;
    border:1px solid var(--card-border);
    border-radius:14px;
    padding:16px;
    transition:box-shadow .2s, transform .2s, border-color .2s;
}
.empresa-publica-card:hover{
    box-shadow:0 12px 24px rgba(15,29,61,.1);
    transform:translateY(-3px);
    border-color:#d3d9ec;
}
.empresa-publica-topo{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.empresa-publica-avatar{
    width:44px;
    height:44px;
    border-radius:12px;
    background:#ddf3e6;
    color:var(--blue);
    font-weight:700;
    font-size:16px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    overflow:hidden;
}
.empresa-publica-avatar img{width:100%;height:100%;object-fit:cover;}
.empresa-publica-titulo{min-width:0;}
.empresa-publica-titulo strong{
    display:flex;
    align-items:center;
    gap:5px;
    font-size:14.5px;
    font-weight:600;
    color:var(--navy);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.empresa-publica-cidade{
    display:flex;
    align-items:center;
    gap:4px;
    font-size:12px;
    color:#8a90a3;
    margin-top:2px;
}
.empresa-publica-tags{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px;}
.empresa-publica-tags span{
    background:#f4f6fb;
    color:#4a5578;
    font-size:11px;
    font-weight:600;
    padding:3px 10px;
    border-radius:20px;
}
.empresa-publica-descricao{
    font-size:12.5px;
    color:#6b7590;
    line-height:1.5;
    margin-bottom:12px;
}
.empresa-publica-btn{
    margin-top:auto;
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:13px;
    font-weight:600;
    color:var(--blue);
}

/* ===== Perfil público de empresa (empresa_publica.php) ===== */
.empresa-perfil-wrapper{max-width:1000px;margin:0 auto;padding:28px 40px 50px;}
.empresa-perfil-header{
    display:flex;
    align-items:flex-start;
    gap:16px;
    background:#fff;
    border:1px solid var(--card-border);
    border-radius:16px;
    padding:24px 28px;
    margin-bottom:20px;
}
.empresa-perfil-avatar{
    width:64px;
    height:64px;
    border-radius:14px;
    background:#ddf3e6;
    color:var(--blue);
    font-weight:700;
    font-size:22px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    overflow:hidden;
}
.empresa-perfil-avatar img{width:100%;height:100%;object-fit:cover;}
.empresa-perfil-titulo{flex:1;min-width:0;}
.empresa-perfil-titulo h1{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    font-size:21px;
    font-weight:700;
    color:var(--navy);
    margin-bottom:6px;
}
.empresa-perfil-meta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:10px;}
.empresa-perfil-meta span{
    display:inline-flex;
    align-items:center;
    gap:5px;
    font-size:13px;
    color:#6b7590;
}
.empresa-perfil-corpo{
    display:grid;
    grid-template-columns:1fr 260px;
    gap:20px;
    align-items:start;
}
.empresa-perfil-caixa{
    background:#fff;
    border:1px solid var(--card-border);
    border-radius:14px;
    padding:20px 22px;
    margin-bottom:16px;
}
.empresa-perfil-caixa h3{font-size:14.5px;font-weight:600;color:var(--navy);margin-bottom:10px;}
.empresa-perfil-caixa p{font-size:13.5px;color:#4a5578;line-height:1.6;white-space:pre-line;}
.empresa-perfil-galeria{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin-bottom:16px;
}
.empresa-perfil-foto{aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#eef1f8;}
.empresa-perfil-foto img{width:100%;height:100%;object-fit:cover;}
.empresa-perfil-produtos{display:flex;flex-direction:column;gap:2px;}
.empresa-perfil-produto-linha{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 0;
    border-bottom:1px solid var(--card-border);
    font-size:13.5px;
    color:var(--navy);
}
.empresa-perfil-produto-linha:last-child{border-bottom:none;}
.empresa-perfil-produto-linha strong{color:var(--blue);}
.empresa-perfil-contato-linha{
    display:flex;
    align-items:flex-start;
    gap:8px;
    font-size:13px;
    color:#4a5578;
    margin-bottom:10px;
}
.empresa-perfil-contato-linha svg{flex-shrink:0;margin-top:1px;color:#8a90a3;}
.empresa-perfil-contato-btn{width:100%;margin-top:4px;}

@media (max-width:760px){
    .empresa-perfil-wrapper{padding:20px 16px 40px;}
    .empresa-perfil-corpo{grid-template-columns:1fr;}
    .empresa-perfil-header{flex-direction:column;align-items:flex-start;}
}

/* ===== Denúncia de produto/empresa (produto_publico.php, empresa_publica.php) ===== */
.denuncia-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    background:none;
    border:1px solid var(--card-border);
    color:#e0245e;
    font-size:13.5px;
    font-weight:600;
    padding:11px 18px;
    border-radius:10px;
    margin-top:10px;
    width:100%;
    cursor:pointer;
    transition:background .15s,border-color .15s;
}
.denuncia-link:hover{background:rgba(224,36,94,.08);border-color:#e0245e;}

.denuncia-aviso{
    padding:12px 16px;
    border-radius:10px;
    font-size:13.5px;
    font-weight:600;
    margin-bottom:16px;
}
.denuncia-aviso-sucesso{background:rgba(16,163,116,.1);color:#0d8a5f;}
.denuncia-aviso-erro{background:rgba(224,36,94,.1);color:#e0245e;}

.denuncia-modal-overlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(15,29,61,.55);
    align-items:center;
    justify-content:center;
    padding:20px;
    z-index:1000;
}
.denuncia-modal-overlay.aberto{display:flex;}
.denuncia-modal-box{
    background:#fff;
    border-radius:var(--radius);
    padding:24px;
    width:100%;
    max-width:420px;
    max-height:90vh;
    overflow-y:auto;
}
.denuncia-modal-topo{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:14px;
}
.denuncia-modal-topo h3{font-size:17px;color:var(--navy);}
.denuncia-modal-fechar{
    background:none;
    border:none;
    font-size:22px;
    line-height:1;
    color:#8a93ad;
    cursor:pointer;
    padding:2px 6px;
}
.denuncia-modal-fechar:hover{color:var(--navy);}
.denuncia-modal-texto{font-size:13.5px;color:#4a5578;margin-bottom:12px;}
.denuncia-modal-motivos{
    display:flex;
    flex-direction:column;
    gap:8px;
    margin-bottom:14px;
}
.denuncia-motivo-item{
    display:flex;
    align-items:center;
    gap:9px;
    font-size:13.5px;
    color:#2b3350;
    border:1px solid var(--card-border);
    border-radius:9px;
    padding:10px 12px;
    cursor:pointer;
}
.denuncia-motivo-item:has(input:checked){border-color:#e0245e;background:rgba(224,36,94,.05);}
.denuncia-modal-box textarea{
    width:100%;
    min-height:80px;
    border:1px solid var(--card-border);
    border-radius:9px;
    padding:10px 12px;
    font-family:inherit;
    font-size:13.5px;
    resize:vertical;
    margin-bottom:14px;
}
.denuncia-modal-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    background:#e0245e;
    color:#fff;
    font-size:14px;
    font-weight:600;
    padding:12px;
    border:none;
    border-radius:10px;
    cursor:pointer;
    text-decoration:none;
}
.denuncia-modal-btn:hover{background:#c01f50;}
