/*
 * Portal 2026 do Guia Taubaté: sistema visual de TODAS as páginas do portal
 *
 * Visual da SpotWay (spotway.com.br/sp/{cidade}) com a cor do Guia: rótulo com traço,
 * títulos em Inter (Sora até 28/09/2026), cards brancos com sombra suave, fundos alternados e pontilhado.
 * Tudo dentro de .gt-portal (o <main> do templates/_portal2026). A home usa as mesmas classes. Os cards que chegam das APIs (/api/imoveis etc.) continuam com
 * o markup antigo, compartilhado com outras páginas; aqui eles só ganham o visual novo.
 *
 * Medidas em px: o layout.css fixa html{font-size:15px}.
 */

.gt-portal {
    --gh-marca: #14608e;
    --gh-marca-hover: #0f4c70;
    --gh-marca-700: #0f4c70;
    --gh-marca-500: #2a7cb0;
    --gh-marca-200: #b6d3e6;
    --gh-marca-100: #d9e9f3;
    --gh-marca-50: #eef5fa;
    --gh-marca-anel: rgba(20, 96, 142, .12);

    --gh-texto: #0a0a0a;
    --gh-texto-suave: #64707a;
    --gh-borda: #e1e5e8;
    --gh-fundo: #ffffff;
    --gh-fundo-secundario: #f5f7f9;

    --gh-raio: 12px;
    --gh-raio-controle: 100px;
    --gh-sombra: 0 6px 24px -10px rgba(16, 32, 48, .18), 0 2px 8px -4px rgba(16, 32, 48, .08);
    --gh-sombra-alta: 0 16px 32px -14px rgba(16, 32, 48, .24), 0 4px 10px -4px rgba(16, 32, 48, .1);

    --gh-fonte: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --gh-fonte-titulo: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

    background: var(--gh-fundo);
    color: var(--gh-texto);
    font-family: var(--gh-fonte);
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

.gt-portal *,
.gt-portal *::before,
.gt-portal *::after {
    box-sizing: border-box;
}

.gt-portal h1,
.gt-portal h2,
.gt-portal h3,
.gt-portal p {
    margin: 0;
}

.gt-portal input,
.gt-portal button,
.gt-portal select {
    font-family: var(--gh-fonte);
}

.gt-portal a,
.gt-portal a:hover,
.gt-portal a:focus {
    text-decoration: none;
}

.gt-portal svg {
    display: block;
    flex-shrink: 0;
}

.gh-marca {
    color: var(--gh-marca);
}

.gh-linhas-1,
.gh-linhas-2,
.gh-linhas-3 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.gh-linhas-1 { -webkit-line-clamp: 1; }
.gh-linhas-2 { -webkit-line-clamp: 2; }
.gh-linhas-3 { -webkit-line-clamp: 3; }

/* ---- dobras ----------------------------------------------------------- */

.gh-secao {
    padding: 56px 0;
}

.gh-secao-primeira {
    padding-top: 40px;
}

/* fundo alternado, como a SpotWay: branco, cinza claro (com pontilhado a cada outra) */
.gh-secoes > .gh-secao:nth-of-type(even) {
    background-color: var(--gh-fundo-secundario);
}

.gh-secoes > .gh-secao:nth-of-type(4n+2) {
    background-image: radial-gradient(rgba(20, 96, 142, .16) 1px, transparent 1px);
    background-size: 22px 22px;
}

/* "Encontre negócios" com fundo branco, fora do alternado (sem cinza e sem pontilhado) */
.gh-secoes > .gh-secao.gh-secao-empresas {
    background: #fff;
}

/* ---- cabeçalho da dobra ----------------------------------------------- */

.gh-cabecalho {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px 24px;
    margin-bottom: 24px;
}

.gh-cabecalho-texto {
    flex: 1 1 320px;
    min-width: 0;
}

.gh-rotulo-secao {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px !important;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--gh-marca-700);
}

.gh-rotulo-linha {
    display: inline-block;
    width: 32px;
    height: 1px;
    background: var(--gh-marca-500);
}

.gt-portal .gh-titulo {
    font-family: var(--gh-fonte-titulo);
    font-size: 24px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -.025em;
    color: var(--gh-texto);
}

.gt-portal h1.gh-titulo {
    font-size: 28px;
    font-weight: 700;
}

.gh-subtitulo {
    max-width: 36rem;
    margin-top: 10px !important;
    font-size: 16px;
    color: var(--gh-texto-suave);
}

.gh-cabecalho-acoes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

/* ---- botões ----------------------------------------------------------- */

.gt-portal .gh-botao-contorno,
.gt-portal .gh-botao-marca {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio-controle);
    background: var(--gh-fundo);
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    color: var(--gh-texto);
    white-space: nowrap;
    transition: border-color .15s, color .15s, background-color .15s;
}

.gt-portal .gh-botao-contorno:hover,
.gt-portal .gh-botao-contorno:focus {
    border-color: rgba(20, 96, 142, .5);
    color: var(--gh-marca);
}

.gt-portal .gh-botao-marca {
    border-color: var(--gh-marca);
    background: var(--gh-marca);
    color: #fff;
}

.gt-portal .gh-botao-marca:hover,
.gt-portal .gh-botao-marca:focus {
    border-color: var(--gh-marca-hover);
    background: var(--gh-marca-hover);
    color: #fff;
}

/* ---- busca em pílula -------------------------------------------------- */

.gh-busca {
    flex: 1 1 260px;
    min-width: 0;
    margin: 0;
}

.gh-busca-campo {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 4px 4px 16px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio-controle);
    background: var(--gh-fundo);
    transition: border-color .15s, box-shadow .15s;
}

.gh-busca-campo:focus-within {
    border-color: #1f7fb8;
    box-shadow: 0 0 0 4px var(--gh-marca-anel);
}

.gh-busca-lupa {
    width: 16px;
    height: 16px;
    color: var(--gh-texto-suave);
}

.gt-portal .gh-busca-input {
    flex: 1 1 auto;
    min-width: 0;
    height: 32px;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    box-shadow: none;
    font-size: 14px;
    color: var(--gh-texto);
}

.gt-portal .gh-busca-input::placeholder {
    color: var(--gh-texto-suave);
    opacity: 1;
}

.gh-busca-botao {
    display: inline-flex;
    flex-shrink: 0;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 14px;
    border: 0;
    border-radius: var(--gh-raio-controle);
    background: var(--gh-marca);
    font-size: 12px;
    font-weight: 600;
    color: #fff;
    cursor: pointer;
    transition: background-color .15s;
}

.gh-busca-botao:hover {
    background: var(--gh-marca-hover);
}

.gh-busca-botao svg {
    width: 16px;
    height: 16px;
}

/* ---- cards ------------------------------------------------------------ */

.gt-portal .gh-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border-radius: var(--gh-raio);
    background: var(--gh-fundo);
    box-shadow: var(--gh-sombra);
    color: var(--gh-texto);
    transition: transform .2s ease, box-shadow .2s ease;
}

.gt-portal .gh-card:hover,
.gt-portal .gh-card:focus-visible {
    transform: translateY(-4px);
    box-shadow: var(--gh-sombra-alta);
    color: var(--gh-texto);
}

.gh-card-imagem {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--gh-fundo-secundario);
}

.gh-card-imagem > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.gh-card:hover .gh-card-imagem > img {
    transform: scale(1.05);
}

.gh-card-imagem-listrada {
    background-image: repeating-linear-gradient(135deg, rgba(20, 96, 142, .14) 0 1.5px, transparent 1.5px 14px);
}

.gh-card-corpo {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 18px 20px 20px;
}

.gh-rotulo {
    display: block;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--gh-marca);
}

.gt-portal .gh-card-titulo {
    font-family: var(--gh-fonte-titulo);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.375;
    letter-spacing: -.01em;
    color: var(--gh-texto);
    transition: color .15s;
}

.gh-card:hover .gh-card-titulo {
    color: var(--gh-marca);
}

.gt-portal .gh-card-titulo-grande {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.025em;
}

.gh-card-texto {
    display: block;
    margin: 14px 0 20px;
    font-size: 15px;
    color: var(--gh-texto-suave);
}

/* descrição de uma linha abaixo do título (pontos turísticos) */
.gh-card-resumo {
    display: block;
    overflow: hidden;
    margin-top: 6px;
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--gh-texto-suave);
}

.gh-card-rodape {
    margin-top: auto;
    padding-top: 14px;
}

.gh-card-rodape-linha {
    flex-wrap: wrap;
    padding-top: 0;
}

/* a linha fica num pseudo-elemento para sempre ter espaço acima dela */
.gh-card-rodape-linha::before {
    content: "";
    flex: 0 0 100%;
    height: 1px;
    margin: 14px 0 6px;
    background: var(--gh-borda);
}

.gh-meta {
    display: block;
    font-size: 12px;
    color: var(--gh-texto-suave);
}

.gh-meta-clara {
    color: rgba(255, 255, 255, .82);
}

.gh-selo {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    padding: 4px 10px;
    border-radius: var(--gh-raio-controle);
    background: var(--gh-marca);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #fff;
}

.gh-selo-imagem {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 1;
    background: rgba(255, 255, 255, .92);
    color: var(--gh-marca-700);
}

.gh-selo-marca {
    background: var(--gh-marca);
    color: #fff;
    text-transform: none;
    letter-spacing: 0;
}

.gh-card-empresa {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    font-size: 12px;
    font-weight: 500;
    color: var(--gh-texto-suave);
}

.gh-card-empresa img {
    flex-shrink: 0;
    width: 40px;
    height: 30px;
    padding: 2px;
    border: 1px solid var(--gh-borda);
    border-radius: 6px;
    background: #fff;
    object-fit: contain;
}

.gh-card-infos {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.gh-info {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    font-size: 13px;
    color: var(--gh-texto-suave);
}

.gh-info svg {
    width: 14px;
    height: 14px;
}

.gh-card-logo-flutuante {
    position: absolute;
    right: 12px;
    bottom: 12px;
    z-index: 1;
    display: flex;
    width: 60px;
    height: 44px;
    padding: 4px;
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--gh-sombra);
}

.gh-card-logo-flutuante img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* ---- grades ----------------------------------------------------------- */

.gh-grade {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
}

.gh-grade-apos-destaque {
    margin-top: 24px;
}

/* no celular, cards viram trilho com rolagem lateral (como os carrosséis da SpotWay) */
@media (max-width: 639px) {
    .gh-rolagem-mobile {
        display: flex;
        gap: 12px;
        margin: 0 -15px;
        padding: 4px 15px 18px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-padding: 0 15px; /* o encaixe respeita a margem do container (sem isso o 1º card cola na borda) */
        scrollbar-width: none;
    }

    .gh-rolagem-mobile::-webkit-scrollbar {
        display: none;
    }

    .gh-rolagem-mobile > * {
        flex: 0 0 78%;
        min-width: 0; /* texto de uma linha (nowrap) não pode alargar o card */
        scroll-snap-align: start;
    }

    /* o height:100% do .gh-card não resolve no carrossel e impede o stretch:
       com auto, todos os cards ficam da altura do maior (como na grade do desktop) */
    .gt-portal .gh-rolagem-mobile > .gh-card {
        height: auto;
    }

    /* pontos turísticos: sem o destaque em cima, ele vira o 1º card do carrossel */
    .gt-portal .gh-card.gh-so-desktop {
        display: none;
    }

    .gh-so-desktop + .gh-grade-apos-destaque {
        margin-top: 0;
    }

    .gt-portal .gh-rolagem-mobile > .gh-card:hover {
        transform: none;
    }
}

@media (min-width: 640px) {
    .gt-portal .gh-card.gh-so-mobile {
        display: none;
    }
}

/* ---- dobra 1: últimas notícias ---------------------------------------- */

.gh-noticias {
    display: grid;
    gap: 20px;
}

.gt-portal .gh-noticia-destaque {
    position: relative;
    display: block;
    min-height: 320px;
    overflow: hidden;
    border-radius: var(--gh-raio);
    background: #1b2a33;
    box-shadow: var(--gh-sombra);
    color: #fff;
}

.gh-noticia-destaque > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}

.gh-noticia-destaque:hover > img {
    transform: scale(1.04);
}

.gh-noticia-destaque-sombra {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(6, 16, 24, .9) 0%, rgba(6, 16, 24, .45) 45%, rgba(6, 16, 24, 0) 75%);
}

.gh-noticia-destaque-texto {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 22px;
}

.gh-noticia-destaque-titulo {
    display: block;
    font-family: var(--gh-fonte-titulo);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.02em;
    color: #fff;
}

.gh-noticias-lista {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

.gh-card-noticia .gh-card-corpo {
    padding: 14px 16px 16px;
}

.gt-portal .gh-card-noticia .gh-card-titulo {
    font-size: 15px;
}

.gh-card-noticia .gh-meta {
    margin-top: auto;
    padding-top: 8px;
}

@media (max-width: 639px) {
    .gt-portal .gh-card-noticia {
        flex-direction: row;
    }

    .gh-card-noticia .gh-card-imagem {
        flex: 0 0 38%;
        aspect-ratio: auto;
        min-height: 104px;
    }

    .gh-card-noticia .gh-rotulo {
        margin-bottom: 4px;
        font-size: 11px;
    }
}

/* ---- dobra 2: encontre negócios (painel) ------------------------------ */

.gh-painel {
    position: relative;
    overflow: hidden;
    padding: 24px 20px;
    border: 1px solid var(--gh-marca-100);
    border-radius: var(--gh-raio);
    background: linear-gradient(135deg, var(--gh-marca-50) 0%, #fff 45%, #fff 100%);
    box-shadow: var(--gh-sombra);
}

/* celular: painel de ponta a ponta, sem as margens laterais do container */
@media (max-width: 767px) {
    .gh-painel {
        margin-right: calc(50% - 50vw);
        margin-left: calc(50% - 50vw);
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }
}

/* celular: cards de empresa colados nas bordas. O .mobile-no-margin (layout.css) puxa só
   1rem (16px), mas o painel tem 20px de padding lateral nessa largura. */
@media (max-width: 576px) {
    .gt-portal .gh-painel .card-empresa.mobile-no-margin {
        margin-right: -20px !important;
        margin-left: -20px !important;
    }
}

.gh-painel > *:not(.gh-painel-deco) {
    position: relative;
}

.gh-painel-deco {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.gh-deco-mancha,
.gh-deco-anel {
    position: absolute;
    border-radius: 50%;
}

.gh-deco-mancha {
    filter: blur(48px);
}

.gh-deco-mancha-1 {
    top: -80px;
    right: -48px;
    width: 240px;
    height: 240px;
    background: rgba(20, 96, 142, .16);
}

.gh-deco-mancha-2 {
    bottom: -96px;
    left: 25%;
    width: 208px;
    height: 208px;
    background: rgba(245, 185, 70, .2);
}

.gh-deco-anel {
    border: 1px solid rgba(20, 96, 142, .18);
}

.gh-deco-anel-1 { top: 24px; right: 40px; width: 112px; height: 112px; }
.gh-deco-anel-2 { top: 80px; right: 112px; width: 64px; height: 64px; }
.gh-deco-anel-3 { top: -32px; left: -32px; width: 96px; height: 96px; }

.gh-painel-topo {
    display: grid;
    gap: 24px;
    margin-bottom: 24px;
}

.gh-painel-busca-rotulo {
    margin-bottom: 8px !important;
    font-size: 14px;
    font-weight: 600;
}

.gh-painel-segmentos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    margin-bottom: 24px;
    padding: 14px 16px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: rgba(255, 255, 255, .75);
}

.gh-painel-segmentos-rotulo {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gh-texto-suave);
    white-space: nowrap;
}

.gh-painel-segmentos .segmentos-alfabeto {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

@media (min-width: 768px) {
    .gt-portal .gh-painel-segmentos .segmentos-alfabeto.d-md-block {
        display: flex !important;
        flex-wrap: wrap;
        gap: 6px;
    }
}

.gt-portal .gh-painel-segmentos .segmentos-alfabeto .item {
    float: none;
    width: auto;
    margin: 0;
    padding: 0;
}

.gt-portal .gh-painel-segmentos .segmentos-alfabeto-swiper .item {
    width: auto;
}

.gt-portal .gh-painel-segmentos .segmentos-alfabeto .item a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--gh-borda);
    border-radius: 50%;
    background: #fff;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    color: var(--gh-texto);
    transition: background-color .15s, color .15s, border-color .15s;
}

.gt-portal .gh-painel-segmentos .segmentos-alfabeto .item a:hover {
    border-color: var(--gh-marca);
    background: var(--gh-marca);
    color: #fff;
}

.gt-portal .gh-painel-segmentos .segmentos-alfabeto .item a.disabled {
    opacity: .35;
    pointer-events: none;
}

.gh-painel-rodape {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--gh-borda);
}

.gh-painel-rodape-texto {
    font-size: 14px;
    color: var(--gh-texto-suave);
}

.gh-painel-rodape-botoes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* lista de empresas (vem da /api/homeempresas com o card antigo) */
.gt-portal .gh-lista-empresas > .row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    margin: 0;
}

.gt-portal .gh-lista-empresas > .row > [class*="col"] {
    flex: none;
    width: auto;
    max-width: none;
    margin: 0 !important;
    padding: 0;
}

.gt-portal .card-empresa {
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
    box-shadow: var(--gh-sombra) !important;
    transition: border-color .15s;
}

.gt-portal .card-empresa:hover {
    border-color: rgba(20, 96, 142, .4);
}

.gt-portal .card-empresa .card-body {
    color: var(--gh-texto);
}

.gt-portal .card-empresa .logo {
    border: 3px solid rgba(255, 255, 255, .75);
    border-radius: var(--gh-raio);
    background: #fff;
    box-shadow: var(--gh-sombra);
}

.gt-portal .card-empresa .title h3 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    font-family: var(--gh-fonte-titulo);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -.025em;
    color: var(--gh-texto);
    transition: color .15s;
}

.gt-portal .card-empresa a.card-body:hover .title h3 {
    color: var(--gh-marca);
}

.gt-portal .card-empresa .title span {
    font-size: 14px;
    font-weight: 500;
    color: var(--gh-texto-suave) !important;
}

.gt-portal .card-empresa .description p {
    font-size: 14px;
    color: var(--gh-texto-suave);
}

.gt-portal .card-button-contato button .contato-nome {
    font-family: var(--gh-fonte);
    font-size: 12px;
    color: var(--gh-texto);
}

/* texto do botão adicional é livre no painel ("viva essa experiência de atendimento completo"):
   uma linha só, com reticências, para não virar coluna de 4 linhas no card (25/09/2026) */
.gt-portal .card-button-contato button .contato-nome {
    display: block;
    max-width: 88px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* ---- listas das APIs (delivery, imóveis, veículos, produtos, cursos) -- */

.gh-grade-api {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.gt-portal .gh-grade-api > [class*="col"],
.gt-portal .gh-grade-api > .col-item {
    flex: none;
    width: auto;
    max-width: none;
    margin: 0 !important;
    padding: 0;
}

.gh-grade-api > .loading {
    display: none;
}

/* card de catálogo (card_imovel, card_veiculo, card_produto, card_curso) */
.gt-portal .card-catalogo {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0 !important;
    overflow: hidden;
    border: 0;
    border-radius: var(--gh-raio) !important;
    background: #fff;
    box-shadow: var(--gh-sombra) !important;
    color: var(--gh-texto);
    transition: transform .2s ease, box-shadow .2s ease;
}

.gt-portal a.card-catalogo:hover {
    transform: translateY(-4px);
    box-shadow: var(--gh-sombra-alta) !important;
    color: var(--gh-texto);
}

.gt-portal .card-catalogo .imagem {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--gh-fundo-secundario);
}

.gt-portal .card-catalogo .imagem:has(img[height="280"]) {
    aspect-ratio: 1 / 1;
}

.gt-portal .card-catalogo .imagem img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100% !important;
    border: 0 !important;
    border-radius: 0;
    object-fit: cover;
    transition: transform .5s ease;
}

.gt-portal a.card-catalogo:hover .imagem img {
    transform: scale(1.05);
}

.gt-portal .card-catalogo .imagem .badge {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 1;
    padding: 4px 10px;
    border-radius: var(--gh-raio-controle);
    background: rgba(255, 255, 255, .92) !important;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--gh-marca-700) !important;
}

.gt-portal .card-catalogo .card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 14px 16px 16px !important;
}

/* ordem da SpotWay: empresa, título, preço, detalhes */
.gt-portal .card-catalogo .logo-empresa {
    position: static;
    order: 1;
    display: flex;
    align-items: center;
    width: auto;
    margin-bottom: 10px;
    font-size: 12px;
    font-weight: 500;
    color: var(--gh-texto-suave);
}

.gt-portal .card-catalogo .logo-empresa img {
    flex-shrink: 0;
    width: 36px !important;
    height: 27px;
    padding: 2px;
    border: 1px solid var(--gh-borda);
    border-radius: 6px;
    background: #fff;
    box-shadow: none !important;
    object-fit: contain;
}

.gt-portal .card-catalogo .card-body > h3 {
    order: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    margin: 0 0 8px !important;
    font-family: var(--gh-fonte-titulo);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.375;
    text-transform: none;
    color: var(--gh-texto);
    transition: color .15s;
}

.gt-portal .card-catalogo .card-body > h3 strong {
    font-weight: 600;
}

.gt-portal a.card-catalogo:hover .card-body > h3 {
    color: var(--gh-marca);
}

.gt-portal .card-catalogo .card-body > .mt-4 {
    order: 3;
    margin: 0 0 6px !important;
}

.gt-portal .card-catalogo .card-body > small.info {
    order: 4;
}

.gt-portal .card-catalogo .card-body > small.info:last-child {
    margin-top: auto;
}

.gt-portal .card-catalogo .info {
    display: block;
    font-size: 12px;
    color: var(--gh-texto-suave) !important;
}

.gt-portal .card-catalogo .preco-por,
.gt-portal .card-catalogo .valor-por {
    margin-bottom: 2px;
    font-family: var(--gh-fonte-titulo);
    font-size: 14px;
    font-weight: 600;
    color: var(--gh-texto) !important;
}

.gt-portal .card-catalogo .preco-por strong,
.gt-portal .card-catalogo .valor-por strong {
    font-size: 17px;
    font-weight: 700;
    color: var(--gh-texto) !important;
}

.gt-portal .card-catalogo .preco-por b {
    font-size: 14px;
    color: var(--gh-marca);
}

.gt-portal .card-catalogo .preco-de,
.gt-portal .card-catalogo .valor-de {
    font-size: 12px;
    color: var(--gh-texto-suave);
}

.gt-portal .card-catalogo .valor-por .desc {
    margin-left: 6px;
    padding: 2px 8px;
    border-radius: var(--gh-raio-controle);
    background: #e7f6ef;
    font-family: var(--gh-fonte);
    font-size: 11px;
    font-weight: 700;
    color: #15803d;
}

.gt-portal .card-catalogo .parcelamento {
    font-size: 12px;
}

/* ---- vitrine: imóveis, veículos, produtos e serviços, cursos (pages2026/vitrine/_card) --
   Formato da SpotWay. Celular: carrossel (~2,3 cards à vista). Computador: 5 colunas.
   .gh-vitrine-grade (lista com filtro e paginação): grade em todas as larguras. */

.gh-vitrine {
    display: flex;
    gap: 16px;
    margin: 0 -15px;
    padding: 2px 15px 8px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding: 0 15px;
    scrollbar-width: none;
}

.gh-vitrine::-webkit-scrollbar {
    display: none;
}

/* o wrapper das APIs ainda vem com classes de coluna do Bootstrap */
.gt-portal .gh-vitrine > [class*="col"],
.gt-portal .gh-vitrine > .col-item {
    flex: 0 0 64%; /* ~1,5 card à vista: o preço de 7 dígitos cabe numa linha */
    width: auto;
    min-width: 0; /* sem isso, nome de empresa longo (nowrap) alarga o card */
    max-width: none;
    margin: 0 !important;
    padding: 0;
    scroll-snap-align: start;
}

/* comida & delivery: cards menores no celular, na proporção dos 6 por linha do computador */
.gt-portal .gh-vitrine-6 > .col-item {
    flex-basis: 38%; /* ~2,5 cards à vista */
}

.gh-vitrine-6 .gh-vc-titulo {
    font-size: 14px;
}

.gh-vitrine-6 .gh-vc-preco:not(.gh-vc-preco-consulta) {
    font-size: 16px;
}

.gh-vitrine .gh-esqueleto-catalogo {
    height: auto;
    aspect-ratio: 1 / 1.6;
}

.gh-vitrine-grade {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 16px;
    margin: 0;
    padding: 0;
    overflow: visible;
}

.gt-portal .gh-vitrine-grade > .col-item {
    flex: none;
}

.gt-portal .gh-vc {
    display: flex;
    flex-direction: column;
    color: var(--gh-texto);
    text-decoration: none;
}

.gh-vc-foto {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    /* contorno de 1px: foto de produto com fundo branco some no fundo da página sem ele */
    border: 1px solid rgba(16, 32, 48, .09);
    border-radius: 14px;
    background: var(--gh-fundo-secundario);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.gt-portal a.gh-vc:hover .gh-vc-foto {
    border-color: rgba(16, 32, 48, .16);
    box-shadow: 0 6px 18px -12px rgba(16, 32, 48, .45);
}

.gh-vc-foto img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    color: transparent;
    font-size: 0;
    transition: transform .4s ease;
}

.gh-vc-selo {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 3px 10px;
    border-radius: var(--gh-raio-controle);
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 1px 3px rgba(16, 32, 48, .12);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--gh-marca);
}

.gh-vc-anunciante {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    margin-top: 10px;
    font-size: 13px;
    line-height: 24px;
    color: var(--gh-texto-suave);
}

.gh-vc-anunciante img {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border: 1px solid var(--gh-borda);
    border-radius: 6px;
    object-fit: contain;
    background: #fff;
}

.gh-vc-anunciante span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gh-vc-titulo {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    margin-top: 8px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--gh-texto);
    transition: color .15s;
}

.gh-vc-preco {
    margin-top: 6px;
    font-family: var(--gh-fonte-titulo);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--gh-marca);
}

.gh-vc-preco small {
    display: block;
    font-family: var(--gh-fonte);
    font-size: 12px;
    font-weight: 500;
    color: var(--gh-texto-suave);
}

.gh-vc-preco-consulta {
    font-family: var(--gh-fonte);
    font-size: 14px;
    font-weight: 600;
    color: var(--gh-marca);
}

.gt-portal a.gh-vc:hover .gh-vc-titulo {
    color: var(--gh-marca);
}

.gt-portal a.gh-vc:hover .gh-vc-foto img {
    transform: scale(1.04);
}

.gt-portal a.gh-vc:focus-visible {
    outline: none;
}

.gt-portal a.gh-vc:focus-visible .gh-vc-foto {
    box-shadow: 0 0 0 3px var(--gh-marca-200);
}

@media (min-width: 576px) {
    .gt-portal .gh-vitrine > [class*="col"],
    .gt-portal .gh-vitrine > .col-item {
        flex-basis: 40%;
    }

    .gt-portal .gh-vitrine-6 > .col-item {
        flex-basis: 23%;
    }
}

@media (min-width: 768px) {
    .gt-portal .gh-vitrine > [class*="col"],
    .gt-portal .gh-vitrine > .col-item {
        flex-basis: 22%;
    }

    .gt-portal .gh-vitrine-6 > .col-item {
        flex-basis: 18%;
    }

    .gh-vitrine-grade {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .gh-vitrine {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 32px 20px;
        margin: 0;
        padding: 0;
        overflow: visible;
    }

    /* comida & delivery na home: 6 por linha */
    .gh-vitrine-6 {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 28px 16px;
    }

    .gh-vitrine-grade {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .gh-vitrine-grade {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* card do delivery (card_delivery) */
.gt-portal .delivery-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    border-radius: var(--gh-raio);
    background: #fff;
    box-shadow: var(--gh-sombra);
    color: var(--gh-texto);
    transition: transform .2s ease, box-shadow .2s ease;
}

.gt-portal .delivery-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--gh-sombra-alta);
    color: var(--gh-texto);
}

.gt-portal .delivery-card .imagem {
    position: relative;
    height: auto;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: var(--gh-fundo-secundario);
}

.gt-portal .delivery-card .imagem img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 0;
    object-fit: cover;
}

.gt-portal .delivery-card .desc {
    flex: 1 1 auto;
    padding: 26px 12px 14px;
}

.gt-portal .delivery-card .empresa-logo {
    top: -18px;
    left: 12px;
    padding: 2px;
    border: 1px solid var(--gh-borda);
    border-radius: 8px !important;
    background: #fff;
    object-fit: contain;
}

.gt-portal .delivery-card .desc h3 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    margin: 0 0 4px;
    padding-top: 0;
    font-family: var(--gh-fonte-titulo);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
}

.gt-portal .delivery-card .valor_por {
    font-family: var(--gh-fonte-titulo);
    font-size: 15px;
    font-weight: 700;
    color: var(--gh-texto) !important;
}

/* ---- esqueleto de carregamento --------------------------------------- */

.gh-esqueleto {
    border-radius: var(--gh-raio);
    background: linear-gradient(90deg, #e9eef2 25%, #f4f7f9 37%, #e9eef2 63%);
    background-size: 400% 100%;
    animation: gh-brilho 1.4s ease infinite;
}

.gh-esqueleto-empresa { height: 215px; }
.gh-esqueleto-catalogo { height: 340px; }
.gh-esqueleto-delivery { height: 180px; }

@keyframes gh-brilho {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

/* ---- carrosséis (categorias do delivery, cinema) ---------------------- */

.gh-carrossel {
    position: relative;
}

.gh-carrossel-trilho {
    display: flex;
    gap: 10px;
    padding: 4px 2px 12px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-user-select: none;
    user-select: none;
    cursor: grab;
}

.gh-carrossel-trilho::-webkit-scrollbar {
    display: none;
}

.gh-carrossel-trilho.gh-arrastando {
    cursor: grabbing;
}

.gh-carrossel-seta {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid var(--gh-borda);
    border-radius: 50%;
    background: #fff;
    box-shadow: var(--gh-sombra);
    color: var(--gh-texto-suave);
    transform: translateY(-50%);
    cursor: pointer;
    transition: color .15s;
}

.gh-carrossel-seta:hover {
    color: var(--gh-marca);
}

.gh-carrossel-seta svg {
    width: 20px;
    height: 20px;
}

.gh-carrossel-seta[hidden] {
    display: none;
}

.gh-carrossel-anterior { left: -14px; }
.gh-carrossel-proxima { right: -14px; }

/* no celular e no tablet as setas continuam, só menores e mais para dentro (22/09) */
@media (max-width: 1023px) {
    .gh-carrossel-seta {
        width: 32px;
        height: 32px;
        box-shadow: 0 2px 8px -2px rgba(16, 32, 48, .25);
    }

    .gh-carrossel-seta svg {
        width: 18px;
        height: 18px;
    }

    .gh-carrossel-anterior { left: -6px; }
    .gh-carrossel-proxima { right: -6px; }
}

.gh-categorias-delivery {
    margin-bottom: 20px;
}

.gt-portal .gh-chip-categoria {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 92px;
    padding: 12px 6px 10px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.25;
    text-align: center;
    color: var(--gh-texto);
    transition: border-color .15s, background-color .15s, color .15s;
}

.gt-portal .gh-chip-categoria:hover {
    border-color: rgba(20, 96, 142, .5);
    background: var(--gh-marca-50);
    color: var(--gh-marca-700);
}

.gh-chip-categoria-imagem {
    display: block;
    width: 56px;
    height: 56px;
    overflow: hidden;
    border-radius: 50%;
    background: var(--gh-fundo-secundario);
}

.gh-chip-categoria-imagem img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gh-chip-categoria-nome {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.gh-carrossel-cartazes .gh-carrossel-trilho {
    gap: 16px;
}

.gt-portal .gh-cartaz {
    display: flex;
    flex: 0 0 42%;
    flex-direction: column;
    gap: 10px;
    color: var(--gh-texto);
}

.gh-cartaz-imagem {
    position: relative;
    display: block;
    aspect-ratio: 218 / 322;
    overflow: hidden;
    border-radius: var(--gh-raio);
    background: var(--gh-fundo-secundario);
    box-shadow: var(--gh-sombra);
}

.gh-cartaz-imagem img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.gh-cartaz:hover .gh-cartaz-imagem img {
    transform: scale(1.05);
}

.gh-cartaz-titulo {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-family: var(--gh-fonte-titulo);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    transition: color .15s;
}

.gt-portal .gh-cartaz:hover .gh-cartaz-titulo {
    color: var(--gh-marca);
}

.gh-indicacao {
    flex: 0 0 8px;
    height: 8px;
    margin-top: 6px;
    border-radius: 50%;
    background: #c7ced4;
}

/* ---- card horizontal (ponto turístico em destaque) -------------------- */

.gh-card-horizontal .gh-card-imagem {
    min-height: 220px;
}

.gh-card-horizontal .gh-card-corpo {
    padding: 24px;
}

/* imagem que não carregou: esconde o texto alternativo em vez de pintá-lo sobre o card */
.gh-card-imagem > img,
.gh-noticia-destaque > img,
.gh-cartaz-imagem img,
.gt-portal .card-catalogo .imagem img,
.gt-portal .delivery-card .imagem img {
    color: transparent;
    font-size: 0;
}

/* ---- responsivo ------------------------------------------------------- */

@media (min-width: 576px) {
    .gh-cartaz {
        flex-basis: 30%;
    }
}

@media (min-width: 640px) {
    .gh-grade-3,
    .gh-grade-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gh-noticias-lista {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gh-grade-api {
        gap: 20px;
    }

    .gh-painel {
        padding: 32px;
    }

    .gh-card-horizontal .gh-card-corpo {
        padding: 32px;
    }

    .gt-portal .gh-card-titulo-grande {
        font-size: 30px;
    }
}

@media (min-width: 768px) {
    .gh-secao {
        padding: 80px 0;
    }

    .gh-secao-primeira {
        padding-top: 48px;
    }

    .gh-cabecalho {
        margin-bottom: 32px;
    }

    .gt-portal .gh-titulo {
        font-size: 30px;
    }

    .gt-portal h1.gh-titulo {
        font-size: 36px;
    }

    .gh-busca {
        flex: 0 1 340px;
    }

    .gh-cabecalho-acoes {
        flex-wrap: nowrap;
    }

    .gt-portal .gh-lista-empresas > .row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gh-grade-api.gh-grade-catalogo {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gh-grade-delivery {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .gh-noticia-destaque-texto {
        padding: 28px;
    }

    .gh-noticia-destaque-titulo {
        font-size: 26px;
    }
}

@media (min-width: 992px) {
    .gh-grade-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gh-grade-4,
    .gh-grade-api.gh-grade-catalogo {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .gh-grade-delivery {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .gh-noticias {
        grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
    }

    .gt-portal .gh-noticia-destaque {
        min-height: 100%;
    }

    .gh-painel {
        padding: 40px;
    }

    .gh-painel-topo {
        grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
        align-items: end;
    }

    .gt-portal .gh-card-horizontal {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gh-card-horizontal .gh-card-imagem {
        aspect-ratio: auto;
        min-height: 300px;
    }

    .gt-portal .gh-cartaz {
        flex-basis: 176px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gt-portal *,
    .gt-portal *::before,
    .gt-portal *::after {
        animation: none !important;
        transition: none !important;
    }

    .gt-portal .gh-card:hover,
    .gt-portal a.card-catalogo:hover,
    .gt-portal .delivery-card:hover {
        transform: none;
    }
}

/* ======================================================================== */
/* ESTRUTURA DO PORTAL: corpo, topo de página interna, rodapé e menu lateral */
/* ======================================================================== */

body.gt-corpo {
    background: #fff;
}

/* ---- topo de página interna ------------------------------------------ */

.gh-pagina-topo {
    padding: 28px 0 32px;
    border-bottom: 1px solid var(--gh-borda);
    background:
        radial-gradient(rgba(20, 96, 142, .12) 1px, transparent 1px) 0 0 / 22px 22px,
        linear-gradient(180deg, var(--gh-marca-50) 0%, #fff 100%);
}

.gh-pagina-topo .gh-cabecalho {
    margin-bottom: 0;
}

.gh-migalhas {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 6px;
    margin: 0 0 18px;
    padding: 0;
    list-style: none;
    font-size: 13px;
    color: var(--gh-texto-suave);
}

.gh-migalhas li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.gh-migalhas li + li::before {
    content: "›";
    color: #a3adb5;
}

.gt-portal .gh-migalhas a {
    color: var(--gh-texto-suave);
}

.gt-portal .gh-migalhas a:hover {
    color: var(--gh-marca);
}

.gh-migalhas [aria-current] {
    color: var(--gh-texto);
    font-weight: 500;
}

@media (min-width: 768px) {
    .gh-pagina-topo {
        padding: 36px 0 44px;
    }
}

/* ---- rodapé: movido para footer-2026.css (25/09/2026) ---------------- */

/* ---- menu lateral (gaveta) -------------------------------------------- */
/* sobrescreve o #menu-lateral do layout.css; a abertura continua com menuLateral() */

#menu-lateral.gt-gaveta {
    top: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    width: 320px;
    max-width: 85vw;
    height: 100%;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 40px rgba(16, 32, 48, .25);
    font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size: 14px;
    color: #0a0a0a;
    visibility: hidden;
    transform: translateX(-105%);
    transition: transform .3s cubic-bezier(.22, 1, .36, 1), visibility .3s;
}

#menu-lateral.gt-gaveta.open {
    visibility: visible;
    transform: translateX(0);
}

#menu-lateral-fundo.gt-gaveta-fundo {
    background: rgba(10, 20, 30, .45);
    opacity: 1;
}

.gt-gaveta *,
.gt-gaveta *::before,
.gt-gaveta *::after {
    box-sizing: border-box;
}

.gt-gaveta a,
.gt-gaveta a:hover {
    text-decoration: none;
}

.gt-gaveta svg {
    display: block;
    flex-shrink: 0;
}

.gt-gaveta-topo {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    height: 64px;
    padding: 0 12px 0 20px;
    border-bottom: 1px solid #e1e5e8;
}

.gt-gaveta-topo img {
    display: block;
    width: 130px;
    height: auto;
}

.gt-gaveta-fechar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: none;
    color: #64707a;
    cursor: pointer;
}

.gt-gaveta-fechar:hover {
    background: #eef3f7;
    color: #0a0a0a;
}

.gt-gaveta-fechar svg {
    width: 22px;
    height: 22px;
}

.gt-gaveta-corpo {
    flex: 1 1 auto;
    padding: 16px;
    overflow-y: auto;
}

.gt-gaveta-local {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border-radius: 12px;
    background: #f5f7f9;
    line-height: 1.3;
}

.gt-gaveta-local svg {
    width: 20px;
    height: 20px;
    color: #14608e;
}

.gt-gaveta-local strong {
    display: block;
    font-size: 14px;
}

.gt-gaveta-local span {
    font-size: 12px;
    color: #64707a;
}

.gt-gaveta-principal {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 16px;
}

.gt-gaveta .gt-gaveta-principal a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 8px;
    border-radius: 8px;
    font-family: var(--gh-fonte-titulo);
    font-size: 15px;
    font-weight: 600;
    color: #0a0a0a;
    transition: background-color .15s, color .15s;
}

.gt-gaveta .gt-gaveta-principal a:hover {
    background: #eef3f7;
    color: #14608e;
}

.gt-gaveta-principal svg {
    width: 16px;
    height: 16px;
    color: #64707a;
}

.gt-gaveta-titulo {
    margin: 22px 8px 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #64707a;
}

.gt-gaveta .gt-gaveta-lista a {
    display: block;
    padding: 7px 8px;
    border-radius: 8px;
    color: #3a4650;
    transition: background-color .15s, color .15s;
}

.gt-gaveta .gt-gaveta-lista a:hover {
    background: #eef3f7;
    color: #14608e;
}

.gt-gaveta-rodape {
    flex-shrink: 0;
    padding: 16px;
    border-top: 1px solid #e1e5e8;
}

.gt-gaveta .gt-gaveta-anuncie {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 44px;
    border-radius: 100px;
    background: #14608e;
    font-weight: 600;
    color: #fff;
    transition: background-color .15s;
}

.gt-gaveta .gt-gaveta-anuncie:hover {
    background: #0f4c70;
    color: #fff;
}

.gt-gaveta-anuncie svg {
    width: 18px;
    height: 18px;
}

/* ======================================================================== */
/* PÁGINAS INTERNAS: listagens, individuais, formulários                     */
/* ======================================================================== */

/* ícones dentro de botões */
.gt-portal .gh-botao-contorno svg,
.gt-portal .gh-botao-marca svg {
    width: 16px;
    height: 16px;
}

.gt-portal button.gh-botao-contorno,
.gt-portal button.gh-botao-marca {
    cursor: pointer;
    font-family: var(--gh-fonte);
}

.gt-portal .gh-botao-bloco {
    justify-content: center;
    width: 100%;
    margin-top: 16px;
}

/* ---- abas (canais irmãos, meses) ------------------------------------- */

.gh-abas {
    display: flex;
    gap: 8px;
    margin: 24px -15px 0;
    padding: 0 15px 4px;
    overflow-x: auto;
    scrollbar-width: none;
}

.gh-abas::-webkit-scrollbar {
    display: none;
}

.gh-abas-meses {
    margin-top: 12px;
}

.gt-portal .gh-aba {
    flex-shrink: 0;
    padding: 8px 16px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio-controle);
    background: #fff;
    font-size: 14px;
    font-weight: 500;
    color: var(--gh-texto);
    white-space: nowrap;
    transition: border-color .15s, background-color .15s, color .15s;
}

.gt-portal .gh-aba:hover {
    border-color: rgba(20, 96, 142, .5);
    background: var(--gh-marca-50);
    color: var(--gh-marca-700);
}

.gt-portal .gh-aba-ativa,
.gt-portal .gh-aba-ativa:hover {
    border-color: var(--gh-marca);
    background: var(--gh-marca);
    color: #fff;
}

/* ---- listagem --------------------------------------------------------- */

.gh-secao-lista {
    padding-top: 32px;
}

.gh-lista-topo {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
    margin-bottom: 20px;
    font-size: 14px;
    color: var(--gh-texto-suave);
}

.gh-filtro-ativo strong {
    color: var(--gh-texto);
}

.gt-portal .gh-card h2.gh-card-titulo {
    font-size: 16px;
}

.gh-card-info-periodo {
    margin-top: 8px;
}

.gh-grade-2 {
    grid-template-columns: minmax(0, 1fr);
}

.gh-vazio {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    max-width: 480px;
    margin: 24px auto;
    padding: 48px 24px;
    border: 1px dashed var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
    text-align: center;
    color: var(--gh-texto-suave);
}

.gh-vazio svg {
    width: 40px;
    height: 40px;
    color: var(--gh-marca-500);
}

.gt-portal .gh-vazio-titulo {
    font-family: var(--gh-fonte-titulo);
    font-size: 20px;
    font-weight: 600;
    color: var(--gh-texto);
}

/* paginação (Source\Support\Pager: nav.paginator > .paginator_item) */
.gh-paginacao {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}

.gh-paginacao .paginator {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
}

.gt-portal .gh-paginacao .paginator_item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio-controle);
    background: #fff;
    font-size: 14px;
    font-weight: 600;
    color: var(--gh-texto);
    transition: border-color .15s, color .15s;
}

.gt-portal .gh-paginacao a.paginator_item:hover {
    border-color: rgba(20, 96, 142, .5);
    color: var(--gh-marca);
}

.gt-portal .gh-paginacao .paginator_active {
    border-color: var(--gh-marca);
    background: var(--gh-marca);
    color: #fff;
}

/* ---- página individual ----------------------------------------------- */

.gh-secao-individual {
    padding-top: 32px;
}

.gh-layout-lateral {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.gh-layout-principal,
.gh-layout-lateral-coluna {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}

.gh-bloco {
    padding: 22px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
    box-shadow: var(--gh-sombra);
}

.gt-portal .gh-bloco-titulo {
    margin-bottom: 14px;
    font-family: var(--gh-fonte-titulo);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: -.015em;
    color: var(--gh-texto);
}

.gh-info-grande {
    margin-bottom: 14px !important;
    font-size: 15px;
}

.gh-destaque-imagem {
    overflow: hidden;
    border-radius: var(--gh-raio);
    background: var(--gh-fundo-secundario);
    box-shadow: var(--gh-sombra);
}

.gh-destaque-imagem img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 560px;
    object-fit: cover;
}

/* texto vindo do painel */
.gh-texto {
    font-size: 16px;
    line-height: 1.7;
    color: #26323a;
    overflow-wrap: anywhere;
}

.gh-texto p,
.gh-texto ul,
.gh-texto ol {
    margin: 0 0 14px;
}

/* marcador dentro da linha: a lista acompanha a margem do conteúdo, sem recuo (24/09) */
.gh-texto ul,
.gh-texto ol {
    padding-left: 0;
    list-style-position: inside;
}

.gh-texto h2,
.gh-texto h3,
.gh-texto h4 {
    margin: 22px 0 10px;
    font-family: var(--gh-fonte-titulo);
    font-weight: 600;
    line-height: 1.3;
    color: var(--gh-texto);
}

/* h2 do conteúdo na cor da marca: separa as seções sem precisar de fio (24/09) */
.gt-portal .gh-texto h2 {
    font-size: 22px;
    color: var(--gh-marca-700);
}
.gh-texto h3 { font-size: 18px; }
.gh-texto h4 { font-size: 16px; }

.gt-portal .gh-texto a {
    color: var(--gh-marca);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.gh-texto img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
}

.gh-texto iframe {
    max-width: 100%;
}

.gh-texto > :last-child {
    margin-bottom: 0;
}

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

.gh-galeria-item {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: 8px;
    background: var(--gh-fundo-secundario);
}

.gh-galeria-item-principal {
    grid-column: 1 / -1;
    aspect-ratio: 16 / 9;
    border-radius: var(--gh-raio);
}

.gh-galeria-item img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    color: transparent;
    transition: transform .4s ease;
}

.gh-galeria-item:hover img {
    transform: scale(1.04);
}

.gh-visualizador {
    width: 100vw;
    max-width: 100vw;
    height: 100vh;
    max-height: 100vh;
    margin: 0;
    padding: 0;
    border: 0;
    background: rgba(6, 12, 18, .92);
}

.gh-visualizador::backdrop {
    background: transparent;
}

.gh-visualizador figure {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    margin: 0;
    padding: 56px 64px;
}

.gh-visualizador img {
    max-width: 100%;
    max-height: calc(100vh - 140px);
    border-radius: 8px;
}

.gh-visualizador figcaption {
    margin-top: 12px;
    font-family: var(--gh-fonte);
    font-size: 14px;
    color: rgba(255, 255, 255, .85);
}

.gh-visualizador button {
    position: absolute;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    font-size: 28px;
    line-height: 1;
    color: #fff;
    cursor: pointer;
}

.gh-visualizador button:hover {
    background: rgba(255, 255, 255, .24);
}

.gh-visualizador-fechar { top: 12px; right: 12px; }
.gh-visualizador-anterior { top: 50%; left: 12px; transform: translateY(-50%); }
.gh-visualizador-proxima { top: 50%; right: 12px; transform: translateY(-50%); }

/* mapa */
.gh-mapa {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 8px;
    background: var(--gh-fundo-secundario);
}

.gh-mapa iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

/* ficha de contato */
.gh-ficha dl {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
}

.gh-ficha dt {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--gh-texto-suave);
}

.gh-ficha dt svg {
    width: 14px;
    height: 14px;
    color: var(--gh-marca);
}

.gh-ficha dd {
    margin: 0;
    font-size: 15px;
    color: var(--gh-texto);
}

.gt-portal .gh-telefone {
    display: block;
    padding: 2px 0;
    font-weight: 600;
    color: var(--gh-marca);
}

/* formulário */
.gh-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.gh-campo {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--gh-texto);
}

.gh-campo input,
.gh-campo textarea,
.gh-campo select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--gh-borda);
    border-radius: 10px;
    background: #fff;
    font-family: var(--gh-fonte);
    font-size: 15px;
    font-weight: 400;
    color: var(--gh-texto);
    transition: border-color .15s, box-shadow .15s;
}

.gh-campo textarea {
    resize: vertical;
}

.gh-campo input:focus,
.gh-campo textarea:focus,
.gh-campo select:focus {
    border-color: #1f7fb8;
    outline: 0;
    box-shadow: 0 0 0 4px var(--gh-marca-anel);
}

.gh-aceite {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 4px 0 0;
    font-size: 13px;
    font-weight: 400;
    color: var(--gh-texto-suave);
}

.gh-aceite input {
    margin-top: 3px;
    accent-color: var(--gh-marca);
}

.gh-form .gh-botao-bloco {
    margin-top: 4px;
}

/* veja também */
.gh-veja-tambem {
    display: flex;
    flex-direction: column;
}

.gh-veja-tambem .gh-bloco-titulo {
    margin-bottom: 6px;
}

.gt-portal .gh-veja-tambem a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid var(--gh-borda);
    font-weight: 500;
    color: var(--gh-texto);
}

.gt-portal .gh-veja-tambem a:last-child {
    border-bottom: 0;
}

.gt-portal .gh-veja-tambem a:hover {
    color: var(--gh-marca);
}

/* relacionados */
.gh-secao-relacionados {
    border-top: 1px solid var(--gh-borda);
    background: var(--gh-fundo-secundario);
}

.gh-card-horizontal-compacto .gh-card-texto {
    margin: 8px 0 0;
    font-size: 14px;
}

@media (min-width: 640px) {
    .gh-grade-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gh-galeria {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .gh-bloco {
        padding: 26px;
    }
}

@media (min-width: 992px) {
    .gh-layout-lateral {
        grid-template-columns: minmax(0, 1fr) 360px;
        gap: 32px;
    }

    .gh-layout-lateral-coluna {
        position: sticky;
        top: 88px;
    }

    .gt-portal .gh-card-horizontal-compacto {
        grid-template-columns: 200px minmax(0, 1fr);
    }

    .gh-card-horizontal-compacto .gh-card-imagem {
        min-height: 160px;
    }

    .gh-card-horizontal-compacto .gh-card-corpo {
        padding: 20px 22px;
    }
}

/* ---- carregando (usado por enviar_formulario do scripts-all.js) ------- */

.gt-corpo .ajax_load {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .72);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
}

.gt-corpo .ajax_load_box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.gt-corpo .ajax_load_box_circle {
    width: 40px;
    height: 40px;
    border: 3px solid #d9e9f3;
    border-top-color: #14608e;
    border-radius: 50%;
    animation: gh-girar .8s linear infinite;
}

.gt-corpo .ajax_load_box_title {
    margin: 0;
    font-family: "Inter", system-ui, sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #0a0a0a;
}

@keyframes gh-girar {
    to { transform: rotate(360deg); }
}

/* resumo com corte de linhas dentro de card (gh-card-texto usa display:block) */
.gh-card-texto.gh-linhas-2,
.gh-card-texto.gh-linhas-3 {
    display: -webkit-box;
}

/* ======================================================================== */
/* VITRINE: capa, lista com filtro e página individual                       */
/* ======================================================================== */

.gh-centro {
    display: flex;
    justify-content: center;
    margin-top: 36px;
}

.gt-portal .gh-aba-imagem {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding-left: 6px;
}

.gh-aba-imagem img {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    object-fit: cover;
    background: #fff;
}

/* lista com filtro lateral */
.gh-layout-filtro {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.gh-filtro {
    padding: 0;
}

.gh-filtro-resumo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 20px;
    list-style: none;
    cursor: pointer;
}

.gh-filtro-resumo::-webkit-details-marker {
    display: none;
}

.gh-filtro-resumo::after {
    content: "";
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--gh-texto-suave);
    border-bottom: 2px solid var(--gh-texto-suave);
    transform: rotate(45deg);
    transition: transform .2s;
}

.gh-filtro[open] .gh-filtro-resumo::after {
    transform: rotate(-135deg);
}

.gt-portal .gh-filtro-resumo .gh-bloco-titulo {
    margin: 0;
}

.gh-filtro-contagem {
    margin-left: auto;
    padding: 2px 10px;
    border-radius: var(--gh-raio-controle);
    background: var(--gh-marca-50);
    font-size: 12px;
    font-weight: 600;
    color: var(--gh-marca-700);
}

.gh-filtro .gh-form {
    padding: 0 20px 20px;
}

.gh-campos-duplos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.gh-campo select {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 34px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364707a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 16px;
}

.gh-honeypot {
    position: absolute !important;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* página individual: preço, anunciante, denúncia */
.gh-preco,
.gh-anunciante {
    display: flex;
    flex-direction: column;
}

.gh-preco-rotulo {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--gh-texto-suave);
}

.gh-preco-de {
    margin-top: 6px;
    font-size: 14px;
    color: var(--gh-texto-suave);
    text-decoration: line-through;
}

.gh-preco-valor {
    margin-top: 4px;
    font-family: var(--gh-fonte-titulo);
    font-size: 30px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.02em;
    color: var(--gh-texto);
}

.gh-preco-combinar {
    font-size: 22px;
    color: var(--gh-marca);
}

.gh-preco-parcela {
    margin-top: 4px;
    font-size: 14px;
    color: var(--gh-texto-suave);
}

.gt-portal .gh-botao-whatsapp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 20px;
    border: 0;
    border-radius: var(--gh-raio-controle);
    background: #1faa59;
    font-family: var(--gh-fonte);
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    cursor: pointer;
    transition: background-color .15s;
}

.gt-portal .gh-botao-whatsapp:hover {
    background: #178a48;
}

.gh-botao-whatsapp svg {
    width: 20px;
    height: 20px;
}

.gh-anunciante-linha {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 10px;
    font-size: 16px;
}

.gh-anunciante-linha img {
    width: 56px;
    height: 56px;
    border: 1px solid var(--gh-borda);
    border-radius: 50%;
    background: #fff;
    object-fit: cover;
}

.gh-denuncia {
    padding: 0;
    box-shadow: none;
}

.gh-denuncia summary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px;
    list-style: none;
    font-size: 14px;
    font-weight: 500;
    color: var(--gh-texto-suave);
    cursor: pointer;
}

.gh-denuncia summary::-webkit-details-marker {
    display: none;
}

.gh-denuncia summary:hover {
    color: #b42318;
}

.gh-denuncia summary svg {
    width: 16px;
    height: 16px;
}

.gh-denuncia .gh-form {
    padding: 0 20px 20px;
}

.gh-denuncia-texto {
    font-size: 14px;
    color: var(--gh-texto-suave);
}

/* itens (características, ficha técnica, dados técnicos) */
.gh-itens {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--gh-borda);
    border-radius: 10px;
    background: var(--gh-borda);
}

.gh-itens > div {
    padding: 12px 14px;
    background: #fff;
}

.gh-itens dt {
    margin-bottom: 2px;
    font-size: 12px;
    font-weight: 600;
    color: var(--gh-texto-suave);
}

.gh-itens dd {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--gh-texto);
}

.gh-itens-tabela {
    grid-template-columns: minmax(0, 1fr);
}

.gh-itens-tabela > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
}

.gh-itens-tabela dt {
    margin: 0;
    font-size: 14px;
}

