/* =========================================================================
   Instituto Auravitta — folha de estilo base

   Aqui ficam as cores da marca, o reset, os estados :hover, a acessibilidade
   e os ajustes de tela pequena. O layout de cada bloco das páginas fica em
   css/paginas.css (classes .eN), carregado depois deste arquivo.
   ========================================================================= */

/* ---- cores da marca ---- */
:root {
  /* tipografia: escala recomendada no mapa tipográfico (Inter no lugar da Graphik) */
  --font-sans: "Inter", "Graphik", Arial, sans-serif;
  --fs-display: 64px; --fs-h1: 48px; --fs-h2: 32px; --fs-h3: 24px; --fs-h4: 20px;
  --fs-lead: 18px; --fs-body: 16px; --fs-small: 14px; --fs-caption: 12px; --fs-overline: 10px;
  --fw-regular: 400; --fw-semibold: 600; --fw-bold: 700;
  --lh-tight: 1.2; --lh-body: 1.6;
  --gold: #D9A93C;
  --gold-claro: #F0D18A;
  --bg: #FFFFFF;
}

/* ---- base ---- */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; background: #FFFFFF; color: #1A1A1A; font-family: var(--font-sans); line-height: var(--lh-body); }
button, input, textarea, select { font-family: inherit; }
a { color: #8A6514; }
a:where(:hover) { color: #A9761C; }
::-webkit-scrollbar { height: 6px; width: 6px; }
::-webkit-scrollbar-track { background: #F3EFE7; }
::-webkit-scrollbar-thumb { background: #CDBE9C; border-radius: 10px; }

/* ---- acréscimos ---- */

/* link de pular navegação: não existia, e o cabeçalho é fixo */
.pular-para-conteudo {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  background: var(--gold, #D9A93C);
  color: #0A0A0A;
  font: 600 14px/1.4 Poppins, sans-serif;
  padding: 12px 20px;
  border-radius: 0 0 8px 0;
  text-decoration: none;
}
.pular-para-conteudo:focus { left: 0; }

/* foco visível — o desenho original não previa */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--gold, #D9A93C);
  outline-offset: 2px;
}


/* card da Estrutura sem foto: o texto fica no pé, alinhado com os vizinhos */
.card-sem-foto { justify-content: flex-end; }

/* a galeria da Estrutura rola na horizontal */
#gal-estrutura { scroll-behavior: smooth; }

/* width/height no HTML reservam o espaço da imagem; a altura real segue a proporção */
img { max-width: 100%; height: auto; }

/* =========================================================================
   Responsivo

   Os ajustes selecionam as classes de layout de css/paginas.css e usam
   !important para sobrepor as medidas da tela larga. São os blocos medidos
   como causadores de estouro em 375px.
   ========================================================================= */

/* =========================================================================
   Cabeçalho (topo): barra escura fixa, logo contida, menu e chamada
   ========================================================================= */
.topo { position: fixed; top: 0; left: 0; right: 0; z-index: 50; background: #FFFFFF; border-bottom: 1px solid #ECE6DA; box-shadow: 0 4px 20px rgba(26,26,26,.06); font-family: var(--font-sans); }
.topo__barra { max-width: 1320px; height: 96px; margin: 0 auto; padding: 0 32px; display: flex; align-items: center; gap: 32px; }
.topo__logo { display: flex; align-items: center; flex: none; }
.topo__logo img { display: block; width: auto; height: 70px; filter: brightness(.62) saturate(1.5) contrast(1.15); }
.topo__nav { display: flex; align-items: center; gap: 24px; margin-left: auto; }
.topo__menu { display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.topo__link { position: relative; display: block; padding: 10px 14px; font: 600 15px/1.2 var(--font-sans); color: #2B2B2B; text-decoration: none; border-radius: 6px; transition: color .2s; }
.topo__link:hover { color: #8A6514; }
.topo__link[aria-current="page"], .topo__link--ativo { color: #8A6514; }
.topo__link[aria-current="page"]::after, .topo__link--ativo::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 2px; height: 2px; background: var(--gold); }
.topo__cta { display: inline-flex; align-items: center; padding: 12px 22px; font: 600 14px/1.2 var(--font-sans); color: #0A0A0A; background: var(--gold); border-radius: 999px; text-decoration: none; white-space: nowrap; transition: background-color .2s; }
.topo__cta:hover { color: #0A0A0A; background: #F0D18A; }
.tem-submenu { position: relative; }
.topo .submenu { display: none; position: absolute; top: 100%; left: 0; min-width: 260px; margin: 0; padding: 8px; list-style: none; background: #FFFFFF; border: 1px solid #ECE6DA; border-radius: 10px; box-shadow: 0 18px 40px rgba(0,0,0,.45); z-index: 60; }
.tem-submenu:hover > .submenu, .tem-submenu:focus-within > .submenu { display: block; }
.topo__sublink { display: block; padding: 10px 12px; font: 400 14px/1.4 var(--font-sans); color: #2B2B2B; text-decoration: none; border-radius: 6px; }
.topo__sublink:hover { color: #8A6514; background: #F7F4EE; }
.topo__sublink[aria-current="page"] { color: var(--gold); }

/* botão de menu (celular e tablet) */
.cabecalho__botao { display: none; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; padding: 0 11px; margin-left: auto; border: 1px solid rgba(217,169,60,.35); border-radius: 8px; background: transparent; cursor: pointer; }
.cabecalho__botao span { display: block; width: 22px; height: 2px; background: #8A6514; transition: transform .2s cubic-bezier(.16,1,.3,1), opacity .2s; }
.cabecalho__botao[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.cabecalho__botao[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.cabecalho__botao[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1100px) {
  .topo__barra { height: 76px; padding: 0 16px; gap: 16px; }
  .topo__logo img { height: 56px; }
  .cabecalho__botao { display: flex; }
  .topo__nav { display: none; position: absolute; top: 76px; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 12px; margin: 0; padding: 8px 20px 20px; background: #FFFFFF; border-bottom: 1px solid rgba(217,169,60,.18); max-height: calc(100vh - 76px); overflow-y: auto; }
  .topo__nav.aberto { display: flex; }
  .topo__menu { flex-direction: column; align-items: stretch; gap: 0; }
  .topo__link { display: flex; align-items: center; min-height: 48px; padding: 0 4px; border-bottom: 1px solid #F0EBE1; border-radius: 0; }
  .topo__link[aria-current="page"]::after, .topo__link--ativo::after { display: none; }
  .topo .submenu { display: block; position: static; min-width: 0; padding: 0 0 8px 12px; background: none; border: 0; box-shadow: none; }
  .topo__sublink { min-height: 44px; display: flex; align-items: center; padding: 0 4px; }
  .topo__cta { justify-content: center; min-height: 48px; }
}

@media (max-width: 900px) {
  /* --- tipografia decorativa: os números e as palavras grandes --- */
  .e57 { font-size: 46px !important; line-height: 1.05 !important; }
  .e78 { font-size: 40px !important; line-height: 1.05 !important; }
  .e108 { font-size: 34px !important; line-height: 1.1 !important; }
  :is(.e31,.e67,.e141,.e191) { font-size: 32px !important; line-height: 1.1 !important; }
  :is(.e39,.e45,.e149,.e152) { font-size: 27px !important; line-height: 1.2 !important; }
  :is(.e99,.e145,.e155,.e183,.e192) { font-size: 24px !important; line-height: 1.25 !important; }
  .e15 { font-size: 23px !important; line-height: 1.3 !important; }
  .e52 { font-size: 22px !important; line-height: 1.3 !important; }
  :is(.e63,.e171) { font-size: 20px !important; line-height: 1.35 !important; }
  :is(.e30,.e51) { font-size: 19px !important; }

  /* --- blocos de largura fixa passam a caber na tela --- */
  :is(.e80,.e82), :is(.e66,.e89,.e140,.e144,.e154,.e158,.e164,.e180,.e189,.e194), .e98,
  .e170,  :is(.e35,.e62),  .e92,
  :is(.e195,.e206),  :is(.e29,.e109,.e119),  .e75,
  .e15,  .e83 {
    width: 100% !important;
    max-width: 100% !important;
  }
  :is(.e11,.e26,.e49,.e51,.e52,.e53,.e56,.e65,.e83,.e92,.e104,.e111,.e119,.e128,.e185) { flex-shrink: 1 !important; }
  :is(.e35,.e62), .e92 { max-width: 100% !important; }

  /* --- linhas lado a lado viram uma coluna --- */
  :is(.e61.e61,.e114.e114),
  .e107.e107 {
    flex-direction: column !important;
    height: auto !important;
  }

  /* --- grades de coluna automática: uma coluna só --- */
  :is(.e69,.e147,.e156,.e159,.e178),
  .e36,
  .e193 {
    grid-template-columns: 1fr !important;
  }

  /* --- as palavras decorativas soltas param de empurrar a página --- */
  .e57.e57,
  .e78.e78 {
    right: auto !important;
    left: 16px !important;
    max-width: calc(100% - 32px);
  }

  /* --- respiro nas laterais --- */
  section { padding-left: 18px !important; padding-right: 18px !important; }

  /* o cabeçalho é fixo: o conteúdo começa abaixo dele */
  main { padding-top: 8px; }
}

@media (max-width: 560px) {
  .e57 { font-size: 36px !important; }
  .e78 { font-size: 32px !important; }
  .e108 { font-size: 28px !important; }
  :is(.e31,.e67,.e141,.e191) { font-size: 27px !important; }
}


/* ---- estados :hover ---- */
.hv-1:hover,.hv-1:focus-visible{color:#8A6514 !important}
.hv-2:hover,.hv-2:focus-visible{background:var(--gold, #D9A93C) !important;color:#0A0A0A !important}
.hv-3:hover,.hv-3:focus-visible{background:#F0D18A !important}
.hv-4:hover,.hv-4:focus-visible{color:#8A6514 !important}
.hv-5:hover,.hv-5:focus-visible{background:#F0D18A !important;color:#0A0A0A !important}

/* =========================================================================
   Camada mobile — Instituto Auravitta

   O design de origem compõe as seções com linhas lado a lado, alturas fixas,
   larguras em porcentagem e blocos posicionados por cima. Isso funciona na
   tela larga para a qual foi desenhado e desmonta no celular: as colunas de
   texto ficam com 120px, o conteúdo transborda da caixa de altura fixa e as
   palavras decorativas caem por cima do texto.

   Aqui essas composições viram empilhamento. As regras selecionam as
   classes de layout e usam !important — cada uma corresponde a um padrão
   medido no site.

   O seletor :has() distingue "linha de layout" (colunas com texto ou imagem
   dentro) de "linha de miudezas" (ícone + rótulo, botões lado a lado), que
   deve continuar na horizontal.
   ========================================================================= */

@media (max-width: 900px) {

  /* --- 1. Linhas de layout viram pilha ---------------------------------- */
  /* "> * p" quer dizer: uma coluna que carrega texto dentro, em qualquer
     profundidade. Linha de ícone + rótulo não casa e segue na horizontal.  */
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> * p),
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> * h1),
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> * h2),
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> * h3),
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> * img),
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> img),
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> p),
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> h2),
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> article) {
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
    gap: 0 !important;
  }

  /* as colunas dessa linha ocupam a largura toda */
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> * p) > *,
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> * h1) > *,
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> * h2) > *,
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> * h3) > *,
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> * img) > *,
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> img) > *,
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> p) > *,
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> h2) > *,
  :is(.e1.e1,.e5.e5,.e6.e6,.e10.e10,.e18.e18,.e21.e21,.e24.e24,.e25.e25,.e28.e28,.e48.e48,.e61.e61,.e74.e74,.e82.e82,.e89.e89,.e94.e94,.e103.e103,.e107.e107,.e109.e109,.e114.e114,.e125.e125,.e166.e166,.e174.e174,.e175.e175,.e181.e181,.e185.e185,.e187.e187,.e194.e194,.e196.e196):has(> article) > * {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex-shrink: 1 !important;
    flex-basis: auto !important;
  }

  /* --- 2. Faixas de imagem ganham altura própria ------------------------ */
  /* dentro de uma linha empilhada, o "height: 100%" do original vira zero  */
  :is(.e10,.e11,.e12,.e27,.e49,.e56,.e84,.e109,.e110,.e115,.e133):has(> img) { height: 230px !important; }
  :is(.e10,.e11,.e12,.e27,.e49,.e56,.e84,.e109,.e110,.e115,.e133) > img { height: 100% !important; object-fit: cover; }

  /* --- 3. Larguras internas em porcentagem ----------------------------- */
  :is(.e51,.e52,.e53,.e68,.e142),
  .e67,
  .e141,
  .e90,
  .e76 { max-width: 100% !important; }

  /* --- 4. Espaços pensados para a composição da tela larga -------------- */
  .e48 { margin: 20px auto 40px !important; }
  :is(.e28,.e66,.e74,.e89) { padding-top: 40px !important; }
  .e55 { margin: 24px 0 0 auto !important; }

  /* --- 5. Palavras decorativas soltas ----------------------------------- */
  /* No original ficam por cima da composição; no celular entram no fluxo. */
  .e57.e57,
  .e57.e57,
  .e78.e78.e78 {
    position: static !important;
    white-space: normal !important;
    transform: none !important;
    margin: 8px 0 0 !important;
    text-align: left;
  }

  /* o bloco do banner que fica sobre a foto continua sobreposto, mas com
     espaço suficiente para o texto não encostar nos controles */
  .e14.e14 {
    padding-bottom: 120px !important;
  }

  /* --- 6. Elementos deslocados por transform ---------------------------- */

  /* --- 7. Alturas fixas que cortam texto -------------------------------- */
  .e48,
  :is(.e61,.e114),
  .e107 { height: auto !important; }

  /* mas as caixas que só contêm imagem mantêm uma altura de faixa */
  :is(.e61,.e114):has(> img),
  .e48:has(> img),
  .e107:has(> img) { height: 230px !important; }

  /* --- 8. Rolagem horizontal continua sendo rolagem --------------------- */
  /* a galeria da Estrutura é para arrastar mesmo: não empilha */
  #gal-estrutura { flex-direction: row !important; }
  #gal-estrutura > * { width: 78vw !important; max-width: 78vw !important; flex: 0 0 78vw !important; }

  /* o carrossel da home também é horizontal: um slide por vez, ocupando o banner inteiro */
  #banner { padding-left: 0 !important; padding-right: 0 !important; }
  #banner > ul:first-child { flex-direction: row !important; height: 100% !important; gap: 0 !important; }
  #banner > ul:first-child > li { flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important; height: 100% !important; }
}

@media (max-width: 560px) {
  :is(.e10,.e11,.e12,.e27,.e49,.e56,.e84,.e109,.e110,.e115,.e133):has(> img) { height: 190px !important; }
  :is(.e61,.e114):has(> img),
  .e48:has(> img),
  .e107:has(> img) { height: 190px !important; }
}


/* =========================================================================
   Alvo de toque

   Telefone, e-mail e links de texto ficavam com 21 a 28px de altura — abaixo
   do que se acerta com o dedo. Aqui recebem altura mínima, sem mudar o
   desenho na tela grande.
   ========================================================================= */
@media (max-width: 900px) {
  :where(main a[href^="tel:"], main a[href^="mailto:"], main a[href^="https://wa.me"]) {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  /* links de texto soltos ganham área de toque sem virar bloco */
  :where(main a:not([class*="hv-"]):not(.e3,.e4,.e12,.e19,.e20,.e23,.e27,.e38,.e41,.e44,.e46,.e47,.e65,.e121,.e123,.e124,.e126,.e127,.e132,.e133,.e136,.e138,.e143,.e179)) {
    padding-top: 4px;
    padding-bottom: 4px;
  }

  /* o "Ver mais" das seções é um link-ação: merece área de toque cheia */
  :where(main a).e55 {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin: 24px 0 0 auto !important;
  }
}

/* =========================================================================
   SEO out/2026 — submenu de planos, NAP no rodapé e chamadas das páginas
   de modalidade (moradia, hospedagem-temporaria, day-use,
   casa-de-repouso-goiania).
   ========================================================================= */
.cta-contato, .veja-tambem { margin-top: 24px; }

/* aviso dos formulários (mostrado pelo js/site.js depois do envio para /enviar.php);
   mesmas cores do aviso do site antigo em PHP */
.form-aviso {
  margin: 0 0 16px;
  padding: 14px 18px;
  border-left: 3px solid var(--aviso, #E06C4F);
  background: #F7F4EE;
  color: #1A1A1A;
  font: 400 15px/1.6 Poppins, sans-serif;
  text-align: left;
}
.form-aviso strong { color: var(--aviso, #E06C4F); }
.form-aviso--ok { --aviso: #2E7D4F; }
.form-aviso--desligado { --aviso: #8A6514; }
.form-aviso--erro { --aviso: #E06C4F; }

/* =========================================================================
   Guias para famílias (/blog/)
   Texto corrido de artigo dentro de .e144: listas, tabelas, notas e data.
   ========================================================================= */
.guia-meta { font-size: 14px; color: #5E5A52; margin: -40px 0 48px; }
.guia h3 { font-size: 22px; color: #1A1A1A; font-weight: 600; line-height: 1.3; margin: 36px 0 12px; }
.guia ul, .guia ol { color: #4A463F; font-size: 16px; line-height: 1.7; max-width: 78ch; margin: 0 0 24px; padding-left: 22px; }
.guia li { margin: 0 0 8px; }
.guia li strong, .guia p strong { color: #1A1A1A; font-weight: 600; }
.guia .tabela { overflow-x: auto; margin: 0 0 28px; max-width: 100%; }
.guia table { border-collapse: collapse; width: 100%; font-size: 15px; line-height: 1.55; color: #4A463F; }
/* só tabelas de 3+ colunas ganham largura mínima (e rolam por dentro no celular) */
.guia table:has(th:nth-child(3)) { min-width: 560px; }
.guia th { text-align: left; color: #8A6514; font-weight: 600; border-bottom: 1px solid #DCD3C2; padding: 10px 14px 10px 0; }
.guia td { border-bottom: 1px solid #ECE6DA; padding: 12px 14px 12px 0; vertical-align: top; }
.guia .nota { border-left: 2px solid #A9761C; padding: 4px 0 4px 18px; margin: 32px 0; color: #4A463F; font-size: 15px; line-height: 1.6; max-width: 78ch; }
.guia h2 { scroll-margin-top: 120px; }
.lista-guias { list-style: none; padding: 0; margin: 0; display: grid; gap: 1px; background: #ECE6DA; border: 1px solid #ECE6DA; }
.lista-guias li { background: #FFFFFF; padding: 28px 24px; }
.lista-guias a { color: #1A1A1A; font-size: 22px; font-weight: 600; text-decoration: none; line-height: 1.3; }
.lista-guias a:hover { color: #8A6514; }
.lista-guias p { margin: 10px 0 0; color: #5E5A52; font-size: 16px; line-height: 1.6; max-width: 78ch; }
@media (max-width: 900px) {
  .guia-meta { margin-top: -20px; }
  .guia h3 { font-size: 19px; }
}

/* =========================================================================
   Rodapé convencional (marca, colunas de links, contato e linha de direitos)
   ========================================================================= */
.rodape { padding: 64px 0 28px; font: 400 14px/1.6 var(--font-sans); color: #5E5A52; background: #F7F4EE; border-top: 1px solid #ECE6DA; }
.rodape__container { max-width: 1320px; margin: 0 auto; padding: 0 32px; }
.rodape__grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,.9fr) minmax(0,1.1fr) minmax(0,1.1fr) minmax(0,1.4fr); gap: 32px; }
.rodape__logo { display: inline-block; }
.rodape__logo img { display: block; width: auto; height: 48px; filter: brightness(.62) saturate(1.5) contrast(1.15); }
.rodape__sobre { max-width: 320px; margin: 18px 0 0; line-height: 1.7; }
.rodape__cta { display: inline-flex; margin-top: 20px; padding: 11px 20px; font-size: 14px; font-weight: 600; color: #0A0A0A; background: var(--gold); border-radius: 999px; text-decoration: none; }
.rodape__cta:hover { color: #0A0A0A; background: #F0D18A; }
.rodape__titulo { margin: 0 0 14px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #1A1A1A; }
.rodape__lista { margin: 0; padding: 0; list-style: none; }
.rodape__lista a { display: block; padding: 5px 0; color: #4A463F; text-decoration: none; }
.rodape__endereco { font-style: normal; line-height: 1.9; overflow-wrap: anywhere; }
.rodape__endereco strong { color: #1A1A1A; font-weight: 600; }
.rodape__endereco a, .rodape__base a { color: #4A463F; text-decoration: none; }
.rodape__lista a:hover, .rodape__endereco a:hover, .rodape__base a:hover { color: #8A6514; }
.rodape__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; margin-top: 48px; padding-top: 20px; border-top: 1px solid #E3DCCD; font-size: 12px; }
.rodape__base p { margin: 0; }
@media (max-width: 1100px) {
  .rodape__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rodape__marca { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .rodape { padding: 48px 0 24px; }
  .rodape__container { padding: 0 20px; }
  .rodape__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  .rodape__grid > :last-child { grid-column: 1 / -1; }
  .rodape__lista a { padding: 4px 0; line-height: 1.35; }
  .rodape__lista a { display: flex; align-items: center; min-height: 40px; padding: 0; }
  .rodape__base { flex-direction: column; text-align: center; }
}

/* =========================================================================
   Faixas brancas: perguntas frequentes em fundo claro, de ponta a ponta
   ========================================================================= */
.e98 { background: #fff; box-shadow: 0 0 0 100vmax #fff; clip-path: inset(0 -100vmax); }
.e98 .e30 { color: #8A6514; border-left-color: #8A6514; }
.e98 .e99 { color: #1A1A1A; }
.e98 .e100 { color: #5E5A52; }
.e98 .e101 { border-top-color: #E8E2D6; }
.e98 .e102 { border-bottom-color: #E8E2D6; }
.e98 .e103 { color: #1A1A1A; }
.e98 .e103:hover { color: #8A6514 !important; }
.e98 .e104 { color: #8A6514; }
.e98 .e105 { color: #4A463F; }
.e98 .e105 a { color: #8A6514; }

/* ---- home: menu sobre o banner, com degradê preto que se funde à foto ---- */
.topo--banner { background: transparent; border-bottom-color: transparent; box-shadow: none; transition: background-color .3s, box-shadow .3s, border-color .3s; }
.topo--banner::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 190px; background: linear-gradient(180deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.72) 40%, rgba(0,0,0,.32) 72%, rgba(0,0,0,0) 100%); pointer-events: none; transition: opacity .3s; }
.topo--banner .topo__barra { position: relative; }
.topo--banner .topo__logo img { filter: drop-shadow(0 2px 10px rgba(0,0,0,.45)); }
.topo--banner .cabecalho__botao { border-color: rgba(240,209,138,.6); }
.topo--banner .cabecalho__botao span { background: #F0D18A; }
.topo--banner.topo--solido { background: #0B0A08; border-bottom-color: rgba(217,169,60,.2); box-shadow: 0 8px 28px rgba(0,0,0,.25); }
.topo--banner.topo--solido::before { opacity: 0; }
@media (min-width: 1101px) {
  .topo--banner .topo__link { color: #F3EBDD; text-shadow: 0 1px 8px rgba(0,0,0,.35); }
  .topo--banner .topo__link:hover, .topo--banner .topo__link--ativo, .topo--banner .topo__link[aria-current="page"] { color: #F0D18A; }
}
@media (max-width: 1100px) {
  .topo--banner::before { height: 150px; }
  .topo--banner:has(.topo__nav.aberto) { background: #0B0A08; }
}
.rodape__credito a { font-weight: 600; color: #1A1A1A; }
.rodape__credito a:hover { color: #8A6514; }
/* o botão flutuante do WhatsApp não cobre a última linha do rodapé */
.rodape__base { padding-right: 84px; }
@media (max-width: 680px) { .rodape__base { padding-right: 0; padding-bottom: 72px; } }
