﻿/*
Theme Name: Agência Turbo 2N
Theme URI: https://2ndigital.com.br
Author: 2N Digital
Description: Tema leve e customizado para Agência Turbo - sem builder pesado, mobile-first, focado em conversao para WhatsApp e Google Ads.
Version: 1.0
Text Domain: agencia-turbo
*/

:root{
  /* Paleta 2N - reforma 23/07/2026 (4ª rodada): identidade 100% amarelo + vermelho
     da logomarca, por pedido direto do Jean/Amonn — SEM marrom e SEM laranja em
     lugar nenhum do site (inclusive rodapé, que antes usava marrom). Cores reais
     extraídas por amostragem de pixel de logo-otimizada.png:
       - amarelo do brasão: #FECA04
       - vermelho vivo da faixa "Doces e Salgados": #E51B22 (vira a cor de
         destaque/CTA principal, conforme indicação do Amonn)
       - vermelho profundo do lettering "Turbo": #7C0A0D (tom mais escuro da
         mesma família, usado em texto de apoio/gradientes, não é marrom)
     Cabeçalho (.site-header e navegação) não teve layout/estrutura alterada
     por esta rodada — só a paleta de texto/detalhes que usa essas variáveis. */
  --amarelo:#FECA04;
  --amarelo-forte:#F5B700;
  --vermelho:#E51B22;
  --vermelho-escuro:#8A0E12;
  --vermelho-escuro-2:#4E0608;
  --bordo:#7C0A0D;
  --creme:#FFF8EE;
  --texto-escuro:#2B0A0C;
  --texto-suave:#6b6b6b;
  --whatsapp:#25D366;
  --whatsapp-escuro:#128C4A;
  --branco:#FFFFFF;
  --sombra: 0 10px 30px rgba(43,10,12,0.14);
  --radius: 22px;
  /* "Google Sans" (Product Sans) é proprietária do Google e não tem distribuição
     pública via Google Fonts — ver nota completa em functions.php. Substituto
     hospedado: Poppins. */
  --font-principal: 'Google Sans', 'Product Sans', 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-principal);
  color:var(--texto-escuro);
  background:var(--branco);
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:var(--font-principal);
  font-weight:800;
  line-height:1.15;
  margin:0 0 .5em;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
.container{max-width:1180px;margin:0 auto;padding:0 20px;}
.section{padding:70px 0;}
.section-alt{background:var(--creme);}
.tag-emoji{font-size:1.3em;}

/* ===== TOPO ===== */
.site-header{
  position:sticky;top:0;z-index:999;
  background:rgba(255,248,238,.95);
  backdrop-filter:blur(8px);
  box-shadow:0 2px 14px rgba(43,10,12,.08);
  overflow:visible;
}
.site-header .container{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:space-between;
  padding-top:8px;padding-bottom:8px;
  gap:20px;
}
.site-header .brand{display:flex;align-items:center;flex-shrink:0;}
.site-header img.logo{height:78px;width:auto;}

/* Onda/V decorativo no rodapé do cabeçalho — a logo "aninha" nesse recorte
   central, virando o ponto focal do menu em vez de só mais um elemento
   alinhado. Só aparece no layout de menu dividido (desktop). */
.site-header__wave{display:none;}

.main-nav{display:flex;align-items:center;flex:1;}
.main-nav-links{display:flex;align-items:center;gap:6px;flex:1;justify-content:center;}
.main-nav-links a{
  position:relative;
  display:flex;align-items:center;gap:6px;
  font-weight:800;color:var(--texto-escuro);padding:10px 16px;border-radius:50px;
  font-size:.98rem;
  transition:background .2s ease,color .2s ease,transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease;
}
/* nowrap so no desktop (>=981px): sem isso, "Festas e Eventos" quebra em
   2 linhas mesmo com espaço de sobra, deixando o menu com altura desigual
   (visto no QA 27/07 mesmo depois da correção de simetria da logo). No
   mobile (gaveta) cada link já ocupa a largura toda, então nao quebra. */
@media (min-width:981px){
  .main-nav-links a{white-space:nowrap;}
}
/* Menu interativo: ao passar o mouse o item "fixa" (destaca com leve elevação
   e sombra) e ao tirar o mouse volta suavemente à posição original. */
.main-nav-links a:hover{
  background:var(--amarelo);color:var(--texto-escuro);
  transform:translateY(-3px);
  box-shadow:0 8px 16px rgba(122,10,13,.18);
}
.main-nav-links .nav-ico{display:none;}
.main-nav-head,.nav-whats-cta,.main-nav-foot,.nav-close{display:none;}

.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.header-cta{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--whatsapp);color:#fff;
  padding:11px 20px;border-radius:50px;font-weight:800;
  box-shadow:0 6px 16px rgba(37,211,102,.35);
  transition:transform .15s ease;
  font-size:.95rem;white-space:nowrap;
}
.header-cta:hover{transform:translateY(-2px);}
/* width/height explícitos são obrigatórios aqui: o SVG do WhatsApp não tem
   largura/altura intrínseca (só viewBox), então dentro de um flex container
   ele cai no tamanho padrão do navegador (bem maior que o botão) se não for
   travado por CSS — bug real visto no QA desktop 27/07 (ícone gigante
   estourando o botão "Peça pelo WhatsApp" em telas ≥1151px). */
/* 2N NOTA (30/07, rodada 5, item 1): SVG do WhatsApp sem "fill" definido cai
   no preto padrão do navegador — inconsistente com TODOS os outros botões de
   WhatsApp do site (.btn-whats, .footer-whats-btn, .nav-whats-cta já forçam
   fill:#fff). Era o ícone preto reportado pelo Amonn, sobre fundo verde do
   WhatsApp. Corrigido pra branco, igual ao resto do site. (.whats-float
   citado aqui originalmente foi removido na rodada 12, 31/07.) */
.header-cta svg{width:22px;height:22px;flex-shrink:0;fill:#fff;}

.nav-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;border-radius:12px;border:none;background:var(--creme);
  cursor:pointer;flex-shrink:0;
}
.nav-toggle span{display:block;width:22px;height:3px;background:var(--texto-escuro);border-radius:3px;margin:0 auto;transition:transform .2s ease,opacity .2s ease;}

/* Menu dividido + logo como ponto focal (padrão Morada) — pedido explícito do
   Jean em 23/07 (3ª rodada): 3 itens à esquerda, 2 à direita, logo grande no
   centro geométrico, "aninhada" na onda/V do rodapé do cabeçalho. Cores,
   fundo e navegação do .site-header continuam com a mesma base visual. */
