/* Small additions to the existing Giro design, not a replacement layout. */
.legal-page { max-width: 900px; overflow-wrap: anywhere; }
.legal-page h1 { font-size: clamp(2.8rem, 8vw, 5.5rem); }
.legal-page h2 { font-size: clamp(1.7rem, 4vw, 2.4rem); margin-top: 2.2rem; }
.legal-page p, .legal-page li { max-width: 72ch; }
.legal-page a, .fineprint a { text-decoration: underline; text-underline-offset: .18em; }
.legal-date { font-size: .9rem; }
.legal-table-scroll { overflow-x: auto; margin: 1.5rem 0; }
.legal-page table { border-collapse: collapse; width: 100%; font-size: .95rem; }
.legal-page th, .legal-page td { padding: 12px; border: 1px solid currentColor; text-align: left; vertical-align: top; min-width: 9rem; }
.consent-banner, .consent-dialog { background: var(--brand-background, #f3efe3); color: var(--brand-text, #173e2e); padding: 20px; border: 1px solid currentColor; font: 16px/1.5 Arial, sans-serif; }
.consent-banner { position: fixed; z-index: 900; inset: auto 16px 16px; max-width: 820px; margin: auto; max-height: 70vh; overflow-y: auto; box-shadow: 0 8px 30px #0003; }
.consent-banner[hidden] { display: none; }
.consent-banner p { margin: 0 0 12px; }
.consent-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0; }
.consent-actions button { flex: 1 1 160px; border: 1px solid currentColor; background: transparent; color: inherit; font: inherit; min-height: 44px; padding: 10px 12px; cursor: pointer; border-radius: 0; }
.consent-dialog { max-width: 620px; width: calc(100% - 32px); max-height: 85vh; overflow: auto; }
.consent-dialog::backdrop { background: #0008; }
.consent-dialog h2 { font-size: 2rem; }
.consent-dialog input, .consent-check input { width: 22px !important; height: 22px; flex: 0 0 22px; accent-color: var(--brand-primary, #173e2e); }
.signup-form-page .consent-check { display: flex; align-items: start; gap: 10px; line-height: 1.6; }
.consent-check input { margin-top: 4px; }
.consent-banner a { color: inherit; text-decoration: underline; }
.consent-dialog :focus-visible, .consent-banner :focus-visible { outline: 3px solid var(--brand-accent, #ac3028); outline-offset: 3px; }
.legal-footer { display: flex; flex-wrap: wrap; gap: 12px 20px; padding-top: 16px; }
.legal-footer a { min-height: 24px; }
@media (max-width: 600px) { .consent-banner { inset-inline: 8px; bottom: 8px; padding: 14px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
