/* Public terms and policy pages share the auth-page visual language. */
body.legal-page-body {
   overflow-x: hidden;
   overflow-y: auto !important;
}

.legal-page-shell {
   height: auto !important;
   min-height: 100dvh;
   display: flex !important;
   gap: clamp(10px, 1.5vw, 18px);
   padding: max(16px, env(safe-area-inset-top, 0px)) max(18px, env(safe-area-inset-right, 0px)) max(16px, env(safe-area-inset-bottom, 0px)) max(18px, env(safe-area-inset-left, 0px));
   overflow: visible !important;
}

.legal-page-shell .auth-page-topbar { width: min(940px, 100%); margin-bottom: 0; }

.legal-page-card {
   width: min(940px, 100%);
   margin: 0 auto;
   padding: clamp(26px, 3.2vw, 42px);
   color: var(--auth-text);
   background: var(--auth-panel);
   border: 1px solid var(--auth-border);
   border-radius: 22px;
   box-shadow: var(--auth-shadow);
}

.legal-page-header { max-width: 72ch; }
.legal-page-kicker { margin: 0 0 8px; color: var(--auth-link); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.legal-page-title { margin: 0; color: var(--auth-text) !important; font-size: clamp(1.85rem, 2.8vw, 2.35rem); font-weight: 780; letter-spacing: -.04em; line-height: 1.16; text-wrap: balance; }
.legal-page-intro { max-width: 68ch; margin: 12px 0 0; color: var(--auth-muted); font-size: 1rem; line-height: 1.65; }
.legal-page-section { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--auth-border); }
.legal-page-section h2 { margin: 0 0 7px; color: var(--auth-text) !important; font-size: 1.06rem; font-weight: 760; letter-spacing: -.01em; }
.legal-page-section p { max-width: 74ch; margin: 0; color: var(--auth-muted); font-size: 1rem; line-height: 1.68; overflow-wrap: anywhere; }
.legal-page-contact { display: inline-block; max-width: 100%; margin-top: 7px; color: var(--auth-link); font-size: .98rem; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.legal-page-contact:hover { color: var(--auth-text); }
.legal-page-contact:focus-visible { outline: 2px solid var(--auth-link); outline-offset: 3px; border-radius: 2px; }
.legal-page-updated { margin: 22px 0 0; color: var(--auth-subtle); font-size: .78rem; }
.legal-page-footer { margin-top: auto; padding: 3px 4px 0; }

@media (max-width: 980px) {
   .legal-page-card { width: min(760px, 100%); }
}

@media (max-width: 640px) {
   .legal-page-shell { gap: 10px; padding: max(10px, env(safe-area-inset-top, 0px)) max(12px, env(safe-area-inset-right, 0px)) max(14px, env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px)); }
   .legal-page-shell .auth-page-topbar { width: 100%; padding: 0; }
   .legal-page-card { width: 100%; padding: 25px 20px 28px; border-radius: 18px; }
   .legal-page-title { font-size: clamp(1.75rem, 7vw, 2.1rem); }
   .legal-page-intro { margin-top: 10px; font-size: .94rem; line-height: 1.6; }
   .legal-page-section { margin-top: 19px; padding-top: 17px; }
   .legal-page-section h2 { font-size: 1rem; }
   .legal-page-section p, .legal-page-contact { font-size: .94rem; line-height: 1.62; }
   .legal-page-updated { margin-top: 22px; font-size: .75rem; }
   .legal-page-footer { padding: 6px 4px 10px; }
}

@media (max-width: 380px) {
   .legal-page-card { padding-right: 16px; padding-left: 16px; }
}
