/* 00-basis.css */
/* EFD: native Grundregeln, Bestandstypografie je Seite. */
[hidden]{display:none!important}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}

/* 01-barrierefreiheit.css */
.screen-reader-text:not(:focus), .visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* 94-bewohner.css */
/* Resident tabs retain their source design. Both panels remain readable without JS. */
@layer grundstil {
  .bw-schalter [role="tabpanel"]:not([hidden]) { display: block !important; }
  .bw-schalter [role="tabpanel"][hidden] { display: none !important; }
}
[data-efd-kalender][hidden],
[data-efd-termin-hinweis][hidden],
[data-efd-portal-adresse][hidden] { display: none !important; }
.bw-schalter [role="tab"]:focus-visible { outline: 2px solid var(--ef-gold); outline-offset: -3px; }
.efd-termininfo:not(:has([data-efd-portal-termine]:not([hidden]))) .efd-termininfo__label,
.efd-portal__objekt:has([data-efd-portal-adresse][hidden]) { display: none; }

/* Source interaction states. */
.bw-check.ist-erledigt {border-color:var(--ef-gold);}
.bw-check.ist-erledigt .bw-check__haken--aus {display:none!important;}
.bw-check.ist-erledigt .bw-check__haken--an {display:block!important;}
.bw-checks-wrap:not(:has(.bw-check:not(.ist-erledigt))) .bw-fertig {display:flex;}
.bw-schalter .tab-title.ist-offen {background:var(--ef-gold);color:var(--ef-on-brand,#1f1f1f);}
.bw-fragen .ist-offen .bw-chevron {transform:rotate(180deg);}
.bw-schalter .tab-pane.ist-offen {animation:bw-einblenden .25s ease-out;}
.bw-check.ist-erledigt .bw-check__haken--an {animation:bw-haken .16s ease-out;}
@media (min-width: 768px) {
  @supports (anchor-name: --bw) {
    .bw-schalter .tab-pane.ist-offen .bw-punkte {
      anchor-name: --bw-rechts;
      padding-top: 74px;
    }
  }
}

/* 95-legal.css */
/* Native EFD reading component: only selectors used by the existing legal documents. */

/* Base reading geometry from the frozen public document stylesheet, expressed with native classes. */

:where(.ef-rechtstext) .einwilligung-obfuscate span { display:none }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown summary { display:block;cursor:pointer }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown summary::-webkit-details-marker,
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown summary::marker { display:none;content:"" }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown summary div { display:grid;grid-template:"heading chevron";grid-template-columns:2fr 25px;grid-gap:15px;align-items:center }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown summary div h3 { grid-area:heading;margin:0 }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown summary div::after { grid-area:chevron }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) { font-size:14px;margin-top:0;max-width:800px;text-justify:inter-word }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) button::-moz-focus-inner { border:0;padding:0 }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) a { text-decoration:underline }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) a[target=_blank]::after { content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAQElEQVR42qXKwQkAIAxDUUdxtO6/RBQkQZvSi8I/pL4BoGw/XPkh4XigPmsUgh0626AjRsgxHTkUThsG2T/sIlzdTsp52kSS1wAAAABJRU5ErkJggg==);margin:0 3px 0 5px }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) a:focus { border:1px solid black;padding:2px }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) h2,
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) h3 { font-size:22px;text-align:left;margin-top:15px;text-transform:initial;padding-bottom:10px;margin-bottom:10px }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document).impressum h2,
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document).impressum h3 { border-bottom:0;font-size:1em;padding-bottom:5px;margin-bottom:5px }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document).impressum p { margin-bottom:7px }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) p,
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) li,
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) td { font-size:14px;margin-top:0 }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) ul { list-style:disc;margin-left:15px;margin-bottom:15px }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown { background-color:rgba(239,239,239,0.25) }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown p,
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown a { font-size:14px;margin-top:0 }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown p,
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown ul { padding:0 15px }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown summary::marker { display:none;content:"" }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown summary::-webkit-details-marker { display:none;content:"" }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown summary { display:block;background-color:rgba(239,239,239,0.5);margin:5px 0;padding:5px 10px;align-items:center;justify-items:stretch }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown summary h3 { padding:0 5px;border-bottom:0;font-size:18px;border-bottom:0 }
:where(.ef-rechtstext) :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown[open] { padding-bottom:1px }