@media (min-width:981px){
  /* CAUSA RAIZ do relato do Jean em 27/07 ("linha amarela torta perto da
     logo"): a versão anterior centralizava a logo via CSS Grid
     (grid-template-columns:1fr auto 1fr + justify-self:center), na premissa
     de que as 2 colunas "1fr" sempre ficam com a mesma largura em pixel —
     falso quando o conteúdo de uma coluna é mais largo que o da outra: a
     coluna direita tem "Festas e Eventos" (texto mais longo que qualquer
     item da esquerda) + o espaço reservado pro botão "Pedir", então o
     min-content dela supera o da esquerda e o CSS Grid estica essa coluna
     além de 1fr real — empurrando a coluna "auto" (logo) pra ESQUERDA do
     centro geométrico da página. Medido ao vivo em agenciaturbo.com.br:
     logo ~36-40px à esquerda do centro real em 1440/1920/2000px, enquanto a
     onda SVG (.site-header__wave, sempre centralizada de forma absoluta,
     sem depender do grid) ficava no centro verdadeiro — daí o descompasso
     visual entre a onda e a logo.
     Correção definitiva: em vez de tentar deixar 2 colunas de grid
     "iguais" (dependente de conteúdo, frágil), os 4 blocos do cabeçalho
     (nav esquerda, logo, nav direita, botão "Pedir") passam a ser
     position:absolute, cada um ancorado num ponto fixo relativo a
     .container (que é position:relative e fica centralizado na página):
     logo e onda usam o MESMO eixo de centro (left:50%) sempre, e os 2
     grupos de link ficam a uma distância fixa (110px) desse mesmo centro
     — nada aqui depende do tamanho do texto de nenhum dos lados. */
  .site-header .container{
    position:relative;
    /* min-height obrigatório: com os 4 blocos fora do fluxo normal
       (position:absolute), nada mais "estica" a altura do header sozinho
       (antes a logo de 114px fazia isso). Sem isso o header colapsa pra 0
       e tudo vaza por cima/baixo da faixa cor-de-creme. 114px = altura da
       logo em repouso (ver .site-header img.logo abaixo); os outros
       breakpoints (estreito/scrolled) têm seus próprios min-height mais
       adiante, no mesmo padrão já usado por img.logo. */
    min-height:114px;
    transition:min-height .35s ease;
  }
  .site-header .main-nav{ display:contents; }

  .main-nav-links--left,
  .main-nav-links--right{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
  }
  /* Esquerda: 110px = metade da largura da logo (~120-150px) + folga,
     medido a partir do MESMO centro (50%) que a logo e a onda usam — não do
     limite de uma coluna de grid (era isso que causava a sobreposição vista
     no teste ao vivo de 27/07). Direita: ancorada pela BORDA DIREITA do
     container (não pelo centro), reservando 250px pro botão "Peça pelo
     WhatsApp" (ancorado em right:20px, ver .header-actions) + folga —
     mesmo valor efetivo do padding-right:260px da versão anterior. Como
     "Festas e Eventos"/"Contato" já cabiam confortavelmente nesse espaço
     antes, ancorar pela direita (em vez de pelo centro) evita depender da
     largura da logo E evita o botão ao mesmo tempo. */
  .main-nav-links--left{ right:calc(50% + 110px); }
  .main-nav-links--right{ right:250px; }

  .site-header .brand{
    position:absolute;
    left:50%;top:50%;
    z-index:3;
    transform:translate(-50%,-50%) translateY(16px);
    transition:transform .35s cubic-bezier(.34,1.56,.64,1), height .35s ease;
  }
  /* Botão "Pedir" continua ancorado na borda direita do container, igual
     ao padding usado pelo resto do layout (20px, ver .container). */
  .site-header .header-actions{
    position:absolute;
    right:20px;top:50%;
    transform:translateY(-50%);
    z-index:4;
  }
  .site-header img.logo{height:114px;transition:height .35s ease;}

  .site-header__wave{
    display:block;
    position:absolute;left:0;right:0;bottom:-1px;
    height:32px;z-index:1;pointer-events:none;
  }
  .site-header__wave svg{display:block;width:100%;height:100%;}
}
/* Faixa estreita do desktop (981-1150px): nav mais compacto e logo um pouco
   menor pra caber os 2 grupos + logo grande sem qualquer sobreposição. */
@media (min-width:981px) and (max-width:1150px){
  .main-nav-links{gap:0;}
  .main-nav-links a{padding:8px 9px;font-size:.82rem;}
  .site-header img.logo{height:92px;}
  .site-header .container{min-height:92px;}
  /* reserva menor de espaço pra logo (90px em vez de 110px), já que ela
     encolhe pra 92px de altura nesta faixa estreita — mesma lógica do
     breakpoint principal, mesmo eixo de centro (50%). */
  .main-nav-links--left{right:calc(50% + 90px);}
  .main-nav-links--right{right:210px;}
  /* botao do header ficou mais comprido ("Peça pelo WhatsApp" no lugar de
     "Pedir") — compacta nesta faixa estreita pra nao encostar no "Contato". */
  .site-header .header-cta{padding:9px 14px;gap:6px;font-size:.82rem;}
  .site-header .header-cta svg{width:18px;height:18px;}
  .site-header .brand{transform:translate(-50%,-50%) translateY(10px);}
}

/* Comportamento de scroll: ao rolar a página pra baixo, o cabeçalho fica mais
   compacto e a logo central cresce ainda mais (momento de destaque); ao
   voltar pro topo, ela encolhe de volta pro tamanho normal (que já é maior
   que o logo original pré-reforma) — tudo suave via transição CSS. */
@media (min-width:981px){
  .site-header.is-scrolled{box-shadow:0 4px 20px rgba(43,10,12,.16);}
  .site-header.is-scrolled img.logo{height:140px;}
  .site-header.is-scrolled .container{min-height:140px;}
  .site-header.is-scrolled .brand{transform:translate(-50%,-50%) translateY(22px);}
}
@media (min-width:981px) and (max-width:1150px){
  .site-header.is-scrolled img.logo{height:112px;}
  .site-header.is-scrolled .container{min-height:112px;}
  .site-header.is-scrolled .brand{transform:translate(-50%,-50%) translateY(14px);}
}

/* ===== HERO — 2 containers (reforma 23/07/2026, referência: hero novo do Turbo) ===== */
.hero-2n{
  position:relative;
  background:linear-gradient(180deg, #FFF6DE 0%, #FFE9AE 100%);
  overflow:hidden;
}
.hero-2n__inner{
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:50px;
  align-items:center;
  padding:64px 0 60px;
}
/* min-width:0 é necessário nos itens do grid: sem isso, o item de texto usa
   o tamanho "auto" (min-content baseado no conteúdo mais largo) como piso e
   pode empurrar conteúdo pra fora da tela em telas estreitas (bug de
   overflow horizontal visto no QA mobile 27/07 — a tag/h1/parágrafo do hero
   vazavam a borda direita em 390px). */
.hero-2n__text,.hero-2n__visual{min-width:0;}
.hero-2n__tag{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--bordo);color:#fff;
  padding:8px 18px;border-radius:50px;font-weight:800;font-size:.85rem;
  margin-bottom:18px;box-shadow:0 6px 16px rgba(122,19,48,.25);
}
.hero-2n__title{
  font-size:2.7rem;color:var(--texto-escuro);max-width:600px;margin-bottom:.4em;
}
.hero-2n__title span{color:var(--bordo);}
.hero-2n__sub{
  font-size:1.12rem;color:var(--texto-suave);max-width:500px;margin-bottom:28px;
}
.hero-2n__actions{margin-bottom:20px;}
/* 2N NOTA (31/07, rodada 12): modificador do 3º botão de WhatsApp do hero,
   inserido logo abaixo do parágrafo (no lugar da frase de texto removida). */
.hero-2n__actions--sub{margin-top:6px;}
.btn-whats{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--whatsapp);color:#fff;font-weight:800;font-size:1.05rem;
  padding:16px 30px;border-radius:50px;
  box-shadow:0 10px 26px rgba(37,211,102,.4);
  border:none;cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.btn-whats:hover{background:var(--whatsapp-escuro);transform:translateY(-3px);box-shadow:0 14px 30px rgba(37,211,102,.45);}
