* { box-sizing: border-box; }
body { min-width: 20rem; min-height: 100vh; margin: 0; color: #24332b; font-family: var(--font-sans); background: #f6f1e6; }
a { color: #27543b; text-underline-offset: .2em; }
:focus-visible { outline: 3px solid #b68b34; outline-offset: 3px; }
.legal-shell { width: min(calc(100% - 2rem), 52rem); margin: 0 auto; padding: 1rem 0 5rem; }
.legal-header { min-height: 4.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid rgb(36 51 43 / 13%); }
.legal-brand { display: flex; align-items: center; gap: .65rem; color: #183426; font-size: .78rem; font-weight: 900; letter-spacing: .12em; text-decoration: none; }
.legal-brand img { width: 2.6rem; height: 2.6rem; border-radius: 50%; }
.legal-header nav { display: flex; gap: .8rem; color: #587065; font-size: .75rem; }
.legal-title { padding: clamp(3rem, 10vw, 6rem) 0 2rem; }
.legal-title .eyebrow { margin: 0 0 .8rem; color: #47705a; font-size: .72rem; font-weight: 900; letter-spacing: .13em; }
.legal-title h1 { margin: 0; color: #173728; font-family: var(--font-serif); font-size: clamp(2.5rem, 9vw, 5rem); font-weight: 500; letter-spacing: -.05em; }
.legal-title p { max-width: 42rem; margin: 1rem 0 0; color: #607269; line-height: 1.75; }
.legal-meta { padding: 1rem; border: 1px solid rgb(36 51 43 / 12%); border-radius: 1rem; color: #53685d; background: rgb(255 255 255 / 42%); font-size: .82rem; line-height: 1.7; }
.legal-content { margin-top: 2rem; }
.legal-content section { padding: 1.5rem 0; border-top: 1px solid rgb(36 51 43 / 12%); }
.legal-content h2 { margin: 0 0 .75rem; color: #183728; font-family: var(--font-serif); font-size: 1.45rem; font-weight: 600; }
.legal-content h3 { margin: 1.2rem 0 .5rem; color: #294a38; font-size: 1rem; }
.legal-content p, .legal-content li { color: #475d52; line-height: 1.85; word-break: keep-all; }
.legal-content ul, .legal-content ol { padding-left: 1.4rem; }
.legal-table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: .85rem; }
.legal-table th, .legal-table td { padding: .8rem; border: 1px solid rgb(36 51 43 / 15%); text-align: left; vertical-align: top; line-height: 1.65; }
.legal-table th { color: #254834; background: rgb(39 84 59 / 6%); }
.notice-box { padding: 1rem; border-left: 4px solid #527a60; border-radius: .3rem .8rem .8rem .3rem; color: #385044; background: rgb(82 122 96 / 8%); line-height: 1.75; }
@media (max-width: 620px) { .legal-header { align-items: flex-start; padding: .8rem 0; } .legal-header nav { display: grid; text-align: right; } .legal-table { display: block; overflow-x: auto; white-space: normal; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }
