:root {
  --legal-bg: #090414;
  --legal-panel: rgba(25, 12, 43, 0.94);
  --legal-border: rgba(255, 255, 255, 0.14);
  --legal-text: #ffffff;
  --legal-muted: #cbbfdf;
  --legal-accent: #ff5e35;
  --legal-accent-hover: #ff3366;
  --legal-teal: #6de2c2;
}

* { box-sizing: border-box; }

html,
body { min-height: 100%; }

body.site-page {
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  overflow-x: hidden;
  color: var(--legal-text);
  background: linear-gradient(180deg, #1a0b2e 0%, #0d0618 55%, var(--legal-bg) 100%);
  font-family: "Nunito", system-ui, sans-serif;
}

.site-page-bg {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}

.site-page-artboard {
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(100%, 1920px);
  height: max(100%, 1080px);
  transform: translate(-50%, -50%);
}

.site-page-blob {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.site-page-dots {
  position: absolute;
  width: 96px;
  height: 304px;
  opacity: 0.95;
}

.site-page-dots--top { top: 72px; left: 86px; }
.site-page-dots--bottom { right: 74px; bottom: 67px; }

.site-page-shell {
  width: min(900px, calc(100% - 40px));
  margin: 0 auto;
  padding: 28px 0 48px;
}

.site-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.site-page-logo { display: block; width: clamp(132px, 20vw, 170px); height: auto; }

.site-page-back,
.site-page-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  border: 2px solid rgba(255, 255, 255, 0.26);
  border-radius: 8px;
  padding: 0.55rem 0.9rem;
  color: #fff;
  font: 800 0.92rem/1 "Nunito", system-ui, sans-serif;
  text-decoration: none;
  transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.site-page-back:hover,
.site-page-back:focus-visible {
  border-color: var(--legal-teal);
  background: rgba(109, 226, 194, 0.12);
}

.site-page-back:focus-visible,
.site-page-button:focus-visible,
.site-page-panel a:focus-visible {
  outline: 3px solid #ffd24a;
  outline-offset: 3px;
}

.site-page-panel {
  border: 3px solid #4b3875;
  border-radius: 16px;
  padding: clamp(1.4rem, 4vw, 2.5rem);
  background: linear-gradient(180deg, #440049 0%, #340137 100%);
  box-shadow: 0 10px 0 #4b3875, 0 24px 48px rgba(0, 0, 0, 0.28);
  line-height: 1.6;
}

.site-page-kicker {
  margin: 0 0 0.7rem;
  color: #ffd24a;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.site-page-panel h1,
.site-page-panel h2,
.site-page-panel h3 {
  font-family: "Fredoka", system-ui, sans-serif;
  color: #fff;
}

.site-page-panel h1 { margin: 0 0 0.95rem; font-size: clamp(2rem, 5vw, 2.8rem); line-height: 1.1; }
.site-page-panel h2 { margin: 2.1rem 0 0.65rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, 0.13); font-size: 1.35rem; line-height: 1.2; }
.site-page-panel h3 { margin: 1.35rem 0 0.4rem; font-size: 1.08rem; line-height: 1.25; }
.site-page-panel p,
.site-page-panel li { color: var(--legal-muted); font-weight: 600; }
.site-page-panel p { margin: 0 0 1rem; }
.site-page-panel ul { margin: 0 0 1rem; padding-left: 1.3rem; }
.site-page-panel li { margin-bottom: 0.4rem; }
.site-page-panel strong { color: #fff; font-weight: 800; }
.site-page-panel a { color: var(--legal-teal); font-weight: 800; text-underline-offset: 3px; }
.site-page-panel a:hover { color: #fff; }

/* Mantem legibilidade enquanto a página de privacidade conserva seu HTML legado. */
.site-page-panel.privacy-card p,
.site-page-panel.privacy-card li { color: var(--legal-muted); }
.site-page-panel.privacy-card p strong,
.site-page-panel.privacy-card li strong { color: #fff; }
.site-page-panel.privacy-card a { color: var(--legal-teal); }
.site-page-panel.privacy-card a:hover { color: #fff; }

.site-page-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem 1.25rem;
  margin-top: 1.25rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.9rem;
  font-weight: 700;
}

.site-page-footer a { color: inherit; text-underline-offset: 3px; }
.site-page-footer a:hover { color: var(--legal-teal); }

.error-page { display: grid; min-height: 100vh; min-height: 100dvh; place-items: center; }
.error-page .site-page-shell { width: min(680px, calc(100% - 40px)); }
.error-page .site-page-header { margin-bottom: 1.25rem; }
.error-page .site-page-panel { overflow: hidden; text-align: center; }
.error-panel { position: relative; }
.error-visual { display: flex; align-items: end; justify-content: center; min-height: 156px; margin: -0.5rem 0 0.75rem; }
.error-code { position: relative; z-index: 0; margin: 0; color: #ff5e35; font: 400 clamp(5.4rem, 23vw, 9rem)/0.8 "Fredoka", system-ui, sans-serif; letter-spacing: 0; text-shadow: 0 7px 0 rgba(75, 56, 117, 0.9); }
.error-mascot { position: relative; z-index: 1; width: clamp(104px, 20vw, 164px); height: auto; margin: 0 0 -0.75rem -1.6rem; filter: drop-shadow(0 10px 10px rgba(0, 0, 0, 0.3)); }
.error-page .site-page-panel p { max-width: 34ch; margin-inline: auto; }
.error-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin-top: 1.4rem; }
.site-page-button--primary { border-color: var(--legal-accent); background: var(--legal-accent); }
.site-page-button--primary:hover,
.site-page-button--primary:focus-visible { border-color: var(--legal-accent-hover); background: var(--legal-accent-hover); transform: translateY(-1px); }

@media (max-width: 560px) {
  .site-page-shell { width: min(100% - 28px, 760px); padding-top: 18px; padding-bottom: 30px; }
  .site-page-header { margin-bottom: 1rem; }
  .site-page-back { min-height: 40px; padding-inline: 0.7rem; font-size: 0.84rem; }
  .site-page-dots--top { top: 44px; left: -20px; }
  .site-page-dots--bottom { right: -32px; bottom: 28px; }
  .site-page-panel { border-radius: 14px; padding: 1.25rem; box-shadow: 0 7px 0 #4b3875, 0 18px 38px rgba(0, 0, 0, 0.26); }
  .site-page-panel h2 { margin-top: 1.75rem; padding-top: 1.1rem; }
  .error-visual { min-height: 132px; }
}
