
/* ============================================================
   GHOSTBASE 2.0 — SITE PÚBLICO
   Tema visual: Preto / Grafite / Branco / Laranja
   Patch visual seguro: NÃO altera regras, rotas ou consultas.
   Carregar este arquivo DEPOIS do CSS atual do site.
   ============================================================ */

:root{
    --gb-bg:#080c0f;
    --gb-bg-2:#0b1014;
    --gb-surface:#0f151a;
    --gb-surface-2:#12191f;
    --gb-surface-3:#172129;
    --gb-line:#202b33;
    --gb-line-2:#2b3943;
    --gb-text:#f5f7f8;
    --gb-muted:#8998a4;
    --gb-orange:#ff6b00;
    --gb-orange-2:#ff8126;
    --gb-orange-soft:rgba(255,107,0,.12);
    --gb-orange-glow:rgba(255,107,0,.28);
    --gb-green:#45d083;
    --gb-danger:#e5484d;
    --gb-radius:16px;
    --gb-radius-lg:22px;
    --gb-shadow:0 18px 50px rgba(0,0,0,.30);
    --gb-shadow-orange:0 18px 50px rgba(255,107,0,.09);
    --gb-max:1440px;
}

/* ---------- BASE ---------- */
html{
    scroll-behavior:smooth;
    background:var(--gb-bg);
}

body{
    margin:0;
    min-height:100vh;
    overflow-x:hidden;
    background:
        radial-gradient(900px 520px at 82% 0%,rgba(255,107,0,.09),transparent 58%),
        radial-gradient(700px 500px at 10% 32%,rgba(255,107,0,.04),transparent 62%),
        linear-gradient(180deg,#080c0f 0%,#090d10 44%,#070a0c 100%);
    color:var(--gb-text);
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}

body::before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:-1;
    opacity:.22;
    background-image:
        linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);
    background-size:34px 34px;
}

img,video,iframe,svg{
    max-width:100%;
}

img{
    height:auto;
}

a{
    color:inherit;
}

::selection{
    background:var(--gb-orange);
    color:#fff;
}

/* ---------- CONTAINER ---------- */
.container,
.site-container,
.gb-container,
.page-container,
main > .wrapper,
section > .wrapper{
    width:min(calc(100% - 36px),var(--gb-max));
    margin-inline:auto;
}

/* ---------- CABEÇALHO ---------- */
header,
.site-header,
.main-header,
.gb-header,
.navbar{
    background:rgba(8,12,15,.91);
    border-bottom:1px solid var(--gb-line);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
}

.site-header,
.main-header,
.gb-header{
    position:sticky;
    top:0;
    z-index:1000;
}

.site-header .container,
.main-header .container,
.gb-header .container,
header .container{
    min-height:74px;
    display:flex;
    align-items:center;
    gap:24px;
}

.logo img,
.site-logo img,
.brand img,
.gb-logo img{
    display:block;
    width:auto;
    max-height:48px;
    object-fit:contain;
}

.logo,
.site-logo,
.brand,
.gb-brand{
    color:#fff;
    font-weight:950;
    letter-spacing:1.2px;
    text-decoration:none;
}

.logo strong,
.site-logo strong,
.gb-brand strong{
    color:var(--gb-orange);
}

nav a,
.main-menu a,
.site-menu a,
.navbar a,
.header-nav a{
    position:relative;
    color:#c7d0d6;
    text-decoration:none;
    font-size:13px;
    font-weight:800;
    transition:.18s ease;
}

nav a:hover,
nav a.active,
.main-menu a:hover,
.main-menu a.active,
.site-menu a:hover,
.site-menu a.active{
    color:#fff;
}

nav a::after,
.main-menu a::after,
.site-menu a::after{
    content:"";
    position:absolute;
    left:0;
    right:100%;
    bottom:-9px;
    height:2px;
    background:var(--gb-orange);
    transition:.18s ease;
}

nav a:hover::after,
nav a.active::after,
.main-menu a:hover::after,
.main-menu a.active::after,
.site-menu a:hover::after,
.site-menu a.active::after{
    right:0;
}

/* ---------- BOTÕES ---------- */
button,
.btn,
.button,
a.btn,
input[type="submit"]{
    border:0;
    border-radius:10px;
    min-height:44px;
    padding:0 18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    background:linear-gradient(135deg,var(--gb-orange),#f25300);
    color:#fff;
    font-family:inherit;
    font-size:12px;
    font-weight:900;
    text-decoration:none;
    cursor:pointer;
    box-shadow:0 10px 24px rgba(255,107,0,.14);
    transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;
}

button:hover,
.btn:hover,
.button:hover,
a.btn:hover,
input[type="submit"]:hover{
    background:linear-gradient(135deg,var(--gb-orange-2),var(--gb-orange));
    transform:translateY(-1px);
    box-shadow:0 14px 30px rgba(255,107,0,.20);
}

.btn-outline,
.btn-secondary,
.secondary,
.button-outline{
    background:#0d1317!important;
    color:#fff!important;
    border:1px solid var(--gb-line-2)!important;
    box-shadow:none!important;
}

.btn-outline:hover,
.btn-secondary:hover,
.secondary:hover,
.button-outline:hover{
    border-color:rgba(255,107,0,.55)!important;
    background:#11191f!important;
}

/* ---------- HERO / HOME ---------- */
.hero,
.home-hero,
.site-hero,
.gb-hero,
.hero-section,
.banner-principal{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    border-bottom:1px solid var(--gb-line);
    background:
        radial-gradient(720px 520px at 76% 36%,rgba(255,107,0,.16),transparent 62%),
        linear-gradient(110deg,#070a0c 8%,#0c1115 56%,#080b0d 100%);
}

.hero::before,
.home-hero::before,
.site-hero::before,
.gb-hero::before,
.hero-section::before{
    content:"";
    position:absolute;
    inset:auto -8% -24% 28%;
    height:75%;
    z-index:-1;
    background:radial-gradient(circle,rgba(255,107,0,.11),transparent 62%);
    filter:blur(18px);
}

.hero::after,
.home-hero::after,
.site-hero::after,
.gb-hero::after,
.hero-section::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    background:
        linear-gradient(90deg,rgba(8,12,15,.99) 0%,rgba(8,12,15,.90) 38%,rgba(8,12,15,.42) 68%,rgba(8,12,15,.86) 100%);
}

.hero .container,
.home-hero .container,
.site-hero .container,
.gb-hero .container,
.hero-section .container{
    min-height:clamp(520px,68vh,760px);
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
    align-items:center;
    gap:42px;
    padding-block:64px;
}

.hero-content,
.hero-text,
.gb-hero-content{
    position:relative;
    z-index:3;
    max-width:760px;
}

.hero-kicker,
.eyebrow,
.section-kicker,
.gb-kicker{
    display:inline-flex;
    align-items:center;
    gap:9px;
    margin-bottom:14px;
    color:var(--gb-orange);
    font-size:11px;
    font-weight:950;
    letter-spacing:2px;
    text-transform:uppercase;
}

.hero-kicker::before,
.eyebrow::before,
.section-kicker::before,
.gb-kicker::before{
    content:"";
    width:28px;
    height:2px;
    background:var(--gb-orange);
    box-shadow:0 0 16px var(--gb-orange-glow);
}

.hero h1,
.home-hero h1,
.site-hero h1,
.gb-hero h1,
.hero-title{
    margin:0;
    max-width:820px;
    color:#fff;
    font-size:clamp(44px,6vw,86px);
    line-height:.96;
    letter-spacing:-3px;
    text-wrap:balance;
}

.hero h1 span,
.home-hero h1 span,
.site-hero h1 span,
.gb-hero h1 span,
.hero-title span{
    color:var(--gb-orange);
}

.hero p,
.home-hero p,
.site-hero p,
.gb-hero p,
.hero-subtitle{
    max-width:680px;
    margin:22px 0 0;
    color:#a8b4bc;
    font-size:clamp(16px,1.55vw,20px);
    line-height:1.65;
}

.hero-actions,
.gb-hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:28px;
}

.hero-media,
.hero-image,
.gb-hero-media{
    position:relative;
    min-height:450px;
    align-self:stretch;
}

.hero-media img,
.hero-image img,
.gb-hero-media img{
    width:100%;
    height:100%;
    max-height:650px;
    object-fit:contain;
    object-position:center bottom;
    filter:drop-shadow(0 30px 70px rgba(0,0,0,.55));
}

/* suporte para operador mascarado como background opcional */
.gb-hero-operator{
    position:absolute;
    inset:0 0 0 auto;
    width:min(48vw,720px);
    height:100%;
    object-fit:contain;
    object-position:right bottom;
    z-index:1;
    pointer-events:none;
    user-select:none;
    filter:drop-shadow(-20px 30px 70px rgba(0,0,0,.72));
}

/* ---------- SEÇÕES ---------- */
section,
.site-section,
.gb-section{
    position:relative;
}

.section,
.site-section,
.gb-section{
    padding:72px 0;
}

.section-header,
.section-head,
.gb-section-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:26px;
}

.section-header h2,
.section-head h2,
.gb-section-head h2,
section > h2{
    margin:0;
    color:#fff;
    font-size:clamp(28px,3.2vw,44px);
    line-height:1.05;
    letter-spacing:-1.2px;
}

.section-header p,
.section-head p,
.gb-section-head p{
    margin:8px 0 0;
    max-width:720px;
    color:var(--gb-muted);
    line-height:1.6;
}

/* ---------- CARDS GERAIS ---------- */
.card,
.content-card,
.news-card,
.operation-card,
.event-card,
.team-card,
.operator-card,
.photographer-card,
.gallery-card,
.supporter-card,
.tool-card,
.guide-card,
article.card{
    overflow:hidden;
    background:linear-gradient(180deg,var(--gb-surface-2),var(--gb-surface));
    border:1px solid var(--gb-line);
    border-radius:var(--gb-radius);
    box-shadow:var(--gb-shadow);
    transition:transform .20s ease,border-color .20s ease,box-shadow .20s ease;
}

.card:hover,
.content-card:hover,
.news-card:hover,
.operation-card:hover,
.event-card:hover,
.team-card:hover,
.operator-card:hover,
.photographer-card:hover,
.gallery-card:hover,
.supporter-card:hover,
.tool-card:hover,
.guide-card:hover{
    transform:translateY(-4px);
    border-color:rgba(255,107,0,.42);
    box-shadow:var(--gb-shadow-orange);
}

.card img,
.content-card img,
.news-card img,
.operation-card img,
.event-card img,
.team-card img,
.operator-card img,
.photographer-card img,
.gallery-card img{
    display:block;
    width:100%;
    object-fit:cover;
    background:#06090b;
}

.card-body,
.card-content,
.news-content,
.operation-content,
.team-content,
.operator-content,
.photographer-content{
    padding:18px;
}

.card h3,
.news-card h3,
.operation-card h3,
.team-card h3,
.operator-card h3,
.photographer-card h3{
    margin:0;
    color:#fff;
    font-size:18px;
    line-height:1.25;
}

.card p,
.news-card p,
.operation-card p,
.team-card p,
.operator-card p,
.photographer-card p{
    color:var(--gb-muted);
    line-height:1.55;
}

.badge,
.tag,
.category,
.category-badge,
.status{
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:0 9px;
    border:1px solid rgba(255,107,0,.32);
    border-radius:999px;
    background:rgba(255,107,0,.08);
    color:#ff9a56;
    font-size:9px;
    font-weight:950;
    letter-spacing:.8px;
    text-transform:uppercase;
}

/* ---------- GRIDS ---------- */
.cards-grid,
.news-grid,
.operations-grid,
.events-grid,
.teams-grid,
.operators-grid,
.photographers-grid,
.supporters-grid,
.tools-grid,
.guide-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

