/* Shared by the static website, its legal reader and privacy choice. */
.legal-page { margin:0; background:#f4f5f1; color:#192b22; font:17px/1.7 'Lexend',sans-serif; }
.legal-page *, .legal-reader * { box-sizing:border-box; }
.legal-page header, .legal-page footer, .legal-page main { width:min(800px,100% - 40px); margin:0 auto; }
.legal-page header { display:flex; justify-content:space-between; padding:30px 0; }
.legal-page header a:first-child { font-weight:800; font-size:26px; text-decoration:none; }
.legal-page main { padding:24px 0 50px; }
.legal-page footer { border-top:1px solid #b8c5bc; padding:24px 0 40px; }
.legal-page a, .legal-reader a { color:inherit; text-underline-offset:.2em; overflow-wrap:anywhere; }
.legal-copy h1 { font-size:clamp(28px,5vw,44px); line-height:1.12; margin:0 0 16px; overflow-wrap:anywhere; }
.legal-copy h2 { font-size:22px; line-height:1.3; margin:32px 0 12px; }
.legal-copy p, .legal-copy ul { margin:12px 0; }
.legal-copy ul { padding-left:24px; }
.legal-date { color:#56645b; font-size:14px; }
.legal-reader { color:#192b22; background:#f4f5f1; width:min(780px,calc(100% - 24px)); max-height:90dvh; border:1px solid #b8c5bc; border-radius:18px; padding:0; font:16px/1.65 'Lexend',sans-serif; }
.legal-reader::backdrop { background:rgba(8,20,13,.72); }
.legal-reader-bar { position:sticky; top:0; background:#f4f5f1; border-bottom:1px solid #b8c5bc; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 22px; z-index:1; }
.legal-reader .legal-copy { padding:26px; }
.legal-reader button { font:inherit; min-height:44px; padding:10px 16px; cursor:pointer; border:1px solid #4c6556; border-radius:10px; color:#192b22; background:#f4f5f1; }
.legal-reader button:focus-visible, .legal-page :focus-visible { outline:3px solid #35704e; outline-offset:3px; }
.site-contact { grid-column:1/-1; font-size:14px; line-height:1.65; color:inherit; }
.site-contact a { color:inherit; text-decoration:underline; text-underline-offset:.2em; }
.site-contact span { display:block; }
.website-status { font-size:12px; font-weight:600; }
@media(max-width:480px) { .legal-reader .legal-copy { padding:20px; } .legal-copy h2 { font-size:20px; } }

.legal-copy h1, .legal-copy h2 { font-family: 'League Spartan',sans-serif; }
.legal-copy h3 { font-family:"League Spartan",sans-serif; font-size:18px; line-height:1.3; margin:22px 0 8px; }

/* Kontaktformular (Impressum, zweiter Kontaktweg) */
.contact-form { display:grid; gap:16px; margin-top:24px; }
.contact-form label { display:grid; gap:6px; font-weight:600; }
.contact-form input, .contact-form textarea { font:inherit; font-weight:400; padding:10px 12px; border:1px solid #b8c5bc; border-radius:10px; background:#fff; color:#192b22; }
.contact-form textarea { resize:vertical; }
.contact-form button { justify-self:start; font:inherit; font-weight:700; min-height:44px; padding:10px 20px; border:0; border-radius:999px; background:#192b22; color:#f4f5f1; cursor:pointer; }
.contact-form button:disabled { opacity:.6; cursor:default; }
.contact-note { font-size:14px; color:#56645b; margin:0; }
.contact-status { margin:0; font-weight:600; }
.contact-hp { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.contact-topic { margin:0 0 4px; padding:12px 14px; border-radius:12px; background:rgba(127,127,127,.12); font-weight:600; }
.legal-summary { margin:20px 0 28px; padding:20px 22px; border:1px solid #cfd8d1; border-radius:20px; background:#f2f6f3; }
.legal-copy .legal-summary h2 { margin:0 0 4px; }
.legal-summary-note { color:#56645b; font-size:14px; margin:0 0 8px !important; }
