/* Layout „Bühne“ – Foto über die ganze Breite, Inhalte darüber. */
.hero-buehne { position: relative; isolation: isolate; display: flex; min-height: min(92vh, 56rem); background: var(--accent-strong); color: #fff; }
.stage-media { position: absolute; inset: 0; z-index: -2; }
.stage-media img { width: 100%; height: 100%; object-fit: cover; }
/* Abdunklung: oben für die Kopfzeile, unten links für den Text – lesbar auch bei hellen Fotos */
.hero-buehne.has-image::before { content: ""; position: absolute; inset: 0; z-index: -1; background:
  linear-gradient(180deg, rgba(8, 18, 22, .62) 0%, rgba(8, 18, 22, .1) 24%, rgba(8, 18, 22, 0) 40%),
  linear-gradient(0deg, rgba(8, 18, 22, .9) 0%, rgba(8, 18, 22, .7) 32%, rgba(8, 18, 22, .25) 62%, rgba(8, 18, 22, .05) 100%),
  linear-gradient(90deg, rgba(8, 18, 22, .55) 0%, rgba(8, 18, 22, 0) 62%); }
.stage-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 2rem 3rem; padding-top: 9rem; padding-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.stage-text .hero-title, .stage-text .hero-lead { color: #fff; }
.stage-text .hero-lead { color: rgba(255, 255, 255, .92); }
.stage-text .hero-title { font-size: clamp(2.7rem, 1.3rem + 5vw, 5.2rem); max-width: 14ch; }
.stage-text .btn:not(.is-primary) { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.65); color: #fff; }
.stage-text .btn:not(.is-primary) .icon { color: #fff; }
.stage-text .btn:not(.is-primary):hover { background: rgba(255,255,255,.2); }
.stage-text .btn.is-primary { background: #fff; border-color: #fff; color: var(--accent-strong); }
.stage-text :focus-visible { outline-color: #fff; }
.stage-card { background: rgba(255, 255, 255, .95); color: var(--ink); border-radius: var(--r-lg); padding: 1.35rem 1.5rem; min-width: 16rem; max-width: 22rem; box-shadow: var(--shadow-float); }
.stage-address { display: flex; gap: .5rem; align-items: flex-start; margin: 1rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line); font-size: .93rem; color: var(--muted); }
.stage-address .icon { color: var(--accent); margin-top: .1rem; }
@media (max-width: 52rem) {
  .hero-buehne { min-height: 0; }
  .stage-inner { grid-template-columns: minmax(0, 1fr); padding-top: 11rem; }
  .stage-card { max-width: none; }
}
