/**
 * Guia de Guarapari — Design System Contract
 * v16.13.6
 * Camada canônica compartilhada pelas páginas públicas.
 * Responsabilidade: tokens, geometria, controles e componentes comuns.
 * Não define conteúdo específico de nenhuma página.
 */
:root{
  --gg-container:1200px;
  --gg-gutter:24px;
  --gg-ink:#101828;
  --gg-text:#344054;
  --gg-muted:#667085;
  --gg-line:#eceef2;
  --gg-surface:#fff;
  --gg-surface-soft:#f7f8fa;
  --gg-primary:#0a5ed9;
  --gg-primary-dark:#071b33;
  --gg-focus:#2d7de0;
  --gg-r-sm:4px;
  --gg-r-md:6px;
  --gg-r-lg:8px;
  --gg-shadow-sm:0 1px 2px rgba(15,29,51,.05);
  --gg-shadow-md:0 10px 28px rgba(15,29,51,.08);
}

/* Contracto de largura: todas as páginas públicas alinham pela mesma coluna. */
body:is(.home,.page,.blog,.archive,.search,.single-post,.tax-categoria_empresa,.tax-onde_tem,.tax-regiao_praia) .site-main,
body:is(.guia-page-ofertas,.guia-page-classificados,.guia-market-single-page) .site-main{
  box-sizing:border-box;
}

body:is(.guia-page-ofertas,.guia-page-classificados,.guia-market-single-page) .guia-market-page-shell,
body:is(.guia-page-ofertas,.guia-page-classificados) .guia-market-breadcrumb__inner{
  width:min(var(--gg-container),calc(100% - (var(--gg-gutter) * 2)));
  max-width:var(--gg-container);
}

/* Header: um único alinhamento horizontal para desktop e mobile. */
.site-header .container,
.site-header .header-inner,
.site-header .site-header-inner{
  box-sizing:border-box;
}
.site-header .container{
  width:min(var(--gg-container),calc(100% - (var(--gg-gutter) * 2)))!important;
  max-width:var(--gg-container)!important;
  margin-inline:auto!important;
}

/* Contrato semântico do atributo hidden. */
[hidden]{display:none!important}

/* Controles públicos: mesma altura, raio, foco e tipografia. */
body:is(.guia-page-ofertas,.guia-page-classificados,.guia-market-single-page,.tax-categoria_empresa,.tax-onde_tem,.tax-regiao_praia,.page-template-page-praias-em-guarapari) :is(input,select,textarea){
  border-radius:var(--gg-r-sm)!important;
  border:1px solid var(--gg-line)!important;
  background:#fff!important;
  color:var(--gg-text)!important;
  font-family:var(--gg-font-sans)!important;
}
body:is(.guia-page-ofertas,.guia-page-classificados,.guia-market-single-page,.tax-categoria_empresa,.tax-onde_tem,.tax-regiao_praia,.page-template-page-praias-em-guarapari) :is(input,select,textarea):focus-visible{
  outline:3px solid rgba(21,89,199,.18)!important;
  outline-offset:1px!important;
  border-color:var(--gg-primary)!important;
  box-shadow:none!important;
}

/* Botões do sistema: somente componentes explicitamente públicos; não invade .btn legado. */
body:is(.guia-page-ofertas,.guia-page-classificados,.guia-market-single-page) :is(.gg-class-publish,.ofertas-publish,.guia-single-contact){
  border-radius:var(--gg-r-sm)!important;
  font-family:var(--gg-font-sans)!important;
}

/* Títulos de página: mesma escala editorial. */
body:is(.guia-page-ofertas,.guia-page-classificados) .guia-market-page-title{
  font-family:var(--gg-font-sans)!important;
  font-size:var(--gg-h1)!important;
  line-height:1.06!important;
  font-weight:760!important;
  letter-spacing:-.045em!important;
  color:var(--gg-ink)!important;
  text-wrap:balance;
}

/* Cartões públicos: superfície, borda e raio comuns. */
body:is(.guia-page-ofertas,.guia-page-classificados) :is(.oferta-card,.gg-class-card),
body.guia-market-single-page :is(.guia-single-card,.guia-single-content,.guia-related-market){
  border-radius:var(--gg-r-md)!important;
  border-color:var(--gg-line)!important;
  box-shadow:var(--gg-shadow-sm);
}

/* Componentes canônicos: mesma linguagem de superfície da Home. */
:is(.guia-event-card,.empresa-card,.vaga-card,.profissional-card,.blog-card,.featured-card,.gg-company-card,.guia-card,.oferta-card,.gg-class-card){
  border-radius:var(--gg-r-md)!important;
}
:is(.guia-event-card,.empresa-card,.vaga-card,.profissional-card,.blog-card,.featured-card,.gg-company-card) :is(.guia-event-media,.empresa-media,.vaga-media,.profissional-media,.blog-card__media,.gg-company-media){
  border-radius:0!important;
}
/* Imagens de componentes devem poder preencher o frame; o legado não pode impor height:auto. */
:is(.guia-card-media,.gg-company-media,.guia-event-media,.oferta-card__media,.gg-class-card__media) img{
  width:100%;height:100%;max-width:none;object-fit:cover;display:block;
}
/* Ações de publicação são secundárias: não devem dominar a primeira dobra. */
.guia-market-publish{
  min-height:36px!important;padding:0 13px!important;border:1px solid var(--gg-line)!important;border-radius:var(--gg-r-sm)!important;background:#fff!important;color:var(--gg-ink)!important;box-shadow:none!important;font:700 .75rem/1 var(--gg-font-sans)!important;
}
.guia-market-publish:hover{background:var(--gg-surface-soft)!important;border-color:#cfd6df!important;color:var(--gg-primary)!important;transform:none!important;}

/* Acessibilidade e movimento. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;}
}

@media(max-width:720px){
  :root{--gg-gutter:16px;}
}

/* 16.14.1 — Empresa: integra a régua pública sem alterar o conteúdo. */
body.empresa-single .empresa-container,
body.empresa-single .empresa-breadcrumb{
  width:min(var(--gg-container),calc(100% - (var(--gg-gutter)*2)));
  max-width:var(--gg-container);
  margin-inline:auto;
}
body.empresa-single .empresa-breadcrumb{
  box-sizing:border-box;
}
