/*
 * Guia de Guarapari — Sistema tipográfico editorial v13.9.0
 * Escopo: páginas públicas de descoberta, diretórios e conteúdo.
 * Mantém a identidade visual de cada template e uniformiza hierarquia,
 * ritmo vertical, pesos e legibilidade responsiva.
 */
:root{
  --gg-font-sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --gg-text:#101828;
  --gg-text-soft:#475467;
  --gg-muted:#667085;
  --gg-border:#e4e7ec;
  --gg-blue:#1268d8;
  --gg-page-max:1180px;
  --gg-h1:clamp(2.25rem,4.4vw,3.25rem);
  --gg-h2:clamp(1.75rem,3vw,2.25rem);
  --gg-h3:clamp(1.25rem,2vw,1.5rem);
  --gg-h4:1.125rem;
  --gg-h5:1rem;
  --gg-h6:.875rem;
  --gg-body:1rem;
  --gg-small:.875rem;
}

/* Tipografia base somente nos contextos padronizados. */
:is(.gg-discovery,.gg-taxonomy,.gc-categoria,.guia-praias-page,.guia-eventos-page,.guia-comercial,.gc-empregos,.blog-template,body.category main){
  font-family:var(--gg-font-sans)!important;
  color:var(--gg-text);
  font-size:var(--gg-body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
:is(.gg-discovery,.gg-taxonomy,.gc-categoria,.guia-praias-page,.guia-eventos-page,.guia-comercial,.gc-empregos,.blog-template,body.category main) :is(h1,h2,h3,h4,h5,h6){
  font-family:var(--gg-font-sans)!important;
  color:inherit;
  text-wrap:balance;
  letter-spacing:-.025em!important;
  margin-block-start:0;
}
:is(.gg-discovery,.gg-taxonomy,.gc-categoria,.guia-praias-page,.guia-eventos-page,.guia-comercial,.gc-empregos,.blog-template,body.category main) h1{
  font-size:var(--gg-h1)!important;
  line-height:1.06!important;
  font-weight:750!important;
}
:is(.gg-discovery,.gg-taxonomy,.gc-categoria,.guia-praias-page,.guia-eventos-page,.guia-comercial,.gc-empregos,.blog-template,body.category main) h2{
  font-size:var(--gg-h2)!important;
  line-height:1.15!important;
  font-weight:730!important;
}
:is(.gg-discovery,.gg-taxonomy,.gc-categoria,.guia-praias-page,.guia-eventos-page,.guia-comercial,.gc-empregos,.blog-template,body.category main) h3{
  font-size:var(--gg-h3)!important;
  line-height:1.25!important;
  font-weight:700!important;
}
:is(.gg-discovery,.gg-taxonomy,.gc-categoria,.guia-praias-page,.guia-eventos-page,.guia-comercial,.gc-empregos,.blog-template,body.category main) h4{font-size:var(--gg-h4)!important;line-height:1.35!important;font-weight:700!important}
:is(.gg-discovery,.gg-taxonomy,.gc-categoria,.guia-praias-page,.guia-eventos-page,.guia-comercial,.gc-empregos,.blog-template,body.category main) h5{font-size:var(--gg-h5)!important;line-height:1.4!important;font-weight:700!important}
:is(.gg-discovery,.gg-taxonomy,.gc-categoria,.guia-praias-page,.guia-eventos-page,.guia-comercial,.gc-empregos,.blog-template,body.category main) h6{font-size:var(--gg-h6)!important;line-height:1.45!important;font-weight:750!important;letter-spacing:.02em!important;text-transform:uppercase}
:is(.gg-discovery,.gg-taxonomy,.gc-categoria,.guia-praias-page,.guia-eventos-page,.guia-comercial,.gc-empregos,.blog-template,body.category main) :is(p,li,input,select,textarea,button){font-family:var(--gg-font-sans)!important}

/* Padrão de cabeçalho editorial: alinhamento, largura e ritmo iguais. */
.gg-discovery .gg-hero,
.gg-taxonomy .gg-term-hero,
.guia-eventos-page .guia-page-header,
.guia-comercial .gc-header,
.gc-empregos .gc-empregos__header,
.blog-template .blog-hero-content,
body.category .archive-header{
  text-align:left!important;
}
.gg-discovery .gg-hero,
.gg-taxonomy .gg-term-hero{
  padding-block:clamp(2.5rem,6vw,4.75rem) clamp(2rem,4vw,3.25rem)!important;
}
.gg-discovery .gg-hero .gg-shell,
.gg-taxonomy .gg-term-hero .gg-shell{
  width:min(var(--gg-page-max),calc(100% - 32px));
}
.gg-discovery .gg-title,
.gg-taxonomy .gg-title,
.guia-eventos-page .guia-page-title,
.guia-comercial .gc-header__title,
.gc-empregos .gc-empregos__title,
.blog-template .blog-hero-title,
body.category .archive-header__title{
  max-width:920px;
  color:var(--gg-text)!important;
  margin:0!important;
}
.gg-discovery .gg-subtitle,
.gg-taxonomy .gg-subtitle,
.guia-eventos-page .guia-page-subtitle,
.guia-comercial .gc-header__subtitle,
.gc-empregos .gc-empregos__description,
.blog-template .blog-hero-description,
body.category .archive-header__description{
  max-width:720px!important;
  margin:14px 0 0!important;
  color:var(--gg-text-soft)!important;
  font-size:clamp(1rem,1.5vw,1.125rem)!important;
  line-height:1.65!important;
  font-weight:400!important;
  text-wrap:pretty;
}
.gg-discovery .gg-eyebrow,.gg-taxonomy .gg-eyebrow,.blog-template .blog-hero-badge{
  font-size:.75rem!important;
  line-height:1.2!important;
  font-weight:750!important;
  letter-spacing:.08em!important;
  text-transform:uppercase;
}
.gg-discovery .gg-search{margin:28px 0 0!important}
.gg-taxonomy .gg-term-head{align-items:end}

/* Onde Tem: catálogo editorial, sem títulos com pesos divergentes. */
.gg-discovery .gg-section-title,.gg-taxonomy .gg-related h2,.gg-taxonomy .gg-empty h2{color:var(--gg-text)!important}
.gg-discovery .gg-directory h2{font-size:clamp(1.375rem,2vw,1.625rem)!important;font-weight:720!important}
.gg-discovery .gg-directory h3{font-size:1.0625rem!important;font-weight:700!important;letter-spacing:-.01em!important}
.gg-discovery .gg-directory p{font-size:.9375rem!important;line-height:1.8!important}
.gg-taxonomy .gg-company-title{font-size:1.125rem!important;font-weight:700!important;letter-spacing:-.015em!important}

/* Praias: preserva o hero fotográfico, uniformiza escala e peso. */
.guia-praias-page .guia-praias-hero h1{
  color:#fff!important;
  max-width:900px;
  margin:0!important;
  text-shadow:0 2px 20px rgba(0,0,0,.22);
}
.guia-praias-page .guia-praias-lead{
  font-size:clamp(1rem,1.6vw,1.1875rem)!important;
  line-height:1.6!important;
  font-weight:400!important;
}
.guia-praias-page .guia-section-head h2{color:var(--gg-text)!important}
.guia-praias-page .guia-section-sub{font-size:1rem!important;line-height:1.6!important;color:var(--gg-muted)!important}

/* Cards e seções: títulos consistentes sem inflar componentes pequenos. */
.guia-eventos-page .guia-event-title,
.guia-comercial :is(.empresa-card__title,.category-card__title),
.gc-empregos :is(.vaga-card__title,.profissional-card__title,.gc-empregos__cta-title,.gc-empregos__curriculo-title),
.blog-template :is(.featured-title,.blog-card-title),
body.category :is(.featured-post__title,.post-card__title){
  font-size:clamp(1.0625rem,1.5vw,1.25rem)!important;
  line-height:1.32!important;
  font-weight:700!important;
  letter-spacing:-.015em!important;
}

/* Breadcrumbs e controles com a mesma densidade visual. */
:is(.gg-crumbs,.guia-breadcrumb,.breadcrumb,.gc-breadcrumb){font-size:.8125rem!important;line-height:1.5!important}
:is(.gg-discovery,.gg-taxonomy,.gc-categoria,.guia-praias-page,.guia-eventos-page,.guia-comercial,.gc-empregos,.blog-template) :is(input,select,textarea,button){font-size:.9375rem}

@media(max-width:767px){
  :root{--gg-h1:clamp(2rem,10vw,2.625rem);--gg-h2:clamp(1.5rem,7vw,1.875rem);--gg-h3:1.25rem}
  .gg-discovery .gg-hero,.gg-taxonomy .gg-term-hero{padding-block:2.25rem 1.75rem!important}
  .gg-discovery .gg-hero .gg-shell,.gg-taxonomy .gg-term-hero .gg-shell{width:min(100% - 24px,var(--gg-page-max))}
  .gg-discovery .gg-search{margin-top:22px!important}
}
