:root {
    --legal-bg: #f3faf5;
    --legal-surface: #fff;
    --legal-soft: #edf8f0;
    --legal-ink: #12392a;
    --legal-muted: #527063;
    --legal-line: #d7e9df;
    --legal-accent: #15803d;
}
[data-bs-theme="dark"] {
    --legal-bg: #041c14;
    --legal-surface: #092a1d;
    --legal-soft: #123d2a;
    --legal-ink: #edfdf3;
    --legal-muted: #b4cebf;
    --legal-line: #235440;
    --legal-accent: #86efac;
}
.legal-page { background: var(--legal-bg); color: var(--legal-ink); }
.legal-hero { position: relative; overflow: hidden; padding: 4.5rem 0 7.5rem; color: #edfdf3; background: radial-gradient(ellipse at 85% 20%, rgb(74 222 128 / 16%), transparent 42%), linear-gradient(130deg, #041c14, #0d4930); }
.legal-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 240px; align-items: center; gap: 4rem; }
.legal-eyebrow { display: inline-flex; align-items: center; gap: .6rem; margin-bottom: 1.2rem; color: #bbf7d0; font-size: .75rem; font-weight: 700; letter-spacing: .06em; }
.legal-eyebrow > span { width: 7px; height: 7px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 5px rgb(74 222 128 / 10%); }
.legal-hero h1 { color: #edfdf3; margin: 0 0 1.2rem; font-size: clamp(2.5rem, 5.5vw, 4.4rem); font-weight: 700; letter-spacing: -.04em; line-height: 1.15; }
.legal-hero p { max-width: 680px; margin: 0; color: #c5e6d2; font-size: 1.1rem; line-height: 1.85; }
.legal-hero-meta { display: flex; flex-wrap: wrap; gap: .6rem 1rem; margin-top: 1.6rem; color: #a3cbb4; font-size: .78rem; }
.legal-hero-art { color: #86efac; }
.legal-hero-art svg { width: 100%; height: auto; }
.legal-main { position: relative; padding-bottom: 5rem; }
.legal-identity { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr); margin-top: -3rem; overflow: hidden; border: 1px solid var(--legal-line); border-radius: 1.5rem; background: var(--legal-surface); box-shadow: 0 20px 65px rgb(4 28 20 / 8%); }
.legal-identity-main { padding: clamp(1.5rem, 3vw, 2.5rem); }
.legal-kicker { color: var(--legal-accent); font-size: .72rem; font-weight: 800; letter-spacing: .14em; }
.legal-identity h2, .legal-detail-card h2 { margin: .45rem 0 1.3rem; color: var(--legal-ink); font-size: 1.45rem; font-weight: 700; }
.legal-data { margin: 0; }
.legal-data > div { display: grid; grid-template-columns: minmax(100px, .8fr) minmax(0, 1.3fr); gap: 1rem; padding: .85rem 0; border-top: 1px solid var(--legal-line); }
.legal-data dt { color: var(--legal-muted); font-size: .8rem; font-weight: 500; line-height: 1.7; }
.legal-data dd { margin: 0; color: var(--legal-ink); font-size: .92rem; font-weight: 600; line-height: 1.75; overflow-wrap: anywhere; }
.legal-contact { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(1.5rem, 3vw, 2.5rem); border-inline-start: 1px solid var(--legal-line); background: var(--legal-soft); }
.legal-contact-icon { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 1rem; border: 1px solid var(--legal-line); border-radius: 13px; color: var(--legal-accent); background: var(--legal-surface); }
.legal-contact-icon svg { width: 24px; height: 24px; }
.legal-contact h3 { margin: 0 0 1rem; color: var(--legal-ink); font-size: 1.1rem; font-weight: 700; }
.legal-contact-link { display: grid; grid-template-columns: 1fr auto; gap: .2rem 1rem; width: 100%; margin-bottom: 1rem; color: var(--legal-ink); text-decoration: none; }
.legal-contact-link > span:first-child { grid-column: 1; color: var(--legal-muted); font-size: .73rem; }
.legal-contact-link bdi { grid-column: 1; font-size: .9rem; font-weight: 600; overflow-wrap: anywhere; }
.legal-contact-link > span:last-child { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--legal-accent); }
.legal-contact-link:hover { color: var(--legal-accent); }
.legal-contact-action { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; margin-top: auto; padding: .9rem 1rem; border-radius: .8rem; background: #15803d; color: #fff; font-size: .85rem; font-weight: 600; text-decoration: none; }
.legal-contact-action:hover { color: #fff; background: #166534; }
.legal-details-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 1.2rem; margin-top: 1.2rem; }
.legal-detail-card { padding: 1.5rem 2rem; border: 1px solid var(--legal-line); border-radius: 1.2rem; background: var(--legal-surface); }
.legal-detail-card h2 { font-size: 1.1rem; }
.legal-reading-grid { display: grid; grid-template-columns: minmax(0, .38fr) minmax(0, 1fr); align-items: start; gap: 2rem; margin-top: 2.5rem; }
.legal-toc { position: sticky; top: 2rem; padding: 1.4rem; border: 1px solid var(--legal-line); border-radius: 1.2rem; background: var(--legal-surface); }
.legal-toc h2 { margin: 0 0 1.1rem; color: var(--legal-ink); font-size: .95rem; font-weight: 700; }
.legal-toc ol { display: grid; gap: .3rem; margin: 0; padding: 0; list-style: none; }
.legal-toc a { display: flex; align-items: baseline; gap: .8rem; padding: .65rem .4rem; border-radius: .6rem; color: var(--legal-muted); font-size: .8rem; line-height: 1.65; text-decoration: none; }
.legal-toc a > span { flex: 0 0 1.2rem; color: var(--legal-accent); font-size: .67rem; font-weight: 700; }
.legal-toc a:hover { background: var(--legal-soft); color: var(--legal-accent); }
.legal-article { min-width: 0; padding: clamp(1.5rem, 3.5vw, 3rem); border: 1px solid var(--legal-line); border-radius: 1.5rem; background: var(--legal-surface); }
.legal-prose { color: var(--legal-muted); font-size: .97rem; line-height: 1.95; overflow-wrap: anywhere; }
.legal-prose h2 { margin: 2.5rem 0 .85rem; color: var(--legal-ink); font-size: 1.35rem; font-weight: 700; line-height: 1.5; scroll-margin-top: 2rem; }
.legal-prose h2:first-child { margin-top: 0; }
.legal-prose h3, .legal-prose strong { color: var(--legal-ink); }
.legal-prose a { color: var(--legal-accent); }
.legal-prose img { max-width: 100%; height: auto; border-radius: .8rem; }
.legal-prose pre, .legal-prose table { max-width: 100%; overflow-x: auto; }
.legal-related { margin-top: 2.5rem; padding-top: 1.7rem; border-top: 1px solid var(--legal-line); }
.legal-related h2 { margin: 0 0 1rem; color: var(--legal-ink); font-size: 1rem; font-weight: 700; }
.legal-related-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.legal-related-grid a { position: relative; display: flex; flex-direction: column; gap: .4rem; padding: 1rem; padding-inline-end: 2rem; border: 1px solid var(--legal-line); border-radius: .85rem; background: var(--legal-soft); text-decoration: none; }
.legal-related-grid strong { color: var(--legal-ink); font-size: .86rem; }
.legal-related-grid span { color: var(--legal-muted); font-size: .75rem; line-height: 1.7; }
.legal-related-grid i { position: absolute; top: 1rem; inset-inline-end: .8rem; color: var(--legal-accent); font-style: normal; }
.legal-related-grid a:hover { border-color: var(--legal-accent); }
@media (max-width: 991.98px) {
    .legal-hero-grid { grid-template-columns: minmax(0, 1fr) 170px; gap: 2rem; }
    .legal-reading-grid { grid-template-columns: minmax(0, .44fr) minmax(0, 1fr); gap: 1.25rem; }
}
@media (max-width: 767.98px) {
    .legal-hero { padding: 3.5rem 0 6rem; }
    .legal-hero-grid { grid-template-columns: 1fr; gap: 0; }
    .legal-hero-art { position: absolute; width: 150px; inset-inline-end: -2rem; top: -1.8rem; opacity: .12; pointer-events: none; }
    .legal-hero h1 { font-size: clamp(2.3rem, 10vw, 3.3rem); }
    .legal-hero p { font-size: 1rem; }
    .legal-identity, .legal-reading-grid { grid-template-columns: 1fr; }
    .legal-contact { border-inline-start: 0; border-top: 1px solid var(--legal-line); }
    .legal-toc { position: static; }
    .legal-toc ol { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: .75rem; }
    .legal-main { padding-bottom: 3rem; }
}
@media (max-width: 399.98px) {
    .legal-data > div { grid-template-columns: 1fr; gap: .25rem; }
    .legal-related-grid { grid-template-columns: 1fr; }
}
