/**
 * Homologação final de acabamento — frame público e refinamentos pontuais.
 */

:root {
    --guia-public-frame: 1248px;
    --guia-public-padding: clamp(16px, 2vw, 24px);
}

/* =========================================================
   GABARITO PÚBLICO CONSOLIDADO — v18.23
   Uma abertura, uma hierarquia e uma régua para todos os módulos.
========================================================= */
.guia-public-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    margin: 0 0 30px;
    padding: clamp(28px, 4vw, 48px) 0 0;
}

.guia-public-header__copy { min-width: 0; }

.guia-public-header__title {
    max-width: 900px;
    margin: 0;
    color: #10213d;
    font-size: clamp(34px, 4vw, 52px);
    font-weight: 720;
    line-height: 1.04;
    letter-spacing: -.035em;
}

.guia-public-header__description {
    max-width: 720px;
    margin: 14px 0 0;
    color: #526274;
    font-size: 16px;
    line-height: 1.65;
}

.guia-public-header__eyebrow {
    margin: 0 0 10px;
    color: #0c61d8;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.guia-public-header__aside {
    display: flex;
    align-items: center;
    gap: 18px;
    flex: 0 0 auto;
}

.guia-public-header__meta {
    margin: 0;
    color: #64748b;
    font-size: 13px;
}

/* Home: um único sistema de descoberta em grade 3 × 3. */
.ggp-v25-shortcuts { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }

/* Módulos utilitários: conteúdo útil imediatamente após o H1. */
.guia-combustiveis-page__header,
.guia-clima-page__header,
.guia-onibus-page__header {
    margin-bottom: 22px !important;
    padding-top: clamp(24px, 3vw, 40px) !important;
}

.guia-combustiveis-page__header { margin-bottom: 10px !important; }
.guia-combustiveis-page__content .ggpc-shell { padding-top: 0 !important; }

.guia-combustiveis-page__content .ggpc-hero,
.guia-clima-page__content .gcp-header {
    margin: 0 0 18px !important;
    padding: 0 !important;
}

