/* Tokens LEVE21 medidos por pixel dos mockups reais do Will (produto-2.png o logo,
   produto-15.png o fundo de app), 03/09/2026 — espelha tailwind.config.js (uma alimenta as
   classes Tailwind, a outra as classes escritas à mão fora do Tailwind: glass-card, cta-button,
   folha de checkout). Contraste WCAG AA já calculado ANTES de usar (não depois, como no
   Exercita+ em 02/09/2026): #300030 e #e0004f medem ≥4.5:1 contra branco/#faf6f8. */
:root {
  --bg: #faf6f8; --fg: #2a0a2a;
  --primary: #300030; --primary-fg: #fff;
  --secondary: #e0004f; --secondary-fg: #fff;
  --muted: #f2e9ee; --muted-fg: #6b5567;
  --destructive: #cf3b3b; --destructive-fg: #f8fafd;
  --guarantee: #1980e6; --highlight: #ffc619;
  --price-old: #cc3333; --price-new: #a3003f;
  --card: #fff; --border: #ecdfe6;
  --cta: #e0004f; --cta-fg: #fff; --cta-hover: #b8003f;
  --escuro: #1e0014;
  --fonte: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
}
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--bg); color: var(--fg); font-family: var(--fonte);
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
body.sem-rolagem { overflow: hidden; }
[hidden] { display: none !important; }
h1, h2, h3 { font-family: var(--fonte); margin: 0; }
p { margin: 0; }
img, video, svg { max-width: 100%; display: block; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
:focus-visible { outline: 3px solid rgba(224, 0, 79, .45); outline-offset: 2px; }

.glass-card {
  background: var(--card); border: 1px solid var(--border); border-radius: 1rem;
  box-shadow: 0 4px 30px rgba(48, 0, 48, .06); padding: 1.5rem; box-sizing: border-box;
}

.section-title { text-align: center; color: var(--fg); margin-bottom: 1rem; font-size: 1.875rem; font-weight: 800; line-height: 2.25rem; }

.cta-button {
  text-transform: uppercase; letter-spacing: .025em; background-color: var(--cta); color: var(--cta-fg);
  box-shadow: 0 4px 20px rgba(224, 0, 79, .35); border-radius: .75rem; justify-content: center;
  align-items: center; padding: 1rem 2rem; font-size: 1.125rem; font-weight: 700; line-height: 1.75rem;
  transition: all .3s cubic-bezier(.4, 0, .2, 1); display: inline-flex; border: 0; cursor: pointer;
}
.cta-button:hover { background-color: var(--cta-hover); box-shadow: 0 6px 25px rgba(224, 0, 79, .35); transform: translateY(-2px); }

/* Selo pulsante: opacity num ::after, nunca box-shadow direto no elemento (box-shadow força
   repintura fora da GPU em cada frame — mesmo cuidado aplicado no Exercita+ em 02/09/2026, aqui
   já nasce certo). */
@keyframes pulse-glow-opacidade { 0%, 100% { opacity: 0; } 50% { opacity: 1; } }
.animate-pulse-glow { position: relative; box-shadow: 0 0 20px rgba(224, 0, 79, .35); }
.animate-pulse-glow::after {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
  box-shadow: 0 0 40px rgba(224, 0, 79, .6); opacity: 0;
  animation: 2s ease-in-out infinite pulse-glow-opacidade;
}

@keyframes marquee { 0% { transform: translateX(0); } to { transform: translateX(-50%); } }
.animate-marquee { animation: 40s linear infinite marquee; }
