:root {
    --legal-ink: #111820;
    --legal-muted: #5d6875;
    --legal-line: #dfe5eb;
    --legal-blue: #0a66c2;
    --legal-blue-deep: #064684;
    --legal-paper: #fbfcfd;
    --legal-soft: #f2f5f8;
}
body { background: var(--legal-paper); color: var(--legal-ink); }
.legal-shell { width: min(1180px, calc(100% - 36px)); margin: 0 auto; }
.legal-masthead { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr); gap: 56px; align-items: end; padding: clamp(70px, 10vw, 132px) 0 64px; border-bottom: 1px solid var(--legal-line); }
.legal-masthead .eyebrow { margin: 0 0 16px; color: var(--legal-blue); font: 600 .72rem/1.2 'IBM Plex Mono', monospace; letter-spacing: .18em; text-transform: uppercase; }
.legal-masthead h1 { max-width: 870px; margin: 0; font-size: clamp(2.7rem, 6vw, 5.9rem); line-height: .94; letter-spacing: -.065em; }
.legal-masthead p { max-width: 710px; margin: 28px 0 0; color: var(--legal-muted); font-size: clamp(1rem, 1.7vw, 1.22rem); line-height: 1.7; }
.legal-stamp { padding: 22px 0 2px 26px; border-left: 3px solid var(--legal-blue); }
.legal-stamp strong, .legal-stamp small { display: block; }
.legal-stamp strong { margin-bottom: 7px; font-size: 1rem; }
.legal-stamp small { color: var(--legal-muted); line-height: 1.6; }
.legal-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.legal-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 17px; border: 1px solid #b8c4d0; border-radius: 999px; color: var(--legal-ink); font-weight: 700; }
.legal-button.primary { border-color: var(--legal-blue-deep); background: var(--legal-blue); color: #fff; }
.legal-index { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--legal-line); }
.legal-index a { min-height: 240px; padding: 34px; border-right: 1px solid var(--legal-line); border-top: 1px solid var(--legal-line); color: inherit; transition: background .2s ease; }
.legal-index a:nth-child(even) { border-right: 0; }
.legal-index a:hover { background: #f1f6fb; }
.legal-index small { color: var(--legal-blue); font: 600 .68rem/1.2 'IBM Plex Mono', monospace; letter-spacing: .13em; }
.legal-index h2 { margin: 62px 0 10px; font-size: clamp(1.7rem, 3vw, 2.5rem); letter-spacing: -.04em; }
.legal-index p { max-width: 470px; margin: 0; color: var(--legal-muted); line-height: 1.65; }
.legal-document { display: grid; grid-template-columns: 260px minmax(0, 760px); gap: clamp(36px, 7vw, 100px); padding: 60px 0 110px; }
.legal-toc { position: sticky; top: 24px; align-self: start; display: grid; gap: 7px; padding: 22px; border: 1px solid var(--legal-line); border-radius: 18px; background: #fff; }
.legal-toc strong { margin-bottom: 5px; font-size: .8rem; }
.legal-toc a { color: var(--legal-muted); font-size: .78rem; line-height: 1.45; }
.legal-toc a:hover { color: var(--legal-blue); }
.legal-body section { scroll-margin-top: 28px; padding: 0 0 38px; margin: 0 0 38px; border-bottom: 1px solid var(--legal-line); }
.legal-body section:last-child { border-bottom: 0; }
.legal-body h2 { margin: 0 0 16px; font-size: clamp(1.55rem, 3vw, 2.25rem); letter-spacing: -.035em; }
.legal-body h3 { margin: 24px 0 8px; font-size: 1.05rem; }
.legal-body p, .legal-body li { color: #3f4b58; line-height: 1.75; }
.legal-body ul { padding-left: 20px; }
.legal-body .legal-note { padding: 18px 20px; border-left: 4px solid var(--legal-blue); background: var(--legal-soft); color: #263746; }
.legal-data-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.legal-data-grid article { padding: 18px; border: 1px solid var(--legal-line); border-radius: 14px; background: #fff; }
.legal-data-grid strong { display: block; margin-bottom: 7px; }
.legal-data-grid p { margin: 0; font-size: .9rem; }
.legal-footer { display: flex; justify-content: space-between; gap: 20px; padding: 26px 0; border-top: 1px solid var(--legal-line); color: var(--legal-muted); font-size: .78rem; }
.legal-footer a { color: var(--legal-blue-deep); font-weight: 700; }
@media (max-width: 760px) {
    .legal-masthead { grid-template-columns: 1fr; gap: 30px; padding-top: 56px; }
    .legal-stamp { padding-left: 18px; }
    .legal-index { grid-template-columns: 1fr; }
    .legal-index a { min-height: 190px; border-right: 0; }
    .legal-index h2 { margin-top: 38px; }
    .legal-document { grid-template-columns: 1fr; padding-top: 30px; }
    .legal-toc { position: static; }
    .legal-data-grid { grid-template-columns: 1fr; }
    .legal-footer { flex-direction: column; }
}