.guia-onibus-entry-content .gob-busca-premium {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.guia-onibus-entry-content .gob-busca-premium__container {
    padding-top: 18px !important;
}

.guia-onibus-single-page .page-header { margin-bottom: 18px !important; }
.guia-onibus-single-page .page-featured-image { display: none !important; }
.guia-onibus-single-page .gob-company__header { margin-top: 0 !important; }
.guia-onibus-single-page .gob-company__header h2 { margin-top: 0; }
.guia-onibus-identity { display: flex; align-items: center; gap: 18px; }
.guia-onibus-identity__image {
    width: 72px !important;
    height: 72px !important;
    flex: 0 0 72px;
    object-fit: cover;
    border: 1px solid #dce4ed;
    border-radius: 12px;
}
.guia-onibus-identity .page-title { margin: 0 !important; }

/* Diretórios comerciais: mídia informativa, nunca dominante. */
.tax-categoria_empresa .empresa-card__media,
.tax-categoria_empresa .guia-company-card__media,
.tax-categoria_empresa .card-empresa__image {
    aspect-ratio: 16 / 9 !important;
    max-height: 190px !important;
}

.single-empresa .empresa-sidebar .empresa-actions {
    align-items: stretch;
}

.single-empresa .empresa-sidebar :is(.btn-whatsapp, .btn-phone, .empresa-action-whatsapp, .empresa-action-phone) {
    min-height: 50px !important;
}

.single-empresa .empresa-sidebar :is(.btn-phone, .empresa-action-phone) {
    flex: 0 1 auto !important;
}

@media (max-width: 720px) {
    .guia-public-header {
        display: block;
        margin-bottom: 22px;
        padding-top: 24px;
    }

    .guia-public-header__title { font-size: clamp(32px, 10vw, 42px); }
    .guia-public-header__description { margin-top: 10px; font-size: 15px; }
    .guia-public-header__aside { margin-top: 16px; justify-content: space-between; }

    .guia-onibus-identity { align-items: flex-start; gap: 12px; }
    .guia-onibus-identity__image { width: 56px !important; height: 56px !important; flex-basis: 56px; }

    .ggp-v25-shortcuts { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
}

/* =========================================================
   HOMOLOGAÇÃO TIPOGRÁFICA TRANSVERSAL — 18.27
   Mesma origem, mesma distância, mesma régua de H1.
========================================================= */
body:is(.guia-page-ofertas,.guia-page-classificados) .guia-market-page-shell {
    padding-top: 0 !important;
}

body:is(.guia-page-ofertas,.guia-page-classificados) .guia-market-page-header,
.guia-onibus-page__header,
.guia-combustiveis-page__header {
    margin-top: 0 !important;
    margin-bottom: 24px !important;
    padding-top: 24px !important;
}

.guia-public-header__title {
    font-weight: 700 !important;
    line-height: 1.06 !important;
    letter-spacing: -.035em !important;
    text-wrap: balance;
}

/* Populares: card vertical compacto e mídia canônica 16:9. */
.guia-eventos-page .guia-popular-card {
    display: block !important;
    min-height: 0 !important;
}
.guia-eventos-page .guia-popular-card .guia-event-media {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
}
.guia-eventos-page .guia-popular-card .guia-event-media :is(img,.guia-picture) {
    width: 100% !important;
    height: 100% !important;
    aspect-ratio: 16 / 9 !important;
    object-fit: cover !important;
}
.guia-eventos-page .guia-popular-card .guia-event-content {
    display: block !important;
    padding: 12px 13px 14px !important;
}

@media (max-width: 720px) {
    .guia-public-header {
        margin-bottom: 22px !important;
        padding-top: 22px !important;
    }
    .guia-public-header__title {
        font-size: clamp(27px, 8.3vw, 34px) !important;
        line-height: 1.05 !important;
    }
    .guia-onibus-page__header .guia-public-header__title,
    .guia-combustiveis-page__header .guia-public-header__title {
        max-width: none !important;
        font-size: clamp(22px, 7.2vw, 29px) !important;
        line-height: 1.06 !important;
    }
    body:is(.guia-page-ofertas,.guia-page-classificados) .guia-market-page-header,
    .guia-onibus-page__header,
    .guia-combustiveis-page__header {
        margin-bottom: 22px !important;
        padding-top: 22px !important;
    }
    .guia-eventos-page .guia-popular-card .guia-event-title {
        font-size: 15px !important;
        font-weight: 650 !important;
    }
}

/*
 * Frame canônico: 1248px externos, 24px internos e 1200px úteis.
 * No mobile o frame ocupa a viewport e conserva 16px de proteção.
 */
:is(
    .site-header .container,
    .ggp-v25-container,
    .guia-praias-shell,
    .guia-container,
    .gg-shell,
    .gevento-container,
    .gevento-hero__container,
    .guia-comercial__container,
    .gc-categoria__container,
    .empresa-container,
    .gc-empregos__container,
    .guia-breadcrumb-system__inner,
    .sp-wrap,
    .gc-profissional__container,
    .blog-container,
    .guia-single-post__container,
    .guia-onibus-shortcode-page > .guia-container,
    .guia-clima-page__shell,
    .guia-combustiveis-page__shell,
    .guia-market-page-shell,
    .guia-market-breadcrumb__inner,
    .guia-single-market,
    .footer-container
) {
    box-sizing: border-box !important;
    width: min(var(--guia-public-frame), 100%) !important;
    max-width: var(--guia-public-frame) !important;
    margin-inline: auto !important;
    padding-inline: var(--guia-public-padding) !important;
}

/* Breadcrumb local já está dentro do frame: não recebe um segundo recuo. */
:is(.guia-container, .gc-categoria__container, .guia-comercial__container, .blog-container, .guia-single-post__container)
    .guia-breadcrumb-system__inner--local {
    width: 100% !important;
    max-width: none !important;
    padding-inline: 0 !important;
}

/* Eventos populares: leitura rápida, clique para aprofundar. */
.guia-eventos-page .guia-page-header {
    padding-bottom: 18px !important;
}

.guia-eventos-page .guia-populares {
    margin-top: 0;
    margin-bottom: 18px;
}

.guia-eventos-page .guia-section-head {
    margin-bottom: 10px;
}

.guia-eventos-page .guia-populares .guia-section-title {
    font-size: clamp(21px, 2vw, 26px) !important;
    line-height: 1.18 !important;
    font-weight: 650 !important;
    letter-spacing: -.025em !important;
}

.guia-eventos-page .guia-populares-track {
    grid-auto-columns: calc((100% - 32px) / 3) !important;
    gap: 16px !important;
}

.guia-eventos-page .guia-popular-card {
    display: grid !important;
    grid-template-columns: 128px minmax(0, 1fr) !important;
    min-height: 128px;
}

.guia-eventos-page .guia-popular-card .guia-event-media {
    width: 128px;
    height: 100%;
    min-height: 128px;
    aspect-ratio: auto;
}

.guia-eventos-page .guia-popular-card .guia-event-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 12px;
}

.guia-eventos-page .guia-popular-card .guia-event-title {
    min-height: 0;
    margin-bottom: 7px;
    font-size: 15px;
    line-height: 1.25;
}

.guia-eventos-page .guia-popular-card .guia-event-meta-top {
    display: block;
    font-size: 11px;
}

.guia-eventos-page .guia-popular-card .guia-event-meta-bottom {
    min-height: 0;
    margin-top: 7px;
    padding-top: 7px;
}

/* Agenda completa: mais opções no primeiro campo visual, sem texto repetitivo. */
@media (min-width: 1100px) {
    .guia-eventos-page .guia-events-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 18px !important;
    }

    .guia-eventos-page .guia-event-content {
        padding: 14px 14px 16px;
    }

    .guia-eventos-page .guia-event-title {
        min-height: 42px;
        font-size: 16px;
    }
}

