/* ======================================================
   GATTI VET — CSS GLOBAL
   Estrutura: Home › Segmento › Região › Bairro
   Temas por data-silo (caes=verde, gatos=roxo, exoticos=laranja)

   ÍNDICE
   01. Anti-flash
   02. Tokens (:root)
   03. Temas dinâmicos (data-silo)
   04. Reset + base
   05. Utilitários
   06. Glow
   07. Header + Nav + Toggle tema
   08. Breadcrumb
   09. Hero (+ split)
   10. Cards (segmentos)
   11. Botões
   12. Grid de bairros
   13. FAQ
   14. Serviços (grid + card + layout adaptativo)
   15. CTA final
   16. Footer
   17. Tabela de vacinas
   18. Grid de regiões
   19. WhatsApp flutuante
   20. Modal exit-intent
   21. Barra de cookies
   22. Páginas legais
   23. Legibilidade (clamp)
   24. Reveal (fade-in)
   25. Responsivo global
   26. TEMA LIGHT
   ====================================================== */


/* ========== 01. ANTI-FLASH ========== */
html[data-theme="light"] { background:#F4F1EA; color:#1E293B; }

/* Logos (base) */
.logo-img { display:block; height:40px; width:auto; }

/* Dark é o padrão → mostra dark, esconde light */
.logo-light { display:none; }
.logo-dark  { display:block; }

/* Tema claro → inverte */
[data-theme="light"] .logo-light { display:block; }
[data-theme="light"] .logo-dark  { display:none; }


/* ========== 02. TOKENS ========== */
:root {
  --slate-950:#020617; --slate-900:#0f172a; --slate-800:#1e293b;
  --slate-700:#334155; --slate-500:#64748b; --slate-400:#94a3b8;
  --slate-300:#cbd5e1; --slate-100:#f1f5f9; --white:#ffffff;

  --teal:#14b8a6; --cyan:#06b6d4; --emerald-i:#10b981; --wa:#25D366;

  --caes-a:#10b981;     --caes-b:#a5e8d3;     --caes-rgb:16,185,129;
  --gatos-a:#800080;    --gatos-b:#8b5cf6;    --gatos-rgb:200,42,200;
  --exoticos-a:#f97316; --exoticos-b:#f59e0b; --exoticos-rgb:249,115,22;

  --brand-a:var(--teal); --brand-b:var(--cyan);
  --brand-rgb:20,184,166; --brand-ink:var(--slate-950);

  --radius:24px; --radius-sm:16px; --maxw:80rem;
  --font-head:'Space Grotesk', system-ui, sans-serif;
  --font-body:'Sora', system-ui, sans-serif;
}

/* ========== 03. TEMAS DINÂMICOS ========== */
[data-silo="caes"]     { --brand-a:var(--caes-a);     --brand-b:var(--caes-b);     --brand-rgb:var(--caes-rgb);     --brand-ink:var(--slate-950); }
[data-silo="gatos"]    { --brand-a:var(--gatos-a);    --brand-b:var(--gatos-b);    --brand-rgb:var(--gatos-rgb);    --brand-ink:var(--white); }
[data-silo="exoticos"] { --brand-a:var(--exoticos-a); --brand-b:var(--exoticos-b); --brand-rgb:var(--exoticos-rgb); --brand-ink:var(--slate-950); }

/* ========== 04. RESET + BASE ========== */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body {
  font-family:var(--font-body); background:var(--slate-950); color:var(--slate-100);
  min-height:100vh; position:relative; overflow-x:hidden; line-height:1.6;
  -webkit-font-smoothing:antialiased; letter-spacing:-0.01em;
}
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; }
h1,h2,h3,h4 { font-family:var(--font-head); font-weight:700; letter-spacing:-0.02em; }
strong { color:var(--white); }
::selection { background:rgba(var(--brand-rgb),0.9); color:var(--brand-ink); }

