/**
 * Guia de Guarapari — Experience 11/10 — v18.35.7
 *
 * Camada final, aditiva e segura:
 * - First mobile real
 * - leitura editorial sem zoom/pinça
 * - parágrafos curtos e respirados
 * - links claros e valorizados sem aparência publicitária
 * - continuidade contextual para Instagram
 * - nenhuma animação intrusiva ou alteração de banners comerciais
 */
:root {
    --guia-x-reading-size: 16.5px;
    --guia-x-reading-leading: 1.82;
    --guia-x-reading-track: .006em;
    --guia-x-reading-measure: 68ch;
    --guia-x-link: #0a5ed9;
}

/* Instagram contextual: presença editorial, não anúncio. */
.guia-instagram-contextual {
    width: min(100%, var(--guia-x-reading-measure));
    margin: 2.9rem auto 3.1rem;
    padding: 1.25rem 0;
    border-top: 1px solid rgba(11, 31, 51, .10);
    border-bottom: 1px solid rgba(11, 31, 51, .10);
}

.guia-instagram-contextual p {
    margin: 0;
    color: #526174;
    font-size: .9rem;
    line-height: 1.65;
    letter-spacing: .005em;
    text-wrap: pretty;
}

.guia-instagram-contextual__text {
    display: inline;
}

.guia-instagram-contextual__link {
    display: inline;
    margin-left: .28em;
    color: var(--guia-x-link);
    font-weight: 700;
    text-decoration: none;
    text-underline-offset: .22em;
    text-decoration-thickness: .08em;
    white-space: nowrap;
}

.guia-instagram-contextual__link:hover,
.guia-instagram-contextual__link:focus-visible {
    text-decoration: underline;
}

/* Editorial blog: leitura confortável sem alterar a arquitetura existente. */
.post-content,
.post-content p,
.post-content li {
    letter-spacing: var(--guia-x-reading-track);
}

.post-content {
    font-size: var(--guia-x-reading-size);
    line-height: var(--guia-x-reading-leading);
}

.post-content p {
    max-width: var(--guia-x-reading-measure);
    margin-top: 0;
    margin-bottom: 1.25em;
}

.post-content h2 {
    margin-top: 2.05em;
    margin-bottom: .72em;
    line-height: 1.22;
}

.post-content h3 {
    margin-top: 1.65em;
    margin-bottom: .68em;
    line-height: 1.28;
}

.post-content a {
    text-underline-offset: .2em;
    text-decoration-thickness: .075em;
}

/* Evento: corpo com medida editorial e ritmo consistente. */
.gevento-content {
    max-width: var(--guia-x-reading-measure);
    font-size: var(--guia-x-reading-size);
    line-height: var(--guia-x-reading-leading);
    letter-spacing: var(--guia-x-reading-track);
}

.gevento-content p {
    max-width: 68ch;
    margin-top: 0;
    margin-bottom: 1.25em;
}

.gevento-content h2,
.gevento-content h3 {
    line-height: 1.25;
    letter-spacing: -.018em;
}

.gevento-content a {
    text-underline-offset: .2em;
    text-decoration-thickness: .075em;
}

/* Praia: leitura de destino, com mais ar e medida controlada. */
.sp-copy {
    max-width: var(--guia-x-reading-measure);
    font-size: var(--guia-x-reading-size) !important;
    line-height: var(--guia-x-reading-leading) !important;
    letter-spacing: var(--guia-x-reading-track);
}

.sp-copy p {
    max-width: 68ch;
    margin-top: 0;
    margin-bottom: 1.28em;
}

.sp-copy h2,
.sp-copy h3 {
    line-height: 1.25;
}

.sp-copy a {
    text-underline-offset: .2em;
    text-decoration-thickness: .075em;
}

/* Mantenedores, Parceiros e links: destaque pela clareza, não por ruído. */
.empresa-single a,
.gevento a,
.sp-page a,
.guia-single-post a {
    -webkit-tap-highlight-color: transparent;
}

@media (hover: hover) {
    .guia-instagram-contextual__link:hover {
        text-decoration-thickness: .1em;
    }
}

