:root {
  --legal-ink: #091b3b;
  --legal-muted: #5d708b;
  --legal-line: #dbe5f1;
  --legal-blue: #1468d7;
  --legal-pale: #f4f8fe;
}

.page-legal {
  background: #fff;
  color: var(--legal-ink);
}

.legal-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(88px, 11vw, 142px) 0 clamp(55px, 7vw, 90px);
  color: #fff;
  background: radial-gradient(circle at 80% 15%, rgba(53, 156, 255, 0.42), transparent 31%),
    linear-gradient(124deg, #061832 0%, #0c2f62 58%, #0753a6 100%);
}

.legal-hero::after {
  position: absolute;
  inset: auto -11% -54% auto;
  width: min(46vw, 600px);
  aspect-ratio: 1;
  border: 1px solid rgba(170, 221, 255, 0.28);
  border-radius: 50%;
  box-shadow: 0 0 0 58px rgba(170, 221, 255, 0.06), 0 0 0 117px rgba(170, 221, 255, 0.035);
  content: "";
}

.legal-hero .container { position: relative; z-index: 1; max-width: 980px; }
.legal-hero .eyebrow { color: #81d4ff; }
.legal-hero h1 { max-width: 800px; margin: 10px 0 18px; color: #fff; font-size: clamp(2.7rem, 6vw, 5rem); letter-spacing: -0.065em; line-height: 0.98; }
.legal-hero .lead { max-width: 720px; margin: 0; color: #dbeaff; font-size: clamp(1.05rem, 2vw, 1.25rem); line-height: 1.65; }
.legal-meta { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 28px; color: #c9def7; font-size: 0.9rem; }

.legal-section { padding: clamp(50px, 7vw, 90px) 0; }
.legal-grid { display: grid; grid-template-columns: minmax(210px, 0.28fr) minmax(0, 0.72fr); gap: clamp(32px, 6vw, 84px); align-items: start; }
.legal-toc { position: sticky; top: 105px; padding: 23px; border: 1px solid var(--legal-line); border-radius: 18px; background: #fff; box-shadow: 0 16px 38px rgba(13, 47, 91, 0.07); }
.legal-toc strong { display: block; margin-bottom: 12px; font-size: 0.82rem; letter-spacing: 0.12em; text-transform: uppercase; }
.legal-toc a { display: block; padding: 7px 0; color: var(--legal-muted); font-size: 0.9rem; line-height: 1.35; text-decoration: none; }
.legal-toc a:hover, .legal-toc a:focus-visible { color: var(--legal-blue); }
.legal-content { min-width: 0; }
.legal-content section { scroll-margin-top: 115px; padding: 0 0 36px; margin: 0 0 36px; border-bottom: 1px solid var(--legal-line); }
.legal-content section:last-child { margin-bottom: 0; border-bottom: 0; }
.legal-content h2 { margin: 0 0 15px; color: var(--legal-ink); font-size: clamp(1.6rem, 3vw, 2.3rem); letter-spacing: -0.045em; line-height: 1.08; }
.legal-content h3 { margin: 22px 0 9px; color: var(--legal-ink); font-size: 1.06rem; }
.legal-content p, .legal-content li { color: #536985; font-size: 1rem; line-height: 1.7; }
.legal-content p { margin: 0 0 15px; }
.legal-content ul { margin: 10px 0 18px; padding-left: 20px; }
.legal-content li + li { margin-top: 8px; }
.legal-content a { color: #075fc9; font-weight: 700; text-underline-offset: 3px; }

.legal-callout, .legal-detail-box { margin: 21px 0; padding: 20px 22px; border-radius: 14px; }
.legal-callout { border-left: 4px solid #1773e7; background: #edf6ff; }
.legal-callout p { margin: 0; color: #254f7f; }
.legal-detail-box { border: 1px solid #f0c46d; background: #fff9e9; }
.legal-detail-box strong { color: #704809; }
.legal-detail-box p { margin: 7px 0 0; color: #684f25; }
.legal-table-wrap { overflow-x: auto; margin: 18px 0 20px; border: 1px solid var(--legal-line); border-radius: 14px; }
.legal-table { width: 100%; min-width: 540px; border-collapse: collapse; background: #fff; }
.legal-table th, .legal-table td { padding: 15px 17px; border-bottom: 1px solid var(--legal-line); text-align: left; vertical-align: top; color: #536985; font-size: 0.93rem; line-height: 1.5; }
.legal-table th { color: var(--legal-ink); background: #f7faff; font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; }
.legal-table tr:last-child td { border-bottom: 0; }
.legal-entity { font-weight: 700; color: #9b5a00; }
.legal-footer-links { display: flex; flex-wrap: wrap; gap: 15px; }

.contact-form .consent-field { grid-template-columns: 19px minmax(0, 1fr); align-items: start; gap: 10px; margin-top: 3px; }
.contact-form .consent-field input { width: 18px; height: 18px; margin: 3px 0 0; accent-color: #116cdb; }
.contact-form .consent-field span { font-size: 0.88rem; font-weight: 400; line-height: 1.5; }
.contact-form .consent-field a { color: #075fc9; text-decoration: underline; text-underline-offset: 2px; }

@media (max-width: 850px) {
  .legal-grid { grid-template-columns: minmax(0, 1fr); }
  .legal-toc { position: static; }
  .legal-toc a { display: inline-block; padding: 5px 10px 5px 0; }
}

@media (max-width: 540px) {
  .legal-hero { padding-top: 70px; }
  .legal-section { padding-top: 42px; }
  .legal-toc, .legal-callout, .legal-detail-box { padding: 17px; }
  .legal-content p, .legal-content li { font-size: 0.96rem; }
}