.btn-whats svg{width:24px;height:24px;fill:#fff;}
/* Variante "contorno" — usada em CTAs secundários (ex.: "Ver cardápio completo")
   que não são ação direta de WhatsApp, pra diferenciar hierarquia sem sair da
   paleta amarelo/vermelho da marca. */
.btn-whats--outline{
  background:#fff;color:var(--vermelho);border:2px solid var(--vermelho);
  box-shadow:none;padding:14px 28px;
}
.btn-whats--outline:hover{background:var(--vermelho);color:#fff;transform:translateY(-3px);box-shadow:0 12px 24px rgba(229,27,34,.3);}
.section-cta{display:flex;justify-content:center;margin-top:36px;}
.hero-2n__trust{
  display:inline-flex;align-items:center;gap:10px;
  background:#fff;border-radius:14px;padding:10px 16px;
  box-shadow:var(--sombra);font-weight:700;font-size:.9rem;color:var(--texto-escuro);
  margin-bottom:26px;
}
.hero-2n__trust-stars{color:var(--amarelo-forte);letter-spacing:2px;}
/* width:100% explícito é necessário aqui: o carrossel só tem filhos com
   position:absolute (as fotos + os dots), então ele não tem conteúdo "em
   fluxo" que force uma largura mínima — sem isso, o item do grid/flex
   colapsa quase a zero em vez de esticar (bug visto no QA mobile 23/07). */
.hero-2n__visual{display:block;width:100%;}

/* Carrossel do hero — fotos reais do site em rotação automática (pedido do
   Jean 23/07: nunca deixar a área vazia, mesmo repetindo fotos já usadas
   em outros pontos, até a fotógrafa entregar o material exclusivo). */
.hero-2n__carousel{
  position:relative;width:100%;aspect-ratio:4/5;
  border-radius:28px;overflow:hidden;
  box-shadow:var(--sombra);
  border:4px solid var(--amarelo);
}
.hero-2n__slide{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1s ease;
}
.hero-2n__slide.is-active{opacity:1;}
.hero-2n__carousel::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(0deg, rgba(78,6,8,.55) 0%, rgba(78,6,8,0) 45%);
  pointer-events:none;
}
.hero-2n__carousel-dots{
  position:absolute;left:0;right:0;bottom:16px;z-index:2;
  display:flex;justify-content:center;gap:8px;
}
.hero-2n__carousel-dot{
  width:9px;height:9px;border-radius:50%;
  background:rgba(255,255,255,.55);
  transition:background .25s ease,transform .25s ease;
}
.hero-2n__carousel-dot.is-active{background:var(--amarelo);transform:scale(1.25);}

.hero-divider{
  position:relative;z-index:2;display:block;width:100%;height:70px;margin-top:-4px;
  fill:var(--branco);
}

@media (max-width:980px){
  .hero-2n__inner{grid-template-columns:1fr;padding:40px 0 44px;}
  .hero-2n__visual{order:-1;max-width:340px;margin:0 auto 10px;}
}
@media (max-width:560px){
  .hero-2n__title{font-size:1.9rem;}
  .hero-2n__sub{font-size:1rem;}
}

/* divisor ondulado entre secoes */
.wave-divider{display:block;width:100%;height:56px;}
.wave-divider path{fill:var(--branco);}
.wave-divider.alt path{fill:var(--creme);}

/* ===== SECTION HEADINGS ===== */
.section-title{text-align:center;margin-bottom:44px;}
.section-title .eyebrow{
  display:inline-block;color:var(--vermelho);font-weight:800;text-transform:uppercase;
  letter-spacing:1px;font-size:.85rem;margin-bottom:10px;
}
.section-title h2{font-size:2.1rem;color:var(--texto-escuro);}
.section-title p{color:var(--texto-suave);max-width:560px;margin:14px auto 0;}
.section-title__sub{font-size:1.05rem;font-weight:700;color:var(--bordo);margin:10px 0 0;}

/* ===== GALERIA / PROVA VISUAL ===== */
.strip{
  display:grid;grid-auto-flow:column;grid-auto-columns:220px;gap:18px;
  overflow-x:auto;padding:10px 4px 20px;scroll-snap-type:x mandatory;
}
.strip img{
  scroll-snap-align:start;border-radius:18px;height:220px;width:220px;object-fit:cover;
  box-shadow:var(--sombra);
}

/* ===== GRID DE PRODUTOS (estilo instagram) ===== */
.produtos-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:22px;
}
.produto-card{
  background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--sombra);
  transition:transform .2s ease;position:relative;
}
.produto-card:hover{transform:translateY(-6px);}
.produto-card .thumb{aspect-ratio:1/1;overflow:hidden;}
.produto-card .thumb img{width:100%;height:100%;object-fit:cover;}
.produto-card .info{padding:16px 18px 20px;}
.produto-card .cat{
  display:inline-block;background:var(--amarelo);color:var(--texto-escuro);
  font-size:.72rem;font-weight:800;padding:4px 10px;border-radius:50px;margin-bottom:8px;
}
.produto-card h3{font-size:1.05rem;margin-bottom:6px;}
.produto-card p{font-size:.88rem;color:var(--texto-suave);margin:0 0 14px;}
.produto-card .btn-mini{
  display:inline-flex;align-items:center;gap:6px;background:var(--whatsapp);color:#fff;
  font-weight:800;font-size:.82rem;padding:9px 16px;border-radius:50px;
  transition:transform .15s ease,box-shadow .15s ease;
}
.produto-card .btn-mini:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(37,211,102,.35);}

/* ===== CARDAPIO ===== */
.cardapio-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start;}
.cardapio-card{
  background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--sombra);
  border:4px solid var(--amarelo);
  display:flex;flex-direction:column;
}
/* 2N NOTA (31/07, rodada 12): estas 2 imagens são o cardápio completo (lista
   de preços fotografada/exportada), não fotos de produto — forçar
   aspect-ratio fixo + object-fit:cover cortava texto real (título "SALGADOS
   FRITOS" cortado no topo do card 1, item "Empada de Palmito" cortado embaixo
   no card 2 — reportado pelo cliente via print, reproduzido e confirmado).
   Causa raiz: cardapio2026-b.jpg é 900×1600px (proporção ~9:16), bem mais
   alta/estreita que a caixa 3:4 (desktop) ou 16:10 (mobile) que forçava o
   corte nas duas pontas. Corrigido pra exibir a imagem inteira sem cortar
   (height:auto), em qualquer largura de tela — os 2 cards podem ficar com
   alturas diferentes no grid 2 colunas do desktop (align-items:start em vez
   de stretch), o que é preferível a esconder preço/sabor real. */
.cardapio-card img{width:100%;height:auto;display:block;}
.cardapio-card .cardapio-footer{padding:18px 20px;text-align:center;}
.cardapio-card h3{color:var(--bordo);margin:0;font-size:1.15rem;}
.cardapio-cta{display:flex;justify-content:center;margin-top:36px;}
/* 2N NOTA (31/07, rodada 12 - continuação desktop): a regra acima
   (height:auto puro) resolveu o corte mas, como as 2 fotos do cardápio têm
   proporção real diferente (cardapio2026-a.jpg 927x1280 ~0.72 vs
   cardapio2026-b.jpg 900x1600 ~0.56), os 2 cards renderizavam com alturas
   visivelmente diferentes lado a lado no desktop (cliente reportou via
   print — card "Salgados Tradicionais"/"Salgados Finos" desalinhados).
   Fix abaixo, só a partir de 981px: caixa com aspect-ratio da imagem mais
   alta/estreita ("b") + object-fit:contain mostra as 2 imagens INTEIRAS
   (nada cortado) dentro da MESMA altura — a imagem mais "quadrada" sobra
   espaço neutro (mesmo branco do card, via background:#fff) acima/abaixo
   dela, a mais alta preenche a caixa ponta a ponta. Resolve corte E
   uniformidade ao mesmo tempo. Mobile (<=980px) não foi tocado, segue a
   regra de cima (height:auto puro), já aprovada hoje. Se um dia trocarem
   uma dessas 2 imagens por outra de proporção diferente, revisar o valor
   do aspect-ratio abaixo. */
@media (min-width:981px){
  .cardapio-card img{
    aspect-ratio:900/1600;
    height:auto;
    object-fit:contain;
    background:#fff;
  }
}