@media (max-width: 768px) {
    .guia-instagram-contextual {
        width: 100%;
        margin: 2.55rem auto 2.75rem;
        padding: 1.15rem 0;
    }

    .guia-instagram-contextual p {
        font-size: .91rem;
        line-height: 1.68;
    }

    .guia-instagram-contextual__link {
        margin-left: .18em;
    }

    .post-content {
        font-size: 16.5px;
        line-height: 1.82;
        letter-spacing: .006em;
    }

    .post-content p {
        margin-bottom: 1.2em;
    }

    .post-content h2 {
        font-size: clamp(1.5rem, 7vw, 1.9rem);
        line-height: 1.22;
        margin-top: 1.9em;
        margin-bottom: .68em;
    }

    .post-content h3 {
        font-size: 1.25rem;
        line-height: 1.27;
        margin-top: 1.55em;
        margin-bottom: .62em;
    }

    .gevento-content,
    .gevento-content > p:first-child {
        font-size: 16.5px !important;
        line-height: 1.82 !important;
        letter-spacing: .006em;
    }

    .gevento-content p {
        margin-bottom: 1.18em;
    }

    .sp-copy {
        font-size: 16.5px !important;
        line-height: 1.82 !important;
        letter-spacing: .006em;
    }

    .sp-copy p {
        margin-bottom: 1.2em;
    }
}

@media (max-width: 480px) {
    .guia-instagram-contextual {
        margin-top: 2.25rem;
        margin-bottom: 2.5rem;
    }

    .guia-instagram-contextual p {
        font-size: .9rem;
        line-height: 1.7;
    }
}

