@charset "UTF-8";
/* Aufbau und Wartung verwenden das bestehende Gerät, Relief und Echt-Rendering. */
:root { --aufbau-seite: clamp(24px, 5.4vw, 112px); }
html { scroll-behavior: auto; }
.aufbau { position: relative; min-height: 100svh; background: #071b15; }
.aufbau-header { position: relative; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 36px var(--aufbau-seite); }
.aufbau-brand { display: inline-flex; flex: none; }
.aufbau-brand img { display: block; width: clamp(190px, 19vw, 270px); height: auto; }
.aufbau-status { display: inline-flex; align-items: center; gap: 10px; color: #c6d6c5; font-size: 10px; letter-spacing: .13em; white-space: nowrap; }
.aufbau-status i { width: 6px; height: 6px; background: #a8d17d; border-radius: 50%; box-shadow: 0 0 14px #a8d17d45; }
.aufbau-main { position: relative; min-height: max(625px, calc(100svh - 181px)); display: flex; align-items: center; padding: 52px var(--aufbau-seite) 90px; isolation: isolate; }
.aufbau-copy { position: relative; z-index: 3; width: min(550px, 48%); }
.aufbau-kicker { margin: 0 0 25px; display: flex; align-items: center; gap: 14px; color: #b4d885; font-size: 10px; letter-spacing: .15em; line-height: 1.6; }
.aufbau-kicker > span { display: block; width: 27px; height: 1px; background: currentColor; }
.aufbau-copy h1 { font-size: clamp(52px, 5.7vw, 87px); font-weight: 400; letter-spacing: -.06em; line-height: 1.035; margin: 0 0 27px; }
.aufbau-copy h1 em { display: inline; white-space: normal; }
.aufbau-lead { max-width: 385px; color: #c2cfc3; font-size: 15px; line-height: 1.85; margin: 0 0 30px; }
.aufbau-kontakt { max-width: 330px; }
.aufbau-kontakt summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 28px; min-height: 51px; padding: 15px 20px; border: 1px solid #b4d88565; background: #0c251b; font-size: 12px; transition: background .2s, border-color .2s; }
.aufbau-kontakt summary::-webkit-details-marker { display: none; }
.aufbau-kontakt summary:hover, .aufbau-kontakt[open] summary { background: #163924; border-color: #b4d885a0; }
.aufbau-kontakt summary .ico { color: #b4d885; font-size: 17px; }
.aufbau-kontakt[open] summary .ico { transform: rotate(90deg); }
.aufbau-kontakt summary:focus-visible { outline: 2px solid #b4d885; outline-offset: 5px; }
.aufbau-anschrift { padding: 4px 20px 12px; border: 1px solid #b4d88540; border-top: 0; background: #0c251bf5; font-size: 13px; line-height: 1.8; }
.aufbau-anschrift strong { font-weight: 400; color: #eff2e9; }
.aufbau-kontakthinweis { color: #a0b0a3; font-size: 11px; }
.aufbau-note { margin: 24px 0 0; color: #9bae9f; font-size: 10px; letter-spacing: .025em; line-height: 1.7; }
.aufbau-szene.bohrung { position: absolute; inset: -110px 0 0; height: auto; z-index: -1; pointer-events: none; }
.aufbau-szene .stage { position: absolute; inset: 0; height: 100%; min-height: 0; }
.aufbau-szene::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, #071b15 0%, #071b15f5 21%, #071b15cc 34%, #071b1520 57%, transparent 76%), linear-gradient(0deg, #071b15 0%, transparent 22%); }
.aufbau-szene .viewer { display: none; }
.aufbau-szene-label { position: absolute; right: var(--aufbau-seite); bottom: 32px; left: 57%; display: flex; justify-content: space-between; gap: 20px; font-size: 8px; letter-spacing: .12em; color: #9ab69a; padding-top: 13px; border-top: 1px solid #b4d88530; }
.aufbau-footer { position: relative; z-index: 4; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 18px; margin: 0 var(--aufbau-seite); padding: 22px 0 25px; border-top: 1px solid #b4d88526; color: #a5b7a8; font-size: 10px; }
.aufbau-footer p { margin: 0; display: flex; gap: 8px; flex-wrap: wrap; }
.aufbau-footer span { width: auto; order: 0; }
.aufbau-zurueck { display: inline-flex; align-items: center; gap: 28px; border: 1px solid #b4d88565; padding: 16px 20px; background: #0c251b; font-size: 13px; }
.aufbau-zurueck:hover { background: #163924; }
.aufbau-fehler .aufbau-main { min-height: calc(100svh - 190px); }
.aufbau-fehler .aufbau-copy { width: min(620px, 100%); }
.aufbau-ort { margin-left: 24px; color: #9bac9f; }
.aufbau-footer nav { display: flex; gap: 25px; }
.aufbau-footer a { padding: 8px 0; }
.aufbau-footer a:hover { color: #eff2e9; }
.aufbau-skip { position: absolute; top: 12px; left: var(--aufbau-seite); transform: translateY(-200%); z-index: 10; padding: 12px; background: #edf0e5; color: #183927; font-size: 13px; }
.aufbau-skip:focus { transform: none; }
@media (min-width: 1700px) { .aufbau-copy { width: 600px; } }
@media (max-width: 1000px) {
  .aufbau-header { padding-block: 28px; }
  .aufbau-copy { width: 49%; }
  .aufbau-copy h1 { font-size: clamp(49px, 6.4vw, 65px); }
  .aufbau-szene-label { left: 55%; font-size: 7px; }
}
@media (max-width: 900px) {
  .aufbau-header { padding-block: 25px; }
  .aufbau-main { min-height: 1050px; padding-top: 32px; padding-bottom: 510px; align-items: start; }
  .aufbau-copy { width: min(540px, 100%); }
  .aufbau-copy h1 { font-size: clamp(46px, 8.8vw, 73px); max-width: 610px; }
  .aufbau-lead { max-width: 410px; font-size: 14px; margin-bottom: 22px; }
  .aufbau-kicker { margin-bottom: 20px; font-size: 9px; }
  .aufbau-szene.bohrung { inset: 0; }
  .aufbau-szene::after { background: linear-gradient(180deg, #071b15 0%, #071b15f5 18%, #071b15b8 35%, transparent 62%, #071b15 100%); }
  .aufbau-szene-label { left: var(--aufbau-seite); bottom: 20px; font-size: 8px; }
  .aufbau-ort { margin-left: 14px; }
}
@media (max-width: 520px) {
  .aufbau-header { align-items: flex-start; flex-direction: column; gap: 23px; padding-top: 30px; padding-bottom: 16px; }
  .aufbau-brand img { width: 215px; }
  .aufbau-status { font-size: 8px; letter-spacing: .12em; }
  .aufbau-main { min-height: 930px; padding-top: 25px; padding-bottom: 465px; }
  .aufbau-copy h1 { font-size: clamp(43px, 11.4vw, 60px); margin-bottom: 20px; }
  .aufbau-lead { font-size: 13px; line-height: 1.85; max-width: 330px; }
  .aufbau-kicker { font-size: 8px; letter-spacing: .12em; margin-bottom: 18px; }
  .aufbau-kontakt { max-width: 285px; }
  .aufbau-note { font-size: 9px; margin-top: 18px; }
  .aufbau-footer { font-size: 9px; gap: 12px; padding-top: 18px; padding-bottom: 22px; }
  .aufbau-footer p { width: 100%; gap: 5px; }
  .aufbau-ort { margin-left: auto; }
  .aufbau-footer nav { gap: 24px; }
}
@media (prefers-reduced-motion: reduce) { .aufbau *, .aufbau *::before, .aufbau *::after { animation: none !important; transition: none !important; } }