/* ===== EVENTOS / KITS ===== */
.eventos{
  background:linear-gradient(135deg,var(--vermelho-escuro),var(--vermelho-escuro-2));
  color:#fff;border-radius:32px;padding:56px 40px;
  display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;
}
.eventos > div{min-width:0;}
.eventos h2{color:#fff;font-size:2rem;}
.eventos p{opacity:.9;font-size:1.05rem;margin-bottom:24px;}
.eventos-list{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:12px;}
.eventos-list li{display:flex;gap:10px;align-items:flex-start;font-weight:700;}
.eventos-list li::before{content:"🎉";}
.eventos-img{border-radius:24px;overflow:hidden;box-shadow:0 20px 40px rgba(0,0,0,.4);}
/* Carrossel de 3 fotos de empadas dentro do card vermelho — mesmo padrão
   de fade automático do carrossel do hero, em miniatura. */
.eventos-carousel{position:relative;width:100%;aspect-ratio:1/1;}
.eventos-carousel__slide{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1s ease;
}
.eventos-carousel__slide.is-active{opacity:1;}

/* ===== PROVA SOCIAL (Feito à mão + Avaliações Google) =====
   2N NOTA (30/07, rodada 10): card deixou de ficar ancorado no canto esquerdo
   (era item solto de grid de 2 colunas com a 2ª vazia — rodada 9) e virou
   faixa full-width, texto centralizado, acima do grid de avaliações. Mesma
   largura máxima do .reviews-grid (1100px) pra alinhar as bordas das 2
   seções, mas agora ocupando 100% dessa largura em vez de ficar restrito a
   400px num dos lados. */
.social-proof{
  display:flex;justify-content:center;
  max-width:1100px;margin:0 auto 32px;
}
.social-card{
  background:#fff;border-radius:24px;padding:48px 44px;box-shadow:var(--sombra);text-align:center;
  max-width:100%;width:100%;
}
.social-card .emoji{font-size:3.6rem;margin-bottom:16px;display:block;}
.social-card h4{margin-bottom:10px;font-size:1.5rem;color:var(--bordo);}
.social-card p{color:var(--texto-suave);font-size:1.08rem;margin:0 auto;max-width:640px;line-height:1.55;}
.social-card--google{border:2px solid var(--amarelo);}
.google-rating-badge{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:12px;
  background:var(--creme);border-radius:50px;padding:8px 18px;
}
.google-rating-badge strong{font-size:1.3rem;color:var(--bordo);}
.google-rating-badge__stars{color:var(--amarelo-forte);letter-spacing:1px;}
.google-rating-badge__count{color:var(--texto-suave);font-size:.85rem;font-weight:600;}

/* ===== GRID DE AVALIAÇÕES DO GOOGLE (rodada 8, 30/07) =====
   Jean pediu 3 avaliações visíveis ao mesmo tempo lado a lado (não mais
   carrossel de 1 em 1 com dots — formato anterior foi rejeitado). Banco
   de avaliações + sorteio JS ficam em front-page.php ($turbo_reviews);
   aqui é só a grade estática, 3 colunas no desktop, 1 no mobile. */
.reviews-block{text-align:center;margin-top:28px;}
.reviews-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;
  max-width:1100px;margin:20px auto 28px;text-align:left;
}
/* 2N NOTA (30/07, rodada 9): card virou <a> clicável (abre a ficha real do
   Google Maps da Turbo em nova aba) — cursor pointer + leve elevação no hover
   deixam claro que é clicável, sem mexer no conteúdo/array $turbo_reviews. */
.review-card{
  background:#fff;border-radius:20px;padding:24px;box-shadow:var(--sombra);
  border:2px solid var(--amarelo);display:flex;flex-direction:column;
  text-decoration:none;color:inherit;cursor:pointer;min-width:0;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.review-card:hover{
  transform:translateY(-4px);box-shadow:0 16px 34px rgba(43,10,12,.18);
  border-color:var(--amarelo-forte);
}
.review-card__stars{color:var(--amarelo-forte);letter-spacing:2px;font-size:.95rem;margin-bottom:8px;}
.review-card__text{color:var(--texto-suave);font-size:.92rem;font-style:italic;margin:0 0 12px;}
.review-card__footer{display:flex;flex-direction:column;gap:2px;margin-bottom:10px;}
.review-card__author{font-weight:800;color:var(--bordo);font-size:.92rem;}
.review-card__time{color:var(--texto-suave);font-size:.78rem;}
.review-card__badge{
  display:inline-flex;align-items:center;gap:4px;align-self:flex-start;
  background:var(--creme);color:var(--bordo);
  border-radius:50px;padding:4px 12px;
  font-size:.72rem;font-weight:700;margin-top:auto;
}

/* ===== WIDGET TRUSTINDEX (rodada 10, 30/07) =====
   2N NOTA: grid estático acima (.reviews-grid/.review-card, rodadas 8-9)
   substituído pelo plugin oficial "Widgets for Google Reviews" (Trustindex),
   conectado via Place ID real ao negócio (sem API key/registro). O widget
   vem com CSS próprio (tema "Light background" configurado no plugin) — aqui
   só contemos a largura/margem externa na mesma medida do resto da seção
   (1100px, mesma régua do antigo .reviews-grid) pra não vazar do container
   em telas largas nem colar nas bordas no mobile. */
.reviews-trustindex{
  max-width:1100px;margin:20px auto 28px;width:100%;overflow:hidden;
}
.reviews-trustindex > div,
.reviews-trustindex iframe{
  max-width:100%;
}
@media (max-width:600px){
  .reviews-trustindex{padding:0 4px;}
}

/* 2N NOTA (30/07, rodada 9): o antigo .btn-google-reviews (pílula bordô
   grande) foi classificado pelo Jean como "gigante, vermelho e exagerado".
   Substituído por um botão pequeno em formato de coxinha (CSS puro): um
   quadrado com border-radius:50% 50% 50% 0 rotacionado 45deg vira o formato
   de gota/cone clássico da coxinha; o ícone interno recebe rotação inversa
   (-45deg) pra compensar e ficar reto. Cor dourada da marca (--amarelo) com
   borda/sombra em --bordo imitando o empanado dourado. */
/* 2N NOTA (31/07, rodada 12): botão "coxinha" (pílula dourada, rodada 9)
   removido do HTML por pedido do cliente — CSS morto removido junto por
   higiene (zero outra referência a essas classes no tema). */
.instagram-badge{
  display:inline-flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:16px;margin-bottom:12px;
  background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
}
.instagram-badge svg{width:30px;height:30px;fill:#fff;}

/* ===== CTA FINAL (faixa com foto, reposicionada logo abaixo do hero) ===== */
.cta-final{
  position:relative;overflow:hidden;
  background-color:var(--bordo);
  background-size:cover;background-position:center;
  border-radius:32px;padding:60px 30px;text-align:center;color:#fff;
}
.cta-final-overlay{
  position:absolute;inset:0;
  background:radial-gradient(circle at top, rgba(255,193,69,.92), rgba(122,19,48,.88) 65%);
}
.cta-final-content{position:relative;z-index:1;}
.cta-final h2{font-size:2.2rem;margin-bottom:14px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.25);}
.cta-final p{font-size:1.1rem;margin-bottom:30px;max-width:520px;margin-left:auto;margin-right:auto;}

/* ===== LOCALIZAÇÃO / ATENDIMENTO ===== */
.localizacao-grid{
  display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:stretch;
}
.localizacao-grid > div{min-width:0;}
.localizacao-map{
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--sombra);min-height:320px;
  border:4px solid var(--amarelo);
}
.localizacao-info{
  background:#fff;border-radius:var(--radius);box-shadow:var(--sombra);
  padding:32px;display:flex;flex-direction:column;justify-content:center;
  border-top:4px solid var(--bordo);
}
.localizacao-info h3{color:var(--bordo);margin-bottom:10px;}
.localizacao-info p{color:var(--texto-suave);margin-bottom:22px;}
/* 2N NOTA (30/07, rodada 5, item 7): badge de destaque pro bloco de horário,
   mesmo padrão visual de "pill" já usado em .google-rating-badge — dá
   destaque visual sem inventar um horário fixo ainda não confirmado. */
.horario-destaque{
  display:inline-flex;align-items:center;
  background:var(--creme);border:1px solid var(--amarelo);
  border-radius:50px;padding:8px 16px;
  color:var(--texto-escuro) !important;font-weight:700;
}
/* 2N NOTA (30/07, rodada 6, item 8): lista de 3 pills empilhados (um por
   bloco de dias), reaproveitando o mesmo .horario-destaque já existente —
   só reseta o comportamento padrão de <ul> e empilha em coluna com respiro
   entre os pills, mesmo em telas estreitas (390px). */
.horario-lista{
  list-style:none;margin:0 0 22px;padding:0;
  display:flex;flex-direction:column;gap:8px;
}
.horario-lista .horario-destaque{margin-bottom:0;}