/* Experience 11 — módulos utilitários: integração editorial discreta. */
.guia-instagram-contextual--module {
    max-width: 760px;
    margin: 3rem auto 2.8rem;
    padding: 1.05rem 0;
    border-top: 1px solid rgba(15, 23, 42, .10);
    border-bottom: 1px solid rgba(15, 23, 42, .10);
    color: #475467;
    font-size: .92rem;
    line-height: 1.65;
}
.guia-instagram-contextual--module .guia-instagram-contextual__link {
    color: var(--guia-x-link, #0a5ed9);
    font-weight: 650;
    text-decoration: underline;
    text-decoration-thickness: .06em;
    text-underline-offset: .18em;
    white-space: nowrap;
}

/* Não introduzir um segundo anúncio: o banner continua sendo renderizado
   exclusivamente pelo motor comercial existente. */
.guia-onibus-shortcode-content .guia-instagram-contextual--module,
.guia-market-page-shell .guia-instagram-contextual--module,
.gsv__container > .guia-instagram-contextual--module,
.guia-single-market + .guia-instagram-contextual--module {
    width: min(100%, 760px);
}

@media (max-width: 768px) {
    .guia-instagram-contextual--module {
        margin-top: 2.4rem;
        margin-bottom: 2.35rem;
        padding: .95rem 0;
        font-size: .9rem;
        line-height: 1.65;
    }
}


/* =========================================================
   Experience 11/10 — refinamentos finais v18.35.1
   Mobile: um único dono da largura útil por componente.
   ========================================================= */

/* Instagram: nunca encostar nas bordas do viewport em módulos fora do shell. */
.guia-instagram-contextual--module {
    box-sizing: border-box;
    width: min(760px, calc(100% - 32px));
    max-width: 760px;
}

.guia-instagram-contextual--module .guia-instagram-contextual__link {
    white-space: normal;
}

/* Single Post: o container já fornece a régua lateral; o artigo não deve somar outra. */
@media (max-width: 768px) {
    .guia-single-post__container {
        padding-left: 16px;
        padding-right: 16px;
    }

    .guia-single-post__container .post-article {
        padding-left: 0;
        padding-right: 0;
    }

    .guia-single-post__container .post-featured {
        margin-left: -16px;
        margin-right: -16px;
    }
}

@media (max-width: 480px) {
    /* Single Post: mantém a mesma régua de 16px do restante do sistema.
       Não usar width:calc() junto com padding: isso soma duas réguas. */
    .guia-single-post__container {
        width: 100% !important;
        box-sizing: border-box !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .guia-single-post__container .post-featured {
        margin-left: -16px !important;
        margin-right: -16px !important;
    }
}

/* Single Vaga: uma única régua lateral, inclusive nos blocos de conteúdo. */
@media (max-width: 768px) {
    body.guia-single-vaga-page .gsv__container,
    body.single-vaga .gsv__container,
    .gsv__container {
        box-sizing: border-box;
        width: 100%;
        max-width: 1200px;
        margin-left: auto;
        margin-right: auto;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

@media (max-width: 480px) {
    body.guia-single-vaga-page .gsv__container,
    body.single-vaga .gsv__container,
    .gsv__container {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }
}

/* Combustíveis: primeira dobra mais informativa, sem a tripla leitura mínimo/médio/máximo. */
.ggpc-v5 .ggpc-overview .ggpc-summary-line {
    display: none !important;
}

.ggpc-v5 .ggpc-overview .ggpc-meta {
    position: relative;
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    margin: 0;
    color: #667085;
    font-size:14px;
    line-height: 1.45;
}

.ggpc-v5 .ggpc-overview .ggpc-meta::before {
    content: '';
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    border-radius: 50%;
    background: #16845b;
    box-shadow: 0 0 0 3px rgba(22,132,91,.09);
}

.ggpc-v5 .ggpc-overview .ggpc-meta > span:first-child {
    font-weight: 600;
    color: #475467;
}

.ggpc-v5 .ggpc-overview .ggpc-meta > span:first-child::after {
    content: ' em';
}

.ggpc-v5 .ggpc-overview .ggpc-meta > span:last-child strong {
    font-weight: 650;
    color: #10213d;
}

@media (max-width: 680px) {
    .ggpc-v5 .ggpc-overview {
        grid-template-columns: 1fr;
        gap: 0;
        margin-bottom: 14px;
        padding: 8px 0 14px;
    }

    .ggpc-v5 .ggpc-overview .ggpc-meta {
        font-size: 14px;
    }
}


/* Ônibus — single de viação: hierarquia limpa e progressiva, sobretudo no mobile. */
body.gob-onibus-company-page .gob-company {
    width: 100%;
    max-width: 920px;
    margin-inline: auto;
    padding-top: 20px;
}

body.gob-onibus-company-page .gob-company__breadcrumb {
    margin-bottom: 18px !important;
}

body.gob-onibus-company-page .gob-company__header {
    max-width: 760px;
    margin-bottom: 16px !important;
}

body.gob-onibus-company-page .gob-company__header h1 {
    font-size: clamp(30px, 4vw, 42px) !important;
    line-height: 1.05 !important;
    letter-spacing: -.035em !important;
    margin-bottom: 10px !important;
}

body.gob-onibus-company-page .gob-company__header p {
    max-width: 680px;
    font-size: 15.5px !important;
    line-height: 1.62 !important;
}

body.gob-onibus-company-page .gob-company__stats {
    margin-bottom: 14px !important;
}

body.gob-onibus-company-page .gob-company__back {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    margin-bottom: 28px !important;
    font-size:14px !important;
}

body.gob-onibus-company-page .gob-company__lines-heading {
    align-items: end;
    margin-bottom: 14px !important;
}

body.gob-onibus-company-page .gob-company__lines-heading h2 {
    font-size: 21px !important;
    line-height: 1.2 !important;
}

body.gob-onibus-company-page .gob-company__line-filter {
    width: min(300px, 100%);
}

body.gob-onibus-company-page .gob-company__line-filter input {
    min-height: 46px;
}

@media (max-width: 720px) {
    body.gob-onibus-company-page .gob-company {
        max-width: none;
        padding-top: 16px !important;
        padding-bottom: 30px !important;
    }

    body.gob-onibus-company-page .gob-company__breadcrumb {
        margin-bottom: 16px !important;
    }

    body.gob-onibus-company-page .gob-company__header {
        margin-bottom: 14px !important;
    }

    body.gob-onibus-company-page .gob-company__header h1 {
        font-size: clamp(28px, 8vw, 34px) !important;
        line-height: 1.06 !important;
    }

    body.gob-onibus-company-page .gob-company__header p {
        font-size: 15px !important;
        line-height: 1.58 !important;
    }

    body.gob-onibus-company-page .gob-company__stats {
        margin-bottom: 10px !important;
        line-height: 1.5 !important;
    }

    body.gob-onibus-company-page .gob-company__back {
        margin-bottom: 25px !important;
    }

    body.gob-onibus-company-page .gob-company__lines-heading {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
        margin-bottom: 13px !important;
    }

    body.gob-onibus-company-page .gob-company__lines-heading h2 {
        font-size: 19px !important;
    }

    body.gob-onibus-company-page .gob-company__line-filter {
        width: 100%;
    }

    body.gob-onibus-company-page .gob-company__line-filter > span {
        font-size:14px !important;
    }

    body.gob-onibus-company-page .gob-company__line-filter input {
        min-height: 50px !important;
        font-size: 16px !important;
        border-radius: 9px !important;
    }

    body.gob-onibus-company-page .gob-line-card__header {
        min-height: 60px !important;
    }
}


/* =========================================================
   Experience 11/10 — largura pública final v18.35.5
   Regra: um único frame externo; componentes internos não criam
   uma segunda régua lateral.
   ========================================================= */
@media (max-width: 768px) {
    /* Single marketplace: 16px de proteção por lado, sem estreitamento
       adicional no viewport pequeno. */
    body.guia-market-single-page .guia-single-market {
        width: calc(100% - 32px) !important;
        max-width: none !important;
        margin-inline: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* Instagram em singles de marketplace usa a mesma régua do conteúdo. */
    body.guia-market-single-page .guia-single-market > .guia-instagram-contextual--module {
        width: 100% !important;
        max-width: 760px !important;
        margin-inline: auto !important;
    }

    /* Post: o frame é o único dono do gutter. */
    .guia-single-post__container {
        box-sizing: border-box !important;
        width: min(100%, 1200px) !important;
        margin-inline: auto !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .guia-single-post__container .post-article {
        width: 100% !important;
        max-width: 860px !important;
        margin-inline: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    .guia-single-post__container .post-content {
        width: 100% !important;
        max-width: none !important;
    }

    /* Single Praia: explicita o gutter sem assumir a geometria interna do plugin. */
    body.guia-single-praia-page .gpbp-sponsored[data-context="praia_single"] {
        --gpbp-container-gutter-mobile: 16px;
    }
}

@media (max-width: 480px) {
    /* Não reduzir novamente a régua em telas muito pequenas: 16px continua
       sendo a proteção mínima consistente do sistema público. */
    body.guia-market-single-page .guia-single-market,
    .guia-single-post__container {
        width: calc(100% - 32px) !important;
    }
}

/* Combustíveis: a atualização já vive na descrição do H1. O bloco legado
   não deve consumir espaço antes dos filtros. */
.guia-combustiveis-page__content .ggpc-v5 .ggpc-overview {
    display: none !important;
}

/* =========================================================
   Experience 11/10 — banners inseridos no corpo de singles
   O conteúdo já possui sua própria régua lateral. O banner do
   plugin não deve acrescentar uma segunda régua interna.
   Aplica somente às posições inseridas após parágrafo, preservando
   hubs e banners posicionados fora do conteúdo.
   ========================================================= */
@media (max-width: 768px) {
    body.guia-single-praia-page .sp-copy > .gpbp-sponsored[data-position="after_first_paragraph"],
    body.guia-single-praia-page .sp-copy > .gpbp-sponsored[data-position="after_second_paragraph"],
    body.guia-single-praia-page .sp-copy > .gpbp-sponsored[data-position="end_content"],
    body.guia-single-evento-page .gevento-content > .gpbp-sponsored[data-position="after_first_paragraph"],
    body.guia-single-evento-page .gevento-content > .gpbp-sponsored[data-position="after_second_paragraph"],
    body.guia-single-evento-page .gevento-content > .gpbp-sponsored[data-position="end_content"],
    .guia-single-post__container .post-content .gpbp-sponsored[data-position="after_first_paragraph"],
    .guia-single-post__container .post-content .gpbp-sponsored[data-position="after_second_paragraph"],
    .guia-single-post__container .post-content .gpbp-sponsored[data-position="end_content"] {
        --gpbp-container-gutter-mobile: 0px;
    }
}


/* 18.35.7 — conforto tipográfico mobile / leitura pública
   Foco especial em Ônibus, onde há uso recorrente por pessoas idosas.
   14px é o piso para texto público compacto; leitura e controles ficam em 16px+. */
@media (max-width: 720px) {
    body {
        font-size: 16px;
    }

    body.gob-onibus-company-page .gob-company__header p {
        font-size: 16px !important;
        line-height: 1.65 !important;
    }

    body.gob-onibus-company-page .gob-company__back {
        font-size: 14px !important;
        min-height: 40px;
    }

    body.gob-onibus-company-page .gob-company__lines-heading h2 {
        font-size: 21px !important;
    }

    body.gob-onibus-company-page .gob-company__line-filter input {
        min-height: 52px !important;
        font-size: 17px !important;
        line-height: 1.4 !important;
    }

    body.gob-onibus-company-page .gob-company__line-filter > span {
        font-size: 14px !important;
    }
}

/* 18.35.8 — régua mobile confortável: nenhum texto funcional abaixo de 14px */
@media (max-width: 768px) {
  body :where(p, a, li, label, button, input, select, textarea, small, dt, dd) {
    font-size: max(14px, 1em) !important;
  }
  body :where(p, a, li, label, button, input, select, textarea, small, dt, dd) :where(span, strong, em) {
    font-size: inherit !important;
  }
}
