/* Layout legal sobre tokens.css + bundle.css + page.css.
   Componentes visuais originais são herdados das classes bp-*.
   Manter aqui apenas a organização e os ajustes próprios dos documentos. */
html { scroll-padding-top: 104px; color-scheme: dark; }
.legal-page { min-width: 0; }
.legal-page a { text-underline-offset: 4px; }
.legal-page a:focus-visible { outline: 2px solid var(--foco); outline-offset: 3px; }
/* A sobreposição do cabeçalho à foto da landing não se aplica ao documento. */
.legal-header { margin-bottom: 0; }
.legal-skip { position: fixed; top: 12px; left: 12px; z-index: 30; padding: 12px 18px; background: var(--neutro-950); transform: translateY(-180%); }
.legal-skip:focus { transform: none; }
.legal-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 var(--space-8); padding: 0; list-style: none; font-size: 13px; color: var(--neutro-400); }
.legal-breadcrumb a { color: var(--neutro-300); }
.legal-hero .bp-heading__title { max-width: 24ch; }
.legal-intro { margin-top: var(--space-5); }
.legal-meta { margin: var(--space-5) 0 0; color: var(--neutro-400); font-size: 14px; }
/* Aurora das páginas legais: luz lateral no desktop, luz de topo no celular.
   Os gradientes também aparecem sem WebGL; só transform é animado no CSS. */
