.legal-main { max-width: 960px; padding-block: 60px 72px; }
.legal-heading { padding-bottom: 32px; border-bottom: 1px solid var(--line); }
.legal-heading h1 { font-size: clamp(38px, 5vw, 64px); line-height: 1.08; letter-spacing: -.05em; overflow-wrap: anywhere; }
.legal-date { color: var(--ink-secondary); font-size: 14px; margin-top: 20px; }
.legal-copy { max-width: 740px; padding-top: 32px; }
.legal-copy p { font-family: var(--serif); font-size: 18px; line-height: 1.6; }
.legal-copy .legal-intro { font-size: 23px; line-height: 1.4; margin-bottom: 36px; }
.legal-copy section + section { margin-top: 30px; }
.legal-copy h2 { font-size: 23px; letter-spacing: -.03em; margin-bottom: 10px; }
.legal-copy p + p { margin-top: 14px; }
.legal-copy a, .legal-inline-button { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.legal-inline-button { display: inline; padding: 0; border: 0; background: none; font: inherit; cursor: pointer; }
.contact-form { display: grid; gap: 24px; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-form label { display: block; margin-bottom: 9px; font-size: 15px; font-weight: 600; }
.contact-form label span { color: var(--ink-secondary); font-weight: 400; }
.contact-form input, .contact-form select, .contact-form textarea { display: block; width: 100%; min-width: 0; padding: 13px; color: var(--ink); background: #fffefa; border: 1px solid #b8b5ac; border-radius: 4px; font: 16px/1.5 var(--sans); }
.contact-form textarea { resize: vertical; min-height: 150px; }
.contact-form .contact-hint { font: 14px/1.5 var(--sans); color: var(--ink-secondary); margin-top: 8px; }
.contact-form .button { justify-self: start; min-width: 170px; cursor: pointer; }
.contact-form .button:disabled { opacity: .65; cursor: wait; }
.contact-form .contact-status { padding: 18px; background: var(--cream-secondary); font: 16px/1.5 var(--sans); overflow-wrap: anywhere; }
.contact-form .contact-status[data-error="true"] { border-left: 3px solid #a34d36; }
.contact-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 600px) { .legal-main { padding-block: 36px 48px; } .legal-copy .legal-intro { font-size: 21px; } .contact-grid { grid-template-columns: 1fr; } }