.gh-lista-marcada {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 16px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gh-lista-marcada li {
    position: relative;
    padding-left: 22px;
    font-size: 15px;
}

.gh-lista-marcada li::before {
    content: "";
    position: absolute;
    top: 6px;
    left: 2px;
    width: 12px;
    height: 7px;
    border-bottom: 2px solid var(--gh-marca);
    border-left: 2px solid var(--gh-marca);
    transform: rotate(-45deg);
}

@media (min-width: 768px) {
    .gh-itens {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gh-itens-tabela {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (min-width: 992px) {
    .gh-layout-filtro {
        grid-template-columns: 280px minmax(0, 1fr);
        gap: 32px;
    }

    .gh-filtro-coluna {
        position: sticky;
        top: 88px;
    }

    .gh-filtro-resumo {
        cursor: default;
        pointer-events: none;
    }

    .gh-filtro-resumo::after {
        display: none;
    }

    .gh-layout-filtro .gh-grade-api.gh-grade-catalogo {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* ======================================================================== */
/* CONTEÚDO: notícias, agenda, cinema, vídeos e galerias                    */
/* ======================================================================== */

.gt-portal .gh-aba-link {
    border-style: dashed;
    color: var(--gh-marca);
}

.gh-rotulo-publi {
    color: #b54708;
}

.gh-selo-publi {
    background: #fef0c7;
    color: #93370d;
}

.gh-texto-pequeno {
    margin-bottom: 4px !important;
    font-size: 15px;
    color: var(--gh-texto-suave);
}

.gh-alerta {
    padding: 12px 16px;
    border: 1px solid #fecdca;
    border-radius: 10px;
    background: #fef3f2;
    font-size: 15px;
    font-weight: 500;
    color: #b42318;
}

.gh-video {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--gh-raio);
    background: #000;
    box-shadow: var(--gh-sombra);
}

.gh-video iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.gh-play {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: var(--gh-marca);
    box-shadow: var(--gh-sombra);
    transform: translate(-50%, -50%);
}

.gh-play svg {
    width: 24px;
    height: 24px;
    margin-left: 3px;
}

/* lista de notícias (card horizontal) */
.gh-lista-noticias {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.gt-portal .gh-card-noticia-lista .gh-card-texto {
    margin: 6px 0 0;
    font-size: 14px;
}

@media (min-width: 640px) {
    .gh-lista-noticias .gh-card-noticia-lista {
        flex-direction: row;
    }

    .gh-lista-noticias .gh-card-noticia-lista .gh-card-imagem {
        flex: 0 0 240px;
        aspect-ratio: auto;
        min-height: 150px;
    }
}

.gh-layout-filtro-direita {
    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 992px) {
    .gh-layout-filtro-direita {
        grid-template-columns: minmax(0, 1fr) 300px;
    }
}

.gh-checkboxes {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 320px;
    margin: 4px 0 0;
    padding: 0;
    overflow-y: auto;
    border: 0;
}

.gh-checkboxes legend {
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--gh-texto);
}

/* artigo */
.gh-artigo-coluna {
    max-width: 800px;
}

.gh-artigo-topo {
    padding-bottom: 28px;
    /* sem fio embaixo: o cabeçalho do artigo emenda direto na foto */
    border-bottom: 0;
}

.gh-artigo-selos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px !important;
}

.gt-portal .gh-artigo-editoria {
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--gh-marca-700);
}

.gt-portal .gh-artigo-titulo {
    font-family: var(--gh-fonte-titulo);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.18;
    letter-spacing: -.025em;
    color: var(--gh-texto);
}

.gh-artigo-chamada {
    margin-top: 14px !important;
    font-size: 18px;
    line-height: 1.55;
    color: var(--gh-texto-suave);
}

.gh-artigo-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--gh-borda);
    font-size: 14px;
    color: var(--gh-texto);
}

.gh-artigo-data {
    display: block;
    font-size: 13px;
    color: var(--gh-texto-suave);
}

.gh-artigo-corpo {
    padding-top: 28px;
}

.gh-artigo-figura {
    margin: 0 0 28px;
}

.gh-artigo-figura img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--gh-raio);
    box-shadow: var(--gh-sombra);
}

.gh-artigo-figura figcaption {
    margin-top: 8px;
    font-size: 13px;
    color: var(--gh-texto-suave);
}

.gh-artigo-figura figcaption span {
    margin-left: 6px;
    text-transform: uppercase;
    font-size: 12px;
}

.gh-artigo-texto {
    font-size: 18px;
    line-height: 1.75;
}

.gh-artigo-texto img {
    display: block;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 20px auto;
}

.gh-artigo-galeria {
    margin-top: 28px;
}

.gh-publi {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    margin-top: 28px;
    text-align: center;
}

.gh-publi-empresa {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 17px;
}

.gh-publi-empresa img {
    border-radius: 50%;
    object-fit: cover;
}

@media (min-width: 768px) {
    .gt-portal .gh-artigo-titulo {
        font-size: 38px;
    }
}

/* cinema */
.gh-cartazes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 16px;
}

.gh-cartazes .gh-cartaz {
    flex: none;
}

.gh-indicacao-selo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    padding: 3px 7px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    color: #fff;
}

.gh-cartaz-imagem .gh-indicacao-selo {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 1;
}