/* ---------- OPERAÇÕES / EVENTOS ---------- */
.operation-card img,
.event-card img{
    height:230px;
}

.operation-meta,
.event-meta,
.card-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 14px;
    margin-top:12px;
    color:#9ba8b0;
    font-size:11px;
}

.operation-date,
.event-date{
    color:var(--gb-orange);
    font-weight:950;
}

/* ---------- NOTÍCIAS ---------- */
.news-card img{
    height:230px;
}

.news-card .category,
.news-card .category-badge{
    margin-bottom:11px;
}

.news-card h3{
    font-size:20px;
}

.news-card .date,
.news-date{
    margin-top:12px;
    color:#667781;
    font-size:10px;
}

/* ---------- EQUIPES ---------- */
/* Corrige especialmente o problema anterior de fotos/logos enormes. */
.team-card{
    min-width:0;
}

.team-card .team-image,
.team-card .team-logo,
.team-card > img{
    width:100%;
    height:190px!important;
    max-height:190px!important;
    object-fit:cover!important;
    object-position:center!important;
    background:#090d10;
}

.team-card .team-logo{
    object-fit:contain!important;
    padding:20px;
}

.team-page .team-card .team-image,
.teams-page .team-card .team-image,
#equipes .team-card .team-image{
    height:180px!important;
}

/* ---------- OPERADORES ---------- */
.operator-card img{
    height:260px;
    object-position:center top;
}

/* ---------- FOTÓGRAFOS ---------- */
.photographer-card{
    position:relative;
}

.photographer-card > a{
    display:block;
    color:inherit;
    text-decoration:none;
}

.photographer-card img,
.photographer-photo{
    height:240px!important;
    max-height:240px!important;
    object-fit:cover!important;
    object-position:center top!important;
}

.photographer-card .btn,
.photographer-card a.btn{
    position:relative;
    z-index:2;
}

/* ---------- GALERIA ---------- */
.gallery-grid,
.gallery-list,
.galeria-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}

.gallery-item,
.gallery-card,
.galeria-item{
    position:relative;
    min-width:0;
    overflow:hidden;
    border:1px solid var(--gb-line);
    border-radius:14px;
    background:#090d10;
}

.gallery-item img,
.gallery-card img,
.galeria-item img{
    display:block;
    width:100%;
    height:240px!important;
    object-fit:cover!important;
    transition:transform .28s ease,filter .28s ease;
}

.gallery-item:hover img,
.gallery-card:hover img,
.galeria-item:hover img{
    transform:scale(1.025);
    filter:contrast(1.05) saturate(1.04);
}

/* ---------- BANNERS / PROPAGANDAS ---------- */
/*
   IMPORTANTE:
   Aqui NÃO existe order, grid-area, position:absolute ou regra que mova
   banners de um slot para outro. Assim o posicionamento definido no ADM
   continua sendo respeitado.
*/
.banner-slot,
.ad-slot,
.publicidade-slot,
.propaganda-slot,
[data-banner-position],
[data-posicao-banner]{
    width:100%;
    max-width:100%;
    overflow:hidden;
    margin-inline:auto;
}

.banner-slot img,
.ad-slot img,
.publicidade-slot img,
.propaganda-slot img,
[data-banner-position] img,
[data-posicao-banner] img{
    display:block;
    width:100%;
    max-width:100%;
    height:auto;
    object-fit:contain;
    border-radius:12px;
}

/* sliders permanecem restritos ao container original */
.banner-slider,
.ad-slider,
.propaganda-slider{
    width:100%;
    overflow:hidden;
}

/* ---------- ARTIGOS / REPORTAGENS ---------- */
.article-page,
.news-detail,
.reportagem,
.post-detail,
.article-content{
    max-width:960px;
    margin-inline:auto;
}