/* ========== 05. UTILITÁRIOS ========== */
.container { max-width:var(--maxw); margin:0 auto; padding:0 1.5rem; }
.gradient-text {
  background:linear-gradient(to right, var(--brand-a), var(--brand-b));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.section { padding:4rem 1.5rem; max-width:var(--maxw); margin:0 auto; }
.section-eyebrow { font-size:0.72rem; font-weight:700; text-transform:uppercase; letter-spacing:0.15em; color:var(--brand-a); }
.section-title { font-size:clamp(1.6rem, 4vw, 2rem); color:var(--white); margin-top:0.5rem; }

/* ========== 06. GLOW ========== */
.glow {
  position:fixed; top:0; right:33%; width:600px; height:600px;
  background:rgba(var(--brand-rgb),0.10); border-radius:50%;
  filter:blur(150px); pointer-events:none; z-index:0;
}

/* ========== 07. HEADER + NAV + TOGGLE ========== */
.header {
  position:sticky; top:0; z-index:40; width:100%;
  backdrop-filter:blur(16px); background:rgba(2,6,23,0.80);
  border-bottom:1px solid rgba(30,41,59,0.8);
}
.header-inner {
  max-width:var(--maxw); margin:0 auto; padding:0 1.5rem; height:5rem; width:100%;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.logo { display:flex; align-items:center; gap:0.75rem; flex-shrink:0; }
.logo-icon {
  width:2.5rem; height:2.5rem; border-radius:1rem;
  background:linear-gradient(to top right, var(--brand-a), var(--brand-b));
  display:grid; place-items:center; box-shadow:0 8px 20px rgba(var(--brand-rgb),0.25);
}
.logo-icon svg { width:1.25rem; height:1.25rem; color:var(--slate-950); }
.logo-text { font-family:var(--font-head); font-weight:700; font-size:1.25rem; color:var(--white); }
.logo-text .dot { color:var(--brand-a); }

.nav { display:flex; align-items:center; gap:1.75rem; margin-left:auto; margin-right:1.5rem; }
.nav a { font-size:0.9rem; font-weight:500; color:var(--slate-300); transition:color 0.2s; }
.nav a:hover { color:var(--brand-a); }

.btn-wa {
  padding:0.625rem 1.25rem; background:var(--wa); color:var(--slate-950);
  font-weight:700; font-size:0.75rem; border-radius:999px; white-space:nowrap;
  box-shadow:0 8px 20px rgba(37,211,102,0.2); transition:background 0.2s; flex-shrink:0;
}
.btn-wa:hover { background:#20ba5a; }

.btn-theme {
  display:grid; place-items:center; width:2.5rem; height:2.5rem; flex-shrink:0;
  border-radius:999px; cursor:pointer;
  background:rgba(var(--brand-rgb),0.12); border:1px solid rgba(var(--brand-rgb),0.3);
  color:var(--brand-a); font-size:1.1rem; line-height:1;
  transition:background 0.2s, transform 0.2s, border-color 0.2s;
}
.btn-theme:hover { transform:translateY(-2px); }

/* ========== 08. BREADCRUMB ========== */
.breadcrumb {
  display:flex; align-items:center; gap:0.5rem; font-size:0.75rem; color:var(--slate-400);
  max-width:var(--maxw); margin:0 auto; padding:1.5rem 1.5rem 0;
}
.breadcrumb a:hover { color:var(--brand-a); }
.breadcrumb .current { color:var(--brand-a); font-weight:700; }

/* ========== 09. HERO ========== */
.hero { position:relative; z-index:10; padding:3.5rem 1.5rem 4rem; max-width:var(--maxw); margin:0 auto; }
.badge {
  display:inline-flex; align-items:center; gap:0.5rem; padding:0.5rem 1rem; border-radius:999px;
  background:rgba(var(--brand-rgb),0.1); border:1px solid rgba(var(--brand-rgb),0.3);
  color:var(--brand-a); font-size:0.75rem; font-weight:700; margin-bottom:1.5rem;
}
.badge-dot { width:0.5rem; height:0.5rem; border-radius:50%; background:var(--brand-a); animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.4} }
.hero-title { font-size:clamp(2rem, 5vw, 3rem); color:var(--white); line-height:1.12; max-width:48rem; }
.hero-sub { color:var(--slate-300); font-size:1.05rem; margin-top:1rem; max-width:42rem; }
.hero-actions { margin-top:2rem; display:flex; flex-wrap:wrap; gap:1rem; }

/* Hero 2 colunas */
.hero-split { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.hero-split .hero-title, .hero-split .hero-sub { max-width:100%; }
.hero-img {
  width:100%; border-radius:var(--radius); border:1px solid var(--slate-800);
  box-shadow:0 20px 40px rgba(var(--brand-rgb),0.2); object-fit:cover;
}

/* ========== 10. CARDS (segmentos) ========== */
.cards-wrap { padding:0 1.5rem 5rem; max-width:var(--maxw); margin:0 auto; position:relative; z-index:10; }
.cards-grid { display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); }
.card {
  border-radius:var(--radius); overflow:hidden; border:1px solid var(--slate-800);
  background:rgba(15,23,42,0.6); box-shadow:0 20px 40px rgba(0,0,0,0.3);
  transition:transform 0.3s, border-color 0.3s, box-shadow 0.3s;
}
.card:hover { transform:translateY(-8px); }
.card-link { display:block; height:100%; }
.card-caes:hover     { border-color:rgba(var(--caes-rgb),0.6);     box-shadow:0 20px 40px rgba(var(--caes-rgb),0.2); }
.card-gatos:hover    { border-color:rgba(var(--gatos-rgb),0.6);    box-shadow:0 20px 40px rgba(var(--gatos-rgb),0.2); }
.card-exoticos:hover { border-color:rgba(var(--exoticos-rgb),0.6); box-shadow:0 20px 40px rgba(var(--exoticos-rgb),0.2); }

.card-img { position:relative; height:13rem; overflow:hidden; }
.card-img img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s; }
.card:hover .card-img img { transform:scale(1.1); }
.card-img::after { content:''; position:absolute; inset:0; background:linear-gradient(to top, var(--slate-950), rgba(2,6,23,0.4), transparent); }
.card-tag { position:absolute; top:1rem; left:1rem; z-index:2; padding:0.25rem 0.75rem; border-radius:999px; font-size:0.72rem; font-weight:700; }
.tag-caes     { background:var(--caes-a);     color:var(--slate-950); }
.tag-gatos    { background:var(--gatos-a);    color:#fff; }
.tag-exoticos { background:var(--exoticos-a); color:var(--slate-950); }

.card-body { padding:1.5rem; }
.card-body h3 { font-size:1.2rem; color:var(--white); }
.card-body p { color:var(--slate-400); font-size:0.875rem; margin-top:0.5rem; }
.card-cta { display:inline-block; margin-top:1rem; font-weight:700; font-size:0.85rem; }
.cta-caes { color:var(--caes-a); } .cta-gatos { color:var(--gatos-a); } .cta-exoticos { color:var(--exoticos-a); }

/* ========== 11. BOTÕES ========== */
.btn {
  display:inline-flex; justify-content:center; align-items:center; gap:0.5rem;
  padding:0.85rem 1.75rem; font-weight:700; font-size:0.9rem;
  border-radius:var(--radius-sm); transition:filter 0.2s, transform 0.2s; cursor:pointer;
}
.btn:hover { filter:brightness(1.08); transform:translateY(-2px); }
.btn-brand { background:linear-gradient(to right, var(--brand-a), var(--brand-b)); color:var(--brand-ink); box-shadow:0 8px 20px rgba(var(--brand-rgb),0.25); }
.btn-block { width:100%; }
.btn-dark { background:var(--slate-950); color:var(--white); }
.btn-dark:hover { background:var(--slate-900); }

/* ========== 12. GRID DE BAIRROS ========== */
.bairros-grid { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); }
.bairro-item {
  border-radius:var(--radius-sm); background:rgba(15,23,42,0.6); border:1px solid var(--slate-800);
  padding:1.25rem; text-align:center; transition:border-color 0.2s, background 0.2s, transform 0.2s;
}
.bairro-item:hover { border-color:rgba(var(--brand-rgb),0.5); background:var(--slate-900); transform:translateY(-3px); }
.bairro-item p { font-weight:700; color:var(--white); font-size:0.9rem; }

/* ========== 13. FAQ ========== */
.faq { display:grid; gap:1rem; max-width:48rem; margin:0 auto; }
.faq details { border-radius:var(--radius-sm); background:rgba(15,23,42,0.6); border:1px solid var(--slate-800); padding:0 1.5rem; transition:border-color 0.2s; }
.faq details[open] { border-color:rgba(var(--brand-rgb),0.4); }
.faq summary { cursor:pointer; list-style:none; font-weight:600; color:var(--white); padding:1.5rem 0; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; color:var(--brand-a); font-size:1.4rem; transition:transform 0.2s; }
.faq details[open] summary::after { transform:rotate(45deg); }
.faq details p { color:var(--slate-400); font-size:0.875rem; padding-bottom:1.5rem; }

/* ========== 14. SERVIÇOS ========== */
.servicos-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:1.5rem; }
.servicos-grid.grid-center { display:flex; flex-wrap:wrap; justify-content:center; }
.servicos-grid.grid-center .servico-card { flex:1 1 18rem; max-width:22rem; }

