/* Casa Mãe — camada de site (reveal + navegação mobile).
   As cores/tokens e o layout das páginas vêm inline do design original;
   aqui ficam só os comportamentos que reescrevemos em JS puro. */

/* Fallback de tokens (as páginas já definem os seus; isto cobre páginas novas). */
:root{
  --cream:#fdf6f4; --sand-soft:#f3e8de; --rose:#c94b6e; --rose-deep:#a83557;
  --blue-navy:#152b70; --ink:#2d2d2d; --ink-60:#6a6a6a; --ink-40:#9a9a9a;
  --border-hairline:rgba(21,43,112,.10);
}

html,body{ overflow-x:hidden; }
a{ -webkit-tap-highlight-color:transparent; }

/* ---------- REVEAL (só quando há JS; sem JS, tudo visível) ---------- */
html.js [data-reveal]{
  opacity:0; transform:translateY(30px);
  transition:opacity .85s cubic-bezier(.22,.61,.36,1), transform .85s cubic-bezier(.22,.61,.36,1);
}
html.js [data-reveal].in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  html.js [data-reveal]{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ---------- HAMBÚRGUER + GAVETA (mobile ≤900px) ---------- */
.cm-burger{
  display:none; align-items:center; justify-content:center;
  width:44px; height:44px; padding:0; border:0; border-radius:12px;
  background:transparent; cursor:pointer; flex-direction:column; gap:5px;
}
.cm-burger span{
  display:block; width:24px; height:2px; border-radius:2px;
  background:var(--blue-navy); transition:transform .3s ease, opacity .2s ease;
}
.cm-burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.cm-burger.open span:nth-child(2){ opacity:0; }
.cm-burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.cm-scrim{
  position:fixed; inset:0; background:rgba(21,43,112,.38); backdrop-filter:blur(2px);
  opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease; z-index:998;
}
.cm-scrim.open{ opacity:1; visibility:visible; }

.cm-drawer{
  position:fixed; top:0; right:0; height:100%; width:min(320px,84vw);
  background:#fff; box-shadow:-12px 0 40px rgba(21,43,112,.14);
  transform:translateX(100%); transition:transform .34s cubic-bezier(.22,.61,.36,1);
  z-index:999; display:flex; flex-direction:column; gap:4px;
  padding:88px 26px 32px; overflow-y:auto;
}
.cm-drawer.open{ transform:translateX(0); }
.cm-drawer a{
  font-family:var(--body,'Nunito',system-ui,sans-serif); font-size:18px; font-weight:700;
  color:var(--blue-navy); text-decoration:none; padding:14px 6px;
  border-bottom:1px solid var(--border-hairline);
}
.cm-drawer a:last-child{
  margin-top:16px; border:0; text-align:center; color:#fff;
  background:var(--rose); border-radius:999px; padding:14px 20px;
}

@media (max-width:900px){
  .cm-burger{ display:inline-flex; }
  header nav.cm-nav-desktop{ display:none !important; }
}

/* Nomes de patronos (Quem Somos) viram links discretos */
.cm-patron-link{ color:inherit; text-decoration:none; transition:color .2s ease; }
.cm-patron-link:hover{ color:var(--rose); text-decoration:underline; text-underline-offset:3px; }

/* ============================================================
   Consentimento de cookies + mensagens de formulário
   ============================================================ */

/* Honeypot anti-spam: fora da tela sem `display:none` — alguns robôs ignoram campos
   ocultos por display, mas preenchem os que continuam no fluxo. */
.cm-hp{
  position:absolute !important; left:-9999px !important;
  width:1px !important; height:1px !important; opacity:0 !important;
}

/* Rótulo só para leitor de tela (o campo tem placeholder, mas placeholder não é rótulo). */
.cm-sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

.cm-consent{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:9999;
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  max-width:820px; margin:0 auto; padding:18px 20px;
  background:#fff; border:1.5px solid var(--border-soft); border-radius:16px;
  box-shadow:0 18px 44px rgba(0,0,0,.16);
  font-family:var(--body);
  animation:cmConsentIn .32s cubic-bezier(.22,.61,.36,1) both;
}
@keyframes cmConsentIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .cm-consent{ animation:none; } }

.cm-consent__txt{
  flex:1 1 320px; margin:0; font-size:14px; line-height:1.55; color:var(--ink-60);
}
.cm-consent__txt a{ color:var(--rose); font-weight:700; text-decoration:none; }
.cm-consent__txt a:hover{ text-decoration:underline; }

.cm-consent__acoes{ display:flex; gap:10px; flex:0 0 auto; }

.cm-consent__btn{
  font-family:var(--body); font-weight:700; font-size:14px;
  padding:11px 20px; border:0; border-radius:12px; cursor:pointer;
  background:var(--rose); color:#fff; transition:filter .2s ease;
}
.cm-consent__btn:hover{ filter:brightness(1.06); }

/* Recusar tem o MESMO peso visual de aceitar (sem cor apagada, sem link escondido):
   consentimento só é livre se recusar for tão fácil quanto aceitar. */
.cm-consent__btn--ghost{
  background:transparent; color:var(--ink);
  border:1.5px solid var(--border-soft);
}
.cm-consent__btn--ghost:hover{ border-color:var(--ink-40); }

@media (max-width:560px){
  .cm-consent{ gap:12px; }
  .cm-consent__acoes{ width:100%; }
  .cm-consent__btn{ flex:1 1 0; }
}

/* Retorno dos formulários (sucesso / erro / enviando) */
.cm-form-msg{
  margin:4px 0 0; padding:12px 14px; border-radius:12px;
  font-size:14px; line-height:1.5;
  border:1.5px solid var(--border-soft); color:var(--ink-60); background:var(--cream);
}
.cm-form-msg[data-tipo="ok"]{
  border-color:rgba(46,125,74,.35); background:rgba(46,125,74,.08); color:#2e7d4a;
}
.cm-form-msg[data-tipo="erro"]{
  border-color:rgba(201,75,110,.4); background:rgba(201,75,110,.08); color:var(--rose-deep);
}

/* Botão "Copiar chave PIX" */
.cm-copy-pix{
  margin-top:14px; font-family:var(--body); font-weight:700; font-size:14px;
  padding:10px 18px; border:1.5px solid var(--rose); border-radius:999px;
  background:transparent; color:var(--rose); cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.cm-copy-pix:hover{ background:var(--rose); color:#fff; }
.cm-copy-pix.ok{ background:#2e7d4a; border-color:#2e7d4a; color:#fff; }
