/* Auxiliary pages reuse the approved brand system without changing landing pages. */
.legal-main { padding-block:72px 96px; }
.legal-document { max-width:800px; margin-inline:auto; }
.legal-heading { padding-bottom:36px; border-bottom:1px solid var(--line); margin-bottom:40px; }
.legal-heading h1 { font-size:clamp(38px,4.5vw,60px); }
.legal-date { margin-top:20px; font-size:16px; }
.legal-section + .legal-section { margin-top:34px; }
.legal-section h2 { font-size:24px; line-height:1.35; letter-spacing:-.025em; margin-bottom:12px; }
.legal-section p { font-size:17px; line-height:1.8; overflow-wrap:anywhere; }
.legal-contact { background:var(--lavender); border:1px solid var(--line); border-radius:12px; padding:28px; }
.legal-contact p + p { margin-top:12px; }
.legal-contact a { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.not-found { min-height:calc(100svh - 85px); display:grid; place-items:center; padding-block:64px 88px; text-align:center; }
.not-found-content { max-width:800px; }
.error-code { color:var(--blue); font-size:clamp(90px,14vw,168px); line-height:1; font-weight:750; letter-spacing:-.06em; margin-bottom:28px; }
.not-found h1 { font-size:clamp(34px,4.5vw,54px); }
.error-description { font-size:18px; line-height:1.7; max-width:560px; margin:22px auto 30px; }
.not-found .button-row { justify-content:center; flex-wrap:wrap; }
@media(max-width:1100px) { .legal-main { padding-block:60px 80px; } }
@media(max-width:620px) {
  .legal-main { padding-block:42px 60px; }
  .legal-heading { padding-bottom:28px; margin-bottom:30px; }
  .legal-section h2 { font-size:22px; }
  .legal-section p { font-size:16px; }
  .legal-contact { padding:22px; }
  .not-found { min-height:calc(100svh - 69px); padding-block:48px 64px; }
  .error-description { font-size:16px; }
  .not-found .button-row { flex-direction:column; }
  .not-found .button { width:100%; }
}