.servico-card {
  border-radius:var(--radius); background:rgba(15,23,42,0.6); border:1px solid var(--slate-800); padding:1.75rem;
  transition:transform .35s cubic-bezier(.2,.7,.2,1), border-color .35s ease, box-shadow .35s ease;
}
.servico-card:hover { transform:translateY(-6px); border-color:var(--brand-a); box-shadow:0 18px 40px -20px rgba(0,0,0,.6); }
.servico-card h3 { color:var(--white); font-size:1.05rem; margin-top:0.25rem; }
.servico-card p { color:var(--slate-400); font-size:0.8rem; margin-top:0.5rem; }
.servico-link { display:block; }
.servico-cta { display:inline-block; margin-top:1rem; color:var(--brand-a); font-weight:700; font-size:0.85rem; }
.servico-card .card-icon {
  width:3rem; height:3rem; display:grid; place-items:center; border-radius:14px; margin-bottom:1rem;
  background:color-mix(in srgb, var(--brand-a) 15%, transparent); color:var(--brand-a); transition:transform .35s ease;
}
.servico-card:hover .card-icon { transform:scale(1.08) rotate(-3deg); }
.servico-card .card-icon svg { width:1.6rem; height:1.6rem; }

/* Layout adaptativo por quantidade (desktop) */
.servicos-grid:has(> .servico-card:nth-child(2):last-child) { grid-template-columns:repeat(2, minmax(0,1fr)); max-width:48rem; margin-inline:auto; }
.servicos-grid:has(> .servico-card:nth-child(6):last-child) { grid-template-columns:repeat(3, minmax(0,1fr)); max-width:66rem; margin-inline:auto; }
.servicos-grid:has(> .servico-card:nth-child(9):last-child) { grid-template-columns:repeat(3, minmax(0,1fr)); max-width:66rem; margin-inline:auto; }