.article-page h1,
.news-detail h1,
.reportagem h1,
.post-detail h1{
    font-size:clamp(34px,5vw,46px);
    line-height:1.08;
    letter-spacing:-1.2px;
}

.article-content,
.article-content p,
.news-detail .content,
.post-content{
    color:#c1cbd1;
    font-size:17px;
    line-height:1.78;
}

.article-content h2,
.news-detail .content h2,
.post-content h2{
    margin-top:42px;
    font-size:clamp(24px,3vw,30px);
    color:#fff;
}

.article-content img,
.news-detail .content img,
.post-content img{
    width:100%;
    max-height:620px;
    object-fit:cover;
    border-radius:16px;
    border:1px solid var(--gb-line);
}

/* ---------- FORMULÁRIOS / BUSCA / FILTRO ---------- */
input,
select,
textarea{
    width:100%;
    min-height:46px;
    padding:11px 13px;
    border:1px solid #26333c;
    border-radius:10px;
    background:#0c1216;
    color:#fff;
    font-family:inherit;
    outline:none;
}

textarea{
    min-height:130px;
}

input:focus,
select:focus,
textarea:focus{
    border-color:var(--gb-orange);
    box-shadow:0 0 0 3px rgba(255,107,0,.10);
}

.filters,
.search-bar,
.filter-bar,
.page-filters{
    display:grid;
    grid-template-columns:2fr repeat(3,minmax(150px,1fr));
    gap:10px;
    padding:14px;
    margin-bottom:22px;
    background:#0d1317;
    border:1px solid var(--gb-line);
    border-radius:14px;
}

/* ---------- TABELAS ---------- */
.table-wrap,
.table-responsive{
    overflow-x:auto;
    border:1px solid var(--gb-line);
    border-radius:14px;
    background:var(--gb-surface);
}

table{
    width:100%;
    border-collapse:collapse;
    color:#dbe3e7;
}

th{
    padding:13px 14px;
    background:#11191f;
    color:#81919b;
    font-size:10px;
    text-align:left;
    text-transform:uppercase;
    letter-spacing:.7px;
}

td{
    padding:13px 14px;
    border-top:1px solid var(--gb-line);
    font-size:12px;
}

/* ---------- MODAIS / LIGHTBOX ---------- */
.modal,
.lightbox,
.dialog,
.photo-modal{
    background:rgba(0,0,0,.82);
    backdrop-filter:blur(8px);
}

.modal-content,
.lightbox-content,
.dialog-content,
.photo-modal-content{
    background:#0c1216;
    border:1px solid var(--gb-line-2);
    border-radius:18px;
    box-shadow:0 30px 100px rgba(0,0,0,.65);
}

/* ---------- WHATSAPP ---------- */
.whatsapp-float,
.whatsapp-button,
.floating-whatsapp{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:900;
    max-width:calc(100vw - 36px);
}

/* ---------- RODAPÉ ---------- */
footer,
.site-footer,
.gb-footer{
    margin-top:64px;
    padding:52px 0 24px;
    background:#070a0c;
    border-top:1px solid var(--gb-line);
}

footer h3,
footer h4,
.site-footer h3,
.gb-footer h3{
    color:#fff;
}

footer a,
.site-footer a,
.gb-footer a{
    color:#9aa8b1;
    text-decoration:none;
}

footer a:hover,
.site-footer a:hover,
.gb-footer a:hover{
    color:var(--gb-orange);
}

