

.plansatz.aktiv {
  position: relative;
  
  z-index: 2;
  --plan-akzent: #14663A; 
}
.plansatz.aktiv .plan-buehne {
  position: sticky;
  top: 0;
  height: 100vh; 
  
  overflow: clip;
  pointer-events: none;
}
.plansatz.aktiv.gedeckt .plan-buehne { background: #E7E2D7; } 
.plansatz.aktiv .plan-buehne > .teil {
  position: absolute;
  inset: 0 0 auto 0;
  min-height: 100%;
  
  border-top: 0;
  transform-origin: 0 0;
  clip-path: inset(50%);
  will-change: transform, clip-path;
}
.plansatz.aktiv .plan-buehne > .teil.dran { pointer-events: auto; }



.plan-halt { position: absolute; left: 0; width: 1px; height: 1px; scroll-margin-top: calc(-1 * var(--kopf-h, 4rem)); pointer-events: none; }


.plan-rahmen { position: absolute; inset: 0; z-index: 9; pointer-events: none; }
.plan-rahmen i {
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 2px;
  background: var(--plan-akzent);
  transform-origin: 0 0;
  transform: scale(0);
}
.plan-rahmen i:nth-child(even) { width: 2px; height: 1px; }
.plan-rahmen b {
  position: absolute; left: 0; top: 0; width: 1px; height: 1px;
  background: #E7E2D7; 
  transform-origin: 0 0; transform: scale(0);
}


html .plansatz.aktiv .teil .zerlegt .w {
  display: inline-block; overflow: clip; overflow-clip-margin: .14em; vertical-align: top;
}

html .plansatz.aktiv .teil .zerlegt .w > span {
  display: inline-block;
  animation: none;
  translate: 0 calc(110% * (1 - clamp(0, var(--w, 99) - var(--i), 1)));
}
.plansatz.aktiv .blatt-zeile {
  animation: none;
  clip-path: inset(0 calc(100% * (1 - var(--d, 1))) 0 0);
}

.plansatz.aktiv .zeichnung [data-zeichnet] { animation: none; stroke-dasharray: none; }


html.js[data-lesart="job"] .plansatz { display: none; }


.plansatz.aktiv .plan-buehne > .plan-karte {
  height: 100%;
  min-height: 0;
  align-content: start;
}
.plan-karte::after { content: none; }
.plan-karte .zeichnung-hinweis { display: none; }
.plan-karte .zeichnung-blatt { position: static; border: 0; background: none; display: block; max-width: none; }
.plan-karte .zeichnung-flaeche {
  position: absolute;
  left: 0;
  top: 0;
  border: 0;
  overflow: visible;
  transform-origin: 0 0;
}
.plan-karte .zeichnung-blatt svg { min-width: 0; }

.karte-feld {
  position: relative;
  z-index: 1; 
  justify-self: start;
  width: fit-content;
  max-width: min(26rem, 100%); 
  display: grid;
  gap: .5rem;
  padding: 1rem 1.25rem 1.1rem;
  border: 1px solid var(--hell);
  background: var(--ink);
  clip-path: inset(0 calc(100% * (1 - var(--z, 1))) 0 0);
}
.karte-feld > * { margin: 0; }

@media (max-width: 860px) {
  .karte-feld { padding: .7rem .9rem .8rem; }
  .karte-feld > .t-text {
    position: absolute; width: 1px; height: 1px; margin: -1px;
    padding: 0; overflow: hidden; clip-path: inset(50%);
  }
}

.karte-grad { transition: opacity .2s var(--hin-her); }
.plan-karte.im-zahnrad .karte-grad { opacity: 0; }

.karte-route line { stroke: var(--plan-akzent); stroke-width: 1.8; }
.karte-kopf { fill: var(--plan-akzent); opacity: 0; }


.plansatz.aktiv .plan-buehne > .plan-haus {
  display: block;
  height: 100%;
  min-height: 0;
  padding: 0;
}

.teil[hidden] { display: none; }

.teil.plan-haus::after, .plan-haus > .teil::after { content: none; }
.plan-haus > canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.plan-haus > .teil {
  position: absolute;
  inset: 0;
  background: none;
  border-top: 0;
  align-content: start;
  pointer-events: none;
}

.plan-haus > .teil > :is(h2, .t-text) {
  justify-self: start;
  width: fit-content;
  background: var(--ink);
  padding: .1em .45em .15em 0;
  margin-left: 0;
}

.plan-haus > .teil > :is(h2, .t-text) {
  position: relative;
  z-index: 1; 
  clip-path: inset(0 calc(100% * (1 - var(--z, 1))) 0 0);
}
.plan-haus > .teil > .t-text { padding: .5em .8em .6em 0; }

.plan-haus > .teil { row-gap: 0; }
.plan-haus > .teil > :is(h2, .t-text) {
  box-sizing: border-box;
  width: min(34rem, 100%);
  max-width: none;
  margin-block: 0;
  padding-inline: 16px;
  border: 1px solid var(--linie);
}
.plan-haus > .teil > h2 { align-self: stretch; border-bottom: 0; padding-top: 12px; }
.plan-haus > .teil > .t-text { border-top: 0; }
.plan-haus > .teil > .netz-art { margin-top: 16px; }
.plan-haus > .teil > .blatt-nr { clip-path: inset(0 0 calc(100% * (1 - var(--z, 1))) 0); }
.plan-haus .zeichnung-hinweis { display: none; }


.plan-haus .zeichnung-blatt { position: static; border: 0; background: none; display: block; }
.plan-haus .zeichnung-flaeche {
  position: absolute;
  left: 0;
  top: 0;
  border: 0;
  overflow: visible;
  transform-origin: 0 0;
}
.plan-haus .zeichnung-blatt svg { min-width: 0; }
.plan-haus:not(.flach) .zeichnung-flaeche { opacity: 0; }


.plan-haus :is(figcaption, .schrank-blatt) {
  position: absolute; width: 1px; height: 1px; margin: -1px;
  padding: 0; border: 0; overflow: hidden; clip-path: inset(50%);
}
.plan-haus .typenschild { display: block; }


.netz.ohne-punkte :is(.netz-art, .netz-punkte) { display: none; }
.netz :is(.netz-art, .netz-knopf) { pointer-events: auto; }
.netz-art {
  display: flex;
  width: fit-content;
  border: 1px solid var(--hell);
  background: var(--ink);
  clip-path: inset(0 calc(100% * (1 - var(--z, 1))) 0 0);
}
.netz-wahl {
  font: inherit;
  font-size: var(--s1, .85rem);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--hell);
  background: var(--ink);
  border: 0;
  padding: .7em 1.1em;
  min-height: 44px;
  cursor: pointer;
  transition: transform .2s var(--expo);
}
.netz-wahl + .netz-wahl { border-left: 1px solid var(--hell); }
.netz-wahl:hover,
.netz-wahl:focus-visible { background: var(--metall); }
.netz-wahl:focus-visible { outline: 2px solid var(--volt); outline-offset: -4px; }
.netz-wahl:active { transform: translateY(1px); }
.netz-wahl[aria-pressed="true"] { background: var(--hell); color: var(--ink); }
.netz-wahl[aria-pressed="true"]:is(:hover, :focus-visible) { background: var(--volt); }