.gh-indicacao-livre { background: #12b76a; }
.gh-indicacao-12 { background: #2e90fa; }
.gh-indicacao-14 { background: #f79009; }
.gh-indicacao-16 { background: #e04f16; }
.gh-indicacao-18 { background: #111; }
.gh-indicacao-nd { background: #667085; }

.gh-cinemas .gh-cinema {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 0;
    border-bottom: 1px solid var(--gh-borda);
}

.gh-cinemas .gh-cinema:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.gt-portal .gh-cinema-nome {
    font-family: var(--gh-fonte-titulo);
    font-size: 16px;
    font-weight: 600;
    color: var(--gh-texto);
}

.gt-portal .gh-cinema-nome:hover,
.gt-portal .gh-cinema-telefone {
    color: var(--gh-marca);
}

.gh-filme-topo {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
}

.gh-filme-cartaz {
    max-width: 220px;
}

.gh-filme-cartaz img {
    display: block;
    width: 100%;
    border-radius: var(--gh-raio);
    box-shadow: var(--gh-sombra-alta);
}

.gh-filme-dados {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    margin-top: 12px !important;
    font-size: 14px;
    color: var(--gh-texto-suave);
}

.gh-filme-sinopse {
    max-width: 680px;
    margin: 16px 0 20px !important;
    font-size: 16px;
    line-height: 1.65;
    color: #26323a;
}

.gh-dias {
    display: flex;
    gap: 8px;
    margin: 0 -15px 20px;
    padding: 0 15px 4px;
    overflow-x: auto;
    scrollbar-width: none;
}

.gh-dias::-webkit-scrollbar {
    display: none;
}

.gh-dia {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    min-width: 92px;
    padding: 10px 14px;
    border: 1px solid var(--gh-borda);
    border-radius: 12px;
    background: #fff;
    font-family: var(--gh-fonte);
    color: var(--gh-texto);
    cursor: pointer;
    transition: border-color .15s, background-color .15s, color .15s;
}

.gh-dia strong {
    font-size: 13px;
    text-transform: capitalize;
}

.gh-dia span {
    font-size: 12px;
    color: var(--gh-texto-suave);
}

.gh-dia-vazio {
    opacity: .55;
}

.gh-dia[aria-selected="true"] {
    border-color: var(--gh-marca);
    background: var(--gh-marca);
    color: #fff;
}

.gh-dia[aria-selected="true"] span {
    color: rgba(255, 255, 255, .85);
}

.gh-sessoes {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

.gh-sessao {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.gh-sala {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--gh-borda);
}

.gh-sala-nome {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-size: 14px;
}

.gh-sala-tag {
    padding: 2px 8px;
    border-radius: var(--gh-raio-controle);
    background: var(--gh-marca-50);
    font-size: 11px;
    font-weight: 700;
    color: var(--gh-marca-700);
}

.gh-horarios {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
}

.gh-horarios li {
    padding: 6px 12px;
    border: 1px solid var(--gh-borda);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.gh-vazio-inline {
    padding: 16px;
    border: 1px dashed var(--gh-borda);
    border-radius: 10px;
    color: var(--gh-texto-suave);
}

@media (min-width: 640px) {
    .gh-cartazes {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gh-filme-topo {
        grid-template-columns: 200px minmax(0, 1fr);
        align-items: start;
    }
}

@media (min-width: 992px) {
    .gh-layout-principal .gh-cartazes {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .gh-cartazes-poucos {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .gh-sessoes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gh-filme-topo {
        grid-template-columns: 240px minmax(0, 1fr);
        gap: 36px;
    }
}

/* ======================================================================== */
/* INSTITUCIONAIS: história, câmara, prefeitura, telefones, atendimento...  */
/* ======================================================================== */

.gh-coluna-leitura {
    max-width: 820px;
}

/* pessoas (prefeito, vereadores) */
.gh-pessoas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.gh-pessoa {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 20px 14px 16px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
    text-align: center;
    box-shadow: var(--gh-sombra);
}

.gh-pessoa-foto {
    width: 88px;
    height: 88px;
    margin-bottom: 6px;
    overflow: hidden;
    border-radius: 50%;
    background: var(--gh-marca-50);
}

.gh-pessoa-foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gt-portal .gh-pessoa-nome {
    margin: 0;
    font-family: var(--gh-fonte-titulo);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--gh-texto);
}

.gh-pessoa-cargo {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--gh-marca-700);
}

.gh-pessoa-acoes {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin-top: 8px;
}

.gh-botao-mini {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid var(--gh-borda);
    border-radius: 999px;
    background: #fff;
    font-family: var(--gh-fonte);
    font-size: 13px;
    font-weight: 500;
    color: var(--gh-texto);
    cursor: pointer;
    transition: border-color .15s, color .15s;
}

.gh-botao-mini svg {
    width: 14px;
    height: 14px;
}

.gt-portal .gh-botao-mini:hover {
    border-color: var(--gh-marca);
    color: var(--gh-marca);
    text-decoration: none;
}

/* lista de telefones */
.gh-telefones {
    margin: 0;
    padding: 0;
    list-style: none;
}

.gh-fone {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--gh-borda);
}

.gh-fone:last-child {
    border-bottom: 0;
}

.gh-telefone-nome {
    font-size: 15px;
    font-weight: 500;
    color: var(--gh-texto);
}

.gt-portal .gh-telefone-numero {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--gh-marca);
    white-space: nowrap;
}

.gh-telefone-numero svg {
    width: 16px;
    height: 16px;
}

.gh-telefones-urgencia .gh-telefone-numero {
    min-width: 64px;
    justify-content: center;
    padding: 6px 14px;
    border-radius: 999px;
    background: #fef3f2;
    font-size: 17px;
    color: #b42318;
}

/* secretarias / departamentos */
.gh-deptos {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}

.gh-depto {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
}

.gt-portal .gh-depto-nome {
    font-family: var(--gh-fonte-titulo);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--gh-texto);
}

.gt-portal a.gh-depto-nome:hover {
    color: var(--gh-marca);
}

/* canais de atendimento */
.gh-canais {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}

.gh-canal {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
}

.gh-canal-icone {
    display: flex;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--gh-marca-50);
    color: var(--gh-marca);
}

.gh-canal-icone svg {
    width: 20px;
    height: 20px;
}

.gh-canal-rotulo {
    display: block;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--gh-texto-suave);
}

.gt-portal .gh-canal-valor {
    display: block;
    font-size: 16px;
    font-weight: 600;
    color: var(--gh-texto);
}

/* ficha de dados (história, prefeitura) */
.gh-dados {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.gh-dado {
    padding: 14px 16px;
    border-radius: var(--gh-raio);
    background: var(--gh-marca-50);
}

.gh-dado dt {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--gh-marca-700);
}

.gh-dado dd {
    margin: 2px 0 0;
    font-family: var(--gh-fonte-titulo);
    font-size: 17px;
    font-weight: 600;
    color: var(--gh-texto);
}

/* sumário (links de âncora) */
.gt-portal .gh-sumario a {
    display: block;
    padding: 8px 0;
    border-bottom: 1px solid var(--gh-borda);
    font-size: 14px;
    color: var(--gh-texto);
}

.gt-portal .gh-sumario a:last-child {
    border-bottom: 0;
}

.gt-portal .gh-sumario a:hover {
    color: var(--gh-marca);
    text-decoration: none;
}

.gh-ancora {
    scroll-margin-top: 90px;
}

@media (min-width: 576px) {
    .gh-pessoas {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gh-deptos,
    .gh-canais {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gh-dados {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .gh-layout-principal .gh-pessoas {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .gh-layout-principal .gh-deptos {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* institucionais: ajustes */
.gt-portal a.gh-depto,
.gt-portal a.gh-canal {
    color: inherit;
    text-decoration: none;
    transition: border-color .15s, box-shadow .15s;
}

.gt-portal a.gh-depto:hover,
.gt-portal a.gh-canal:hover {
    border-color: var(--gh-marca);
    box-shadow: var(--gh-sombra);
}

.gh-depto .gh-info {
    font-size: 13px;
}

.gh-depto-acoes {
    justify-content: flex-start;
    margin-top: 0;
}

button.gh-aba {
    font-family: var(--gh-fonte);
    cursor: pointer;
}

.gh-pessoa-foto {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gh-marca);
}

.gh-pessoa-foto svg {
    width: 36px;
    height: 36px;
    opacity: .45;
}

.gh-pessoa-foto img {
    position: absolute;
    inset: 0;
}

.gh-bloco-secao + .gh-bloco-secao,
.gh-layout-principal > .gh-bloco-secao {
    margin-top: 8px;
}

.gh-dados-bloco {
    margin-top: 16px;
}

.gh-texto .gh-dados,
.gh-artigo-texto .gh-dados {
    margin: 8px 0 24px;
    padding: 0;
}

.gh-layout-principal > .gh-dados {
    margin: 0;
}

.gh-telefone-numeros {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
}

.gh-telefones-atalho .gh-fone {
    padding: 8px 0;
}

.gh-bloco-urgencia {
    border-color: #fecdca;
}

.gt-portal .gh-link-empresa {
    display: block;
    color: var(--gh-texto);
    font-weight: 600;
}

.gt-portal .gh-link-empresa:hover {
    color: var(--gh-marca);
}

.gt-portal .gh-subtitulo-bloco {
    margin: 20px 0 4px;
    font-family: var(--gh-fonte-titulo);
    font-size: 16px;
    font-weight: 600;
}

.gh-busca-destaque {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    max-width: 720px;
    margin-top: 24px;
}

.gh-busca-destaque .gh-busca-campo {
    flex: 1 1 320px;
}

.gh-mapa-grande iframe {
    min-height: 440px;
}

.gh-campo textarea {
    min-height: 140px;
    resize: vertical;
}

.gh-recaptcha {
    margin: 4px 0;
}

.gh-aceite-texto {
    margin: 0 0 12px !important;
    font-size: 13px;
    color: var(--gh-texto-suave);
}

@media (min-width: 576px) {
    .gh-pessoas-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 520px;
    }
}

@media (min-width: 992px) {
    .gh-layout-principal .gh-pessoas-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.gh-artigo-texto h2 {
    margin: 32px 0 8px;
}

.gh-artigo-texto > h2:first-child {
    margin-top: 0;
}

/* ======================================================================== */
/* EMPRESAS: guia, segmentos, áreas, busca, delivery, ofertas               */
/* ======================================================================== */

.gh-emp-letras-bloco {
    margin-top: 20px;
}

.gh-emp-letras-rotulo {
    display: block;
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--gh-texto-suave);
}

.gh-emp-letras {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 16px;
}

.gh-emp-letras-bloco .gh-emp-letras {
    margin-top: 0;
}

.gh-emp-letra {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 34px;
    padding: 0 8px;
    border: 1px solid var(--gh-borda);
    border-radius: 999px;
    background: #fff;
    font-size: 14px;
    font-weight: 600;
    color: var(--gh-texto);
}

.gt-portal a.gh-emp-letra:hover {
    border-color: var(--gh-marca);
    background: var(--gh-marca);
    color: #fff;
    text-decoration: none;
}

.gh-emp-letra-vazia {
    opacity: .35;
}

/* áreas */
.gh-emp-areas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.gh-emp-area {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 8px;
    min-height: 130px;
    padding: 16px;
    overflow: hidden;
    border-radius: var(--gh-raio);
    background: var(--gh-marca-700);
    box-shadow: var(--gh-sombra);
    isolation: isolate;
}

.gh-emp-area img {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s;
}

.gh-emp-area-sombra {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, rgba(10, 30, 45, .05) 0%, rgba(10, 30, 45, .8) 100%);
}

.gh-emp-area-icone {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .92);
    font-size: 16px;
    color: var(--gh-marca);
}

.gt-portal .gh-emp-area-nome {
    font-family: var(--gh-fonte-titulo);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.25;
    color: #fff;
}

.gt-portal a.gh-emp-area:hover {
    text-decoration: none;
}

.gh-emp-area:hover img {
    transform: scale(1.05);
}

.gh-emp-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 28px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
    box-shadow: var(--gh-sombra);
}

/* "Outros segmentos de X" da página do segmento: chips que quebram linha, em vez da lista
   fina da lateral (24/09) */
.gh-chips-segmentos {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}

.gt-portal .gh-chip-segmento {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio-controle);
    background: #fff;
    font-size: 14px;
    font-weight: 500;
    color: var(--gh-texto);
    transition: border-color .15s, background-color .15s, color .15s;
}

.gt-portal .gh-chip-segmento:hover {
    border-color: var(--gh-marca);
    background: var(--gh-fundo-secundario);
    color: var(--gh-marca);
}

.gt-portal .gh-chip-segmento-todos {
    border-color: var(--gh-marca);
    background: var(--gh-marca);
    color: #fff;
}

.gt-portal .gh-chip-segmento-todos:hover {
    background: var(--gh-marca-700);
    border-color: var(--gh-marca-700);
    color: #fff;
}

/* grupos de segmentos */
.gh-emp-grupos {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

.gh-emp-grupo {
    padding: 20px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
}

.gt-portal .gh-emp-grupo-letra {
    margin: 0 0 10px;
    font-family: var(--gh-fonte-titulo);
    font-size: 22px;
    font-weight: 700;
    color: var(--gh-marca);
}

.gt-portal .gh-emp-grupo-area {
    font-size: 17px;
    color: var(--gh-texto);
}

.gh-emp-segmentos {
    margin: 0;
    padding: 0;
    list-style: none;
    column-gap: 28px;
}

.gh-emp-segmentos li {
    break-inside: avoid;
    padding: 6px 0;
    border-bottom: 1px dashed var(--gh-borda);
}

.gt-portal .gh-emp-segmentos a {
    font-size: 14px;
    color: var(--gh-texto);
}

.gt-portal .gh-emp-segmentos a:hover {
    color: var(--gh-marca);
    text-decoration: none;
}

/* empresas grátis */
.gt-portal .gh-emp-subtitulo {
    margin: 28px 0 12px;
    font-family: var(--gh-fonte-titulo);
    font-size: 18px;
    font-weight: 600;
}

.gh-emp-gratis-grade {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}

.gh-emp-gratis {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 16px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
}

.gt-portal .gh-emp-gratis-topo {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--gh-texto);
    text-decoration: none;
}

.gh-emp-gratis-sigla {
    display: flex;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--gh-marca-50);
    font-weight: 700;
    color: var(--gh-marca-700);
}

.gh-emp-gratis-nome {
    display: block;
    font-family: var(--gh-fonte-titulo);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

.gt-portal .gh-emp-gratis-topo:hover .gh-emp-gratis-nome {
    color: var(--gh-marca);
}

.gh-emp-gratis-segmento {
    display: block;
    font-size: 13px;
    color: var(--gh-texto-suave);
}

.gh-emp-gratis .gh-info {
    font-size: 13px;
}

.gh-emp-gratis-acoes {
    justify-content: flex-start;
    margin-top: auto;
}

/* categorias (delivery, tipos de imóvel) */
.gh-emp-categorias {
    display: flex;
    gap: 10px;
    margin: 20px -15px 0;
    padding: 4px 15px 8px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.gh-emp-categorias .gh-chip-categoria {
    flex: 0 0 auto;
}

.gh-emp-categoria-todas {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gh-marca);
}

.gh-emp-categoria-todas svg {
    width: 24px;
    height: 24px;
}

.gt-portal .gh-emp-categoria-ativa .gh-chip-categoria-imagem {
    box-shadow: 0 0 0 2px var(--gh-marca);
}

.gt-portal .gh-emp-categoria-ativa .gh-chip-categoria-nome {
    font-weight: 700;
    color: var(--gh-marca);
}

.gh-emp-ordenar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-bottom: 16px;
    font-size: 14px;
    color: var(--gh-texto-suave);
}

.gh-emp-ordenar label {
    margin: 0;
}

.gh-emp-ordenar select {
    height: 38px;
    padding: 0 12px;
    border: 1px solid var(--gh-borda);
    border-radius: 10px;
    background: #fff;
    font-family: var(--gh-fonte);
    font-size: 14px;
    color: var(--gh-texto);
}

/* ofertas */
.gh-emp-preco {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 8px;
    margin-top: 8px;
}

.gh-emp-preco-de {
    font-size: 13px;
    text-decoration: line-through;
    color: var(--gh-texto-suave);
}

.gh-emp-preco-por {
    font-family: var(--gh-fonte-titulo);
    font-size: 18px;
    font-weight: 700;
    color: #067647;
}

.gh-emp-preco-consultar {
    font-family: var(--gh-fonte);
    font-size: 14px;
    font-weight: 500;
    color: var(--gh-texto-suave);
}

.gt-portal .gh-emp-selo-desconto {
    background: #067647;
    color: #fff;
}

.gh-emp-oferta-empresa {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--gh-texto-suave);
}

.gh-emp-oferta-empresa img {
    border: 1px solid var(--gh-borda);
    border-radius: 6px;
    background: #fff;
    object-fit: contain;
}

.gh-emp-atalhos {
    margin-top: 24px;
}

.gt-portal .gh-emp-ver-area {
    font-weight: 600;
    color: var(--gh-marca);
}

@media (min-width: 576px) {
    .gh-emp-areas {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gh-emp-segmentos {
        columns: 2;
    }
}

@media (min-width: 768px) {
    .gh-emp-gratis-grade {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gh-emp-atalhos {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .gh-emp-areas {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .gh-emp-area {
        min-height: 150px;
    }

    .gh-emp-segmentos {
        columns: 3;
    }

    .gh-layout-principal .gh-emp-segmentos {
        columns: 2;
    }

    .gt-portal .gh-emp-grade-delivery {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .gh-emp-letras {
        flex-wrap: nowrap;
        margin-right: -15px;
        margin-left: -15px;
        padding: 0 15px 4px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .gh-emp-letras::-webkit-scrollbar {
        display: none;
    }

    .gh-emp-letra {
        flex: 0 0 auto;
    }

    .gh-emp-cta {
        padding: 20px;
    }
}

/* ======================================================================== */
/* COLUNISTAS, ESPAÇO DO ANUNCIANTE, 404 E CONTA                            */
/* ======================================================================== */

.gh-col-avatar {
    display: inline-flex;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    overflow: hidden;
    border-radius: 50%;
    background: var(--gh-marca-50);
}

.gh-col-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gh-col-avatar-grande {
    flex-basis: 88px;
    width: 88px;
    height: 88px;
    border: 3px solid #fff;
    box-shadow: var(--gh-sombra);
}

.gh-col-autor-topo {
    display: flex;
    align-items: center;
    gap: 20px;
}

.gh-col-editores {
    display: flex;
    flex-direction: column;
}

.gt-portal .gh-col-editor {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--gh-borda);
    color: var(--gh-texto);
    text-decoration: none;
}

.gt-portal .gh-col-editor:last-child {
    border-bottom: 0;
}

.gh-col-editor-nome {
    display: block;
    font-size: 14px;
    font-weight: 600;
}

.gh-col-editor-linha {
    display: block;
    font-size: 12px;
    color: var(--gh-texto-suave);
}

.gt-portal .gh-col-editor:hover .gh-col-editor-nome,
.gt-portal .gh-col-editor-ativo .gh-col-editor-nome {
    color: var(--gh-marca);
}

.gt-portal .gh-col-assinatura {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--gh-texto);
    text-decoration: none;
}

.gh-col-autor {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin-top: 32px;
}

.gt-portal .gh-col-autor-nome {
    margin: 4px 0 8px;
    font-family: var(--gh-fonte-titulo);
    font-size: 20px;
    font-weight: 600;
}

.gh-col-autor .gh-botao-contorno {
    margin-top: 12px;
}

.gh-col-cta {
    margin-top: 32px;
}

.gh-conta-caixa {
    max-width: 520px;
    margin: 0 auto;
}

.gh-conta-rodape {
    margin-top: 16px !important;
    text-align: center;
}

@media (min-width: 992px) {
    .gh-erro-atalhos {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 575px) {
    .gh-col-autor {
        flex-direction: column;
    }

    .gh-col-autor-topo {
        align-items: flex-start;
    }
}

/* box "Empresas sugeridas para você" (fim de todas as páginas do portal) */
.gt-portal .gh-box-sugerido {
    border-top: 1px solid var(--gh-borda);
    background: #f4f7fa;
}

.gh-box-sugerido-topo {
    margin-bottom: 24px;
}

/* banners do Google AdSense (970x250 no desktop, 300x250 no celular) */
.gt-portal .gh-anuncio {
    padding-block: 20px;
    text-align: center;
}

.gh-anuncio-rotulo {
    display: block;
    margin-bottom: 6px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--gh-texto-suave);
}

.gh-anuncio-espaco {
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 300px;
    min-height: 250px;
    margin: 0 auto;
    overflow: hidden;
    border-radius: var(--gh-raio);
    background: rgba(16, 32, 48, .035);
}

.gh-anuncio-desktop .gh-anuncio-espaco {
    max-width: 970px;
}

.gh-anuncio-espaco ins {
    margin: 0 auto;
}

.gt-portal .gh-anuncio-rodape {
    border-top: 1px solid var(--gh-borda);
}

/* sem anúncio para mostrar: some com o espaço reservado */
.gh-anuncio:has(ins[data-ad-status="unfilled"]) {
    display: none;
}

/* ======================================================================== */
/* HERO DA HOME (estrutura da hero da SpotWay, com metade da altura)        */
/* ======================================================================== */

.gh-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 270px;
    overflow: hidden;
    background: var(--gh-marca-700);
    isolation: isolate;
}

.gh-hero-fundo {
    position: absolute;
    inset: 0;
    z-index: -1;
    overflow: hidden;
}

.gh-hero-fundo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* a foto fica dentro de <picture> (versão de celular separada, 28/09/2026): ele ocupa a hero toda */
.gh-hero-fundo picture {
    display: block;
    width: 100%;
    height: 100%;
}

.gh-hero-sombra,
.gh-hero-pontos,
.gh-hero-brilho {
    position: absolute;
    inset: 0;
}

.gh-hero-sombra {
    background: linear-gradient(135deg, rgba(8, 35, 54, .9) 0%, rgba(12, 52, 79, .88) 55%, rgba(6, 28, 44, .92) 100%);
}

.gh-hero-pontos {
    background-image: radial-gradient(rgba(255, 255, 255, .22) 1px, transparent 1px);
    background-size: 18px 18px;
    -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 75%);
    mask-image: linear-gradient(180deg, #000 0%, transparent 75%);
}

.gh-hero-brilho {
    background: radial-gradient(48rem 14rem at 50% -10%, rgba(255, 255, 255, .12), transparent 70%);
}

.gh-hero-conteudo {
    position: relative;
    padding-block: 32px;
    text-align: center;
}

.gh-hero-selo {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 14px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
    font-size: 13px;
    font-weight: 500;
    color: #fff;
    backdrop-filter: blur(4px);
}

.gh-hero-selo svg {
    width: 15px;
    height: 15px;
}

.gt-portal .gh-hero-titulo {
    max-width: 680px;
    margin: 16px auto 0;
    font-family: var(--gh-fonte-titulo);
    font-size: 28px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #fff;
}

.gh-hero-destaque {
    color: #ffd166;
}

.gh-hero-texto {
    max-width: 520px;
    margin: 12px auto 0 !important;
    font-size: 15px;
    line-height: 1.5;
    color: rgba(255, 255, 255, .82);
}

.gh-hero-busca {
    max-width: 560px;
    margin: 20px auto 0;
}

@media (min-width: 768px) {
    .gh-hero {
        min-height: 300px;
    }

    .gt-portal .gh-hero-titulo {
        font-size: 38px;
    }

    .gh-hero-texto {
        font-size: 16px;
    }

    .gh-hero-conteudo {
        padding-block: 40px;
    }
}

/* hero: copy e encaixe curvo iguais aos da SpotWay */
.gh-hero-dica {
    max-width: 440px;
    margin: 12px auto 0 !important;
    font-size: 13px;
    color: rgba(255, 255, 255, .75);
}

/* a seção seguinte sobe sobre o fim da hero, com os cantos de cima arredondados */
.gt-home > .gh-secao-primeira {
    position: relative;
    z-index: 2;
    max-width: 1280px;
    margin: -32px auto 0;
    padding-top: 40px;
    border-radius: 32px 32px 0 0;
    background: #fff;
}

@media (min-width: 640px) {
    .gt-home > .gh-secao-primeira {
        margin-top: -48px;
        border-radius: 40px 40px 0 0;
        padding-top: 56px;
    }
}

/* hero: compacta o miolo e reserva embaixo o espaço que a folha branca cobre */
.gh-hero {
    min-height: 0;
}

.gh-hero-conteudo {
    padding-block: 20px 60px;
}

.gt-portal .gh-hero-titulo {
    max-width: 760px;
    margin-top: 12px;
    font-size: 26px;
}

.gh-hero-texto {
    max-width: 480px;
    margin-top: 8px !important;
    font-size: 14px;
}

.gh-hero-busca {
    margin-top: 14px;
}

.gh-hero-dica {
    margin-top: 10px !important;
    font-size: 12px;
}

@media (min-width: 768px) {
    .gh-hero-conteudo {
        padding-block: 24px 72px;
    }

    .gt-portal .gh-hero-titulo {
        font-size: 34px;
    }

    .gh-hero-texto {
        max-width: 560px;
        font-size: 15px;
    }
}

/* celular: nome e número empilhados (evita a lista serrilhada de telefones) */
@media (max-width: 575px) {
    .gh-fone {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }

    .gh-telefones-urgencia .gh-fone,
    .gh-telefones-atalho .gh-fone {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .gh-emp-gratis .gh-botao-mini,
    .gh-pessoa-acoes .gh-botao-mini {
        flex: 1 1 auto;
        justify-content: center;
    }
}

/* ======================================================================== */
/* HERO NO TAMANHO DA SPOTWAY (py-16/sm:py-24, título 36/48/60px, busca grande) */
/* ======================================================================== */

.gh-hero-conteudo {
    max-width: 1024px;
    padding: 64px 24px;
}

.gh-hero-selo {
    padding: 4px 12px;
    font-size: 14px;
}

.gh-hero-selo svg {
    width: 16px;
    height: 16px;
}

.gt-portal .gh-hero-titulo {
    max-width: 768px;
    margin-top: 24px;
    font-size: 36px;
    line-height: 1.05;
    letter-spacing: -.025em;
}

.gh-hero-texto {
    max-width: 576px;
    margin-top: 20px !important;
    font-size: 18px;
    line-height: 1.55;
    color: rgba(255, 255, 255, .8);
}

.gh-hero-busca {
    max-width: 672px;
    margin-top: 32px;
}

.gh-hero-busca .gh-busca-campo {
    gap: 8px;
    padding: 8px 8px 8px 20px;
    box-shadow: 0 6px 24px -10px rgba(16, 32, 48, .35), 0 2px 8px -4px rgba(16, 32, 48, .2);
}

.gh-hero-busca .gh-busca-lupa {
    width: 20px;
    height: 20px;
}

.gt-portal .gh-hero-busca .gh-busca-input {
    height: 44px;
    font-size: 16px;
}

.gh-hero-busca .gh-busca-botao {
    height: 44px;
    padding: 0 20px;
    font-size: 14px;
}

.gh-hero-dica {
    max-width: 448px;
    margin-top: 12px !important;
    font-size: 14px;
}

/* a folha branca sobe 32/48px sobre a hero, como na SpotWay (pt-16 / sm:pt-24) */
.gt-home > .gh-secao-primeira {
    padding-top: 64px;
}

@media (min-width: 640px) {
    .gh-hero-conteudo {
        padding-block: 96px;
    }

    .gt-portal .gh-hero-titulo {
        font-size: 48px;
    }

    .gt-home > .gh-secao-primeira {
        padding-top: 96px;
    }
}

@media (min-width: 1024px) {
    .gt-portal .gh-hero-titulo {
        font-size: 60px;
    }
}

/* hero 30% mais baixa (28/09/2026), medido: 597 -> 414px no computador e 548 -> 380px no celular. Menos respiro em cima,
   título, texto e distâncias menores; embaixo fica o espaço que a folha branca cobre (32/48px) */
/* 60px em cima e embaixo, em todos os tamanhos (pedido dela, 28/09/2026) */
.gh-hero-conteudo {
    padding: 60px 20px;
}

.gh-hero-selo {
    padding: 3px 12px;
    font-size: 13px;
}

.gt-portal .gh-hero-titulo {
    margin-top: 14px;
    font-size: 30px;
}

.gh-hero-texto {
    margin-top: 10px !important;
    font-size: 15px;
    line-height: 1.5;
}

.gh-hero-busca {
    margin-top: 16px;
}

.gt-portal .gh-hero-busca .gh-busca-input,
.gh-hero-busca .gh-busca-botao {
    height: 40px;
}

.gh-hero-dica {
    margin-top: 8px !important;
    font-size: 12px;
}

@media (min-width: 640px) {
    .gt-portal .gh-hero-titulo {
        margin-top: 16px;
        font-size: 38px;
    }

    .gh-hero-texto {
        margin-top: 12px !important;
        font-size: 16px;
    }

    .gh-hero-busca {
        margin-top: 20px;
    }

    .gt-portal .gh-hero-busca .gh-busca-input,
    .gh-hero-busca .gh-busca-botao {
        height: 42px;
    }

    .gh-hero-dica {
        margin-top: 10px !important;
        font-size: 13px;
    }
}

@media (min-width: 1024px) {
    .gt-portal .gh-hero-titulo {
        font-size: 46px;
    }
}

/* desktop: 60px VISÍVEIS abaixo da dica. A folha branca sobe 48px sobre o fim da hero
   (.gt-home > .gh-secao-primeira), então o padding de baixo é 60 + 48. Celular sem mudança. */
@media (min-width: 768px) {
    .gh-hero-conteudo {
        padding-bottom: 108px;
    }
}

/* ======================================================================== */
/* DESCUBRA: guias por segmento (pages2026/descubra, home2026/_descubra)     */
/* ======================================================================== */

/* resumo de 2 linhas nos cards */
.gh-descubra-resumo {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--gh-texto-suave);
}

.gh-descubra-destaque .gh-card-texto {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    margin-bottom: 0;
}

/* individual: chamada para anunciantes (a faixa escura da SpotWay, na cor do Guia) */
.gh-descubra-cta {
    position: relative;
    overflow: hidden;
    margin-top: 28px;
    padding: 36px 24px;
    border-radius: var(--gh-raio);
    background:
        radial-gradient(40rem 16rem at 100% 0%, rgba(255, 255, 255, .12), transparent 60%),
        linear-gradient(135deg, #0b3a56 0%, var(--gh-marca) 100%);
    color: #fff;
    text-align: center;
}

.gt-portal .gh-descubra-cta-rotulo {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .72);
}

.gt-portal .gh-descubra-cta-titulo {
    margin: 8px auto 0;
    max-width: 520px;
    font-family: var(--gh-fonte-titulo);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
}

.gt-portal .gh-descubra-cta-texto {
    margin: 10px auto 0;
    max-width: 520px;
    font-size: 15px;
    color: rgba(255, 255, 255, .82);
}

.gh-descubra-cta-botoes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px 20px;
    margin-top: 22px;
}

.gt-portal .gh-descubra-cta-botao {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 22px;
    border-radius: var(--gh-raio-controle);
    background: #fff;
    font-size: 15px;
    font-weight: 600;
    color: var(--gh-marca-700);
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease;
}

.gt-portal .gh-descubra-cta-botao:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 20px -8px rgba(0, 0, 0, .45);
    color: var(--gh-marca-700);
    text-decoration: none;
}

.gt-portal .gh-descubra-cta-link {
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.gt-portal .gh-descubra-cta-link:hover {
    color: #fff;
    text-decoration-thickness: 2px;
}

.gt-portal .gh-descubra-cta a:focus-visible {
    outline: 3px solid rgba(255, 255, 255, .7);
    outline-offset: 3px;
}

@media (min-width: 768px) {
    .gh-descubra-cta {
        padding: 44px 40px;
    }

    .gt-portal .gh-descubra-cta-titulo {
        font-size: 28px;
    }
}

/* foto grande, mais larga que a coluna do texto: guia do Descubra e notícia individual */
.gh-descubra-figura,
.gh-artigo-figura-larga {
    position: relative;
    left: 50%;
    width: min(1040px, calc(100vw - 30px));
    margin-bottom: 36px;
    transform: translateX(-50%);
}

.gh-descubra-figura img,
.gh-artigo-figura-larga img {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 16px;
}

/* legenda da foto: acompanha a largura do texto, não a da foto */
.gh-artigo-figura-larga figcaption {
    max-width: 800px;
    margin: 8px auto 0;
    padding: 0 15px;
}

@media (max-width: 639px) {
    .gh-descubra-figura,
    .gh-artigo-figura-larga {
        width: 100vw;
    }

    .gh-descubra-figura img,
    .gh-artigo-figura-larga img {
        border-radius: 0;
        box-shadow: none;
    }
}

/* individual: empresas do segmento (até 3; pagas em cima, gratuitas completam) */
.gh-dsc-empresas {
    margin-top: 44px;
}

.gt-portal .gh-dsc-empresas-titulo {
    margin: 0 0 14px;
    font-family: var(--gh-fonte-titulo);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--gh-texto);
}

.gh-dsc-empresas-lista {
    border-top: 1px solid var(--gh-borda);
}

.gh-dsc-emp {
    position: relative;
    display: grid;
    grid-template-columns: 22px 64px minmax(0, 1fr) 24px;
    align-items: center;
    gap: 0 16px;
    min-height: 132px;
    padding-right: 4px;
    border-bottom: 1px solid var(--gh-borda);
    background: #fff;
    transition: background-color .15s;
}

.gh-dsc-emp:hover {
    background: var(--gh-marca-50);
}

.gh-dsc-emp-faixa {
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--gh-marca);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #fff;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
}

.gh-dsc-emp-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    overflow: hidden;
    border: 1px solid var(--gh-borda);
    border-radius: 12px;
    background: #fff;
}

.gh-dsc-emp-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.gh-dsc-emp-logo span {
    font-family: var(--gh-fonte-titulo);
    font-size: 20px;
    font-weight: 700;
    color: var(--gh-texto-suave);
}

.gh-dsc-emp-corpo {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 16px 0;
}

.gt-portal .gh-dsc-emp-nome {
    font-family: var(--gh-fonte-titulo);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--gh-marca);
    text-decoration: none;
}