/* Centraliza cards "órfãos" da última linha (grids de 4 col) */
@media (min-width:1025px) {
  .servicos-grid:not(:has(> .servico-card:nth-child(2):last-child)):not(:has(> .servico-card:nth-child(6):last-child)):not(:has(> .servico-card:nth-child(9):last-child)) > .servico-card:nth-child(4n+1):last-child { grid-column:2 / span 2; }
  .servicos-grid:not(:has(> .servico-card:nth-child(2):last-child)):not(:has(> .servico-card:nth-child(6):last-child)):not(:has(> .servico-card:nth-child(9):last-child)) > .servico-card:nth-child(4n+1):nth-last-child(2) { grid-column:2 / span 2; }
}

/* ========== 15. CTA FINAL ========== */
.cta-wrap { padding:4rem 1.5rem; max-width:64rem; margin:0 auto; }
.cta {
  border-radius:var(--radius); background:linear-gradient(to right, var(--brand-a), var(--brand-b));
  padding:3.5rem 2rem; text-align:center; box-shadow:0 25px 50px rgba(var(--brand-rgb),0.2);
}
.cta h2 { font-size:clamp(1.75rem, 4vw, 2.25rem); color:var(--brand-ink); }
.cta p { color:rgba(0,0,0,0.7); margin-top:0.75rem; }
.btn-cta {
  display:inline-flex; align-items:center; gap:0.75rem; margin-top:1.5rem; padding:1rem 2rem;
  background:var(--slate-950); color:var(--white); font-weight:700; border-radius:var(--radius-sm); transition:background 0.2s;
}
.btn-cta:hover { background:var(--slate-900); }

/* ========== 16. FOOTER ========== */
.footer { background:var(--slate-950); border-top:1px solid var(--slate-800); color:var(--slate-400); }
.footer-inner { max-width:72rem; margin:0 auto; padding:4rem 1.5rem 3rem; display:grid; gap:2.5rem; grid-template-columns:1.6fr 1fr 1fr 1.4fr; }
.footer-col h4 { color:var(--white); font-size:.95rem; margin-bottom:1rem; font-weight:600; }
.footer-col nav { display:flex; flex-direction:column; gap:.6rem; }
.footer-col a,
.footer-legal a,
.footer-social a { color:var(--slate-400); text-decoration:none; transition:color .2s; font-size:.9rem; }
.footer-col a:hover,
.footer-legal a:hover { color:var(--brand-a); }

/* Logo do rodapé (SVG) */
.footer-brand .footer-logo { height:34px; width:auto; margin-bottom:12px; }

.footer-brand p { color:var(--slate-400); margin:1rem 0; font-size:.9rem; line-height:1.6; max-width:22rem; }
.footer-social { display:flex; gap:.75rem; }
.footer-social a { display:grid; place-items:center; width:38px; height:38px; border:1px solid var(--slate-800); border-radius:10px; color:var(--slate-300); }
.footer-social a:hover { background:var(--brand-a); color:var(--brand-ink); border-color:transparent; }
.footer-contact .footer-wa { color:var(--white); font-weight:600; font-size:1.05rem; display:block; margin-bottom:.4rem; }
.footer-contact span { display:block; font-size:.85rem; margin-bottom:.3rem; }
.footer-cta { margin-top:1rem; display:inline-block; }
.footer-bottom { border-top:1px solid var(--slate-800); padding:1.5rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; max-width:72rem; margin:0 auto; font-size:.8rem; }
.footer-legal { display:flex; gap:1.25rem; align-items:center; flex-wrap:wrap; }
.footer p { font-size:clamp(0.9rem, 0.86rem + 0.3vw, 0.98rem); line-height:1.6; }

/* ========== 17. TABELA DE VACINAS ========== */
.table-wrap { max-width:48rem; margin:0 auto; overflow-x:auto; }
.vac-table { width:100%; border-collapse:collapse; background:rgba(15,23,42,0.6); border:1px solid var(--slate-800); border-radius:var(--radius-sm); overflow:hidden; font-size:0.9rem; }
.vac-table th, .vac-table td { padding:0.9rem 1rem; text-align:left; border-bottom:1px solid var(--slate-800); }
.vac-table thead th { background:rgba(var(--brand-rgb),0.12); color:var(--white); font-family:var(--font-head); font-weight:700; }
.vac-table th:not(:first-child), .vac-table td:not(:first-child) { text-align:center; }
.vac-table td { color:var(--slate-300); }
.vac-table tbody tr:last-child td { border-bottom:none; }
.vac-table .yes { color:var(--brand-a); font-weight:700; }
.vac-table .no  { color:var(--slate-700); }
.vac-table tbody tr:hover { background:rgba(var(--brand-rgb),0.06); }