/* ---------- RESPONSIVO ---------- */
@media(max-width:1100px){
    .hero .container,
    .home-hero .container,
    .site-hero .container,
    .gb-hero .container,
    .hero-section .container{
        grid-template-columns:1fr .86fr;
        gap:24px;
    }

    .cards-grid,
    .news-grid,
    .operations-grid,
    .events-grid,
    .teams-grid,
    .operators-grid,
    .photographers-grid,
    .supporters-grid,
    .tools-grid,
    .guide-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .gallery-grid,
    .gallery-list,
    .galeria-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .filters,
    .search-bar,
    .filter-bar,
    .page-filters{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:820px){
    .site-header .container,
    .main-header .container,
    .gb-header .container,
    header .container{
        min-height:66px;
    }

    .hero .container,
    .home-hero .container,
    .site-hero .container,
    .gb-hero .container,
    .hero-section .container{
        min-height:auto;
        grid-template-columns:1fr;
        padding-block:46px 24px;
    }

    .hero h1,
    .home-hero h1,
    .site-hero h1,
    .gb-hero h1,
    .hero-title{
        font-size:clamp(42px,12vw,64px);
        letter-spacing:-2px;
    }

    .hero-media,
    .hero-image,
    .gb-hero-media{
        min-height:320px;
        max-height:440px;
    }

    .gb-hero-operator{
        position:relative;
        width:100%;
        max-height:440px;
    }

    .section,
    .site-section,
    .gb-section{
        padding:54px 0;
    }

    .section-header,
    .section-head,
    .gb-section-head{
        align-items:flex-start;
        flex-direction:column;
    }

    .gallery-grid,
    .gallery-list,
    .galeria-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:640px){
    .container,
    .site-container,
    .gb-container,
    .page-container,
    main > .wrapper,
    section > .wrapper{
        width:min(calc(100% - 24px),var(--gb-max));
    }

    body{
        font-size:14px;
    }

    .hero .container,
    .home-hero .container,
    .site-hero .container,
    .gb-hero .container,
    .hero-section .container{
        gap:18px;
        padding-top:36px;
    }

    .hero h1,
    .home-hero h1,
    .site-hero h1,
    .gb-hero h1,
    .hero-title{
        font-size:clamp(36px,12.5vw,52px);
        line-height:1;
    }

    .hero p,
    .home-hero p,
    .site-hero p,
    .gb-hero p,
    .hero-subtitle{
        font-size:16px;
        line-height:1.55;
    }

    .hero-actions,
    .gb-hero-actions{
        display:grid;
        grid-template-columns:1fr;
    }

    .hero-actions .btn,
    .gb-hero-actions .btn{
        width:100%;
    }

    .cards-grid,
    .news-grid,
    .operations-grid,
    .events-grid,
    .teams-grid,
    .operators-grid,
    .photographers-grid,
    .supporters-grid,
    .tools-grid,
    .guide-grid,
    .gallery-grid,
    .gallery-list,
    .galeria-grid{
        grid-template-columns:1fr!important;
    }

    .operation-card img,
    .event-card img,
    .news-card img{
        height:210px;
    }

    .team-card .team-image,
    .team-card .team-logo,
    .team-card > img{
        height:170px!important;
        max-height:170px!important;
    }

    .operator-card img,
    .photographer-card img,
    .photographer-photo{
        height:220px!important;
    }

    .gallery-item img,
    .gallery-card img,
    .galeria-item img{
        height:220px!important;
    }

    .filters,
    .search-bar,
    .filter-bar,
    .page-filters{
        grid-template-columns:1fr;
    }

    .article-content,
    .article-content p,
    .news-detail .content,
    .post-content{
        font-size:16px;
    }

    .whatsapp-float,
    .whatsapp-button,
    .floating-whatsapp{
        right:12px;
        bottom:12px;
    }
}

@media(max-width:420px){
    .hero h1,
    .home-hero h1,
    .site-hero h1,
    .gb-hero h1,
    .hero-title{
        font-size:36px;
    }

    .section-header h2,
    .section-head h2,
    .gb-section-head h2,
    section > h2{
        font-size:29px;
    }

    .team-card .team-image,
    .team-card .team-logo,
    .team-card > img{
        height:155px!important;
        max-height:155px!important;
    }
}

/* ---------- ACESSIBILIDADE ---------- */
@media(prefers-reduced-motion:reduce){
    *,
    *::before,
    *::after{
        scroll-behavior:auto!important;
        transition:none!important;
        animation:none!important;
    }
}

:focus-visible{
    outline:2px solid var(--gb-orange);
    outline-offset:3px;
}