/* ===== FOOTER ===== */
.site-footer{
  background:linear-gradient(160deg,var(--vermelho-escuro),var(--vermelho-escuro-2));
  color:#fdeee2;padding:50px 0 30px;font-size:.92rem;
  border-top:4px solid var(--amarelo);
}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:30px;margin-bottom:30px;}
.footer-grid h4{color:var(--amarelo);font-size:1rem;}
.footer-grid a{opacity:.9;display:block;margin-bottom:8px;transition:opacity .15s ease;}
.footer-grid a:hover{opacity:1;color:var(--amarelo);}
.footer-logo{height:120px;width:auto;margin-bottom:14px;}
/* Texto de apresentação abaixo da logo, no rodapé — justificado (só nessa
   área, não no site inteiro), pedido do Jean 27/07. */
.footer-about-text{opacity:.85;max-width:320px;text-align:justify;}
/* display:flex (nao inline-flex): cada botao continua um bloco proprio,
   um embaixo do outro (como qualquer link do rodape) — inline-flex fazia
   os 2 botoes ficarem lado a lado na mesma linha e vazar da tela no
   mobile (390px), corrigido 27/07. max-width evita o mesmo em telas
   bem estreitas quando o texto e longo ("Siga @agenciaturbo"). */
/* 2N NOTA (30/07, rodada 5, item 10): texto/ícone brancos sobre o degradê
   oficial do Instagram ficavam ilegíveis exatamente na faixa amarelo-clara
   do gradiente (#fdf497, canto inferior esquerdo) — branco sobre amarelo
   claro é baixo contraste. Mantido o gradiente oficial (identidade visual),
   adicionado text-shadow/drop-shadow escuro (mesmo recurso já usado em
   .cta-final h2) pra garantir leitura em qualquer ponto do degradê. */
/* 2N NOTA (31/07, rodada 12): Jean pediu o mesmo efeito de glow (brilho ao
   redor) do botão do WhatsApp também no botão do Instagram, pra ficarem
   visualmente equivalentes. O WhatsApp não tinha uma regra de box-shadow
   própria no CSS do tema (o halo visto no print pode ter sido só efeito
   ótico da captura) — adicionado explicitamente aqui pros dois, mesmo
   padrão de blur/intensidade (0 0 18px 2px, alpha .55), cor adaptada pra
   cada marca (verde WhatsApp / rosa-magenta do degradê do Instagram). */
.footer-instagram-btn{
  display:flex !important;align-items:center;gap:8px;
  background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
  color:#fff !important;font-weight:800;padding:10px 18px;border-radius:50px;
  opacity:1 !important;width:fit-content;max-width:100%;box-sizing:border-box;
  text-shadow:0 1px 4px rgba(0,0,0,.6);
  box-shadow:0 0 18px 2px rgba(214,36,159,.55);
}
.footer-instagram-btn svg{width:18px;height:18px;fill:#fff;flex-shrink:0;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6));}
.footer-whats-btn{
  display:flex !important;align-items:center;gap:8px;
  background:var(--whatsapp);
  color:#fff !important;font-weight:800;padding:10px 18px;border-radius:50px;
  opacity:1 !important;width:fit-content;max-width:100%;box-sizing:border-box;
  box-shadow:0 0 18px 2px rgba(37,211,102,.55);
}
.footer-whats-btn svg{width:18px;height:18px;fill:#fff;flex-shrink:0;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);padding-top:20px;text-align:center;opacity:.7;font-size:.82rem;
}
/* Assinatura de rodapé — componente padrão editorial Turbo, ver
   ~/.claude/skills/turbo-lp-design/SKILL.md §2.1. Sempre bloco separado,
   depois da linha de copyright do cliente, nunca na mesma linha. */
.footer-signature{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.14);
  text-align:center;
  font-style:italic;
  font-weight:300;
  font-size:.78rem;
  opacity:.75;
  letter-spacing:.2px;
}
.footer-signature a{
  font-style:normal;
  font-weight:500;
  opacity:1;
  text-decoration:none;
  border-bottom:1px solid currentColor;
}

/* 2N NOTA (31/07, rodada 12): botão flutuante verde (.whats-float, fixo no
   canto inferior direito em todas as páginas, com animação de pulso) REMOVIDO
   por pedido do cliente/Amonn — confirmado ao vivo por print, elemento
   tirado de footer.php. CSS morto (regra + @keyframes pulse, sem outro uso
   no tema) removido junto por higiene. */

