:root {
  --brand-light:#ECF2FD;
  --brand-warm:#FFEDCC;
  --brand-dark:rgb(42,67,111);
  --brand-gold:#EBB247;
  --brand-blue:#ACC5F7;
  --paper:rgba(255,255,255,.88);
  --shadow:0 24px 64px rgba(42,67,111,.18);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  position:relative;
  min-height:100vh;
  margin:0;
  color:var(--brand-dark);
  background:
    linear-gradient(135deg,
      rgba(172,197,247,.96) 0%,
      var(--brand-light) 38%,
      var(--brand-warm) 58%,
      rgba(235,178,71,.86) 100%);
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  line-height:1.65;
}
body::before {
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  background:
    linear-gradient(315deg,
      rgba(172,197,247,.96) 0%,
      var(--brand-light) 36%,
      var(--brand-warm) 58%,
      rgba(235,178,71,.88) 100%);
  opacity:0;
  pointer-events:none;
  will-change:opacity;
  animation:legalCornerWash 9s ease-in-out infinite alternate;
}
a { color:inherit; }
.legal-topbar {
  position:sticky;
  z-index:50;
  top:0;
  background:rgba(236,242,253,.86);
  box-shadow:0 10px 28px rgba(42,67,111,.12);
  backdrop-filter:blur(16px);
}
.legal-shell,.legal-footer { position:relative; z-index:1; }
.legal-nav {
  display:flex;
  width:min(1180px,calc(100% - 40px));
  min-height:74px;
  margin:auto;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.legal-brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--brand-dark);
  font-size:20px;
  font-weight:800;
  text-decoration:none;
}
.legal-brand img { width:42px; height:42px; object-fit:contain; }
.legal-nav-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 20px; font-size:13px; font-weight:700; }
.legal-nav-links a { text-decoration:none; }
.legal-nav-links a:hover,.legal-nav-links a:focus-visible { color:#fff; }
.legal-shell { width:min(1040px,calc(100% - 40px)); margin:54px auto 70px; }
.legal-document {
  padding:clamp(28px,5vw,68px);
  border-radius:18px;
  background:var(--paper);
  box-shadow:var(--shadow);
  backdrop-filter:blur(14px);
}
.legal-document-actions {
  display:flex;
  justify-content:flex-end;
  margin:-18px 0 28px;
}
.legal-download-button {
  display:inline-flex;
  min-height:42px;
  align-items:center;
  justify-content:center;
  padding:0 18px;
  border-radius:10px;
  background:var(--brand-dark);
  color:#fff;
  font-size:13px;
  font-weight:800;
  line-height:1;
  text-decoration:none;
  box-shadow:0 10px 22px rgba(42,67,111,.22);
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease;
}
.legal-download-button:hover,.legal-download-button:focus-visible {
  background:#1f345b;
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(42,67,111,.28);
}
.legal-document h1 {
  max-width:850px;
  margin:0;
  font-size:clamp(34px,5vw,58px);
  line-height:1.04;
  letter-spacing:-.035em;
}
.legal-subtitle { margin:18px 0 0; font-size:clamp(18px,2.4vw,24px); font-weight:650; }
.legal-meta { margin:8px 0 36px; color:rgba(42,67,111,.76); font-size:14px; }
.legal-document h2 {
  margin:46px 0 18px;
  padding-top:8px;
  font-size:clamp(24px,3vw,34px);
  line-height:1.2;
  letter-spacing:-.02em;
}
.legal-document p { margin:0 0 15px; }
.legal-document strong { font-weight:750; }
.legal-document em { font-style:italic; }
.legal-notice {
  margin:28px 0 38px;
  padding:20px 22px;
  border-left:6px solid var(--brand-gold);
  border-radius:10px;
  background:var(--brand-warm);
  box-shadow:0 12px 30px rgba(42,67,111,.10);
}
.legal-list { display:grid; gap:10px; margin:8px 0 24px; padding-left:24px; }
.table-scroll { max-width:100%; margin:22px 0 34px; overflow-x:auto; border-radius:12px; box-shadow:0 12px 34px rgba(42,67,111,.11); }
.legal-table { width:100%; min-width:680px; border-collapse:collapse; background:rgba(255,255,255,.74); font-size:14px; line-height:1.5; }
.legal-table th,.legal-table td { padding:14px 16px; border:1px solid rgba(42,67,111,.14); text-align:left; vertical-align:top; }
.legal-table th { background:var(--brand-dark); color:#fff; font-weight:750; }
.legal-table tr:nth-child(even) td { background:rgba(236,242,253,.72); }
.legal-table p { margin:0 0 8px; }
.legal-table p:last-child { margin-bottom:0; }
.footnote-ref a { color:var(--brand-dark); font-weight:800; text-decoration:none; }
.legal-footnotes { margin-top:52px; padding-top:26px; border-top:1px solid rgba(42,67,111,.22); }
.legal-footnotes h2 { margin:0 0 16px; font-size:22px; }
.legal-footnotes ol { margin:0; padding-left:24px; font-size:13px; }
.legal-footnotes li { margin-bottom:10px; }
.footnote-back { margin-left:5px; text-decoration:none; }
.legal-footer {
  padding:34px 20px 46px;
  color:#fff;
  background:var(--brand-dark);
}
.legal-footer-inner { display:flex; width:min(1040px,100%); margin:auto; align-items:flex-start; justify-content:space-between; gap:28px; }
.legal-footer p { margin:0; }
.legal-footer-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 18px; font-size:13px; }
.legal-footer a { color:#fff; }
:focus-visible { outline:3px solid var(--brand-gold); outline-offset:4px; }
@keyframes legalCornerWash {
  0%,12% { opacity:0; }
  88%,100% { opacity:1; }
}
@media (max-width:720px) {
  .legal-nav,.legal-footer-inner { align-items:flex-start; flex-direction:column; }
  .legal-nav { padding:14px 0; }
  .legal-nav-links,.legal-footer-links { justify-content:flex-start; }
  .legal-shell { width:min(100% - 24px,1040px); margin-top:24px; }
  .legal-document { padding:26px 20px; border-radius:12px; }
  .legal-document-actions { justify-content:flex-start; margin:0 0 24px; }
  .legal-table { min-width:620px; }
}
@media (prefers-reduced-motion:reduce) {
  body::before {
    animation:none;
    opacity:.42;
  }
  .legal-download-button { transition:none; }
  .legal-download-button:hover,.legal-download-button:focus-visible { transform:none; }
}
@media print {
  body { background:#fff; }
  body::before { display:none; }
  .legal-topbar,.legal-footer,.legal-document-actions { display:none; }
  .legal-shell { width:100%; margin:0; }
  .legal-document { padding:0; background:#fff; box-shadow:none; }
  .table-scroll { overflow:visible; box-shadow:none; }
}