/* a linha inteira é clicável pelo link do nome */
.gt-portal .gh-dsc-emp-nome::after {
    content: "";
    position: absolute;
    inset: 0;
}

.gt-portal .gh-dsc-emp-nome:hover {
    color: var(--gh-marca-700);
    text-decoration: none;
}

.gt-portal .gh-dsc-emp-nome:focus-visible {
    outline: none;
}

.gt-portal .gh-dsc-emp-nome:focus-visible::after {
    box-shadow: inset 0 0 0 3px var(--gh-marca-200);
}

.gh-dsc-emp-segmento {
    margin-top: 2px;
    font-size: 13px;
    color: var(--gh-texto);
}

.gh-dsc-emp-detalhe {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    margin-top: 6px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--gh-texto-suave);
}

.gh-dsc-emp-contatos {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.gt-portal .gh-dsc-emp-contato {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: 13px;
    text-decoration: none;
    box-shadow: 0 1px 3px rgba(16, 32, 48, .15);
    transition: transform .15s ease;
}

.gt-portal .gh-dsc-emp-contato:hover {
    transform: translateY(-1px);
    text-decoration: none;
}

.gh-dsc-emp-qtd {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 15px;
    height: 15px;
    padding: 0 4px;
    border-radius: 8px;
    background: #e3342f;
    font-size: 9px;
    font-weight: 700;
    line-height: 15px;
    text-align: center;
    color: #fff;
}

.gh-dsc-emp-seta {
    display: flex;
    color: var(--gh-marca);
}

.gh-dsc-emp-seta svg {
    width: 18px;
    height: 18px;
}

/* gratuita: mesma linha, sem a cor da marca */
.gh-dsc-emp-gratis .gh-dsc-emp-faixa {
    background: var(--gh-fundo-secundario);
    color: var(--gh-texto-suave);
}

.gt-portal .gh-dsc-emp-gratis .gh-dsc-emp-nome {
    color: var(--gh-texto);
}

.gh-dsc-emp-gratis .gh-dsc-emp-logo {
    border-radius: 50%;
    background: var(--gh-fundo-secundario);
}

.gh-dsc-empresas-ver {
    margin-top: 18px;
}

@media (max-width: 639px) {
    .gh-dsc-emp {
        grid-template-columns: 18px 52px minmax(0, 1fr) 18px;
        gap: 0 12px;
    }

    .gh-dsc-emp-logo {
        width: 52px;
        height: 52px;
    }

    .gt-portal .gh-dsc-emp-nome {
        font-size: 16px;
    }
}

/* banner do patrocinador dentro das páginas do portal (notícia individual).
   O markup vem da parcial antiga pages2023/_includes/_publicidades, com o CSS no layout.css. */
.gt-portal .gh-patrocinador {
    margin: 22px 0 6px;
    padding-top: 18px;
    border-top: 1px solid var(--gh-borda);
    text-align: center;
}

.gt-portal .gh-patrocinador .publicidades {
    margin: 0 auto;
}

.gt-portal .gh-patrocinador img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    border-radius: 8px;
}

/* carrossel de categorias dentro do topo da página (comida & delivery) */
.gh-pagina-topo .gh-categorias-delivery {
    margin-top: 20px;
}

/* ---- ordenação: botão com lista (no lugar do <select> do navegador) ------ */

.gh-ordenar {
    position: relative;
}

.gt-portal .gh-ordenar-botao {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    padding: 0 16px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio-controle);
    background: #fff;
    font-family: var(--gh-fonte);
    font-size: 14px;
    color: var(--gh-texto-suave);
    transition: border-color .15s, box-shadow .15s;
}

.gt-portal .gh-ordenar-botao strong {
    font-weight: 600;
    color: var(--gh-texto);
}

.gt-portal .gh-ordenar-botao svg {
    width: 16px;
    height: 16px;
    color: var(--gh-marca);
}

.gt-portal .gh-ordenar-botao:hover {
    border-color: var(--gh-marca-200);
}

.gh-ordenar-aberto .gh-ordenar-botao {
    border-color: var(--gh-marca);
    box-shadow: 0 0 0 3px var(--gh-marca-anel);
}

.gh-ordenar-aberto .gh-ordenar-seta {
    transform: rotate(180deg);
}

.gh-ordenar-lista {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 30;
    min-width: 220px;
    margin: 0;
    padding: 6px;
    list-style: none;
    border: 1px solid var(--gh-borda);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--gh-sombra-alta);
}

.gt-portal .gh-ordenar-opcao {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 9px 12px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    font-family: var(--gh-fonte);
    font-size: 15px;
    text-align: left;
    color: var(--gh-texto);
}

.gt-portal .gh-ordenar-opcao:hover {
    background: var(--gh-marca-50);
}

.gt-portal .gh-ordenar-opcao svg {
    width: 16px;
    height: 16px;
    color: var(--gh-marca);
    opacity: 0;
}

.gt-portal .gh-ordenar-opcao-ativa {
    font-weight: 600;
    color: var(--gh-marca);
}

.gt-portal .gh-ordenar-opcao-ativa svg {
    opacity: 1;
}

@media (max-width: 575px) {
    .gh-ordenar-lista {
        right: auto;
        left: 0;
    }
}

/* ---- busca no topo da página (comida & delivery), no padrão de /noticias/todas/ ---- */

.gh-busca-topo {
    margin-top: 20px;
}

.gt-portal .gh-busca-topo-campo {
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: 760px;
    padding: 6px 6px 6px 18px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio-controle);
    background: #fff;
    transition: border-color .15s, box-shadow .15s;
}

.gt-portal .gh-busca-topo-campo:focus-within {
    border-color: var(--gh-marca);
    box-shadow: 0 0 0 4px var(--gh-marca-anel);
}

.gt-portal .gh-busca-topo-campo > svg {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    color: var(--gh-texto-suave);
}

.gt-portal .gh-busca-topo-campo input {
    flex: 1 1 auto;
    min-width: 0;
    height: 44px;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 16px;
    color: var(--gh-texto);
}

/* chips de período da busca (agenda): mesmo desenho dos de /noticias/todas/, que ficam no
   noticias-2026.css — este arquivo é o que roda em todas as páginas do portal */
.gt-portal .gh-periodos {
    display: flex;
    gap: 4px;
    margin-top: 12px;
    overflow-x: auto;
    scrollbar-width: none;
}

.gt-portal .gh-periodos::-webkit-scrollbar {
    display: none;
}

.gt-portal .gh-periodo {
    flex-shrink: 0;
    padding: 6px 12px;
    border-radius: var(--gh-raio-controle);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--gh-texto-suave);
    white-space: nowrap;
    text-decoration: none;
}

.gt-portal .gh-periodo:hover {
    color: var(--gh-marca);
    text-decoration: none;
}

.gt-portal .gh-periodo-ativo,
.gt-portal .gh-periodo-ativo:hover {
    background: var(--gh-marca-50);
    font-weight: 600;
    color: var(--gh-marca-700);
}

.gh-busca-topo-extras {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin-top: 12px;
    font-size: 14px;
    color: var(--gh-texto-suave);
}

.gh-busca-topo-preco {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.gt-portal .gh-busca-topo-preco input {
    width: 104px;
    height: 38px;
    padding: 0 12px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio-controle);
    background: #fff;
    font-family: var(--gh-fonte);
    font-size: 14px;
    color: var(--gh-texto);
}

.gt-portal .gh-busca-topo-preco input:focus {
    border-color: var(--gh-marca);
    outline: 0;
    box-shadow: 0 0 0 3px var(--gh-marca-anel);
}

.gt-portal .gh-busca-topo-limpar {
    padding: 0;
    border: 0;
    background: transparent;
    font-family: var(--gh-fonte);
    font-size: 14px;
    font-weight: 600;
    color: var(--gh-marca);
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 575px) {
    .gt-portal .gh-busca-topo-campo {
        padding-left: 14px;
    }

    .gt-portal .gh-busca-topo-preco input {
        width: 88px;
    }
}

/* quando o topo da lista tem só a ordenação, ela fica à direita */
.gh-lista-topo > .gh-ordenar:first-child:last-child {
    margin-left: auto;
}

/* ---- lista com lateral à direita (comida & delivery), no padrão da lista de notícias ---- */

.gh-layout-lateral {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.gt-portal .gh-lateral {
    padding-top: 24px;
    border-top: 1px solid var(--gh-borda);
}

.gt-portal .gh-lateral .gh-rotulo-secao {
    margin-bottom: 16px !important;
}

.gh-lista-links {
    margin: 0;
    padding: 0;
    list-style: none;
}

.gh-lista-links li + li {
    border-top: 1px solid var(--gh-borda);
}

.gt-portal .gh-lista-links a {
    display: block;
    padding: 10px 0;
    font-size: 15px;
    color: var(--gh-texto);
    text-decoration: none;
}

.gt-portal .gh-lista-links a:hover {
    color: var(--gh-marca);
}

.gt-portal .gh-lista-links a[aria-current="page"] {
    font-weight: 600;
    color: var(--gh-marca);
}

/* lista da lateral com ícone (agenda) ou imagem da categoria (delivery) */
.gh-lista-links-icone li + li {
    border-top: 0;
}

.gt-portal .gh-lista-links-icone a {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 -10px;
    padding: 9px 10px;
    border-radius: var(--gh-raio);
    transition: background-color .15s ease;
}

.gt-portal .gh-lista-links-icone a:hover {
    background: var(--gh-fundo-secundario);
}

.gt-portal .gh-lista-links-icone a[aria-current="page"] {
    background: var(--gh-marca-50);
}

.gh-lista-links-figura {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    overflow: hidden;
    border: 1px solid var(--gh-borda);
    border-radius: 12px;
    background: #fff;
    color: var(--gh-marca);
}

.gh-lista-links-figura svg {
    width: 19px;
    height: 19px;
}

.gh-lista-links-figura img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gt-portal .gh-lista-links-icone a[aria-current="page"] .gh-lista-links-figura {
    border-color: var(--gh-marca-200);
}

.gh-lista-links-texto {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 2px;
}

.gh-lista-links-texto strong {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.25;
}

.gh-lista-links-texto small {
    overflow: hidden;
    font-size: 12.5px;
    color: var(--gh-texto-suave);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gt-portal .gh-lista-links-icone a[aria-current="page"] .gh-lista-links-texto small {
    color: var(--gh-marca-500);
}

@media (min-width: 992px) {
    .gh-layout-lateral {
        grid-template-columns: minmax(0, 1fr) 300px;
        gap: 40px;
    }

    .gt-portal .gh-lateral {
        position: sticky;
        top: 88px;
        padding-top: 0;
        border-top: 0;
    }
}

/* grade dentro da coluna com lateral: 4 por linha no computador */
@media (min-width: 992px) {
    .gh-layout-lateral .gh-vitrine-grade {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 26px 14px;
    }
}

@media (min-width: 1200px) {
    .gh-layout-lateral .gh-vitrine-grade {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 26px 14px;
    }
}

/* agenda: cards maiores na coluna com lateral, 2 por linha até 1200px */
@media (min-width: 992px) {
    .gh-layout-lateral .gh-grade-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .gh-layout-lateral .gh-grade-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* contagem de resultados ao lado da ordenação */
.gt-portal .gh-lista-contagem {
    margin: 0;
    font-size: 14px;
    color: var(--gh-texto-suave);
}

/* ---- capa do evento (/agenda/{slug}) ---------------------------------
   No formato da página antiga: a foto preenche o card (com o selo da data, como na listagem)
   e os dados do evento ficam no cartão ao lado. (22/09/2026) */

.gh-evento-capa {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    margin-top: 18px;
}

.gh-evento-imagem {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: var(--gh-raio);
    background-color: #0b2233;
    background-position: center;
    background-size: cover;
    box-shadow: var(--gh-sombra);
}

/* o fundo é a própria imagem, desfocada e escurecida */
.gh-evento-imagem::before {
    content: "";
    position: absolute;
    inset: -40px;
    background: inherit;
    background-size: cover;
    background-position: center;
    filter: blur(26px) brightness(.5);
}

/* a foto preenche o quadro do card (o fundo desfocado sobra só em imagem com transparência) */
.gh-evento-imagem img {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gh-evento-imagem-vazia {
    background: linear-gradient(140deg, var(--gh-marca-700), var(--gh-marca));
}

.gh-evento-imagem-icone svg {
    width: 56px;
    height: 56px;
    color: rgba(255, 255, 255, .5);
}

.gh-evento-imagem .gh-selo-imagem {
    z-index: 3;
}

.gh-evento-faixa {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 18px;
    padding: 40px 16px 14px;
    background: linear-gradient(to top, rgba(4, 18, 28, .85), rgba(4, 18, 28, 0));
    font-size: 14px;
    font-weight: 600;
    color: #fff;
}

.gh-evento-faixa-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.gh-evento-faixa-item svg {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    opacity: .8;
}

.gh-evento-ficha {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 22px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
    box-shadow: var(--gh-sombra);
}

.gt-portal .gh-evento-titulo {
    margin: 12px 0 0;
    font-family: var(--gh-fonte-titulo);
    font-size: 25px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--gh-texto);
}

.gt-portal .gh-evento-alerta {
    width: 100%;
    margin-top: 14px !important;
}

.gh-evento-dados {
    display: flex;
    width: 100%;
    flex-direction: column;
    gap: 22px;
    margin: 18px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--gh-borda);
}

.gh-evento-dados dt {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--gh-texto-suave);
}

.gh-evento-dados dt svg {
    width: 14px;
    height: 14px;
    color: var(--gh-marca);
}

.gh-evento-dados dd {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--gh-texto);
}

.gh-evento-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
    margin-top: 20px;
}

.gh-evento-acoes > * {
    flex: 1 1 160px;
    justify-content: center;
}

.gh-evento-organizacao {
    width: 100%;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--gh-borda);
}

.gh-evento-organizacao .gh-anunciante-linha img {
    width: 44px;
    height: 44px;
}

/* texto, vídeo e mapa do evento em coluna única, na medida de leitura */
.gh-evento-conteudo {
    display: flex;
    flex-direction: column;
    gap: 24px;
    max-width: 880px;
}

@media (min-width: 992px) {
    .gh-evento-capa {
        grid-template-columns: minmax(0, 1fr) 380px;
        gap: 28px;
    }

    .gh-evento-imagem {
        aspect-ratio: 16 / 10;
    }

    .gt-portal .gh-evento-titulo {
        font-size: 28px;
    }
}

/* ---- modal do portal (Como chegar) ------------------------------------ */

.gh-modal {
    position: fixed;
    z-index: 1200;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.gh-modal[hidden] {
    display: none;
}

.gh-modal-fundo {
    position: absolute;
    inset: 0;
    background: rgba(8, 20, 30, .55);
}

.gh-modal-caixa {
    position: relative;
    width: 100%;
    max-width: 420px;
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--gh-sombra-alta);
}

.gh-modal-cabeca {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 20px 18px 6px;
}

.gt-portal .gh-modal-cabeca h2 {
    margin: 0;
    font-family: var(--gh-fonte-titulo);
    font-size: 18px;
    font-weight: 600;
    color: var(--gh-texto);
}

.gt-portal .gh-modal-cabeca p {
    margin: 4px 0 0;
    font-size: 13px;
    line-height: 1.45;
    color: var(--gh-texto-suave);
}

.gt-portal .gh-modal-fechar {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 1px solid var(--gh-borda);
    border-radius: 50%;
    background: #fff;
    color: var(--gh-texto-suave);
}

.gt-portal .gh-modal-fechar:hover {
    color: var(--gh-texto);
}

.gh-modal-fechar svg {
    width: 15px;
    height: 15px;
}

.gh-modal-corpo {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 18px 18px;
}

.gt-portal .gh-rota-opcao {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--gh-borda);
    border-radius: 16px;
    color: var(--gh-texto);
    text-decoration: none;
    transition: border-color .15s ease, background-color .15s ease;
}

.gt-portal .gh-rota-opcao:hover {
    border-color: var(--gh-marca-200);
    background: var(--gh-marca-50);
}

.gh-rota-opcao-icone {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--gh-marca-50);
    color: var(--gh-marca);
}

.gh-rota-opcao-icone svg {
    width: 19px;
    height: 19px;
}

.gh-rota-opcao-texto {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
}

.gh-rota-opcao-texto strong {
    font-size: 15px;
    font-weight: 600;
}

.gh-rota-opcao-texto small {
    font-size: 13px;
    color: var(--gh-texto-suave);
}

.gh-rota-opcao-seta {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    color: var(--gh-texto-suave);
}

body.gh-modal-travada {
    overflow: hidden;
}

/* endereço à esquerda e o botão de rota à direita, acima do mapa */
.gh-endereco-linha {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 14px;
}

.gt-portal .gh-endereco-linha .gh-info-grande {
    margin-bottom: 0 !important;
}

/* ---- vitrine: ordem da lateral no celular ------------------------------
   No computador a lateral fica à direita (anúncio, filtro e canais). No celular a coluna
   vira uma só: o filtro sobe para antes da lista e o banner desce para o fim, para a
   publicidade não voltar a empurrar os produtos para baixo. (22/09/2026) */