/* ===== ARQUIVO / SINGLE PRODUTO ===== */
.archive-header{
  background:linear-gradient(160deg,var(--amarelo),var(--bordo));
  color:#fff;padding:60px 0 40px;text-align:center;
}
.archive-header h1{color:#fff;font-size:2.2rem;}
.single-produto{padding:60px 0;}
.single-produto .thumb{border-radius:var(--radius);overflow:hidden;box-shadow:var(--sombra);margin-bottom:26px;}
.single-produto h1{font-size:2rem;color:var(--bordo);}

/* ===== RESPONSIVO ===== */
@media (max-width: 980px){
  .main-nav{
    position:fixed;
    top:0;left:0;right:0;bottom:0;
    width:100%;height:100%;height:100dvh;
    z-index:99999;
    background:var(--creme);
    flex-direction:column;align-items:stretch;justify-content:flex-start;
    gap:0;
    opacity:0;visibility:hidden;
    transform:translateY(16px);
    transition:opacity .28s ease, transform .28s ease, visibility 0s linear .28s;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  .main-nav.is-open{
    opacity:1;visibility:visible;transform:translateY(0);
    transition:opacity .28s ease, transform .28s ease, visibility 0s linear 0s;
  }

  .main-nav-head{
    display:flex;align-items:center;justify-content:space-between;
    padding:22px 22px 18px;
    border-bottom:1px solid rgba(43,10,12,.12);
    flex-shrink:0;
  }
  .main-nav-head img{height:52px;width:auto;}
  .nav-close{
    display:flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:50%;border:none;
    background:rgba(43,10,12,.08);color:var(--texto-escuro);
    font-size:1.8rem;line-height:1;cursor:pointer;
  }

  .nav-whats-cta{
    display:flex !important;align-items:center;justify-content:center;gap:10px;
    margin:22px;padding:18px;border-radius:16px;
    background:var(--whatsapp);color:#fff;font-weight:800;font-size:1.15rem;
    box-shadow:0 10px 24px rgba(37,211,102,.35);
    flex-shrink:0;
  }
  .nav-whats-cta svg{width:26px;height:26px;fill:#fff;}

  .main-nav-links{
    display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;
    gap:4px;padding:6px 16px;
  }
  .main-nav-links a{
    display:flex;align-items:center;gap:16px;
    padding:18px 16px;border-radius:14px;font-size:1.2rem;
    color:var(--texto-escuro) !important;
    border-bottom:1px solid rgba(43,10,12,.06);
  }
  .main-nav-links a:active{background:rgba(255,193,69,.35);}
  .main-nav-links .nav-ico{display:inline-block;font-size:1.4rem;width:30px;text-align:center;}

  .main-nav-foot{
    display:block;padding:22px 22px 40px;
    margin-top:auto;
    border-top:1px solid rgba(43,10,12,.12);
    flex-shrink:0;
  }
  .main-nav-foot a{
    display:flex;align-items:center;gap:10px;font-weight:800;color:var(--vermelho);
    font-size:1.05rem;
  }
  /* 2N NOTA (30/07, rodada 5, item 1): este ícone do Instagram (rodapé do menu
     mobile) também caía no preto padrão do SVG sem fill. Aqui NÃO trocamos pra
     branco (o fundo é claro/creme — ficaria invisível); em vez disso alinhamos
     à cor do texto vizinho (var(--vermelho)) pra harmonizar com a paleta sem
     quebrar o contraste. Reportado ao Jean como 2º ícone preto encontrado. */
  .main-nav-foot svg{width:24px;height:24px;fill:var(--vermelho);}

  .nav-toggle{display:flex;}
  .nav-toggle.is-active span:nth-child(1){transform:translateY(8px) rotate(45deg);}
  .nav-toggle.is-active span:nth-child(2){opacity:0;}
  .nav-toggle.is-active span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

  .produtos-grid{grid-template-columns:repeat(2,1fr);}
  .cardapio-grid{grid-template-columns:1fr;}
  .eventos{grid-template-columns:1fr;padding:36px 24px;}
  .social-proof{justify-content:center;}
  .social-card{padding:36px 30px;}
  .reviews-grid{grid-template-columns:minmax(0,1fr);gap:16px;}
  .localizacao-grid{grid-template-columns:1fr;}
  .localizacao-map{min-height:260px;}
  .footer-grid{grid-template-columns:1fr;}
}
@media (max-width: 560px){
  .section{padding:46px 0;}
  .site-header .container{gap:10px;}
  .site-header img.logo{height:54px;}
  .header-cta{padding:10px 16px;gap:6px;font-size:.88rem;}
  .header-cta svg{width:19px;height:19px;}
  .nav-toggle{width:40px;height:40px;}
  .produtos-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .produto-card .info{padding:12px 14px 16px;}
  .review-card{padding:18px;}
  .cta-final h2{font-size:1.6rem;}
}

/* ==========================================================================
   ADVOCACIA HOME (front-page.php) — Preto & Dourado
   Página standalone autocontida (body.adv-home). Classes prefixadas adv-
   para não conflitar com os estilos legados do tema.
   ========================================================================== */
body.adv-home{
  --adv-preto:#0D0D0D;
  --adv-preto-2:#121212;
  --adv-dourado:#D4AF37;
  --adv-dourado-2:#C5A059;
  --adv-offwhite:#F9F9F9;
  --adv-cinza:#F1F1F1;
  --adv-texto:#3A3A3A;
  --adv-whats:#25D366;
  --adv-whats-hover:#1EBE5B;
  margin:0;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--adv-texto);
  background:var(--adv-offwhite);
  line-height:1.7;
}
.adv-home h1,.adv-home h2,.adv-home h3{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.adv-container{max-width:1140px;margin:0 auto;padding:0 24px}
.adv-container--narrow{max-width:820px}
.adv-section{padding:96px 0}
.adv-center{text-align:center}
.adv-center .adv-lead{margin-left:auto;margin-right:auto}

/* Botões */
.adv-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 34px;border-radius:6px;font-weight:600;font-size:16px;text-decoration:none;transition:all .3s ease;cursor:pointer;border:none}
.adv-btn--whats{background:var(--adv-whats);color:#fff;box-shadow:0 8px 24px rgba(37,211,102,.35)}
.adv-btn--whats:hover{background:var(--adv-whats-hover);transform:translateY(-3px);box-shadow:0 12px 30px rgba(37,211,102,.45);color:#fff}
.adv-btn--dark-outline{background:transparent;color:var(--adv-preto);border:2px solid var(--adv-preto)}
.adv-btn--dark-outline:hover{background:var(--adv-preto);color:var(--adv-dourado)}
.adv-btn--hero{border:2px solid var(--adv-dourado)}

/* Cabeçalho */
.adv-header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(13,13,13,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(212,175,55,.25)}
.adv-header__inner{display:flex;align-items:center;justify-content:space-between;min-height:80px;height:auto;padding:8px 24px}
.adv-logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.adv-logo__mark{width:44px;height:44px;border:2px solid var(--adv-dourado);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:22px;font-weight:700;color:var(--adv-dourado)}
.adv-logo__text{color:#fff;font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:20px;letter-spacing:1px}
.adv-logo__text span{color:var(--adv-dourado)}
.adv-menu{display:flex;gap:26px;align-items:center}
.adv-menu a{color:#fff;text-decoration:none;font-size:13px;font-weight:500;letter-spacing:.5px;text-transform:uppercase;transition:color .3s;position:relative}
.adv-menu a::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--adv-dourado);transition:width .3s}
.adv-menu a:hover{color:var(--adv-dourado)}
.adv-menu a:hover::after{width:100%}
.adv-menu a[aria-current="page"]{color:var(--adv-dourado)}
.adv-menu a[aria-current="page"]::after{width:100%}
.adv-header__cta{padding:12px 22px;font-size:14px}
.adv-menu-toggle{display:none;background:none;border:none;color:var(--adv-dourado);font-size:28px;cursor:pointer}

/* Hero */
.adv-hero{min-height:100vh;display:flex;align-items:center;background:radial-gradient(ellipse at 70% 20%,#1e1a12 0%,var(--adv-preto) 60%);padding:160px 0 100px;position:relative;overflow:hidden}
.adv-hero::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 0v60M0 30h60' stroke='%23D4AF37' stroke-opacity='.04'/%3E%3C/svg%3E")}
.adv-hero__content{position:relative;max-width:none}
.adv-hero__eyebrow{display:inline-flex;align-items:center;gap:12px;color:var(--adv-dourado);font-size:13px;font-weight:600;letter-spacing:3px;text-transform:uppercase;margin-bottom:24px}
.adv-hero__eyebrow::before{content:'';width:48px;height:1px;background:var(--adv-dourado)}
.adv-hero h1{font-size:clamp(30px,3.6vw,46px);font-weight:700;color:var(--adv-dourado);line-height:1.2;margin:0 0 26px}
.adv-hero__sub{font-size:clamp(17px,2vw,21px);color:#E8E8E8;font-weight:300;max-width:680px;margin:0 0 40px}
.adv-badges{display:flex;flex-wrap:wrap;gap:18px 40px;margin-top:56px}
.adv-badge{display:flex;align-items:center;gap:12px;color:#D9D9D9;font-size:14px}
.adv-badge__icon{width:44px;height:44px;flex:none;border:1px solid rgba(212,175,55,.5);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--adv-dourado);background:rgba(212,175,55,.08)}

/* Títulos de seção */
.adv-title{font-size:clamp(26px,3vw,38px);font-weight:700;line-height:1.25;margin:0 0 20px;color:var(--adv-preto)}
.adv-title--underline{position:relative;display:inline-block;padding-bottom:14px}
.adv-title--underline::after{content:'';position:absolute;left:0;bottom:0;width:72px;height:3px;background:var(--adv-dourado)}
.adv-center .adv-title--underline::after{left:50%;transform:translateX(-50%)}
.adv-lead{font-size:18px;max-width:720px;margin:0 0 48px}

/* Atuação 1 (claro) */
.adv-grid-2{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center}
.adv-features{list-style:none;display:flex;flex-direction:column;gap:18px;margin:32px 0 40px;padding:0}
.adv-features li{display:flex;gap:16px;align-items:flex-start;font-size:16px}
.adv-features__icon{flex:none;width:40px;height:40px;border-radius:50%;background:rgba(212,175,55,.14);color:var(--adv-dourado-2);display:flex;align-items:center;justify-content:center;font-size:17px}
.adv-card-dark{background:var(--adv-preto);border-radius:16px;padding:48px 40px;color:#fff;position:relative;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.25)}
.adv-card-dark::before{content:'';position:absolute;top:-60px;right:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(212,175,55,.25),transparent 70%)}
.adv-card-dark__icon{font-size:52px;margin-bottom:20px;color:var(--adv-dourado)}
.adv-card-dark h3{color:var(--adv-dourado);font-size:26px;margin:0 0 14px}
.adv-card-dark p{color:#CFCFCF;font-size:15px;margin:0}

/* Atuação 2 (escuro) */
.adv-section--dark{background:var(--adv-preto-2);color:#fff}
.adv-section--dark .adv-title{color:var(--adv-dourado)}
.adv-section--dark .adv-lead{color:#D5D5D5}
.adv-section--dark .adv-features li{color:#E2E2E2}
.adv-section--dark .adv-features strong{color:#fff}
.adv-section--dark .adv-features__icon{background:rgba(212,175,55,.18);color:var(--adv-dourado)}
.adv-gold-card{background:linear-gradient(145deg,rgba(212,175,55,.12),rgba(212,175,55,.03));border:1px solid rgba(212,175,55,.4);border-radius:16px;padding:44px;margin-bottom:28px}
.adv-gold-card h3{color:var(--adv-dourado);font-size:22px;margin:0 0 10px}
.adv-gold-card p{color:#DDD;font-size:15px;margin:0}

/* Como funciona */
.adv-section--gray{background:var(--adv-cinza)}
.adv-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.adv-step{background:#fff;border-radius:14px;padding:36px 26px;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.06);border-top:3px solid var(--adv-dourado);transition:transform .3s}
.adv-step:hover{transform:translateY(-8px)}
.adv-step__num{width:56px;height:56px;margin:0 auto 18px;border-radius:50%;background:var(--adv-preto);color:var(--adv-dourado);display:flex;align-items:center;justify-content:center;font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:26px;font-weight:700}
.adv-step h3{font-size:19px;margin:0 0 10px;color:var(--adv-preto)}
.adv-step p{font-size:14px;color:#666;margin:0}

/* FAQ */
.adv-faq{background:#fff;border:1px solid #E6E6E6;border-left:4px solid var(--adv-dourado);border-radius:10px;margin-bottom:16px;overflow:hidden}
.adv-faq__q{width:100%;background:none;border:none;text-align:left;padding:22px 26px;font-size:17px;font-weight:600;color:var(--adv-preto);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;font-family:'Inter',sans-serif}
.adv-faq__chev{color:var(--adv-dourado);font-size:22px;transition:transform .3s;flex:none}
.adv-faq.open .adv-faq__chev{transform:rotate(45deg)}
.adv-faq__a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.adv-faq__a p{padding:0 26px 24px;font-size:15px;color:#555;margin:0}

/* CTA final */
.adv-cta-final{background:radial-gradient(ellipse at 50% 0%,#1c1810 0%,var(--adv-preto) 65%);text-align:center;color:#fff;padding:96px 0}
.adv-cta-final h2{color:var(--adv-dourado);font-size:clamp(30px,4vw,46px);margin:0 0 18px}
.adv-cta-final p{color:#D8D8D8;max-width:640px;margin:0 auto 40px;font-size:18px}

/* Rodapé */
.adv-footer{background:var(--adv-preto);border-top:1px solid rgba(212,175,55,.25);padding:56px 0 32px;color:#999;text-align:center}
.adv-footer .adv-logo{justify-content:center;margin-bottom:18px}
.adv-footer__oab{color:var(--adv-dourado);font-size:14px;letter-spacing:1px;margin:0 0 20px}
.adv-footer__links{display:flex;justify-content:center;gap:28px;margin-bottom:24px}
.adv-footer__links a{color:#BBB;text-decoration:none;font-size:13px;transition:color .3s}
.adv-footer__links a:hover{color:var(--adv-dourado)}
.adv-footer__copy{font-size:12px;color:#666;margin:0}

/* WhatsApp flutuante */
.adv-whats-float{position:fixed;bottom:26px;right:26px;width:60px;height:60px;background:var(--adv-whats);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(37,211,102,.5);z-index:200;transition:transform .3s;text-decoration:none}
.adv-whats-float:hover{transform:scale(1.1)}
.adv-whats-float svg{width:32px;height:32px;fill:#fff}

/* Responsivo */
@media(max-width:960px){
  .adv-grid-2{grid-template-columns:1fr;gap:40px}
  .adv-steps{grid-template-columns:repeat(2,1fr)}
  .adv-menu{display:none;position:absolute;top:80px;left:0;right:0;background:var(--adv-preto);flex-direction:column;padding:24px;gap:20px;border-bottom:1px solid rgba(212,175,55,.3)}
  .adv-menu.open{display:flex}
  .adv-menu-toggle{display:block}
  .adv-header__cta{display:none}
}
@media(max-width:600px){
  .adv-section{padding:64px 0}
  .adv-steps{grid-template-columns:1fr}
  .adv-badges{gap:14px 24px}
}

/* Hero estilo referência: foto colada nas bordas direita/topo/base, altura total */
.adv-hero--full{padding:0;min-height:100vh}
.adv-hero--full .adv-hero__grid{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;min-height:100vh}
.adv-hero--full .adv-hero__content{padding:160px 56px 100px calc((100vw - 1140px)/2 + 24px);display:flex;flex-direction:column;justify-content:center}
.adv-hero--full .adv-hero__visual{display:flex}
.adv-hero--full .adv-hero__visual img{width:100%;height:100%;min-height:100vh;object-fit:cover;border:none;border-radius:0;box-shadow:none;display:block}
.adv-btn--gold{background:var(--adv-dourado);color:var(--adv-preto);border:2px solid var(--adv-dourado)}
.adv-btn--gold:hover{background:var(--adv-dourado-2);border-color:var(--adv-dourado-2);color:var(--adv-preto);transform:translateY(-3px)}
.adv-card-dark__img{width:100%;height:220px;object-fit:cover;border-radius:10px;margin:0 0 24px;display:block;border:1px solid rgba(212,175,55,.35)}
.adv-section__img{width:100%;max-width:640px;height:260px;object-fit:cover;border-radius:14px;margin:0 auto 32px;display:block;border:1px solid rgba(212,175,55,.45);box-shadow:0 20px 50px rgba(0,0,0,.4)}
@media(max-width:960px){
  .adv-hero--full .adv-hero__grid{grid-template-columns:1fr;min-height:0}
  .adv-hero--full .adv-hero__content{padding:140px 24px 56px}
  .adv-hero--full .adv-hero__visual img{min-height:0;height:320px}
}

/* Dropdown "Áreas de Atuação" no menu */
.adv-dropdown{position:relative;display:flex;align-items:center}
.adv-dropdown__toggle{background:none;border:none;color:#fff;font-size:13px;font-weight:500;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;font-family:inherit;padding:0;margin:0;line-height:inherit;display:flex;align-items:center;gap:6px;transition:color .3s}
.adv-dropdown__toggle:hover,.adv-dropdown.open .adv-dropdown__toggle{color:var(--adv-dourado)}
.adv-dropdown__chev{font-size:10px;transition:transform .3s}
.adv-dropdown.open .adv-dropdown__chev{transform:rotate(180deg)}
.adv-dropdown__list{position:absolute;top:calc(100% + 14px);left:0;min-width:240px;background:var(--adv-preto);border:1px solid rgba(212,175,55,.35);border-radius:10px;padding:10px 0;opacity:0;visibility:hidden;transform:translateY(8px);transition:all .25s ease;box-shadow:0 20px 40px rgba(0,0,0,.5);z-index:110}
.adv-dropdown:hover .adv-dropdown__list,.adv-dropdown.open .adv-dropdown__list{opacity:1;visibility:visible;transform:translateY(0)}
.adv-dropdown__list a{display:block;padding:12px 20px;font-size:13px;text-transform:none;letter-spacing:.3px}
.adv-dropdown__list a:hover{background:rgba(212,175,55,.1)}
.adv-dropdown__list a::after{display:none}
@media(max-width:960px){
  .adv-dropdown__list{position:static;opacity:1;visibility:visible;transform:none;display:none;box-shadow:none;border:none;border-left:2px solid rgba(212,175,55,.35);border-radius:0;margin:8px 0 0 8px;padding:0 0 0 12px}
  .adv-dropdown.open .adv-dropdown__list{display:block}
}

/* Grupo de botões nas seções de atuação */
.adv-btn-group{display:flex;flex-wrap:wrap;gap:16px}
.adv-btn--gold-outline{background:transparent;color:var(--adv-dourado);border:2px solid var(--adv-dourado)}
.adv-btn--gold-outline:hover{background:var(--adv-dourado);color:var(--adv-preto)}

/* Páginas internas de serviço (hero menor + cards em 3 colunas) */
.adv-hero--inner{min-height:0;padding:170px 0 90px}
.adv-hero--inner .adv-hero__visual img{height:400px}
.adv-cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.adv-mini-card{background:#fff;border-radius:14px;padding:38px 30px;box-shadow:0 10px 30px rgba(0,0,0,.07);border-top:3px solid var(--adv-dourado);transition:transform .3s}
.adv-mini-card:hover{transform:translateY(-8px)}
.adv-mini-card__icon{font-size:38px;display:block;margin-bottom:16px}
.adv-mini-card h3{font-size:21px;margin:0 0 12px;color:var(--adv-preto)}
.adv-mini-card p{font-size:15px;color:#555;margin:0}
@media(max-width:960px){
  .adv-cards-3{grid-template-columns:1fr}
  .adv-hero--inner .adv-hero__visual img{height:260px}
}

/* Blog — listagem e leitura */
.adv-hero--blog{padding:170px 0 70px}
.adv-hero__eyebrow--center{justify-content:center}
.adv-hero__eyebrow--center::after{content:'';width:48px;height:1px;background:var(--adv-dourado)}
.adv-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.adv-post-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.07);border-top:3px solid var(--adv-dourado);display:flex;flex-direction:column;transition:transform .3s}
.adv-post-card:hover{transform:translateY(-6px)}
.adv-post-card__thumb{display:block;height:200px;overflow:hidden;background:var(--adv-preto)}
.adv-post-card__thumb img{width:100%;height:100%;object-fit:cover}
.adv-post-card__placeholder{display:flex;align-items:center;justify-content:center;height:100%;font-size:52px;color:var(--adv-dourado)}
.adv-post-card__body{padding:26px;display:flex;flex-direction:column;gap:10px;flex:1}
.adv-post-card__date{font-size:12px;color:var(--adv-dourado-2);font-weight:600;letter-spacing:1px;text-transform:uppercase}
.adv-post-card__body h2{font-size:20px;margin:0;line-height:1.3}
.adv-post-card__body h2 a{color:var(--adv-preto);text-decoration:none}
.adv-post-card__body h2 a:hover{color:var(--adv-dourado-2)}
.adv-post-card__body p{font-size:14px;color:#666;margin:0;flex:1}
.adv-post-card__link{color:var(--adv-dourado-2);font-weight:600;font-size:14px;text-decoration:none}
.adv-post-card__link:hover{color:var(--adv-dourado)}
.adv-pagination{margin-top:48px;text-align:center}
.adv-pagination .page-numbers{display:inline-block;padding:10px 18px;margin:0 4px;border-radius:8px;background:#fff;border:1px solid #E0E0E0;color:var(--adv-preto);text-decoration:none;font-size:14px}
.adv-pagination .page-numbers.current{background:var(--adv-preto);color:var(--adv-dourado);border-color:var(--adv-preto)}
.adv-post-hero-img{margin-bottom:36px;border-radius:14px;overflow:hidden;border:1px solid rgba(212,175,55,.35)}
.adv-post-hero-img img{width:100%;height:auto;display:block}
.adv-post-content{font-size:17px;line-height:1.9;color:#333}
.adv-post-content h2,.adv-post-content h3{color:var(--adv-preto);margin:36px 0 14px}
.adv-post-content a{color:var(--adv-dourado-2)}
.adv-post-cta{margin-top:48px;background:var(--adv-preto);border:1px solid rgba(212,175,55,.4);border-radius:16px;padding:44px;text-align:center}
.adv-post-cta h3{color:var(--adv-dourado);font-size:26px;margin:0 0 10px}
.adv-post-cta p{color:#D5D5D5;margin:0 0 26px}
@media(max-width:960px){
  .adv-blog-grid{grid-template-columns:1fr}
}

/* ===== Home v2 — estrutura inspirada na referência (safeelima.adv.br) ===== */

/* Cards de Áreas de Atuação com foto */
.adv-areas{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}
.adv-area-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 12px 34px rgba(0,0,0,.08);border-top:3px solid var(--adv-dourado);display:flex;flex-direction:column;transition:transform .3s}
.adv-area-card:hover{transform:translateY(-6px)}
.adv-area-card__thumb{display:block;height:260px;overflow:hidden}
.adv-area-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.adv-area-card:hover .adv-area-card__thumb img{transform:scale(1.05)}
.adv-area-card__body{padding:30px;display:flex;flex-direction:column;gap:12px;flex:1}
.adv-area-card__body h3{font-size:24px;margin:0}
.adv-area-card__body h3 a{color:var(--adv-preto);text-decoration:none}
.adv-area-card__body h3 a:hover{color:var(--adv-dourado-2)}
.adv-area-card__body p{font-size:15px;color:#555;margin:0;flex:1}
.adv-area-card__link{color:var(--adv-dourado-2);font-weight:600;font-size:14px;text-decoration:none}
.adv-area-card__link:hover{color:var(--adv-dourado)}

/* Sobre — foto colada nas bordas esquerda/topo/base, estilo referência */
.adv-about{padding:0}
.adv-about__grid{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.adv-about__photo{display:flex}
.adv-about__photo img{width:100%;height:100%;min-height:520px;object-fit:cover;display:block;border:none;border-radius:0;box-shadow:none}
.adv-about__text{padding:96px calc((100vw - 1140px)/2 + 24px) 96px 56px;display:flex;flex-direction:column;justify-content:center}

/* Diferenciais — cards escuros */
.adv-mini-card--dark{background:rgba(212,175,55,.06);border:1px solid rgba(212,175,55,.35);border-top:3px solid var(--adv-dourado);box-shadow:none}
.adv-mini-card--dark h3{color:var(--adv-dourado)}
.adv-mini-card--dark p{color:#C9C9C9}

/* Rodapé em colunas */
.adv-footer--cols{text-align:left;padding:64px 0 0}
.adv-footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:44px}
.adv-footer__col h4{color:var(--adv-dourado);font-size:16px;margin:0 0 18px;letter-spacing:1px;text-transform:uppercase}
.adv-footer__col a{display:block;color:#BBB;text-decoration:none;font-size:14px;margin-bottom:10px;transition:color .3s}
.adv-footer__col a:hover{color:var(--adv-dourado)}
.adv-footer__brand p{color:#999;font-size:14px;margin-top:16px}
.adv-footer__bottom{border-top:1px solid rgba(212,175,55,.2);padding:22px 0;text-align:center}
.adv-footer__bottom a{color:#999}
.adv-footer__bottom a:hover{color:var(--adv-dourado)}

@media(max-width:960px){
  .adv-areas{grid-template-columns:1fr}
  .adv-footer__grid{grid-template-columns:1fr 1fr}
  .adv-about__grid{grid-template-columns:1fr}
  .adv-about__photo img{height:300px;min-height:0}
  .adv-about__text{padding:56px 24px}
}
@media(max-width:600px){
  .adv-footer__grid{grid-template-columns:1fr}
}
/* Logo oficial (imagem) - tamanho ajustado */
.adv-logo__img{height:105px;width:auto;max-width:none;object-fit:contain;display:block}
.adv-footer .adv-logo__img,.adv-footer__brand .adv-logo__img{height:75px;max-width:280px;margin:0 auto}
.adv-footer__brand .adv-logo__img{margin:0}
@media(max-width:600px){.adv-logo__img{height:90px}}

/* Icones monocromaticos (emojis sem cor, tom dourado) */
.adv-badge__icon,.adv-mini-card__icon,.adv-logo__mark,.adv-step__num,.adv-post-card__placeholder{filter:grayscale(100%) sepia(45%) saturate(320%) hue-rotate(2deg) brightness(1.05)}

/* Ícone WhatsApp: mesma cor do texto, tamanho discreto */
.adv-wa-ico{width:18px;height:18px;fill:currentColor;vertical-align:-3px;flex:none}

/* Ícone WhatsApp piscando nos links Saiba mais */
.adv-wa-ico--blink{animation:advWaBlink 1.6s ease-in-out infinite}
@keyframes advWaBlink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}

/* Icone WhatsApp piscando nos links Saiba mais */
.adv-wa-ico--blink{animation:advWaBlink 1.6s ease-in-out infinite}
@keyframes advWaBlink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}

/* Todos os ícones WhatsApp piscando */
.adv-wa-ico{animation:advWaBlink 1.6s ease-in-out infinite}
.adv-whats-float{animation:advWaPulse 1.6s ease-in-out infinite}
@keyframes advWaPulse{0%,100%{transform:scale(1);box-shadow:0 8px 24px rgba(37,211,102,.5)}50%{transform:scale(1.08);box-shadow:0 8px 34px rgba(37,211,102,.8)}}
