.legal-hero { position: relative; isolation: isolate; overflow: hidden; padding-block: 3.5rem; background: radial-gradient(ellipse at 85% 20%, #dceaff, transparent 55%), linear-gradient(120deg, #f5f0ff, #ece3ff); }
.legal-hero::before { position: absolute; z-index: -1; top: -300px; right: -300px; width: 850px; height: 850px; opacity: .2; background: url("../img/digital-ribbon.svg") center/contain no-repeat; content: ""; }
.legal-hero h1 { font-size: clamp(2.2rem, 4.4vw, 3.8rem); max-width: 900px; }
.legal-hero p:not(.eyebrow) { color: var(--muted); font-size: 1rem; line-height: 1.8; }
.legal-tabs { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }
.legal-tabs a { padding: .75rem 1rem; border: 1px solid #cfc1e7; border-radius: 8px; background: #ffffff99; font-size: .8rem; }
.legal-tabs a[aria-current="page"] { border-color: var(--blue); background: var(--blue); color: #fff; }
.legal-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 3rem; padding-block: 4rem; align-items: start; }
.legal-summary { position: sticky; top: 110px; padding: 1.4rem; border: 1px solid var(--line); border-radius: 18px; background: #f9f7fe; max-height: calc(100vh - 130px); overflow-y: auto; }
.legal-summary h2 { font-size: 1rem; margin-bottom: 1rem; letter-spacing: 0; }
.legal-summary ol { margin: 0; padding: 0; list-style: none; }
.legal-summary a { display: block; padding: .5rem 0; color: var(--muted); font-size: .73rem; line-height: 1.5; }
.legal-summary a:hover { color: var(--blue); text-decoration: underline; }
.legal-content { min-width: 0; overflow-wrap: anywhere; }
.legal-content > section { margin-bottom: 1.5rem; padding: 2rem; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 6px 20px #50369106; scroll-margin-top: 110px; }
.legal-content h2 { margin: 0 0 1.3rem; font-size: 1.4rem; letter-spacing: -.025em; color: var(--blue-dark); }
.legal-content h3, .legal-content h5, .legal-content h6 { margin: 1.4rem 0 .7rem; font-size: 1rem; font-weight: 650; line-height: 1.5; }
.legal-content p, .legal-content li { color: var(--muted); font-size: .86rem; line-height: 1.85; }
.legal-content p { margin: .7rem 0; }
.legal-content strong { color: var(--ink); }
.legal-content ul { padding-left: 1.2rem; margin: .8rem 0; }
.legal-content li + li { margin-top: .35rem; }
.legal-content a { color: var(--blue-dark); text-decoration: underline; text-underline-offset: .2em; }
.legal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-block: 1rem; }
.legal-box, .legal-notice { padding: 1.2rem; border: 1px solid #e0d6f0; border-radius: 12px; background: #f8f5ff; margin-block: 1rem; }
.legal-grid .legal-box { height: 100%; margin: 0; }
.legal-notice { border-left: 3px solid var(--blue); color: var(--muted); font-size: .85rem; line-height: 1.8; }
.legal-table { overflow-x: auto; max-width: 100%; margin-block: 1rem; }
.legal-content table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: .8rem; line-height: 1.7; }
.legal-content th, .legal-content td { padding: .8rem; border: 1px solid var(--line); text-align: left; color: var(--muted); }
.legal-content th { background: #eee6fc; color: var(--blue-dark); }
.legal-content svg { width: 20px; height: 20px; display: inline-block; vertical-align: middle; margin-right: .4rem; color: var(--blue); }
.legal-date { padding: 1.2rem; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); color: var(--muted); font-size: .75rem; line-height: 1.8; }
.legal-back { margin-top: 1.5rem; }
.legal-header .text-link { font-size: .75rem; }
@media (max-width: 1000px) {
    .legal-layout { grid-template-columns: 210px minmax(0, 1fr); gap: 1.5rem; }
    .legal-content > section { padding: 1.5rem; }
}
@media (max-width: 760px) {
    .legal-layout { grid-template-columns: 1fr; padding-block: 2.5rem; }
    .legal-summary { position: static; max-height: none; }
    .legal-summary ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 .8rem; }
    .legal-grid { grid-template-columns: 1fr; }
    .legal-content > section { padding: 1.25rem; }
    .legal-header { gap: 1rem; }
    .legal-header .text-link { max-width: 100px; font-size: .65rem; }
    .legal-hero { padding-block: 2.5rem; }
    .legal-tabs a { font-size: .7rem; padding: .65rem .8rem; }
}
@media print {
    .site-header, .site-footer, .legal-summary, .legal-tabs, .legal-back { display: none; }
    .legal-layout { display: block; }
    .legal-hero { background: none; padding-block: 1rem; }
    .legal-hero::before { display: none; }
    .legal-content > section { border: 0; box-shadow: none; padding: 0; }
}