/* Existing EFD typography and component overrides, retaining their original order. */

.ef-rechtstext { max-width: 76ch; font-size: var(--ef-fs-m); line-height: var(--ef-lh-body); color: var(--ef-text-muted); overflow-wrap: break-word; }
.ef-rechtstext,
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document),
.ef-rechtstext .einwilligung-document { font-family: var(--ef-font-body); }
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document),
.ef-rechtstext .einwilligung-document { max-width: none; margin: 0; padding: 0; font-size: inherit; line-height: inherit; color: inherit; }
.ef-rechtstext :is(p, ul, ol, table, details, blockquote, address, figure) { margin: var(--ef-space-m) 0 0; }
.ef-rechtstext > :first-child,
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document) > :first-child { margin-top: 0; }
.ef-rechtstext :is(h2, h3, h4),
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document) :is(h2, h3, h4) { font-family: var(--ef-font-display); color: var(--ef-text); text-wrap: balance; overflow-wrap: break-word; text-transform: none; }
.ef-rechtstext h2,
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document) h2 { margin: var(--ef-space-3xl) 0 0; font-size: var(--ef-fs-2xl); font-weight: 800; line-height: var(--ef-lh-heading); letter-spacing: -0.02em; }
.ef-rechtstext h3,
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document) h3 { margin: var(--ef-space-2xl) 0 0; font-size: var(--ef-fs-xl); font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }
.ef-rechtstext :is(h2, h3, h4) + *,
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document) :is(h2, h3, h4) + * { margin-top: var(--ef-space-s); }
.ef-rechtstext :is(ul, ol) { display: grid; gap: 0.6rem; padding-left: 2.4rem; }
.ef-rechtstext li::marker { color: var(--ef-accent); }
.ef-rechtstext a,
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document) a { color: var(--ef-text); text-decoration: underline; text-decoration-color: var(--ef-accent); text-underline-offset: 0.25em; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
.ef-rechtstext a:hover,
.ef-rechtstext a:focus-visible,
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document) a:hover { color: var(--ef-accent); }
.ef-rechtstext :is(strong, b) { font-weight: 600; color: var(--ef-text); }
.ef-rechtstext table { display: block; width: 100%; max-width: 100%; overflow-x: auto; border-collapse: collapse; font-size: var(--ef-fs-s); }
.ef-rechtstext :is(th, td),
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document) :is(th, td) { padding: 0.8rem 1.2rem 0.8rem 0; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid var(--ef-border); }
.ef-rechtstext th,
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document) th { font-family: var(--ef-font-mono); font-size: var(--ef-fs-xs); font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ef-text-dim); }
.ef-rechtstext details,
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document) details { padding: 0; border: 0; border-top: 1px solid var(--ef-border); background: none; }
.ef-rechtstext summary,
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document) summary { display: flex; align-items: center; min-height: 4.4rem; padding: 0.8rem 0; cursor: pointer; list-style: none; font-weight: 600; color: var(--ef-text); background: none; }
.ef-rechtstext summary::-webkit-details-marker { display: none; }
.ef-rechtstext :is(input, select, textarea, button) { font: inherit; }
.ef-rechtstext :is(:is(.einwilligung-document,#einwilligung-document), :is(.einwilligung-cookies-overview,#einwilligung-cookies-overview)) .einwilligung-dropdown { margin: var(--ef-space-s) 0 0; padding: 0; background: var(--ef-surface); border: 1px solid var(--ef-border); }
.ef-rechtstext :is(:is(.einwilligung-document,#einwilligung-document), :is(.einwilligung-cookies-overview,#einwilligung-cookies-overview)) .einwilligung-dropdown > summary { display: block; min-height: 4.4rem; margin: 0; padding: 1.2rem 1.6rem; background: none; cursor: pointer; list-style: none; }
.ef-rechtstext :is(:is(.einwilligung-document,#einwilligung-document), :is(.einwilligung-cookies-overview,#einwilligung-cookies-overview)) .einwilligung-dropdown > summary:focus-visible { outline: 2px solid var(--ef-accent); outline-offset: 2px; }
.ef-rechtstext :is(:is(.einwilligung-document,#einwilligung-document), :is(.einwilligung-cookies-overview,#einwilligung-cookies-overview)) .einwilligung-dropdown > summary > div { align-items: center; column-gap: 1.2rem; }
.ef-rechtstext :is(:is(.einwilligung-document,#einwilligung-document), :is(.einwilligung-cookies-overview,#einwilligung-cookies-overview)) .einwilligung-dropdown > summary > div::after { content: ""; justify-self: end; width: 0.9rem; height: 0.9rem; margin: 0 0.6rem 0.4rem; background: none; border-right: 2px solid var(--ef-accent); border-bottom: 2px solid var(--ef-accent); transform: rotate(45deg); transition: none; }
.ef-rechtstext :is(:is(.einwilligung-document,#einwilligung-document), :is(.einwilligung-cookies-overview,#einwilligung-cookies-overview)) .einwilligung-dropdown[open] > summary > div::after { margin: 0.4rem 0.6rem 0; transform: rotate(-135deg); }
.ef-rechtstext :is(:is(.einwilligung-document,#einwilligung-document), :is(.einwilligung-cookies-overview,#einwilligung-cookies-overview)) .einwilligung-dropdown > summary h3 { margin: 0; padding: 0; border: 0; font-size: var(--ef-fs-l); line-height: 1.3; color: var(--ef-text); }
.ef-rechtstext :is(:is(.einwilligung-document,#einwilligung-document), :is(.einwilligung-cookies-overview,#einwilligung-cookies-overview)) .einwilligung-dropdown :is(p, ul, h4) { padding-left: 0; padding-right: 0; font-size: inherit; }
.ef-rechtstext :is(.einwilligung-document,#einwilligung-document) :is(p, li, td, th, dd, dt) { font-size: inherit; }
.ef-rechtstext :is(h2, h3, h4)[id] { scroll-margin-top: 10rem; }
@media (max-width: 599px) {
.ef-rechtstext :is(:is(.einwilligung-document,#einwilligung-document), :is(.einwilligung-cookies-overview,#einwilligung-cookies-overview)) .einwilligung-dropdown > summary { padding: 1.2rem; }
}
@media (max-width: 47.99em) {
.ef-rechtstext :is(h2, h3, h4) { -webkit-hyphens: auto; hyphens: auto; }
}
@media(max-width:599px) {
.ef-legal-body .ef-rechtstext :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown > summary > div { display:grid;grid-template-columns:minmax(0,1fr) 2rem 1.2rem;grid-template-areas:"service control chevron" "category category category";gap:var(--ef-space-xs) var(--ef-space-s); }
.ef-legal-body .ef-rechtstext :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown > summary h3 { grid-area:service;hyphens:none;overflow-wrap:normal; }
.ef-legal-body .ef-rechtstext :is(.einwilligung-document,#einwilligung-document) .einwilligung-dropdown > summary > div::after { grid-area:chevron;justify-self:center;margin-inline:0; }
}
.ef-legal-column>.ef-rechtstext { grid-area: text; width: 100%; max-width: none; min-width: 0; }
.ef-legal-body .ef-rechtstext :is(h2,h3,h4)[id] { scroll-margin-top: calc(var(--ef-header-h) + var(--ef-space-xl)); }

:where(:root[data-theme="light"]) .ef-rechtstext a:hover,
:where(:root[data-theme="light"]) .ef-rechtstext a:focus-visible,
:where(:root[data-theme="light"]) .ef-rechtstext :is(.einwilligung-document,#einwilligung-document) a:hover { color: var(--ef-text); }
:where(:root[data-theme="light"]) .ef-rechtstext li::marker { color: var(--ef-gold-ikon); }

/* Static semantic list; the small optional module only tracks the current chapter. */
.ef-legal-toc .ef-legal-static-toc a[aria-current="location"] {
  color: var(--ef-text); font-weight: 500; border-left-color: var(--ef-accent);
}
html:root[data-theme="light"] .ef-legal-toc .ef-legal-static-toc a[aria-current="location"] {
  border-left-color: var(--ef-gold);
}


/* 96-fehlerseite.css */
.ef-fehlerseite{width:min(108rem,calc(100% - 4.8rem));margin:0 auto;padding:8rem 0 12rem;min-height:55vh}
.ef-fehlerseite h1{margin-bottom:2.4rem;color:var(--ef-text)}
.ef-fehlerseite p{margin:0 0 1.6rem;color:var(--ef-text-muted)}
.ef-fehlerseite a{color:var(--ef-accent);text-decoration:underline;text-underline-offset:.2em}

/* 97-einwilligung.css */
.ef-cookie-dialog{box-sizing:border-box;width:min(52rem,calc(100% - 3.2rem));max-height:calc(100dvh - 3.2rem);overflow:auto;margin:auto;padding:2.4rem;border:1px solid var(--ef-border-strong);border-radius:0;background:var(--ef-surface);color:var(--ef-text);font:1.5rem/1.15 var(--ef-font-sans,Inter,sans-serif)}
.ef-cookie-dialog::backdrop{background:rgb(0 0 0 / .4)}
.ef-cookie-dialog h2{margin:0 0 1.6rem;font-size:2rem;line-height:1.15}
.ef-cookie-dialog p{margin:0 0 2rem;color:var(--ef-text-muted);line-height:1.15}
.ef-cookie-dialog__aktionen{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.ef-cookie-dialog button{min-height:4.4rem;padding:1.2rem;border:1px solid var(--ef-border-strong);border-radius:0;background:var(--ef-surface);color:var(--ef-text);font:inherit;cursor:pointer}
.ef-cookie-dialog button:hover{border-color:var(--ef-accent)}
.ef-cookie-dialog :is(button,a):focus-visible{outline:2px solid var(--ef-accent);outline-offset:3px}
.ef-cookie-dialog .ef-cookie-dialog__links{display:flex;flex-wrap:wrap;gap:1.6rem;margin:2rem 0 0;font-size:1.4rem}
.ef-cookie-dialog a{color:var(--ef-accent);text-decoration:underline}
@media(max-width:380px){.ef-cookie-dialog{padding:1.6rem}.ef-cookie-dialog__aktionen{grid-template-columns:1fr}}

/* 98-bestandsabgleich.css */
/* Der ausgelagerte Entscheidercode ist kein DOM-Geschwister mehr.
   Der Hinweis behält deshalb ausdrücklich seine bisherige Abschnittstypografie. */
#entscheider .ef-aktionsband__hinweis.ef-abstand-oben-klein {
  font-size: var(--ef-fs-s);
  line-height: var(--ef-lh-body);
  max-width: var(--ef-breite-text);
}

/* 99-interaktionen.css */
/* Verhaltensregeln: EFD-Tokens und bestehende Bausteingestaltung bleiben maßgeblich. */
:root[data-theme="light"] { color-scheme: light; }
:root[data-theme="dark"] { color-scheme: dark; }

.ef-kopfzeile__navigation [hidden],
.ef-klappliste__antwort[hidden],
.ef-nach-oben[hidden],
[data-ef-nach-oben][hidden] { display: none !important; }

.ef-kopfzeile__navigation .mobilmenue-schalter { display: none; }
.ef-kopfzeile__navigation .mobilmenue-huelle,
.ef-kopfzeile__navigation .mobilmenue-hintergrund { display: none; }

.ef-interaktionen-bereit .mit-megamenue.ist-offen > .megamenue:not([hidden]) {
  display: block !important;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.ef-interaktionen-bereit .ef-kopfzeile__navigation .ist-offen > .untermenue:not([hidden]) {
  display: block !important;
  visibility: visible;
  opacity: 1;
  height: auto;
}

.ef-klappliste__eintrag.ist-offen > .ef-klappliste__antwort {
  display: block;
  height: auto;
  visibility: visible;
}

.ef-kopfzeile__navigation button,
.ef-kopfzeile__modus,
.ef-klappliste__frage,
.ef-nach-oben,
.ef-lichtbox__schliessen { cursor: pointer; }

.ef-kopfzeile__navigation :is(button, a):focus-visible,
.ef-kopfzeile__modus:focus-visible,
.ef-klappliste__frage:focus-visible,
.ef-nach-oben:focus-visible,
.ef-lichtbox__schliessen:focus-visible {
  outline: 2px solid var(--ef-accent, #7d5d00);
  outline-offset: 3px;
  border-radius: 0;
}

.ef-nach-oben {
  position: fixed;
  inset-inline-end: 2rem;
  inset-block-end: max(2rem, env(safe-area-inset-bottom));
  z-index: 90;
  min-width: 4.4rem;
  min-height: 4.4rem;
  border: 1px solid var(--ef-border-strong, #8a8a8a);
  border-radius: 0;
  background: var(--ef-surface, #fff);
  color: var(--ef-text, #1a1a1a);
}

.ef-lichtbox {
  box-sizing: border-box;
  width: fit-content;
  max-width: calc(100% - 3.2rem);
  max-height: calc(100dvh - 3.2rem);
  margin: auto;
  padding: 1.6rem;
  border: 1px solid var(--ef-border-strong, #8a8a8a);
  border-radius: 0;
  background: var(--ef-surface, #fff);
  color: var(--ef-text, #1a1a1a);
  overflow: auto;
}

.ef-lichtbox::backdrop { background: rgb(0 0 0 / 0.78); }
.ef-lichtbox[open] { display: grid; gap: 1.2rem; }
.ef-lichtbox__schliessen {
  justify-self: end;
  min-height: 4.4rem;
  padding: 0.8rem 1.2rem;
  border: 1px solid currentColor;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
}
.ef-lichtbox__bild {
  display: block;
  max-width: 100%;
  max-height: calc(100dvh - 19rem);
  width: auto;
  height: auto;
  margin-inline: auto;
  object-fit: contain;
}
.ef-lichtbox__titel { max-width: 70ch; margin: 0; color: var(--ef-text-muted, #3d3d3d); }

@media (max-width: 991px) {
  .ef-kopfzeile__navigation .hauptmenue-huelle { display: none; }
  .ef-kopfzeile__navigation .mobilmenue-huelle { display: block; }
  .ef-interaktionen-bereit .ef-kopfzeile__navigation .mobilmenue-schalter { display: block; }
  .ef-kopfzeile__navigation.mobilmenue-offen .mobilmenue-huelle {
    display: block;
    visibility: visible;
    opacity: 1;
    transform: none;
    position: fixed;
    inset: var(--ef-header-h, 7rem) 0 0;
    z-index: 110;
    overflow: auto;
    overscroll-behavior: contain;
    padding-block-end: max(3.2rem, env(safe-area-inset-bottom));
  }
  .ef-kopfzeile__navigation.mobilmenue-offen .mobilmenue-hintergrund {
    display: block;
    position: fixed;
    inset: var(--ef-header-h, 7rem) 0 0;
    z-index: 109;
  }
  .ef-kopfzeile__navigation .mobilmenue-schalter { position: relative; z-index: 111; }
  .ef-kopfzeile__navigation .mobilmenue .megamenue { position: static; width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .ef-kopfzeile__navigation *,
  .ef-kopfzeile__modus,
  .ef-klappliste__frage,
  .ef-klappliste__frage::before,
  .ef-klappliste__frage::after,
  .ef-lichtbox { animation: none !important; transition: none !important; }
}

