/* Banner de consentimento LGPD — "voz da casa".
   Fala na voz do Casarão em vez de aviso jurídico, e o argumento é cupom e
   promoção, que a casa de fato tem em produção.

   PARIDADE LEGAL: .pulse-consent-recusar não tem borda, mas divide com
   .pulse-consent-aceitar a MESMA regra de tamanho — mesma coluna da grade,
   mesmo padding, mesma fonte. A LGPD exige que recusar seja tão fácil quanto
   aceitar; encolher, apagar ou esconder a recusa invalida o consentimento, e
   consentimento inválido derruba a base legal do rastreamento inteiro. Essa
   paridade é travada por teste em consentBanner.test.mjs — se alguém separar
   as regras e diminuir o Recuso, o teste reprova. */

.pulse-consent {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
  max-width: 520px; margin: 0 auto;
  background: #C6362F; color: #FFF6E9;
  border-radius: 18px 18px 0 0;
  /* Mesmo padrão do checkout.css: sem isto os dois botões ficam sob a barra
     de gestos do iPhone. Afeta Aceito e Recuso igualmente, então não é
     assimetria legal — é só o banner ficar inalcançável. */
  padding: 14px 15px calc(13px + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -8px 40px -10px rgba(51, 36, 27, .45);
  font-size: 13px; line-height: 1.45;
  animation: pulse-consent-subir .45s cubic-bezier(.2, .8, .25, 1) both;
}

@keyframes pulse-consent-subir {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .pulse-consent { animation: none; }
}

.pulse-consent-cabeca {
  display: flex; align-items: center; gap: 9px; margin-bottom: 7px;
}

.pulse-consent-brasao {
  width: 27px; height: 27px; border-radius: 50%; flex: none;
  background: #FFF6E9; color: #C6362F;
  font-family: Georgia, "Times New Roman", serif; font-weight: 700; font-size: 13px;
  display: grid; place-items: center;
}

.pulse-consent-titulo {
  font-family: Georgia, "Times New Roman", serif; font-weight: 700;
  font-size: 15px; line-height: 1.2; margin: 0;
}

.pulse-consent-txt {
  margin: 0 0 11px; font-size: 12px; line-height: 1.45;
  /* Sem alpha de propósito: rgba(255,246,233,.92) sobre #C6362F dá 4.40:1 e
     reprova o WCAG AA (4.5 pra texto normal). Cheio vai a 4.94:1. */
  color: #FFF6E9;
}
.pulse-consent-txt a { color: #FFF6E9; text-underline-offset: 2px; }

.pulse-consent-btns {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}

/* Regra de TAMANHO compartilhada — é ela que garante a paridade.
   Não separe estas duas classes pra dar tamanhos diferentes. */
.pulse-consent-recusar, .pulse-consent-aceitar {
  font: inherit;
  font-size: 13.5px;
  padding: 11px 8px;
  border: 0;
  border-radius: 10px;
  cursor: pointer;
  transition: filter .15s, background .15s;
}

.pulse-consent-aceitar { background: #FFF6E9; color: #C6362F; font-weight: 700; }
.pulse-consent-aceitar:hover { filter: brightness(1.05); }

/* Sem contorno, mas com a mesma caixa e o texto em opacidade cheia:
   some a borda, não o alvo de clique nem a legibilidade. */
.pulse-consent-recusar { background: transparent; color: #FFF6E9; font-weight: 600; }
.pulse-consent-recusar:hover { background: rgba(255, 246, 233, .12); }

.pulse-consent button:focus-visible {
  outline: 2px solid #E5C687; outline-offset: 2px;
}
