/* Farben, Schrift und Glasflächen der Nova-Hauptseite für die rechtlichen Seiten. */
.legal-page {
    --legal-bg: #04060b;
    --legal-ink: #eaf0ff;
    --legal-muted: #a6b2ce;
    --legal-cyan: #63e6e2;
    --legal-line: #34445b;
    margin: 0;
    color: var(--legal-ink);
    background: radial-gradient(ellipse at 85% 5%, #102a38 0, transparent 35rem), radial-gradient(ellipse at 10% 38%, #0e1830 0, transparent 40rem), var(--legal-bg);
    font: 400 1rem/1.7 'Plus Jakarta Sans', system-ui, sans-serif;
    color-scheme: dark;
    overflow-wrap: anywhere;
    -webkit-font-smoothing: antialiased;
}
.legal-page *, .legal-page *::before, .legal-page *::after { box-sizing: border-box; }
.legal-page :is(a, button, input, textarea, [tabindex]):focus-visible { outline: 3px solid var(--legal-cyan); outline-offset: 5px; }
.legal-page a { color: var(--legal-cyan); text-underline-offset: .22em; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
.legal-page a:hover { color: #fff; }
.legal-page h1, .legal-page h2, .legal-page h3 { line-height: 1.25; letter-spacing: -.035em; overflow-wrap: anywhere; }
.legal-page h2 { font-size: clamp(1.5rem, 3vw, 2.2rem); margin: 0 0 1.25rem; }
.legal-page h3 { font-size: 1.2rem; margin: 0 0 1rem; }
.legal-page p { margin: 0 0 1.15rem; }
.legal-page address { font-style: normal; }
.legal-page :is(section, main, input, textarea) { scroll-margin-top: 1.5rem; }
.legal-page ::selection { background: #235968; color: #fff; }
.legal-wrap { width: min(100%, 1240px); margin-inline: auto; padding-inline: clamp(1.25rem, 4.5vw, 3rem); }
.legal-header { padding-block: 1.2rem; border-bottom: 1px solid #253247; }
.legal-header > .legal-wrap { padding-right: 132px; }
.legal-brand { display: inline-flex; gap: .75rem; align-items: center; min-height: 48px; max-width: 100%; font-size: .95rem; font-weight: 800; letter-spacing: .08em; text-decoration: none; color: var(--legal-ink) !important; }
.legal-brand > span { min-width: 0; }
.legal-brand img { width: auto; height: 28px; flex: none; }
.legal-brand small { display: block; font-size: .7rem; font-weight: 500; letter-spacing: .04em; color: var(--legal-muted); }
.legal-accent { color: var(--legal-cyan); }
.legal-skip { position: fixed; top: 8px; left: 12px; z-index: 3000; padding: .75rem 1rem; transform: translateY(-180%); background: #14333e; color: #fff !important; border: 2px solid var(--legal-cyan); border-radius: 8px; }
.legal-skip:focus { transform: none; }
.legal-hero { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: clamp(2rem, 5vw, 4rem); padding-block: clamp(2.5rem, 7vw, 5rem); }
.legal-eyebrow { font: 500 .75rem/1.7 'Fira Code', monospace; text-transform: uppercase; letter-spacing: .16em; color: var(--legal-cyan); }
.legal-page h1 { font-size: clamp(2.5rem, 6.5vw, 5.25rem); font-weight: 300; line-height: 1.08; margin: 0 0 1.5rem; }
.legal-page h1 > span { display: block; font-weight: 800; color: var(--legal-cyan); }
.legal-lead { color: var(--legal-muted); font-size: 1.1rem; max-width: 40ch; }
.legal-jump { display: flex; flex-wrap: wrap; gap: .25rem 1.4rem; margin-top: 1.6rem; }
.legal-jump a { display: inline-flex; align-items: center; min-height: 44px; font-size: .9rem; }
.legal-panel { min-width: 0; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--legal-line); border-radius: 18px; background: linear-gradient(160deg, #122031, #0b121f); box-shadow: 0 30px 65px -45px #000, inset 0 1px 0 #aecfff12; }
.legal-panel > :last-child { margin-bottom: 0; }
.legal-provider { border-top: 2px solid var(--legal-cyan); }
.legal-provider address { font-size: 1.05rem; }
.legal-contact-list { margin: 1.4rem 0 0; padding-top: 1.1rem; border-top: 1px solid var(--legal-line); }
.legal-contact-list > div { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); align-items: center; gap: .5rem; }
.legal-contact-list dt { color: var(--legal-muted); font-size: .85rem; }
.legal-contact-list dd { margin: 0; }
.legal-contact-list a { display: inline-flex; min-height: 44px; align-items: center; }
.legal-section { margin-bottom: 3rem; }
.legal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.legal-grid p { color: var(--legal-muted); }
.legal-text-link { display: inline-flex; gap: .7rem; min-height: 44px; align-items: center; }
.legal-form-panel { margin-top: 3rem; }
.legal-form-panel > p, .legal-hint { color: var(--legal-muted); }
.legal-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-block: 1.75rem; }
.legal-field-wide { grid-column: 1 / -1; }
.legal-field label { display: block; margin-bottom: .6rem; font-weight: 600; }
.legal-field :is(input, textarea) { display: block; width: 100%; min-height: 48px; border: 1px solid #8392ae; border-radius: 10px; padding: .75rem; font: inherit; color: var(--legal-ink); background: #070d17; }
.legal-field textarea { resize: vertical; }
.legal-field [aria-invalid="true"] { border: 2px solid #ffaea6; }
.legal-field-error { color: #ffbdb6; margin-top: .65rem !important; }
.legal-hint { font-size: .9rem; margin-top: .65rem !important; }
.legal-button { display: inline-flex; align-items: center; justify-content: center; gap: 1rem; min-height: 48px; max-width: 100%; padding: .8rem 1.3rem; border: 2px solid var(--legal-cyan); border-radius: 11px; color: #041116 !important; background: linear-gradient(120deg, #8bf3ed, #45c9d3); text-decoration: none; font: 700 1rem/1.5 'Plus Jakarta Sans', system-ui, sans-serif; cursor: pointer; box-shadow: 0 8px 32px #2ab3bf1a; }
.legal-button:hover { background: #a0fff5; }
.legal-notice { margin-block: 1.5rem; border: 2px solid; border-radius: 12px; padding: 1.25rem; }
.legal-notice ul { padding-left: 1.25rem; }
.legal-notice li { margin-block: .5rem; }
.legal-error { border-color: #ffaea6; background: #281a22; }
.legal-error a { color: #ffd7d1; }
.legal-success { border-color: var(--legal-cyan); background: #112c30; }
.legal-updated { font-size: .85rem; color: var(--legal-muted); }
.legal-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.75rem; border-top: 1px solid var(--legal-line); color: var(--legal-muted); font-size: .9rem; }
.legal-footer p { margin: 0; }
.legal-footer nav { display: flex; flex-wrap: wrap; gap: .5rem 1.3rem; }
.legal-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.legal-copy { max-width: 78ch; }
.legal-copy section { margin-bottom: 2.5rem; }
.legal-copy ul { padding-left: 1.4rem; }
.legal-copy li { margin-bottom: .5rem; }
@media (max-width: 760px) {
    .legal-hero, .legal-grid, .legal-form-grid { grid-template-columns: minmax(0, 1fr); }
    .legal-field-wide { grid-column: auto; }
}
@media (max-width: 360px) {
    .legal-brand { font-size: .8rem; gap: .4rem; letter-spacing: .02em; }
    .legal-brand img { width: auto; height: 22px; }
    .legal-brand small { font-size: .65rem; }
    .legal-contact-list > div { grid-template-columns: minmax(0, 1fr); gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .legal-page *, .legal-page *::before, .legal-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
    .legal-page { background: Canvas; color: CanvasText; }
    .legal-panel, .legal-notice { background: Canvas; border-color: CanvasText; box-shadow: none; }
    .legal-page a { color: LinkText; }
    .legal-page h1 > span, .legal-accent, .legal-eyebrow, .legal-brand, .legal-brand small, .legal-muted, .legal-grid p, .legal-hint, .legal-lead, .legal-form-panel > p, .legal-updated, .legal-footer, .legal-contact-list dt { color: CanvasText !important; }
    .legal-button { color: ButtonText !important; background: ButtonFace; border-color: ButtonText; }
    .legal-page :focus-visible { outline-color: Highlight; }
}
@media print {
    .legal-page { background: #fff; color: #000; font-size: 11pt; }
    .legal-page a, .legal-page h1 > span, .legal-page p, .legal-eyebrow, .legal-contact-list dt { color: #000; }
    .legal-header, .legal-skip, .legal-jump, .legal-footer, #fnz-nav-root, #kontakt { display: none !important; }
    .legal-wrap { width: 100%; padding: 0; }
    .legal-hero, .legal-grid { display: block; padding-block: 1rem; }
    .legal-panel { background: #fff; border-color: #777; box-shadow: none; margin-bottom: 1rem; break-inside: avoid; }
    .legal-page h1 { font-size: 28pt; }
}