/* Blog: badge editorial consistente e um único recorte para todo o grid. */
.blog-template .blog-hero-badge {
    font-weight: 700 !important;
}

.blog-template .blog-card-image-wrapper {
    aspect-ratio: 16 / 9;
}

.blog-template .blog-card-image {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center !important;
}

.blog-template .blog-card-category {
    border: 0 !important;
    background: rgba(7, 27, 51, .88) !important;
    color: #fff !important;
    font-weight: 650 !important;
}

.guia-single-post .guia-breadcrumb-system {
    margin-bottom: 2rem;
}

/* Cabeçalho público: uma única hierarquia, sem competir com o conteúdo. */
:is(.guia-clima-page__header, .guia-combustiveis-page__header) {
    padding: clamp(26px, 4vw, 42px) 0 18px !important;
}

:is(.guia-clima-page__header, .guia-combustiveis-page__header) > p {
    margin: 0 0 8px !important;
    color: var(--gg-primary, #075dcc) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
}

:is(.guia-clima-page__header, .guia-combustiveis-page__header) > h1 {
    max-width: 980px !important;
    font-size: clamp(38px, 4.4vw, 54px) !important;
    font-weight: 720 !important;
    line-height: 1.04 !important;
}

:is(.guia-clima-page__content .gcp-title, .guia-combustiveis-page__content .ggpc-hero__title) {
    font-size: clamp(24px, 2.7vw, 34px) !important;
    font-weight: 680 !important;
    line-height: 1.15 !important;
    letter-spacing: -.025em !important;
}

/* Blog: breadcrumb + título + apoio + filtros; sem uma segunda introdução. */
.blog-template .blog-hero-content {
    padding: clamp(24px, 4vw, 38px) 0 clamp(24px, 4vw, 34px) !important;
}

.blog-template .blog-hero-title {
    font-size: clamp(38px, 4.4vw, 54px) !important;
    font-weight: 720 !important;
}

.blog-template .blog-grid-section > .blog-container > .section-header {
    margin-bottom: 24px !important;
    text-align: left !important;
}

.blog-template .blog-grid-section > .blog-container > .section-header .section-title {
    color: var(--gg-ink, #0b1f33) !important;
    font-size: clamp(26px, 3vw, 34px) !important;
    font-weight: 680 !important;
}

/* Marketplace: mesma densidade e hierarquia dos demais módulos públicos. */
.guia-single-market .guia-single-cover-wrap {
    aspect-ratio: 16 / 10 !important;
}

.guia-single-market .guia-single-hero.is-no-media .guia-single-cover-wrap {
    aspect-ratio: 16 / 7 !important;
    max-height: 340px;
}

.guia-single-market .guia-single-card h1 {
    font-size: clamp(32px, 3vw, 42px) !important;
    font-weight: 720 !important;
    line-height: 1.07 !important;
}

.guia-single-market :is(.guia-single-type, .guia-single-meta-label, .guia-single-detail > span, .guia-single-share-title) {
    font-size: 11px !important;
}

.guia-single-market .guia-single-share-btn {
    min-height: 42px !important;
    padding-inline: 12px !important;
}

.guia-single-market .guia-single-content-head h2 {
    font-size: 22px !important;
    font-weight: 680 !important;
}

@media (max-width: 700px) {
    .guia-single-market .guia-single-cover-wrap {
        aspect-ratio: 16 / 10 !important;
    }

    .guia-single-market .guia-single-hero.is-no-media .guia-single-cover-wrap {
        aspect-ratio: 16 / 8 !important;
        max-height: 240px;
    }

    .guia-single-market .guia-single-card {
        padding: 20px !important;
    }

    .guia-single-market .guia-single-share-btn {
        min-height: 44px !important;
    }
}

/* Single Empresa: box “Sobre” com área interna deliberada. */
.single-empresa .empresa-extra > .sobre {
    margin-top: 28px !important;
    padding: clamp(22px, 3vw, 30px) !important;
    border: 1px solid #e1e7ee !important;
    border-radius: 14px !important;
    background: #fff !important;
}

.single-empresa .empresa-extra > .sobre h2 {
    margin-top: 0 !important;
}

.single-empresa .empresa-google-mark {
    display: inline-grid;
    width: 18px;
    height: 18px;
    place-items: center;
    flex: 0 0 18px;
    border-radius: 50%;
    background: #fff;
    color: #1769e0;
    font: 800 13px/1 Arial, sans-serif;
}

/* Rodapé: a marca não pode desaparecer sobre o azul-marinho. */
.site-footer .footer-logo {
    filter: brightness(0) invert(1);
    opacity: .96;
}

.site-footer .footer-google {
    border-color: rgba(255,255,255,.18);
    background: rgba(255,255,255,.09);
}

/* Fechamento transversal: superfícies sóbrias; pills apenas para filtros e estados. */
.guia-praias-page :is(.guia-praias-card, .guia-praias-top-card, .guia-praias-share-box),
.guia-single-praia-page :is(.sp-card, .sp-section-card, .sp-photo-stage, .sp-related-card, .sp-related-card__media) {
    border-radius: 8px !important;
}

.guia-single-praia-page .sp-hero-btn {
    border-radius: 8px !important;
}

/* Marketplace: mídia como vitrine e painel lateral apenas com decisão e contato. */
.guia-single-market .guia-single-hero {
    grid-template-columns: minmax(0, 1.42fr) minmax(340px, .72fr);
    gap: 24px;
}

.guia-single-market :is(.guia-single-cover-wrap, .guia-single-card, .guia-single-content) {
    border-radius: 8px !important;
    border-color: #dfe5ec !important;
    box-shadow: 0 10px 30px rgba(15, 31, 51, .045) !important;
}

.guia-single-market .guia-single-card {
    padding: 24px !important;
}

.guia-single-market .guia-single-card h1 {
    font-size: clamp(30px, 2.8vw, 40px) !important;
    letter-spacing: -.035em !important;
}

.guia-single-market .guia-single-hero.is-no-media .guia-single-cover-wrap {
    aspect-ratio: 16 / 8 !important;
    max-height: 300px !important;
}

.guia-single-market .guia-single-specs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.guia-single-market .guia-single-specs li,
.guia-single-market :is(.guia-single-interest-primary .guia-interest-btn, .guia-single-interest-primary .guia-interest-send, .guia-single-whatsapp) {
    border-radius: 8px !important;
}

.guia-single-market .guia-single-content {
    padding: clamp(22px, 3vw, 30px) !important;
}

.guia-single-market .guia-single-details--content {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-top: 22px;
    padding-top: 22px;
}

.guia-single-market .guia-single-details--content .guia-single-detail + .guia-single-detail {
    margin-top: 0;
}

@media (max-width: 900px) {
    .guia-single-market .guia-single-hero { grid-template-columns: 1fr; }
    .guia-single-market .guia-single-details--content { grid-template-columns: 1fr; gap: 16px; }
}

@media (max-width: 700px) {
    .guia-single-market .guia-single-hero { gap: 16px; }
    .guia-single-market .guia-single-card { padding: 20px !important; }
    .guia-single-market .guia-single-card h1 { font-size: clamp(28px, 9vw, 36px) !important; }
    .guia-single-market .guia-single-hero.is-no-media .guia-single-cover-wrap {
        aspect-ratio: 16 / 7 !important;
        max-height: 210px !important;
    }
}

@media (max-width: 720px) {
    :root { --guia-public-padding: 16px; }

    .guia-eventos-page .guia-populares-track {
        grid-auto-columns: minmax(270px, 86vw) !important;
    }

    .guia-eventos-page .guia-popular-card {
        grid-template-columns: 92px minmax(0, 1fr) !important;
        min-height: 96px;
    }

    .guia-eventos-page .guia-popular-card .guia-event-media {
        width: 92px;
        min-height: 96px;
    }

    .guia-eventos-page .guia-populares .guia-section-title {
        font-size: 20px !important;
        font-weight: 600 !important;
    }

    .guia-eventos-page .guia-popular-card .guia-event-content {
        padding: 9px 10px;
    }

    .guia-eventos-page .guia-popular-card .guia-event-title {
        margin-bottom: 5px;
        font-size: 14px;
        font-weight: 600;
    }

    .guia-eventos-page .guia-popular-card .guia-event-meta-bottom {
        margin-top: 5px;
        padding-top: 5px;
    }

    .guia-eventos-page .guia-events-grid {
        gap: 20px !important;
    }

    .single-empresa .empresa-extra > .sobre {
        margin-top: 20px !important;
        padding: 20px !important;
    }
}

/* 18.27 — fechamento autoritativo após regras históricas. */
body:is(.guia-page-ofertas,.guia-page-classificados) .guia-market-page-shell{padding-top:0!important}
body:is(.guia-page-ofertas,.guia-page-classificados) .guia-market-page-header,
.guia-onibus-page__header,.guia-combustiveis-page__header{margin-top:0!important;margin-bottom:24px!important;padding-top:24px!important}
.guia-public-header__title{font-weight:700!important;line-height:1.06!important;letter-spacing:-.035em!important;text-wrap:balance}
.guia-eventos-page .guia-popular-card{display:block!important;min-height:0!important}
.guia-eventos-page .guia-popular-card .guia-event-media{width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:16/9!important}
.guia-eventos-page .guia-popular-card .guia-event-media :is(img,.guia-picture){width:100%!important;height:100%!important;aspect-ratio:16/9!important;object-fit:cover!important}
.guia-eventos-page .guia-popular-card .guia-event-content{display:block!important;padding:12px 13px 14px!important}
@media(max-width:720px){
  .guia-public-header{margin-bottom:22px!important;padding-top:22px!important}
  .guia-public-header__title{font-size:clamp(27px,8.3vw,34px)!important;line-height:1.05!important}
  .guia-onibus-page__header .guia-public-header__title,.guia-combustiveis-page__header .guia-public-header__title{max-width:none!important;font-size:clamp(22px,7.2vw,29px)!important;line-height:1.06!important}
  body:is(.guia-page-ofertas,.guia-page-classificados) .guia-market-page-header,.guia-onibus-page__header,.guia-combustiveis-page__header{margin-bottom:22px!important;padding-top:22px!important}
  .guia-eventos-page .guia-popular-card .guia-event-title{font-size:15px!important;font-weight:650!important}
}

/* 18.28 — contrato único e mensurável dos cabeçalhos públicos auditados. */
.guia-title-break-mobile{display:none}
:is(.guia-onibus-page__header,.guia-combustiveis-page__header,.guia-market-page-header).guia-public-header{
  box-sizing:border-box!important;
  width:100%!important;
  margin:0!important;
  padding:24px 0 28px!important;
}
:is(.guia-onibus-page__header,.guia-combustiveis-page__header,.guia-market-page-header) .guia-public-header__copy{
  margin:0!important;
  padding:0!important;
}
:is(.guia-onibus-page__header,.guia-combustiveis-page__header,.guia-market-page-header) .guia-public-header__title{
  margin:0!important;
  font-weight:700!important;
  line-height:1.04!important;
  letter-spacing:-.035em!important;
}
:is(.guia-onibus-page__header,.guia-combustiveis-page__header,.guia-market-page-header) .guia-public-header__description{
  margin:10px 0 0!important;
}
@media(max-width:720px){
  :is(.guia-onibus-page__header,.guia-combustiveis-page__header,.guia-market-page-header).guia-public-header{
    margin:0!important;
    padding:20px 0 24px!important;
  }
  :is(.guia-onibus-page__header,.guia-combustiveis-page__header,.guia-market-page-header) .guia-public-header__title{
    font-size:clamp(26px,8vw,32px)!important;
    line-height:1.04!important;
    text-wrap:normal!important;
  }
  :is(.guia-onibus-page__header,.guia-combustiveis-page__header) .guia-public-header__title{
    font-size:clamp(20px,6.6vw,28px)!important;
  }
  .guia-title-break-mobile{display:block}
}