.netz-punkte { position: absolute; inset: 0; grid-column: auto; }
.netz-knopf {
  position: absolute;
  left: 0;
  top: 0;
  display: grid;
  justify-items: start;
  gap: .2em;
  font: inherit;
  text-align: left;
  color: var(--hell);
  background: none;
  border: 0;
  padding: 0 0 0 18px;
  margin: -22px 0 0 -6px;   
  min-height: 44px;
  cursor: pointer;
  transition: opacity .3s var(--hin-her);
}

.netz-knopf::before {
  content: "";
  position: absolute;
  left: 0;
  top: 16px;
  width: 12px;
  height: 12px;
  border: 1.5px solid var(--hell);
  background: var(--ink);
  transition: transform .25s var(--expo);
}
.netz-name {
  margin-top: 13px;
  font-size: var(--s1, .85rem);
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  background: var(--ink);
  padding: .1em .4em;
}
.netz-zeile {
  max-width: 24ch;
  font-size: var(--s1, .85rem);
  color: var(--schild);
  background: var(--ink);
  padding: .2em .4em .3em;
  clip-path: inset(0 100% 0 0);
  transition: clip-path .5s var(--expo);
}
.netz-knopf:is(:hover, :focus-visible, [aria-expanded="true"]) .netz-zeile { clip-path: inset(0); }
.netz-knopf:is(:hover, :focus-visible, [aria-expanded="true"])::before { transform: scale(1.35); background: var(--volt); border-color: var(--volt); }
.netz-knopf:is(:hover, :focus-visible, [aria-expanded="true"]) .netz-name { background: var(--hell); color: var(--ink); }
.netz-knopf:focus-visible { outline: 2px solid var(--volt); outline-offset: 2px; }
.netz-knopf:active::before { transform: scale(.85); }
.netz-knopf.weg { opacity: 0; pointer-events: none; }
@media (max-width: 860px) { .netz-zeile { max-width: 18ch; } }
.netz-knopf.links { justify-items: end; text-align: right; padding: 0 18px 0 0; margin-left: 0; }
.netz-knopf.links::before { left: auto; right: 0; }
.netz-knopf.links .netz-zeile { clip-path: inset(0 0 0 100%); }
.netz-knopf.links:is(:hover, :focus-visible, [aria-expanded="true"]) .netz-zeile { clip-path: inset(0); }

@media (max-width: 860px) {
  .netz-art { position: absolute; left: var(--rand); bottom: max(24px, env(safe-area-inset-bottom)); }
}