/* no computador os blocos da lateral (filtro, banner e canais) ficam separados */
@media (min-width: 992px) {
    .gh-layout-vitrine .gh-lateral {
        display: flex;
        flex-direction: column;
        gap: 28px;
    }
}

@media (max-width: 991px) {
    .gh-layout-vitrine .gh-lateral {
        display: contents;
    }

    .gh-layout-vitrine .gh-lista-principal {
        order: 2;
    }

    .gh-layout-vitrine .gh-lateral > .gh-filtro {
        order: 1;
    }

    .gh-layout-vitrine .gh-lateral > .gh-lateral-bloco {
        order: 3;
        margin-top: 24px;
    }

    .gh-layout-vitrine .gh-lateral > .gh-anuncio {
        order: 4;
        margin-top: 24px;
    }
}

/* o trilho da capa da vitrine sangra 15px de cada lado; ao lado da lateral ele fica
   dentro da coluna, senão passa por cima do espaço entre as colunas */
@media (min-width: 992px) {
    .gh-layout-lateral .gh-vitrine:not(.gh-vitrine-grade) {
        margin: 0;
        padding: 2px 0 8px;
        scroll-padding: 0;
    }
}

/* filmes em cartaz (/cinemas-em-taubate/): 3 por linha no computador, em vez de 4 —
   o cartaz fica maior e o título cabe em duas linhas (23/09/2026) */
@media (min-width: 992px) {
    .gh-layout-principal .gh-cartazes-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 24px 18px;
    }
}

/* botão "Como chegar" dentro do card de cada cinema, na lateral (23/09/2026) */
.gt-portal .gh-cinema-rota {
    justify-content: center;
    width: 100%;
    margin-top: 10px;
    padding: 8px 12px;
    font-size: 14px;
}

/* ---- interna do filme: capa com cara de cinema (23/09/2026) -------------
   Sala apagada: faixa escura com o próprio cartaz desfocado atrás e o cartaz inteiro na
   frente, como pôster em vitrine. O resto da página continua claro. */

.gh-filme-capa {
    position: relative;
    padding: 22px 0 32px;
    overflow: hidden;
    background-color: #0b1620;
    background-position: center;
    background-size: cover;
    color: #fff;
}

.gh-filme-capa::before {
    content: "";
    position: absolute;
    inset: -60px;
    background: inherit;
    background-size: cover;
    background-position: center;
    /* cartaz aparece mais: menos escurecido e com o desfoque um pouco menor (23/09) */
    filter: blur(12px) brightness(.74) saturate(1.22);
}

/* véu de baixo para cima: o texto fica legível mesmo em cartaz claro */
.gh-filme-capa::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(6, 14, 20, .2) 0%, rgba(6, 14, 20, .58) 100%);
}

.gh-filme-capa > .container {
    position: relative;
    z-index: 1;
}

.gt-portal .gh-migalhas-escuras,
.gt-portal .gh-migalhas-escuras a {
    color: rgba(255, 255, 255, .72);
}

.gt-portal .gh-migalhas-escuras a:hover {
    color: #fff;
}

/* a página atual e o separador também precisam clarear: no escuro o cinza some (23/09) */
.gh-migalhas-escuras [aria-current] {
    color: #fff;
}

.gh-migalhas-escuras li + li::before {
    color: rgba(255, 255, 255, .5);
}

.gh-filme-capa .gh-filme-cartaz img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--gh-raio);
    box-shadow: 0 24px 48px -20px rgba(0, 0, 0, .85), 0 0 0 1px rgba(255, 255, 255, .08);
}

.gh-filme-rotulo {
    margin: 0 0 6px !important;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .7);
}

.gt-portal .gh-filme-titulo {
    margin: 0;
    font-family: var(--gh-fonte-titulo);
    font-size: 30px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: #fff;
}

.gh-filme-etiquetas {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
}

.gh-filme-etiqueta {
    display: inline-flex;
    align-items: center;
    padding: 4px 11px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: var(--gh-raio-controle);
    font-size: 13px;
    font-weight: 500;
    color: rgba(255, 255, 255, .92);
}

/* a classificação mantém a cor da faixa etária, mas no mesmo formato das outras
   etiquetas (mesma altura, mesmo arredondamento e mesmo corpo de texto) (23/09) */
.gh-filme-etiquetas .gh-indicacao-selo {
    min-width: 0;
    padding: 4px 11px;
    border: 1px solid transparent;
    border-radius: var(--gh-raio-controle);
    font-size: 13px;
    font-weight: 700;
    line-height: inherit;
}

.gt-portal .gh-filme-capa .gh-filme-sinopse {
    max-width: 62ch;
    margin: 16px 0 0;
    font-size: 16px;
    line-height: 1.6;
    color: rgba(255, 255, 255, .84);
}

.gt-portal .gh-filme-ficha {
    margin: 12px 0 0;
    font-size: 14px;
    color: rgba(255, 255, 255, .7);
}

.gh-filme-ficha span {
    font-weight: 600;
    color: rgba(255, 255, 255, .5);
}

.gh-filme-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.gt-portal .gh-botao-claro {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 18px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: var(--gh-raio-controle);
    background: rgba(255, 255, 255, .08);
    font-family: var(--gh-fonte);
    font-size: 15px;
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    transition: background-color .15s ease, border-color .15s ease;
}

.gt-portal .gh-botao-claro:hover {
    border-color: rgba(255, 255, 255, .5);
    background: rgba(255, 255, 255, .16);
    color: #fff;
}

.gh-botao-claro svg {
    width: 17px;
    height: 17px;
}

/* cabeçalho do card de sessão: cinema à esquerda, rota à direita */
.gh-sessao-topo {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px 16px;
}

.gt-portal .gh-sessao-rota {
    flex: 0 0 auto;
    padding: 7px 14px;
    font-size: 14px;
}

/* horário com cara de ingresso: o entalhe dos dois lados vem dos gradientes */
.gt-portal .gh-horarios li {
    background:
        radial-gradient(circle at left center, transparent 5px, var(--gh-marca-50) 5px) left center / 50% 100% no-repeat,
        radial-gradient(circle at right center, transparent 5px, var(--gh-marca-50) 5px) right center / 50% 100% no-repeat;
    color: var(--gh-marca-700);
}

@media (min-width: 640px) {
    .gt-portal .gh-filme-titulo {
        font-size: 38px;
    }
}

@media (min-width: 992px) {
    .gh-filme-capa {
        padding: 28px 0 44px;
    }

    .gt-portal .gh-filme-titulo {
        font-size: 44px;
    }
}

/* faixa de dias da programação do cinema dentro do carrossel: sem a sangria lateral
   que ela tinha sozinha, senão o primeiro dia fica embaixo da seta (23/09) */
.gh-carrossel-dias {
    margin-bottom: 20px;
}

.gh-carrossel-dias .gh-dias {
    margin: 0;
    padding: 4px 2px 12px;
    gap: 8px;
}

/* endereço do card: o pino fica ao lado do texto (e alinhado com a primeira linha),
   em vez de sozinho numa linha acima quando o endereço ocupa duas (23/09) */
.gh-card-rodape-linha > svg,
.gh-card-endereco > svg {
    flex: 0 0 auto;
    align-self: flex-start;
    margin-top: 2px;
}

.gh-card-rodape-linha > span,
.gh-card-endereco > span {
    flex: 1 1 0;
    min-width: 0;
}

/* endereço dos canais de locais: sem o fio entre o título e o endereço */
.gh-card-endereco {
    flex-wrap: nowrap;
    padding-top: 12px;
}

/* arte de reserva dos cards sem foto (canais de locais) (23/09) */
.gh-sem-foto {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gh-destaque-sem-foto {
    aspect-ratio: 16 / 10;
}

.gh-destaque-sem-foto .gh-sem-foto {
    border-radius: var(--gh-raio);
}

/* galeria dos canais de locais, no formato do perfil da empresa: a grade mostra 6 fotos e o
   último quadro leva o "+N"; as demais ficam no HTML para o visualizador percorrer (24/09) */
.gh-galeria-item-oculto {
    display: none;
}

.gh-galeria-mais {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(8, 20, 30, .58);
    font-size: 15px;
    font-weight: 600;
    color: #fff;
}

.gh-visualizador-contador {
    position: absolute;
    bottom: 18px;
    left: 50%;
    padding: 4px 12px;
    transform: translateX(-50%);
    border-radius: var(--gh-raio-controle);
    background: rgba(8, 20, 30, .6);
    font-size: 13px;
    font-weight: 600;
    color: #fff;
}

/* No celular, Ligar / Enviar mensagem / Compartilhar ficam só com o ícone, para os três
   botões caberem na mesma linha do "Como chegar" (24/09) */
@media (max-width: 575px) {
    .gh-botao-rotulo {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }

    .gt-portal .gh-cabecalho-acoes > .gh-botao-marca,
    .gt-portal .gh-cabecalho-acoes > .gh-botao-contorno {
        padding: 11px 14px;
    }
}

/* bloco "Fotos" dos canais de locais, no formato do perfil da empresa (24/09) */
.gh-galeria-grade {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

@media (min-width: 640px) {
    .gh-galeria-grade {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* quadro "Veja todas as fotos", no lugar da oitava miniatura quando há mais fotos */
.gt-portal .gh-galeria-todas {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    aspect-ratio: 4 / 3;
    padding: 8px;
    border: 0;
    border-radius: 8px;
    background: var(--gh-marca-50);
    font-family: var(--gh-fonte);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--gh-marca-700);
    text-align: center;
    cursor: pointer;
    transition: background-color .15s ease;
}

.gt-portal .gh-galeria-todas:hover {
    background: var(--gh-marca-100);
}

.gh-galeria-todas-icone {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--gh-marca);
    color: #fff;
}

.gh-galeria-todas-icone svg {
    width: 17px;
    height: 17px;
}

/* e-mail e site longos não podem furar o card: sem isso, um endereço sem espaços
   ("visite@museumazzaropi.com.br;info@...") empurra a largura da ficha (24/09) */
.gh-ficha dd,
.gh-evento-dados dd,
.gt-portal .gh-telefone {
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* campo-armadilha do formulário de contato: fora da tela, sem sumir para leitor de tela
   ao ponto de o robô ignorar (24/09) */
.gh-armadilha {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.gh-modal-corpo .gh-form {
    gap: 14px;
}

/* faixa de meses do calendário oficial: mesmo chip dos períodos das notícias (24/09) */
.gt-portal .gh-periodos-meses {
    margin-top: 6px;
}

/* imagem solta no meio do texto (história da cidade): um terço da largura, à esquerda e com
   o texto contornando; no celular volta a ocupar a linha inteira (24/09) */
@media (min-width: 768px) {
    .gh-artigo-texto > img {
        float: left;
        /* o !important vence o "width: auto !important" das imagens vindas do painel */
        width: 33% !important;
        margin: 6px 24px 10px 0;
    }

    /* o título seguinte começa embaixo da imagem, e não ao lado dela */
    .gh-artigo-texto > h2 {
        clear: both;
    }
}

.gh-artigo-texto > img {
    margin-bottom: 14px;
}

/* o anúncio-âncora automático do Google (faixa fixa no rodapé ou no topo) usa o maior z-index
   possível e ficava por cima da modal. Enquanto uma modal do portal está aberta, o body tem
   .gh-modal-travada (portal-2026.js) e a âncora some; ao fechar, ela volta (24/09) */
body.gh-modal-travada ins.adsbygoogle[data-anchor-status],
body.gh-modal-travada ins.adsbygoogle[data-anchor-shown],
body.gh-modal-travada > ins.adsbygoogle,
body.gh-modal-travada .adsbygoogle-noablate[data-anchor-status] {
    visibility: hidden !important;
}

/* letras dos segmentos no carrossel do portal: a margem de cima passa para o carrossel;
   no celular a faixa rola com setas, como as categorias do delivery (24/09) */
.gh-carrossel-letras {
    margin-top: 16px;
}

.gh-carrossel-letras .gh-emp-letras,
.gh-emp-letras-bloco .gh-carrossel-letras {
    margin-top: 0;
}

@media (max-width: 767px) {
    .gh-carrossel-letras .gh-emp-letras {
        padding-top: 2px;
        padding-bottom: 6px;
        scroll-padding-inline: 40px;
    }
}

/* ======================================================================== */
/* EMPRESA GRÁTIS (/empresas/{slug}__taubate-sp-{id})                        */
/* Formato da página de empresa grátis da SpotWay, com o topo, o rodapé e as */
/* cores do Guia. (25/09)                                                    */
/* ======================================================================== */

.gh-eg {
    padding: 16px 0 24px;
}

.gh-eg .gh-migalhas {
    margin-bottom: 20px;
}

.gh-eg-grade {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

@media (min-width: 992px) {
    .gh-eg-grade {
        grid-template-columns: minmax(0, 1fr) 340px;
        gap: 32px;
    }

    .gh-eg-lateral {
        position: sticky;
        top: 96px;
    }
}

.gh-eg-cartao {
    margin-bottom: 20px;
    padding: 20px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
    box-shadow: var(--gh-sombra);
}

@media (min-width: 640px) {
    .gh-eg-cartao {
        padding: 24px;
    }
}

.gt-portal .gh-eg-cartao-titulo {
    margin: 0 0 16px;
    font-family: var(--gh-fonte-titulo);
    font-size: 17px;
    font-weight: 700;
    color: var(--gh-texto);
}

/* ---- cartão de identidade ---- */
.gh-eg-topo {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.gh-eg-sigla {
    display: flex;
    flex: 0 0 64px;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--gh-marca) 0%, var(--gh-marca-700) 100%);
    box-shadow: 0 6px 16px -6px rgba(20, 96, 142, .55);
    font-family: var(--gh-fonte-titulo);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: .02em;
    color: #fff;
}

.gh-eg-identidade {
    min-width: 0;
}

.gt-portal .gh-eg-nota {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--gh-texto-suave);
}

.gt-portal .gh-eg-nota:hover {
    color: var(--gh-marca);
}

.gh-eg-estrelas {
    display: inline-flex;
    gap: 1px;
    color: #f5a623;
}

.gh-eg-estrelas svg {
    width: 14px;
    height: 14px;
}

.gt-portal .gh-eg-titulo {
    margin: 4px 0 0;
    font-family: var(--gh-fonte-titulo);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -.015em;
    color: var(--gh-texto);
}

@media (min-width: 640px) {
    .gt-portal .gh-eg-titulo {
        font-size: 26px;
    }
}

.gh-eg-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.gt-portal .gh-eg-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--gh-fundo-secundario);
    font-size: 12px;
    font-weight: 500;
    color: var(--gh-texto-suave);
}

.gh-eg-chip svg {
    width: 13px;
    height: 13px;
}

.gt-portal .gh-eg-chip-marca {
    background: rgba(20, 96, 142, .09);
    color: var(--gh-marca);
    font-weight: 600;
}

.gh-eg-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
}

.gt-portal .gh-eg-aviso-login {
    margin: 12px 0 0;
    font-size: 12px;
    color: var(--gh-texto-suave);
}

/* ---- endereço e dados ---- */
.gt-portal .gh-eg-rua {
    margin: -6px 0 16px;
    font-size: 14px;
    color: var(--gh-texto-suave);
}

.gh-eg-dados {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px 24px;
    margin: 0;
}

@media (min-width: 640px) {
    .gh-eg-dados {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.gh-eg-dado {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.gh-eg-dado-icone {
    display: flex;
    flex: 0 0 34px;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: rgba(20, 96, 142, .08);
    color: var(--gh-marca);
}

.gh-eg-dado-icone svg {
    width: 16px;
    height: 16px;
}

.gh-eg-dado dt {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--gh-texto-suave);
}

.gh-eg-dado dd {
    margin: 2px 0 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.45;
    color: var(--gh-texto);
}

/* ---- sobre ---- */
.gh-eg-sobre {
    margin: 8px 0 20px;
}

.gt-portal .gh-eg-sobre h2 {
    margin: 0 0 12px;
    font-family: var(--gh-fonte-titulo);
    font-size: 18px;
    font-weight: 700;
    color: var(--gh-texto);
}

.gt-portal .gh-eg-sobre p {
    margin: 0 0 12px;
    font-size: 15px;
    line-height: 1.7;
    color: #3b4650;
}

/* links do texto do Sobre (segmento e telefone de contato) */
.gt-portal .gh-eg-sobre a,
.gt-portal .gh-eg-destaque {
    font-weight: 600;
    color: var(--gh-marca);
}

.gt-portal .gh-eg-link {
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.gt-portal .gh-eg-link:hover {
    text-decoration: underline;
}

/* ---- aviso de LGPD ---- */
.gh-eg-lgpd {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 28px;
    padding: 12px 16px;
    border-radius: 10px;
    background: var(--gh-fundo-secundario);
    color: var(--gh-texto-suave);
}

.gh-eg-lgpd svg {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    margin-top: 2px;
}

.gt-portal .gh-eg-lgpd p {
    margin: 0;
    font-size: 12px;
    line-height: 1.6;
}

/* ---- mais empresas ---- */
.gt-portal .gh-eg-secao-titulo {
    margin: 0 0 14px;
    font-family: var(--gh-fonte-titulo);
    font-size: 19px;
    font-weight: 700;
    color: var(--gh-texto);
}

/* ---- lateral ---- */
.gh-eg-dono {
    border-color: rgba(20, 96, 142, .22);
    background: linear-gradient(160deg, #eaf3f9 0%, #fff 70%);
}

.gt-portal .gh-eg-dono p {
    margin: -8px 0 16px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--gh-texto-suave);
}

.gt-portal .gh-eg-rotulo {
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--gh-texto-suave);
}

.gh-eg-errado .gh-botao-bloco + .gh-botao-bloco {
    margin-top: 8px;
}

/* ---- modais da empresa grátis (telefone, e-mail, avaliar, relatar, login) ----
   Continuam sendo a modal Bootstrap #modalEmpresas carregada por AJAX, mas o conteúdo usa o
   visual das modais do portal. O .gt-portal no .modal-content traz as variáveis, porque a
   modal fica fora do <main>. (25/09) */
.gh-modal-bs-dialogo {
    max-width: 440px;
}

.gh-modal-bs {
    overflow: hidden;
    border: 0;
    border-radius: 16px;
    box-shadow: var(--gh-sombra-alta);
}

.gh-modal-bs .gh-modal-corpo {
    padding: 14px 20px 20px;
}

.gh-modal-bs .gh-modal-cabeca {
    padding: 20px 20px 4px;
}

.gt-portal .gh-modal-bs-rodape {
    margin: 6px 0 0;
    font-size: 13px;
    text-align: center;
    color: var(--gh-texto-suave);
}

.gt-portal .gh-modal-bs-rodape a,
.gt-portal .gh-modal-bs-link {
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    color: var(--gh-marca);
    cursor: pointer;
}

.gh-modal-bs-link-direita {
    align-self: flex-end;
    margin-top: -6px;
}

.gh-modal-bs-ou {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--gh-texto-suave);
}

.gh-modal-bs-ou::before,
.gh-modal-bs-ou::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--gh-borda);
}

.gh-modal-bs-google {
    display: flex;
    justify-content: center;
    min-height: 44px;
}

/* senha com o botão de mostrar dentro do campo */
.gh-senha-campo {
    position: relative;
    display: block;
}

.gh-senha-campo input {
    padding-right: 44px;
}

.gt-portal .gh-senha-ver {
    position: absolute;
    top: 50%;
    right: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: none;
    color: var(--gh-texto-suave);
    transform: translateY(-50%);
    cursor: pointer;
}

.gh-senha-ver svg {
    width: 18px;
    height: 18px;
}

/* nota em estrelas com rádios: o HTML vem de 5 para 1 e o row-reverse põe na ordem;
   passar o mouse ou marcar uma estrela acende ela e as anteriores */
.gh-estrelas-campo {
    margin: 0;
    padding: 0;
    border: 0;
}

.gt-portal .gh-estrelas-campo legend {
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--gh-texto);
}

.gh-estrelas-escolha {
    display: inline-flex;
    flex-direction: row-reverse;
    gap: 4px;
}

.gh-estrelas-escolha input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.gh-estrelas-escolha label {
    margin: 0;
    cursor: pointer;
    color: #d5dbe0;
    transition: color .12s, transform .12s;
}

.gh-estrelas-escolha svg {
    display: block;
    width: 34px;
    height: 34px;
    fill: currentColor;
}

.gh-estrelas-escolha label:hover,
.gh-estrelas-escolha label:hover ~ label,
.gh-estrelas-escolha input:checked ~ label {
    color: #f5a623;
}

.gh-estrelas-escolha label:hover {
    transform: scale(1.08);
}

.gh-estrelas-escolha input:focus-visible + label {
    outline: 2px solid var(--gh-marca);
    outline-offset: 2px;
    border-radius: 6px;
}


/* ==========================================================================
   SOBRE O GUIA TAUBATÉ (/sobre-o-guia-taubate/) — 25/09/2026
   faixa do propósito sobre a foto, linha do tempo, foto ao lado da história,
   canais do portal, visão e valores
   ========================================================================== */
.gh-sobre {
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.gh-sobre > .gh-texto {
    margin: 0;
}

.gh-sobre-faixa {
    position: relative;
    margin: 0;
    overflow: hidden;
    border-radius: var(--gh-raio);
    background: var(--gh-marca-700);
    box-shadow: var(--gh-sombra);
}

.gh-sobre-faixa img {
    display: block;
    width: 100%;
    height: 240px;
    object-fit: cover;
    object-position: left center;
}

.gh-sobre-faixa figcaption {
    position: absolute;
    inset: auto 0 0 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 56px 20px 20px;
    background: linear-gradient(180deg, rgba(10, 42, 66, 0) 0%, rgba(10, 42, 66, .92) 70%);
    color: #fff;
}

.gh-sobre-faixa-rotulo {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .75);
}

.gh-sobre-faixa-frase {
    max-width: 560px;
    font-family: var(--gh-fonte-titulo);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.25;
}

/* linha do tempo: a ordem dos anos é a informação, por isso a linha que liga os marcos */
.gh-sobre-linha {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gh-sobre-linha li {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 0 18px 26px;
}

.gh-sobre-linha li::before {
    content: "";
    position: absolute;
    top: 6px;
    left: 0;
    width: 12px;
    height: 12px;
    border: 3px solid var(--gh-marca);
    border-radius: 50%;
    background: #fff;
}

.gh-sobre-linha li::after {
    content: "";
    position: absolute;
    top: 20px;
    bottom: 0;
    left: 5px;
    width: 2px;
    background: var(--gh-borda);
}

.gh-sobre-linha li:last-child {
    padding-bottom: 0;
}

.gh-sobre-linha li:last-child::after {
    display: none;
}

.gh-sobre-linha .gh-sobre-hoje::before {
    background: var(--gh-marca);
}

.gh-sobre-ano {
    font-family: var(--gh-fonte-titulo);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--gh-marca);
}

.gh-sobre-marco {
    font-size: 14px;
    line-height: 1.4;
    color: var(--gh-texto-suave);
}

/* história com a foto em 1/3 e o texto ao lado, como na História de Taubaté */
.gh-sobre-historia {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.gt-portal .gh-sobre-historia img {
    display: block;
    width: 100%;
    max-height: 360px;
    margin: 0;
    object-fit: cover;
    border-radius: var(--gh-raio);
}

.gh-sobre-historia p:first-child {
    margin-top: 0;
}

.gh-sobre-canais {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.gt-portal a.gh-sobre-canal {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 14px 16px;
    border: 1px solid var(--gh-borda);
    border-left: 3px solid var(--gh-marca);
    border-radius: 10px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    transition: border-color .15s, box-shadow .15s, transform .15s;
}

.gt-portal a.gh-sobre-canal:hover {
    border-color: var(--gh-marca);
    box-shadow: var(--gh-sombra);
    transform: translateY(-1px);
}

.gt-portal a.gh-sobre-canal:focus-visible {
    outline: 2px solid var(--gh-marca);
    outline-offset: 2px;
}

.gh-sobre-canal-nome {
    font-family: var(--gh-fonte-titulo);
    font-size: 15px;
    font-weight: 700;
    color: var(--gh-marca);
}

.gh-sobre-canal-resumo {
    font-size: 13px;
    color: var(--gh-texto-suave);
}

.gh-sobre-visao {
    position: relative;
    margin: -8px 0 0;
    padding: 24px 24px 20px;
    border: 0;
    border-radius: var(--gh-raio);
    background: var(--gh-fundo-secundario);
}

.gh-sobre-visao p {
    margin: 0 0 10px;
    font-family: var(--gh-fonte-titulo);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--gh-texto);
}

.gh-sobre-visao cite {
    font-size: 13px;
    font-style: normal;
    font-weight: 600;
    color: var(--gh-marca);
}

.gh-sobre-valores {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gh-sobre-valores li {
    padding: 8px 16px;
    border: 1px solid var(--gh-borda);
    border-radius: 999px;
    background: #fff;
    font-size: 14px;
    font-weight: 600;
    color: var(--gh-texto);
}

@media (min-width: 640px) {
    .gh-sobre-faixa img {
        height: 300px;
    }

    .gh-sobre-faixa figcaption {
        padding: 72px 28px 26px;
    }

    .gh-sobre-faixa-frase {
        font-size: 26px;
    }

    .gh-sobre-linha {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 16px;
    }

    .gh-sobre-linha li {
        padding: 26px 0 0;
    }

    .gh-sobre-linha li::before {
        top: 0;
    }

    .gh-sobre-linha li::after {
        top: 5px;
        right: -16px;
        bottom: auto;
        left: 18px;
        width: auto;
        height: 2px;
    }

    .gh-sobre-historia {
        grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
        gap: 24px;
    }

    .gt-portal .gh-sobre-historia img {
        max-height: none;
    }

    .gh-sobre-canais {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}


/* ==========================================================================
   ATENDIMENTO (/atendimento/) — 25/09/2026
   cartão dividido: foto com os canais | formulário; assunto em pílulas;
   cartão do escritório com foto e rota
   ========================================================================== */
.gh-atd {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
    box-shadow: var(--gh-sombra);
}

.gh-atd-painel {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 220px;
    background-color: var(--gh-marca-700);
    background-position: 30% center;
    background-size: cover;
}

.gh-atd-painel::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10, 42, 66, .15) 0%, rgba(10, 42, 66, .9) 75%);
}

.gh-atd-painel-conteudo {
    position: relative;
    width: 100%;
    padding: 22px;
    color: #fff;
}

.gh-atd-painel-titulo {
    margin: 0 0 14px;
    font-family: var(--gh-fonte-titulo);
    font-size: 20px;
    font-weight: 700;
    color: #fff;
}

.gh-atd-canais {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gh-atd-canais li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 14px;
    color: #fff;
}

.gh-atd-canais small {
    display: block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .7);
}

.gt-portal .gh-atd-canais a {
    font-weight: 600;
    color: #fff;
    text-decoration: none;
    word-break: break-word;
}

.gt-portal .gh-atd-canais a:hover {
    text-decoration: underline;
}

.gh-atd-canal-icone {
    display: flex;
    flex: 0 0 38px;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
}

.gh-atd-canal-icone svg {
    width: 18px;
    height: 18px;
}

.gh-atd-form {
    gap: 14px;
    padding: 22px;
}

.gh-atd-form-titulo {
    margin: 0;
    font-family: var(--gh-fonte-titulo);
    font-size: 20px;
    font-weight: 700;
    color: var(--gh-texto);
}

.gh-atd-assuntos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.gh-atd-assuntos legend {
    width: 100%;
    margin: 0 0 8px;
    padding: 0;
    border: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--gh-texto);
}

.gh-atd-assunto {
    position: relative;
    margin: 0;
    cursor: pointer;
}

.gh-atd-assunto input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.gh-atd-assunto span {
    display: inline-block;
    padding: 7px 14px;
    border: 1px solid var(--gh-borda);
    border-radius: 999px;
    background: #fff;
    font-size: 13px;
    font-weight: 600;
    color: var(--gh-texto-suave);
    transition: border-color .15s, background-color .15s, color .15s;
}

.gh-atd-assunto:hover span {
    border-color: var(--gh-marca);
    color: var(--gh-marca);
}

.gh-atd-assunto input:checked + span {
    border-color: var(--gh-marca);
    background: var(--gh-marca);
    color: #fff;
}

.gh-atd-assunto input:focus-visible + span {
    box-shadow: 0 0 0 4px var(--gh-marca-anel);
}

.gh-atd-form .gh-campo input,
.gh-atd-form .gh-campo textarea {
    padding: 12px 14px;
    background: var(--gh-fundo-secundario);
    border-color: transparent;
}

.gh-atd-form .gh-campo input:focus,
.gh-atd-form .gh-campo textarea:focus {
    background: #fff;
    border-color: #1f7fb8;
}

.gh-atd-form .gh-campo input::placeholder,
.gh-atd-form .gh-campo textarea::placeholder {
    color: #9aa7b2;
}

.gh-atd-rodape {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.gh-atd-rodape .gh-aceite-texto {
    margin: 0;
}

.gt-portal .gh-atd-rodape .gh-botao-marca {
    justify-content: center;
    width: 100%;
}

.gh-atd-escritorio {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    overflow: hidden;
    margin-top: 24px;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
}

.gh-atd-escritorio img {
    display: block;
    width: 100%;
    height: 180px;
    object-fit: cover;
}

.gh-atd-escritorio-texto {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 20px 22px;
}

.gh-atd-escritorio-texto .gh-rotulo-secao {
    margin: 0;
}

.gh-atd-escritorio-titulo {
    margin: 0;
    font-family: var(--gh-fonte-titulo);
    font-size: 20px;
    font-weight: 700;
    color: var(--gh-texto);
}

.gh-atd-escritorio address {
    margin: 0 0 6px;
    font-size: 15px;
    font-style: normal;
    color: var(--gh-texto-suave);
}

.gh-atd-escritorio .gh-botao-contorno svg {
    width: 18px;
    height: 18px;
}

@media (min-width: 768px) {
    .gh-atd {
        grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    }

    .gh-atd-painel {
        min-height: 100%;
    }

    .gh-atd-painel-conteudo {
        padding: 26px;
    }

    .gh-atd-form {
        padding: 28px;
    }

    .gh-atd-rodape {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .gt-portal .gh-atd-rodape .gh-botao-marca {
        flex: 0 0 auto;
        width: auto;
    }

    .gh-atd-escritorio {
        grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    }

    .gh-atd-escritorio img {
        height: 100%;
        min-height: 200px;
    }

    .gh-atd-escritorio-texto {
        justify-content: center;
        padding: 24px 28px;
    }
}


/* ==========================================================================
   TERMOS DE USO (/termos-de-uso/) — 25/09/2026
   "Em resumo" no topo, bloco de pedidos de dados e sumário fixo na lateral
   ========================================================================== */
.gh-termos-resumo {
    margin: 0 0 28px;
    padding: 22px;
    border: 1px solid var(--gh-borda);
    border-top: 3px solid var(--gh-marca);
    border-radius: var(--gh-raio);
    background: var(--gh-fundo-secundario);
}

.gh-termos-resumo-titulo {
    margin: 0 0 14px;
    font-family: var(--gh-fonte-titulo);
    font-size: 18px;
    font-weight: 700;
    color: var(--gh-texto);
}

.gh-termos-resumo ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gh-termos-resumo li {
    position: relative;
    padding-left: 24px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--gh-texto-suave);
}

.gh-termos-resumo li::before {
    content: "";
    position: absolute;
    top: 4px;
    left: 0;
    width: 14px;
    height: 8px;
    border-bottom: 2px solid var(--gh-marca);
    border-left: 2px solid var(--gh-marca);
    transform: rotate(-45deg);
}

.gh-termos-resumo strong {
    display: block;
    font-size: 15px;
    color: var(--gh-texto);
}

.gh-termos .gh-artigo-texto h2 {
    padding-top: 20px;
    border-top: 1px solid var(--gh-borda);
}

.gh-termos .gh-artigo-texto h2:first-child {
    padding-top: 0;
    border-top: 0;
}

.gh-termos-dados {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.gh-termos-dados .gh-texto-pequeno {
    margin: 0 0 4px;
}

.gt-portal .gh-termos-dados .gh-botao-bloco svg {
    width: 18px;
    height: 18px;
}

@media (min-width: 640px) {
    .gh-termos-resumo ul {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px 24px;
    }
}

@media (min-width: 992px) {
    .gh-termos-sumario {
        position: sticky;
        top: 90px;
    }
}


/* ======================================================================== */
/* AGENDA DA HOME (.ga-*) — pages2023/home2026/_agenda.php — 28/09/2026       */
/* assinatura: folha de calendário presa ao canto da foto (mês na faixa azul, */
/* dia em destaque); data por extenso em azul, título, horário e local.       */
/* ======================================================================== */

.gt-portal .ga-card {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--gh-borda);
    border-radius: var(--gh-raio);
    background: #fff;
    box-shadow: var(--gh-sombra);
    color: var(--gh-texto);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.gt-portal .ga-card:hover {
    color: var(--gh-texto);
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: var(--gh-sombra-alta);
}

.gt-portal .ga-card:focus-visible {
    outline: 2px solid var(--gh-marca);
    outline-offset: 3px;
}

.gt-portal .ga-foto {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: var(--gh-raio) var(--gh-raio) 0 0;
    background: var(--gh-fundo-secundario);
}

.gt-portal .ga-foto > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}

.gt-portal .ga-card:hover .ga-foto > img {
    transform: scale(1.04);
}

/* logo do anunciante, no canto de cima da foto */
.gt-portal .ga-logo {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 44px;
    height: 44px;
    padding: 3px;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 4px 12px -4px rgba(16, 32, 48, .35);
}

.gt-portal .ga-logo > img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* ---- a folha de calendário -------------------------------------------- */

.gt-portal .ga-folha {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-self: flex-start;
    width: 58px;
    margin: -36px 0 0 16px;
    overflow: hidden;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 10px 22px -10px rgba(16, 32, 48, .45), 0 0 0 1px var(--gh-borda);
    text-align: center;
}

.gt-portal .ga-folha-mes {
    position: relative;
    display: block;
    padding: 5px 0 4px;
    background: var(--gh-marca);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #fff;
}

/* os dois furos da espiral da folhinha */
.gt-portal .ga-folha-mes::before,
.gt-portal .ga-folha-mes::after {
    content: "";
    position: absolute;
    top: 3px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .55);
}

.gt-portal .ga-folha-mes::before {
    left: 9px;
}

.gt-portal .ga-folha-mes::after {
    right: 9px;
}

.gt-portal .ga-folha-dia {
    display: block;
    padding: 6px 0 8px;
    font-size: 26px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.03em;
    color: var(--gh-texto);
    font-variant-numeric: tabular-nums;
}

/* ---- texto ------------------------------------------------------------- */

.gt-portal .ga-corpo {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 6px;
    padding: 12px 16px 16px;
}

.gt-portal .ga-data {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--gh-marca);
}

.gt-portal .ga-titulo {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    margin: 0;
    font-family: var(--gh-fonte-titulo);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: -.01em;
    color: var(--gh-texto);
    transition: color .15s ease;
}

.gt-portal .ga-card:hover .ga-titulo {
    color: var(--gh-marca);
}

.gt-portal .ga-infos {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: auto;
    padding-top: 6px;
}

.gt-portal .ga-info {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    font-size: 13px;
    line-height: 1.35;
    color: var(--gh-texto-suave);
}

.gt-portal .ga-info > svg {
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
}

.gt-portal .ga-linha-unica {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* ---- grade: no celular vale a rolagem lateral (.gh-rolagem-mobile) ------ */

@media (min-width: 640px) {
    .gt-portal .ga-grade {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }
}

@media (min-width: 992px) {
    .gt-portal .ga-grade {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 24px;
    }
}

@media (max-width: 639px) {
    .gt-portal .gh-rolagem-mobile > .ga-card:hover {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gt-portal .ga-card,
    .gt-portal .ga-foto > img,
    .gt-portal .ga-titulo {
        transition: none;
    }

    .gt-portal .ga-card:hover,
    .gt-portal .ga-card:hover .ga-foto > img {
        transform: none;
    }
}


/* ======================================================================== */
/* SELO PREMIUM DO CARD DE EMPRESA — 28/09/2026                               */
/* a "fita" (.ribbon) das empresas PREMIUM dependia do boot.css, que o layout */
/* novo não carrega: virava item da linha, ocupava 18px e empurrava a foto.   */
/* Agora é um selo dourado com estrela, preso no canto de cima à direita.     */
/* ======================================================================== */

.gt-portal .card-empresa,
.gt-portal .card-empresa > .card-body {
    position: relative;
}

.gt-portal .card-empresa .ribbon {
    position: absolute;
    top: 10px;
    right: 10px;
    left: auto;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #f5a623;
    box-shadow: 0 4px 10px -4px rgba(16, 32, 48, .45);
    pointer-events: none;
}

.gt-portal .card-empresa .ribbon-inner {
    position: static;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    padding: 0;
    background: none;
}

.gt-portal .card-empresa .ribbon-inner i {
    margin: 0 !important;
    font-size: 12px;
    line-height: 1;
    color: #fff;
}

/* título não encosta no selo */
.gt-portal .card-empresa .card-body:has(> .ribbon) .title h3 {
    padding-right: 30px;
}
