/* Gemeinsame Layout- und Motion-Absicherung für alle Seiten.
   Inhalte sind ohne Animation sichtbar; Bewegung ist eine Ergänzung. */
html{ width:100%; min-height:100%; background:var(--brand-navy); overflow-x:hidden; }
body{ width:100%; min-width:0; min-height:100%; background:var(--navy-deep); }
main{ min-width:0; background:var(--bg); }
@supports (overflow:clip){ html{ overflow-x:clip; } }
.wrap > *, .hero__raum > *, .panel > *, .dash > *, .form__row > *, .ft__top > *{ min-width:0; }
.konf__zusagen b, .konf__zusagen span{ min-width:0; overflow-wrap:anywhere; }
img, video, canvas{ max-width:100%; }
.hero{ min-height:min(94vh,940px); }
@supports (height:100svh){ .hero{ min-height:min(94svh,940px); } }
.core{ aspect-ratio:auto; }
.core::before{ content:""; display:block; padding-top:94.34%; }
.core__svg{ overflow:hidden; }
/* Erst ein erfolgreich gezeichnetes Canvas löst die SVG-Fassung ab. */
.core__leinwand{ display:block; opacity:0; pointer-events:none; }
.hat-core .core__leinwand{ opacity:1; }
.core__svg{ display:block; }
.hat-core .core__svg{ display:none; }
.hero__strich{ transform:scaleX(1); }
.steps__no{ color:var(--navy); }
.sec--dark .steps__no{ color:var(--brand-white); }
.dia__legende{ opacity:1; transform:none; }
/* Der Aufbau beginnt erst beim Eintreten. Ohne Observer bleiben die
   bereits gezeichneten Daten vollständig sichtbar. */
.dia:not(.motion-ready) .dia__seg{ transform:scaleY(1); }
.dia:not(.motion-ready) .dia__achse{ stroke-dashoffset:0; }
.dia:not(.motion-ready) .dia__yachse text,
.dia:not(.motion-ready) .dia__einheit,
.dia:not(.motion-ready) .dia__tag,
.dia:not(.motion-ready) .dia__wert{ opacity:1; }
.ortwahl{ max-height:296px; max-height:min(46vh,296px); }
@supports (height:100dvh){ .ortwahl{ max-height:min(46dvh,296px); } }
.dock{ translate:none; transform:translateY(-50%); }
.mob{ padding-bottom:calc(28px + env(safe-area-inset-bottom,0px)); -webkit-overflow-scrolling:touch; }
html.menu-open{ overflow:hidden; }
body.menu-open{ position:fixed; top:var(--menu-top,0px); left:0; right:0; overflow:hidden; }
@media (prefers-reduced-motion:no-preference){
  [data-rv].is-in{ animation:contentArrive .55s var(--ease) both; }
  .ln.is-in > span{ animation:contentArrive .55s var(--ease) both; }
  .frame.reveal.is-in img{ animation:imageArrive .7s var(--ease) both; }
}
@keyframes contentArrive{ from{ opacity:.65; transform:translateY(12px); } to{ opacity:1; transform:none; } }
@keyframes imageArrive{ from{ opacity:.8; } to{ opacity:1; } }
@media (max-width:760px){
  .hero__h1, .phero__h1, .h2{ overflow-wrap:break-word; }
  .btn{ white-space:normal; text-align:center; }
  .form input, .form select, .form textarea,
  .field input, .field select, .field textarea,
  .konf input, .konf select{ font-size:16px; }
  .phero__lead, .lead, .legal a{ overflow-wrap:anywhere; }
  .marks li, .feats span{ overflow-wrap:anywhere; hyphens:auto; -webkit-hyphens:auto; }
  .join, .career, .dia__kopf{ overflow-wrap:anywhere; }
  [data-speed]{ transform:none !important; will-change:auto !important; }
  .frame.reveal.is-in img{ animation:none; }
  .sec--dark::after{ overflow:hidden; }
}
@media (max-width:640px){
  .dock{ transform:none; translate:none; padding-bottom:env(safe-area-inset-bottom,0px); }
  body.has-dock .ft{ padding-bottom:calc(82px + env(safe-area-inset-bottom,0px)); }
  .ft{ background-color:var(--navy-deep); }
  .ft__top > .ft__col:last-child{ grid-column:1 / -1; }
  .mob nav{ padding-bottom:12px; }
  .dia__flaeche{ min-width:0; }
}
@media (prefers-reduced-motion:reduce){
  [data-rv], .ln > span, .frame img{ animation:none !important; transform:none !important; }
  .frame.reveal::after{ display:none; }
}
@media (max-width:380px){
  /* Das Logo darf zwischen den beiden 48-px-Bedienflächen schrumpfen. */
  .hd__brand{ flex:0 1 153px; min-width:0; }
  .hd__act{ flex:none; margin-left:auto; }
  .hd__logo, .hd.is-stuck .hd__logo{ width:100%; height:auto; max-width:153px; max-height:24px; object-fit:contain; transition:none; }
}
@media print{ .atlas__feld{ height:440px; } .atlas__knopf{ display:none; } }