.legal-hero > .legal-ambient,
.legal-footer > .legal-ambient {
  opacity: 1;
  background: var(--carvao);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 58%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 58%, transparent 100%);
}
.legal-ambient::before,
.legal-ambient::after {
  content: "";
  position: absolute;
  z-index: 1;
  pointer-events: none;
  border-radius: 50%;
  transform-origin: center;
  animation: legal-aurora-drift 28s ease-in-out infinite alternate;
}
.legal-ambient::before {
  width: 90%; height: 140%; right: -20%; top: -52%;
  background: radial-gradient(ellipse at center, rgba(36,199,214,.3) 0%, rgba(0,112,143,.22) 28%, rgba(0,112,143,0) 68%);
}
.legal-ambient::after {
  width: 64%; height: 110%; right: -14%; top: -36%;
  background: radial-gradient(ellipse at center, rgba(224,251,172,.21) 0%, rgba(36,199,214,.1) 32%, rgba(36,199,214,0) 68%);
  animation-name: legal-aurora-bloom;
  animation-duration: 36s;
  animation-delay: -12s;
}
.legal-hero > .legal-ambient canvas.is-on { opacity: .46; }
/* Véu fixo atrás dos títulos: o contraste não depende da animação. */
.legal-hero::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, rgba(26,28,28,.88) 0%, rgba(26,28,28,.72) 42%, rgba(26,28,28,.18) 100%);
}
.legal-footer > .legal-ambient {
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 50%, #000 100%);
  mask-image: linear-gradient(180deg, transparent 0%, #000 50%, #000 100%);
}
.legal-footer > .legal-ambient::before { right: auto; left: -28%; top: 0; opacity: .6; animation-duration: 36s; }
.legal-footer > .legal-ambient::after { right: auto; left: -18%; top: 12%; opacity: .45; animation-duration: 42s; }
.legal-footer > .legal-ambient canvas.is-on { opacity: .24; }
@keyframes legal-aurora-drift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(-9%, 8%, 0) scale(1.12); }
}
@keyframes legal-aurora-bloom {
  from { transform: translate3d(-4%, 6%, 0) scale(.94); }
  to { transform: translate3d(6%, -4%, 0) scale(1.08); }
}
.legal-body { padding-top: 0; }
.legal-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); align-items: start; gap: var(--space-9); }
.legal-toc { position: sticky; top: 104px; padding: var(--space-5); max-height: calc(100vh - 136px); max-height: calc(100svh - 136px); overflow-y: auto; scrollbar-width: thin; }
.legal-toc h2 { margin: 0 0 var(--space-4); font: 700 12px/1.5 var(--font-body); letter-spacing: 1.4px; text-transform: uppercase; color: var(--lima); }
.legal-toc ol { margin: 0; padding: 0; list-style: none; }
.legal-toc a { display: block; padding: 10px 0; color: var(--neutro-300); font-size: 14px; line-height: 24px; text-decoration: none; }
.legal-toc a:hover { color: var(--lima); }
/* Mesmos valores de .wf-copy (18/30, neutro-400), com fluxo de texto contínuo. */
.legal-content { min-width: 0; max-width: 72ch; font-size: 18px; line-height: 30px; color: var(--neutro-400); overflow-wrap: anywhere; }
.legal-content section { padding: 0 0 var(--space-8); margin: 0 0 var(--space-8); border-bottom: 1px solid var(--borda-fina); scroll-margin-top: 104px; }
.legal-content h2 { margin-bottom: var(--space-5); }
.legal-content h3 { margin: var(--space-5) 0 var(--space-3); color: var(--neutro-50); font-size: 20px; line-height: 28px; }
.legal-content p { margin: 0 0 20px; }
.legal-content p:last-child { margin-bottom: 0; }
.legal-content ul { margin: 0 0 20px; padding-left: var(--space-5); }
.legal-content li { padding-left: var(--space-1); margin-bottom: var(--space-2); }
.legal-content strong { color: var(--neutro-50); font-weight: 400; }
.legal-callout { margin: 0 0 var(--space-8); padding: 40px; }
.legal-callout p { margin: 0; }
.legal-review { margin-bottom: var(--space-5); padding: var(--space-5); border-left: 3px solid var(--alerta); }
.legal-review__label { color: var(--alerta); font-size: 14px; font-weight: 700; }
.legal-placeholder { color: var(--neutro-50); font-weight: 700; }
.legal-contact { padding: 40px; }
.legal-contact dl { margin: 0; }
.legal-contact dt { margin-top: var(--space-4); color: var(--neutro-400); font-size: 14px; }
.legal-contact dt:first-child { margin-top: 0; }
.legal-contact dd { margin: 2px 0 0; }
.legal-table-wrap { margin-bottom: var(--space-5); overflow-x: auto; border: 1px solid var(--borda-fina); border-radius: var(--radius-xl); }
.legal-table { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 26px; }
.legal-table th, .legal-table td { padding: var(--space-4); text-align: left; vertical-align: top; border-bottom: 1px solid var(--borda-fina); }
.legal-table th { color: var(--neutro-50); font-weight: 400; }
.legal-table thead { background: var(--vidro-suave); }
.legal-table tbody tr:last-child th, .legal-table tbody tr:last-child td { border-bottom: 0; }
.legal-footer { padding-top: 0; padding-bottom: var(--space-5); }
@media (max-width: 1100px) {
  .legal-layout { grid-template-columns: 240px minmax(0, 1fr); gap: var(--space-8); }
}
@media (max-width: 760px) {
  .legal-hero > .legal-ambient {
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 28%, transparent 94%);
    mask-image: linear-gradient(180deg, #000 0%, #000 28%, transparent 94%);
  }
  .legal-ambient::before {
    width: 150%; height: 85%; right: -48%; top: -20%;
    animation-duration: 38s;
  }
  .legal-ambient::after {
    width: 110%; height: 65%; right: -30%; top: -20%;
    animation-duration: 46s;
  }
  .legal-hero > .legal-ambient canvas.is-on { opacity: .3; }
  .legal-hero::after {
    background: linear-gradient(180deg, rgba(26,28,28,.32) 0%, rgba(26,28,28,.78) 45%, var(--carvao) 100%);
  }
  .legal-footer > .legal-ambient::before { left: -55%; top: 24%; }
  .legal-footer > .legal-ambient::after { left: -35%; top: 35%; }
  .legal-footer > .legal-ambient canvas.is-on { opacity: .16; }
  .legal-layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-8); }
  .legal-toc { position: static; max-height: none; overflow-y: visible; }
  .legal-toc ol { columns: 2; column-gap: var(--space-5); }
  .legal-toc li { break-inside: avoid; }
  .legal-callout, .legal-contact { padding: var(--space-5); }
  .legal-header .bp-btn { padding-inline: 14px; font-size: 12px; gap: var(--space-2); }
}
@media (max-width: 480px) { .legal-toc ol { columns: 1; } }
@media (prefers-reduced-motion: reduce) {
  .legal-ambient::before, .legal-ambient::after { animation: none; }
  .legal-ambient canvas { display: none; }
}
@media print {
  html { color-scheme: light; scroll-padding-top: 0; }
  body.legal-page { background: #fff; color: #111; }
  .legal-header, .legal-breadcrumb, .legal-toc, .legal-skip, .legal-footer, .fx-bg { display: none; }
  .legal-hero { padding: 0 0 24px; }
  .legal-body { padding: 0; }
  .legal-layout { display: block; }
  .legal-content { max-width: none; }
  .legal-page :is(h1, h2, h3, p, li, a, strong, dt, dd, .legal-placeholder, .bp-eyebrow, .bp-dim, .legal-meta) { color: #111; }
  .legal-page .bp-glass { background: none; border: 1px solid #bbb; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .legal-content h2 { break-after: avoid; }
}