/* ========== 18. GRID DE REGIÕES ========== */
.regioes-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(20rem,1fr)); gap:1.25rem; max-width:70rem; margin:0 auto; }
.regiao-card {
  display:block; padding:1.75rem; background:var(--slate-900); border:1px solid var(--slate-800);
  border-radius:var(--radius); text-decoration:none; transition:transform .2s ease, border-color .2s ease, background .2s ease;
}
.regiao-card:hover { transform:translateY(-4px); border-color:var(--brand-a); background:var(--slate-850, #16182b); }
.regiao-card h3 { font-family:"Space Grotesk",sans-serif; font-size:1.35rem; color:var(--white); margin:0 0 .75rem; display:flex; justify-content:space-between; align-items:center; }
.regiao-card h3 span { color:var(--brand-a); transition:transform .2s ease; }
.regiao-card:hover h3 span { transform:translateX(4px); }
.regiao-bairros { color:var(--slate-400); font-size:.95rem; line-height:1.6; margin:0; }

/* ========== 19. WHATSAPP FLUTUANTE ========== */
.wa-float {
  position:fixed; right:1.25rem; bottom:1.25rem; z-index:900;
  width:3.5rem; height:3.5rem; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:#25d366; color:#fff; box-shadow:0 8px 24px rgba(37,211,102,.4);
  transition:transform .2s ease, box-shadow .2s ease; animation:wa-pulse 2.4s infinite;
}
.wa-float:hover { transform:scale(1.08); box-shadow:0 10px 30px rgba(37,211,102,.55); }
@keyframes wa-pulse {
  0%   { box-shadow:0 8px 24px rgba(37,211,102,.4), 0 0 0 0 rgba(37,211,102,.5); }
  70%  { box-shadow:0 8px 24px rgba(37,211,102,.4), 0 0 0 14px rgba(37,211,102,0); }
  100% { box-shadow:0 8px 24px rgba(37,211,102,.4), 0 0 0 0 rgba(37,211,102,0); }
}

/* ========== 20. MODAL EXIT-INTENT ========== */
.gv-modal-overlay { position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; background:rgba(5,6,15,.75); backdrop-filter:blur(4px); padding:1.25rem; }
.gv-modal-overlay.open { display:flex; animation:gv-fade .25s ease; }
@keyframes gv-fade { from{opacity:0} to{opacity:1} }
.gv-modal { position:relative; max-width:26rem; width:100%; text-align:center; background:var(--slate-900,#0f1120); border:1px solid var(--brand-a); border-radius:var(--radius,1rem); padding:2.5rem 2rem; box-shadow:0 20px 60px rgba(0,0,0,.5); animation:gv-pop .3s ease; }
@keyframes gv-pop { from{transform:scale(.9);opacity:0} to{transform:scale(1);opacity:1} }
.gv-modal-badge { display:inline-block; font-size:.75rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--brand-a); border:1px solid var(--brand-a); border-radius:999px; padding:.3rem .9rem; margin-bottom:1rem; }
.gv-modal h2 { font-family:"Space Grotesk",sans-serif; font-size:1.8rem; color:#fff; margin:0 0 .75rem; }
.gv-modal h2 span { color:var(--brand-a); }
.gv-modal p { color:var(--slate-400,#94a3b8); line-height:1.6; margin:0 0 1.5rem; }
.gv-modal-cta { display:inline-block; width:100%; margin-bottom:.75rem; }
.gv-modal-dismiss { background:none; border:none; color:var(--slate-500,#64748b); font-size:.9rem; cursor:pointer; text-decoration:underline; }
.gv-modal-dismiss:hover { color:var(--slate-300,#cbd5e1); }
.gv-modal-close { position:absolute; top:.75rem; right:1rem; background:none; border:none; color:var(--slate-500,#64748b); font-size:1.75rem; line-height:1; cursor:pointer; }
.gv-modal-close:hover { color:#fff; }

/* ========== 21. BARRA DE COOKIES ========== */
.gv-cookie { position:fixed; left:0; right:0; bottom:0; z-index:950; background:var(--slate-900,#0f1120); border-top:1px solid var(--slate-800,#1e293b); transform:translateY(100%); transition:transform .35s ease; }
.gv-cookie.show { transform:translateY(0); }
.gv-cookie-inner { max-width:70rem; margin:0 auto; padding:1.1rem 1.25rem; display:flex; align-items:center; gap:1.25rem; flex-wrap:wrap; }
.gv-cookie p { color:var(--slate-400,#94a3b8); font-size:.9rem; line-height:1.5; margin:0; flex:1; min-width:16rem; }
.gv-cookie a { color:var(--brand-a); }
.gv-cookie-actions { display:flex; gap:.75rem; }
.gv-cookie-reject, .gv-cookie-accept { padding:.6rem 1.2rem; border-radius:999px; font-size:.9rem; font-weight:600; cursor:pointer; border:1px solid var(--slate-700,#334155); background:none; color:var(--slate-300,#cbd5e1); transition:all .2s ease; }
.gv-cookie-reject:hover { border-color:var(--slate-500,#64748b); }
.gv-cookie-accept { background:var(--brand-a); border-color:var(--brand-a); color:#fff; }
.gv-cookie-accept:hover { filter:brightness(1.1); }

/* ========== 22. PÁGINAS LEGAIS ========== */
.legal { padding-top:3rem; }
.legal-wrap { max-width:48rem; margin:0 auto; background:var(--slate-900,#0f1120); border:1px solid var(--slate-800,#1e293b); border-radius:var(--radius,1rem); padding:3rem 2.5rem; }
.legal-wrap h1 { font-family:"Space Grotesk",sans-serif; font-size:2rem; color:#fff; margin:0 0 .5rem; }
.legal-updated { color:var(--slate-500,#64748b); font-size:.9rem; margin:0 0 2rem; }
.legal-wrap h2 { font-family:"Space Grotesk",sans-serif; font-size:1.25rem; color:#fff; margin:2rem 0 .75rem; }
.legal-wrap p { color:var(--slate-300,#cbd5e1); line-height:1.7; margin:0 0 1rem; }
.legal-wrap ul { color:var(--slate-300,#cbd5e1); line-height:1.7; margin:0 0 1rem; padding-left:1.25rem; }
.legal-wrap li { margin-bottom:.5rem; }
.legal-wrap a { color:var(--brand-a); }
.legal-wrap strong { color:#fff; }

/* ========== 23. LEGIBILIDADE (clamp) ========== */
.hero-sub { font-size:clamp(1.08rem, 1rem + 0.7vw, 1.22rem); line-height:1.7; }
.servico-card p { font-size:clamp(1rem, 0.95rem + 0.45vw, 1.1rem); line-height:1.65; }
.section-eyebrow { font-size:clamp(0.82rem, 0.78rem + 0.25vw, 0.92rem); letter-spacing:0.08em; }
.section-title + p,
.section > div > p:not(.section-eyebrow),
.section p.section-eyebrow + h2 + p { font-size:clamp(1rem, 0.95rem + 0.4vw, 1.08rem); line-height:1.65; }
.section p[style*="0.8rem"] { font-size:clamp(0.9rem, 0.85rem + 0.3vw, 0.95rem) !important; line-height:1.6; }
.faq details p { font-size:clamp(1rem, 0.95rem + 0.4vw, 1.08rem); line-height:1.65; }
.faq details summary { font-size:clamp(1rem, 0.97rem + 0.35vw, 1.1rem); }

/* ========== 24. REVEAL (fade-in) ========== */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); animation:reveal-safety 0s linear 1.2s forwards; }
.reveal.is-visible { opacity:1; transform:none; }
@keyframes reveal-safety { to { opacity:1; transform:none; } }
.servicos-grid .reveal:nth-child(2) { transition-delay:.08s; }
.servicos-grid .reveal:nth-child(3) { transition-delay:.16s; }
.servicos-grid .reveal:nth-child(4) { transition-delay:.24s; }

/* ========== 25. RESPONSIVO GLOBAL ========== */
@media (max-width:1024px) {
  .servicos-grid { grid-template-columns:repeat(2, 1fr); }
  .servicos-grid:has(> .servico-card:nth-child(6):last-child),
  .servicos-grid:has(> .servico-card:nth-child(9):last-child) { grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width:860px) {
  .nav { display:none; }
  .header-inner { gap:.75rem; padding:0 1rem; }
  .btn-wa { padding:.55rem 1rem; font-size:.72rem; }
  .logo-img { height:32px; }
}
@media (max-width:768px) {
  .hero-split { grid-template-columns:1fr; gap:2rem; }
  .hero-split .hero-img { order:-1; }
  .footer-inner { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; text-align:center; }
}
@media (max-width:640px) {
  .hero { padding:2.5rem 1.5rem 3rem; }
  .section, .cards-wrap, .cta-wrap { padding-left:1.25rem; padding-right:1.25rem; }
  .servicos-grid { grid-template-columns:1fr; }
  .servicos-grid:has(> .servico-card:nth-child(2):last-child),
  .servicos-grid:has(> .servico-card:nth-child(6):last-child),
  .servicos-grid:has(> .servico-card:nth-child(9):last-child) { grid-template-columns:1fr; }
  .hero-sub { line-height:1.75; }
  .servico-card p { line-height:1.7; }
  .faq details p { line-height:1.7; }
  .gv-cookie-inner { flex-direction:column; align-items:stretch; }
  .gv-cookie-actions { justify-content:center; }
  .legal-wrap { padding:2rem 1.5rem; }
  .legal-wrap h1 { font-size:1.6rem; }
}
@media (max-width:600px) {
  .logo-img { height:30px; }
  .footer-brand .footer-logo { height:30px; }
}
@media (max-width:400px) {
  .header-inner { gap:.5rem; padding:0 .75rem; }
  .btn-wa { padding:.5rem .8rem; font-size:.68rem; }
  .logo-img { height:26px; }
  .logo-text { font-size:1.05rem; }
}

/* ============================================
   26. TEMA LIGHT (off-white) — data-theme="light" no <html>
   ============================================ */
[data-theme="light"] {
  --bg-base:#F4F1EA; --bg-surface:#FAF8F3; --bg-surface-2:#EFEBE1;
  --ink:#1E293B; --ink-strong:#0F172A; --ink-muted:#57534E; --ink-faint:#78716C;
  --border:#E0DBD0; --border-2:#D6D0C4;

  --slate-950:var(--ink-strong); --slate-900:var(--bg-surface-2); --slate-850:var(--bg-surface-2);
  --slate-800:var(--border); --slate-700:var(--border-2); --slate-500:var(--ink-faint);
  --slate-400:var(--ink-muted); --slate-300:var(--ink); --slate-100:var(--ink); --white:var(--ink-strong);

  --brand-text:#0E7C6B; --wa:#128C4A;
  --brand-a:var(--brand-text); --brand-b:var(--brand-text); --brand-rgb:14,124,107; --brand-ink:#ffffff;
}
[data-theme="light"][data-silo="caes"]     { --brand-text:#047857; --brand-rgb:4,120,87;   --brand-ink:#ffffff; }
[data-theme="light"][data-silo="gatos"]    { --brand-text:#7E22CE; --brand-rgb:126,34,206; --brand-ink:#ffffff; }
[data-theme="light"][data-silo="exoticos"] { --brand-text:#C2410C; --brand-rgb:194,65,12;  --brand-ink:#ffffff; }

[data-theme="light"] body { background:var(--bg-base); color:var(--ink); }
[data-theme="light"] .glow { background:rgba(0,0,0,0.03); filter:blur(160px); }
[data-theme="light"] .header { background:rgba(250,248,243,0.85); border-bottom:1px solid var(--border); }
[data-theme="light"] .logo-icon svg { color:#fff; }
[data-theme="light"] .nav a { color:var(--ink-muted); }
[data-theme="light"] .nav a:hover { color:var(--brand-text); }

/* Superfícies claras */
[data-theme="light"] .card,
[data-theme="light"] .servico-card,
[data-theme="light"] .bairro-item,
[data-theme="light"] .faq details,
[data-theme="light"] .vac-table,
[data-theme="light"] .regiao-card,
[data-theme="light"] .legal-wrap,
[data-theme="light"] .gv-modal,
[data-theme="light"] .gv-cookie { background:var(--bg-surface); border-color:var(--border); }
[data-theme="light"] .card { box-shadow:0 12px 30px rgba(0,0,0,0.06); }
[data-theme="light"] .servico-card:hover { box-shadow:0 18px 40px -22px rgba(0,0,0,0.35); }
[data-theme="light"] .bairro-item:hover,
[data-theme="light"] .regiao-card:hover { background:var(--bg-surface-2); }
[data-theme="light"] .hero-img { border-color:var(--border); box-shadow:0 20px 40px rgba(0,0,0,0.10); }

/* Botões */
[data-theme="light"] .btn-wa { background:var(--wa); color:#fff; }
[data-theme="light"] .btn-wa:hover { background:#0F7A40; }
[data-theme="light"] .btn-dark,
[data-theme="light"] .btn-cta { background:var(--ink-strong); color:#fff; }
[data-theme="light"] .btn-dark:hover,
[data-theme="light"] .btn-cta:hover { background:#000; }

/* CTA final */
[data-theme="light"] .cta { background:var(--brand-text); box-shadow:0 25px 50px rgba(var(--brand-rgb),0.25); }
[data-theme="light"] .cta h2 { color:#fff; }
[data-theme="light"] .cta p { color:rgba(255,255,255,0.85); }

/* Textos legais e tabela */
[data-theme="light"] .faq summary { color:var(--ink-strong); }
[data-theme="light"] .vac-table thead th { color:var(--ink-strong); }
[data-theme="light"] .vac-table td { color:var(--ink); }
[data-theme="light"] .vac-table .no { color:#A8A29E; }

/* Footer light */
[data-theme="light"] .footer { background:var(--bg-surface-2); border-top:1px solid var(--border); color:var(--ink-muted); }
[data-theme="light"] .footer-col h4,
[data-theme="light"] .footer-contact .footer-wa { color:var(--ink-strong); }
[data-theme="light"] .footer-col a,
[data-theme="light"] .footer-legal a,
[data-theme="light"] .footer-brand p { color:var(--ink-muted); }
[data-theme="light"] .footer-col a:hover,
[data-theme="light"] .footer-legal a:hover { color:var(--brand-text); }
[data-theme="light"] .footer-social a { border-color:var(--border-2); color:var(--ink); }
[data-theme="light"] .footer-social a:hover { background:var(--brand-text); color:#fff; }

/* Modal / cookies */
[data-theme="light"] .gv-modal-overlay { background:rgba(30,41,59,0.55); }
[data-theme="light"] .gv-modal h2 { color:var(--ink-strong); }
[data-theme="light"] .gv-modal p { color:var(--ink-muted); }
[data-theme="light"] .gv-modal-close:hover,
[data-theme="light"] .gv-modal-dismiss:hover { color:var(--ink-strong); }
[data-theme="light"] .gv-cookie-reject,
[data-theme="light"] .gv-cookie-accept { color:var(--ink); border-color:var(--border-2); }
[data-theme="light"] .gv-cookie-accept { color:#fff; }

/* Legais */
[data-theme="light"] .legal-wrap h1,
[data-theme="light"] .legal-wrap h2,
[data-theme="light"] .legal-wrap strong { color:var(--ink-strong); }
[data-theme="light"] .legal-wrap p,
[data-theme="light"] .legal-wrap ul { color:var(--ink); }

/* Gradient-text */
[data-theme="light"] .gradient-text { background:none; -webkit-text-fill-color:currentColor; color:var(--brand-text); }
