/* Light closing: white + translucent brand mint, exact Germany geography. */
.home-footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  color: var(--fc-green-950);
  background: var(--fc-white);
}
.home-footer::before {
  content: "";
  position: absolute;
  pointer-events: none;
  inset: 0;
  z-index: -1;
  background: radial-gradient(ellipse at 76% 42%, rgba(95,255,167,.14), transparent 60%), linear-gradient(135deg, rgba(95,255,167,.025), rgba(42,121,85,.055));
}
.home-footer__layout { display: grid; grid-template-columns: 1fr 1.04fr; gap: 32px; align-items: center; padding-block: 66px 48px; }
.home-footer__copy { position: relative; z-index: 1; padding-block: 48px; }
.home-footer .home-footer__eyebrow { color: var(--fc-green-600); margin-bottom: 30px; font-size: 11px; letter-spacing: .15em; }
.home-footer h2 { font-family: var(--v3-font-display); font-size: clamp(44px, 4.7vw, 72px); line-height: 1.02; letter-spacing: 0; font-weight: 500; color: var(--fc-green-950); hyphens: none; }
.home-footer h2 em { color: var(--fc-green-600); font-weight: 400; font-style: normal; } /* Teko hat keinen Kursivschnitt; der v4-Reset greift auf der Startseite nicht (09.09.2026) */
.home-footer__lead { max-width: 30em; margin-top: 26px; color: var(--fc-gray-dark); font-size: 17px; line-height: 1.7; }
.home-footer__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-top: 34px; }
.home-footer .home-footer__primary { background: var(--fc-green-800); color: var(--fc-white); border-color: var(--fc-green-800); gap: 28px; min-height: 56px; padding: 16px 24px; font-size: 14px; }
.home-footer .home-footer__primary:hover { background: var(--fc-green-950); border-color: var(--fc-green-950); }
.home-footer__duration { color: #6b706d; font-size: 12px; }
.home-footer__phone { display: inline-flex; align-items: center; min-height: 44px; margin-top: 34px; color: var(--fc-green-950); font-size: 22px; letter-spacing: -.02em; text-underline-offset: 6px; }
.home-footer__phone:hover { text-decoration: underline; }
.home-footer__hours { color: #6b706d; font-size: 12px; }
.home-footer__visual { position: relative; min-width: 0; margin: 0; }
.home-footer__stage { position: relative; width: 100%; aspect-ratio: 600 / 780; max-height: 640px; }
.home-footer__three { position: absolute; inset: 0; opacity: 0; transition: opacity 700ms ease; }
.home-footer__three canvas { width: 100%; height: 100%; display: block; }
.home-footer__stage .home-footer__map { height: 100%; transition: opacity 500ms ease; }
.home-footer[data-footer-renderer="three"] .home-footer__three { opacity: 1; }
.home-footer[data-footer-renderer="three"] .home-footer__map { opacity: 0; }
.home-footer__map { display: block; width: 100%; height: auto; max-height: 640px; overflow: visible; }
.home-footer__route { fill: none; stroke: var(--fc-green-600); stroke-width: 1.05; opacity: .52; }
.home-footer__traveller { fill: var(--fc-green-800); stroke: var(--fc-white); stroke-width: .75; }
.home-footer__arrival { fill: none; stroke: var(--fc-green-600); stroke-width: 1; }
.home-footer__damage { fill: var(--fc-green-600); opacity: .7; }
.home-footer__halo { fill: rgba(42,121,85,.075); }
.home-footer__node { fill: var(--fc-white); stroke: var(--fc-green-800); stroke-width: 1.3; }
.home-footer__core { fill: var(--fc-green-800); }
.home-footer__city { fill: var(--fc-green-800); font-size: 11px; letter-spacing: .03em; font-family: var(--fc-font-body); paint-order: stroke; stroke: var(--fc-white); stroke-width: 3px; stroke-linejoin: round; }
.home-footer__caption { display: flex; align-items: center; justify-content: center; gap: 24px; padding-top: 12px; color: var(--fc-gray-dark); font-size: 11px; }
.home-footer__legend { display: inline-flex; gap: 8px; align-items: center; }
.home-footer__key { display: inline-block; flex: none; }
.home-footer__key--damage { width: 3px; height: 3px; border-radius: 50%; background: var(--fc-green-600); }
.home-footer__key--expert { width: 6px; height: 6px; border-radius: 50%; background: var(--fc-green-800); box-shadow: 0 0 0 4px rgba(42,121,85,.1); }
.home-footer__key--match { width: 18px; height: 9px; border-top: 1px solid var(--fc-green-600); border-radius: 50%; }
.home-footer__map-meta { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0 16px; margin-top: 12px; font-size: 10px; color: #6b706d; }
.home-footer__map-meta a, .home-footer__motion { display: inline-flex; align-items: center; min-height: 44px; color: inherit; }
.home-footer__motion { border: 0; background: transparent; padding: 0; font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.home-footer__motion[hidden] { display: none; }
.home-footer a:focus-visible, .home-footer button:focus-visible { outline: 2px solid var(--fc-green-800); outline-offset: 5px; }
@media (max-width: 991px) {
  .home-footer__layout { gap: 20px; padding-block: 48px 30px; }
  .home-footer h2 { font-size: 48px; }
  .home-footer__lead { font-size: 15px; }
  .home-footer__caption { gap: 18px; }
}
@media (max-width: 767px) {
  .home-footer__layout { grid-template-columns: 1fr; gap: 18px; padding-block: 64px 24px; }
  .home-footer__copy { padding: 0; }
  .home-footer h2 { font-size: clamp(42px, 7.5vw, 56px); }
  .home-footer .home-footer__eyebrow { margin-bottom: 24px; }
  .home-footer__lead { max-width: 32em; }
  .home-footer__visual { width: min(100%, 430px); justify-self: center; }
  .home-footer__map { max-height: 500px; }
  .home-footer__stage { max-height: 500px; }
  .home-footer__phone { margin-top: 24px; }
}
@media (max-width: 479px) {
  .home-footer h2 { font-size: 42px; }
  .home-footer .home-footer__primary { width: 100%; justify-content: space-between; }
  .home-footer__actions { align-items: stretch; }
  .home-footer__duration { text-align: center; }
}

/* Active closing: a single contact block; the map is used only above. */
.home-footer--contact .home-footer__layout { grid-template-columns: 1fr; padding-block: 96px; }
.home-footer--contact .home-footer__copy { width: 100%; max-width: 800px; margin-inline: auto; padding: 0; text-align: center; }
.home-footer--contact .home-footer__lead { margin-inline: auto; }
.home-footer--contact .home-footer__actions { align-items: center; }
@media (max-width: 767px) {
  .home-footer--contact .home-footer__layout { padding-block: 64px; }
}

/* Ruhige Netzwerklandschaft hinter dem abschliessenden Kontaktaufruf. */
.home-footer__connectivity { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; pointer-events: none; }
.home-footer--contact::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 50% 40%, rgba(11,39,30,.96) 0%, rgba(11,39,30,.8) 29%, rgba(11,39,30,.12) 72%), linear-gradient(180deg, rgba(11,39,30,.25), transparent 70%, rgba(11,39,30,.35)); }
.home-footer__motion-toggle { position: absolute; right: var(--fc-edge); bottom: 20px; display: inline-flex; align-items: center; justify-content: center; color: var(--fc-on-dark-soft); background: transparent; border: 1px solid var(--fc-on-dark-line); border-radius: 50%; cursor: pointer; }
.home-footer__motion-toggle:hover { color: var(--fc-white); border-color: var(--fc-on-dark-soft); }
.home-footer__motion-toggle[hidden], .home-footer__play-icon { display: none; }
.home-footer__motion-toggle[aria-pressed="true"] .home-footer__pause-icon { display: none; }
.home-footer__motion-toggle[aria-pressed="true"] .home-footer__play-icon { display: block; }
@media (max-width: 767px) {
 .home-footer--contact::after { background: linear-gradient(180deg, rgba(11,39,30,.93), rgba(11,39,30,.8) 55%, rgba(11,39,30,.25)); }
}

/* Ruhige Filmflaeche hinter dem Statement direkt nach dem Hero. */
.home-ending { position: relative; isolation: isolate; overflow: clip; background: var(--fc-green-950); color: var(--fc-white); }
.home-ending__media { position: absolute; inset: 0; z-index: -2; pointer-events: none; }
.home-ending__media :is(img,video) { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.home-ending__video { opacity: 0; transition: opacity .6s ease; }
.home-ending.is-video-ready .home-ending__video { opacity: 1; }
.home-ending__media::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(11,39,30,.5), rgba(11,39,30,.62) 45%, rgba(11,39,30,.8)), radial-gradient(ellipse at 50% 25%, rgba(11,39,30,.22), transparent 65%); }
body.home-page .home-ending > .home-footer { background: transparent; }
.home-footer--contact::after { content: none; }
.home-ending__motion { position: absolute; right: var(--fc-edge); bottom: 18px; display: inline-flex; align-items: center; justify-content: center; color: var(--fc-white); background: rgba(11,39,30,.45); border: 1px solid var(--fc-on-dark-line); border-radius: 50%; cursor: pointer; }
.home-ending__motion:hover { background: var(--fc-green-950); border-color: var(--fc-on-dark-soft); }
.home-ending__motion:focus-visible { outline: 2px solid var(--fc-white); outline-offset: 4px; }
.home-ending__motion[hidden], .home-ending__motion[aria-pressed="true"] .home-footer__pause-icon { display: none; }
.home-ending__motion[aria-pressed="true"] .home-footer__play-icon { display: block; }
@media (prefers-reduced-motion: reduce) { .home-ending__video { transition: none; } }

.home-ending { --fc-on-dark-soft: rgba(255,255,255,.88); }

/* Graphit-Variante: dasselbe Motiv als leiser Abschluss, ohne neue Mediendatei. */
.home-ending--graphite .home-ending__media :is(img,video) { filter: grayscale(1); }
.home-ending--graphite .home-ending__media::after { background: linear-gradient(180deg, var(--fc-gray-dark), rgba(57,61,63,.8) 22%, rgba(57,61,63,.6) 60%, rgba(57,61,63,.72)); }
.home-ending--graphite .fc-container { position: relative; }
