.legal-main { min-height: 72vh; background: var(--bg); }
.legal-hero { padding-block: clamp(72px, 9vw, 120px) clamp(55px, 7vw, 88px); }
.legal-hero h1 { max-width: 1000px; font-size: clamp(2.8rem, 6.5vw, 6.8rem); }
.legal-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.legal-meta span { padding: 9px 12px; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; color: #aaa; font-size: .64rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.legal-section { padding-block: 70px 110px; }
.legal-layout { display: grid; grid-template-columns: minmax(210px, 270px) minmax(0, 1fr); gap: clamp(32px, 6vw, 90px); align-items: start; }
.legal-toc { position: sticky; top: 95px; padding: 24px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); }
.legal-toc strong { display: block; margin-bottom: 17px; color: var(--red); font-size: .6rem; letter-spacing: .15em; text-transform: uppercase; }
.legal-toc a { display: block; padding: 10px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; line-height: 1.45; }
.legal-toc a:hover { color: var(--text); }
.legal-document { min-width: 0; }
.legal-lead { margin: 0 0 32px; padding: 23px 25px; border: 1px solid var(--line); border-left: 3px solid var(--red); border-radius: 5px; background: var(--panel-2); color: var(--muted); font-size: .83rem; line-height: 1.8; }
.legal-block { scroll-margin-top: 105px; padding: 31px 0; border-top: 1px solid var(--line); }
.legal-block:first-of-type { border-top: 0; padding-top: 0; }
.legal-block h2 { margin: 0 0 17px; color: var(--text); font-size: clamp(1.35rem, 2.5vw, 2rem); line-height: 1.15; }
.legal-block h3 { margin: 25px 0 12px; color: var(--text); font-size: 1rem; }
.legal-block p, .legal-block li { color: var(--muted); font-size: .84rem; line-height: 1.85; }
.legal-block p { margin: 0 0 14px; }
.legal-block ul, .legal-block ol { display: grid; gap: 8px; margin: 12px 0 18px; padding-left: 22px; }
.legal-block a { color: var(--red); text-decoration: underline; text-underline-offset: 3px; }
.legal-party-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; margin-top: 19px; }
.legal-party { padding: 20px; border: 1px solid var(--line); border-radius: 5px; background: var(--panel); }
.legal-party small { display: block; margin-bottom: 9px; color: var(--red); font-size: .56rem; font-weight: 900; letter-spacing: .13em; }
.legal-party strong, .legal-party span { display: block; }
.legal-party strong { margin-bottom: 9px; color: var(--text); font-size: .88rem; line-height: 1.5; }
.legal-party span { color: var(--muted); font-size: .72rem; line-height: 1.7; }
.legal-table-wrap { margin: 18px 0; overflow-x: auto; border: 1px solid var(--line); border-radius: 5px; }
.legal-table { width: 100%; border-collapse: collapse; min-width: 650px; background: var(--panel); }
.legal-table th, .legal-table td { padding: 14px 16px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .72rem; line-height: 1.55; text-align: left; vertical-align: top; }
.legal-table th { color: var(--text); font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; }
.legal-table tr:last-child td { border-bottom: 0; }
.legal-note { margin-top: 25px; padding: 19px 21px; border: 1px solid rgba(239,33,26,.3); border-radius: 5px; background: rgba(239,33,26,.05); color: var(--muted); font-size: .75rem; line-height: 1.7; }
.footer__legal-links { display: flex; flex-wrap: wrap; gap: 8px 17px; margin-top: 12px; }
.footer__legal-links a, .footer__cookie-button { padding: 0; border: 0; background: none; color: #777; cursor: pointer; font: inherit; font-size: .64rem; text-decoration: none; }
.footer__legal-links a:hover, .footer__cookie-button:hover { color: #fff; }
@media (max-width: 840px) {
  .legal-layout { grid-template-columns: 1fr; }
  .legal-toc { position: static; }
  .legal-toc nav { display: grid; grid-template-columns: repeat(2, 1fr); column-gap: 20px; }
}
@media (max-width: 560px) {
  .legal-section { padding-block: 52px 75px; }
  .legal-toc nav, .legal-party-grid { grid-template-columns: 1fr; }
  .legal-block { padding-block: 25px; }
}
