html { scrollbar-gutter: stable; }
.legal-heading { padding-block: clamp(2.5rem, 5vw, 4.5rem); border-bottom: 1px solid var(--line-soft); }
.legal-heading h1 { font-size: clamp(2.7rem, 6vw, 5rem); margin-block: 1.5rem 1rem; }
.legal-heading p { max-width: var(--measure); }
.legal-layout { display: grid; grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); padding-block: clamp(2.5rem, 5vw, 4.5rem); align-items: start; }
.legal-contents { border-top: 1px solid var(--line); padding-top: 1rem; }
.legal-contents h2 { font-size: 1.7rem; margin: 0 0 .5rem; }
.legal-contents ul { list-style: none; padding: 0; margin: 0; }
.legal-contents a { display: block; padding-block: .6rem; text-underline-offset: .2em; }
.legal-copy { max-width: 68ch; min-width: 0; overflow-wrap: anywhere; }
.legal-copy section { padding-top: 2.25rem; scroll-margin-top: 8rem; }
.legal-copy h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); line-height: 1.15; margin: 0 0 1rem; }
.legal-copy p, .legal-copy li { line-height: 1.7; }
.legal-copy li + li { margin-top: .75rem; }
.legal-lead { font-size: 1.2rem; margin-top: 0; }
.legal-text-button { padding: 0; min-height: 2.75rem; background: transparent; border: 0; color: var(--rust-dark); font: inherit; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.footer-legal { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1.5rem; margin-top: 1rem; }
.footer-legal a, .footer-legal button { display: inline-flex; align-items: center; min-height: 2.75rem; font: inherit; color: inherit; text-decoration: underline; text-underline-offset: .2em; }
.footer-legal button { border: 0; background: transparent; padding: 0; cursor: pointer; }
.privacy-notice { padding-block: 1.75rem; border-top: 1px solid currentColor; margin-top: 1.5rem; }
.privacy-notice[hidden] { display: none; }
.privacy-notice h2 { font-size: 1.75rem; margin: 0 0 .6rem; }
.privacy-notice p { max-width: 68ch; margin-block: 0 1rem; }
.privacy-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.privacy-actions button { background: var(--cream-light); color: var(--soot); border: 1px solid var(--cream-light); padding: .75rem 1rem; min-height: 3rem; font: inherit; font-weight: 700; cursor: pointer; }
.privacy-actions button:hover { background: var(--canvas); }
.privacy-actions button:disabled { opacity: .6; cursor: not-allowed; }
.privacy-status { padding-top: .75rem; }
.privacy-form-note { max-width: 68ch; margin-block: 1.25rem; }
.legal-draft-notice { padding: .75rem 1rem; background: var(--soot); color: var(--cream-light); font-size: 1rem; margin: 0; }
@media (max-width: 820px) { .legal-layout { grid-template-columns: 1fr; gap: 2rem; } .legal-contents ul { columns: 2; column-gap: 1.5rem; } .legal-contents li { break-inside: avoid; } }
@media (max-width: 560px) { .legal-contents ul { columns: 1; } .footer-legal { align-items: flex-start; flex-direction: column; gap: .15rem; } .privacy-actions { flex-direction: column; align-items: stretch; } }
