/* Alles Sinne – Widgets. Layout durchgehend mit Flexbox. */

.as-block,.as-hero,.as-cta{ --as-akzent:#EB42D2; --as-leise:#6E645D; --as-innen:1180px;
  --as-fokus-x:50%; --as-fokus-y:30%; }

/* ---------- Grundgeruest ---------- */
.as-block{ box-sizing:border-box; }
.as-innen{ max-width:var(--as-innen); margin-inline:auto; padding-inline:24px; width:100%; }
.as-innen--schmal{ max-width:820px; }
.as-block--schmal .as-innen{ padding-block:0; }

.as-flex{ display:flex; flex-wrap:wrap; align-items:center; gap:40px; }
.as-flex--umgekehrt{ flex-direction:row-reverse; }
.as-flex--linie{ border-top:1px solid #E2D6CC; padding-top:28px; }
.as-spalte{ flex:1 1 320px; min-width:0; }
.as-spalte-text{ flex:0 1 50%; }
.as-bild{ flex:1 1 320px; }

/* ---------- Typografie ---------- */
.as-label{ font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--as-akzent); font-weight:600; margin:0 0 8px; }
.as-titel{ margin:0 0 12px; line-height:1.08; font-size:40px; }
.as-titel--klein{ font-size:.72em; }
.as-titel--hell{ color:#fff; }
.as-text{ font-size:16px; line-height:1.65; color:var(--as-leise); margin:0 0 .9em; }
.as-text--hell{ color:#F0EAE5; }
.as-text > p:last-child{ margin-bottom:0; }
.as-dreiklang{ font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--as-akzent); font-weight:600; margin:0 0 10px; }

/* ---------- Bilder ---------- */
.as-bild img{ display:block; width:100%; height:auto; object-fit:cover;
  object-position:var(--as-fokus-x,50%) var(--as-fokus-y,25%); }

/* ---------- Buttons ---------- */
.as-btn-zeile{ display:flex; margin-top:16px; }
.as-btn--left{ justify-content:flex-start; }
.as-btn--center{ justify-content:center; }

/* ---------- Hero ---------- */
.as-hero{ position:relative; display:flex; flex-direction:column; justify-content:flex-end;
  min-height:68vh; overflow:hidden; }
.as-hero > .as-hero-bg{ position:absolute; inset:0; width:100%; height:100%; max-width:none;
  object-fit:cover; object-position:var(--as-fokus-x,50%) var(--as-fokus-y,30%); }
.as-hero-schleier{ position:absolute; inset:0; opacity:.55;
  background:linear-gradient(100deg,#0F0A0C 0%,rgba(15,10,12,.65) 46%,rgba(15,10,12,.10) 84%); }
.as-hero-inhalt{ position:relative; z-index:1; max-width:var(--as-innen);
  margin-inline:auto; width:100%; padding:48px 24px; }
.as-hero .as-titel{ max-width:16ch; }
.as-hero .as-text{ max-width:38ch; }

/* Ganzes Bild, volle Breite – die Hoehe ergibt sich aus dem Bild, nichts wird beschnitten */
.as-hero-modus-natur .as-hero{ min-height:0 !important; display:block; }
.as-hero-modus-natur .as-hero > .as-hero-bg{ position:static; height:auto; width:100%; object-fit:fill;
  aspect-ratio:auto; }
.as-hero-modus-natur .as-hero-inhalt{ position:absolute; inset:auto 0 0 0; }
.as-hero-modus-natur .as-hero{ position:relative; }

/* Ganzes Bild einpassen – kein Beschnitt, dafuer moegliche Raender */
.as-hero-modus-contain .as-hero > .as-hero-bg{ object-fit:contain; background:#141110; }

/* Text unter dem Bild statt darauf */
.as-hero-text-unter .as-hero{ display:block; min-height:0 !important; }
.as-hero-text-unter .as-hero > .as-hero-bg{ position:static; width:100%; height:auto; object-fit:cover;
  aspect-ratio:16/9; }
.as-hero-text-unter .as-hero-schleier{ display:none; }
.as-hero-text-unter .as-hero-inhalt{ position:static; padding:26px 24px 8px; }
.as-hero-text-unter .as-titel--hell,
.as-hero-text-unter .as-text--hell{ color:var(--as-tinte,#141110); }
.as-hero-text-unter .as-label{ color:var(--as-akzent); opacity:1; }

/* ---------- Stimmen ---------- */
.as-stimmen{ display:flex; flex-wrap:wrap; gap:24px; margin-top:24px; }
.as-stimme{ flex:1 1 calc((100% - (var(--as-spalten) - 1) * 24px) / var(--as-spalten));
  min-width:230px; margin:0; border-top:2px solid var(--as-akzent); padding-top:14px; }
.as-stimme .as-text{ color:#3A332F; font-size:15px; }
.as-stimme blockquote{ margin:0; }
.as-stimme-name{ font-size:11.5px; letter-spacing:.15em; text-transform:uppercase;
  color:var(--as-akzent); margin-top:8px; }

/* ---------- Zeitstrahl ---------- */
.as-zs{ position:relative; display:flex; flex-direction:column; margin-top:20px; }
/* durchgehende Linie – laeuft vom ersten bis zum letzten Punkt, keine Segmente */
.as-zs::before{ content:""; position:absolute; top:12px; bottom:12px;
  left:calc(var(--as-jahr-breite,120px) + 20px); width:2px; background:#E2D6CC; }
.as-zs-eintrag{ display:flex; align-items:flex-start; gap:20px; position:relative; }
.as-zs-jahr{ flex:0 0 var(--as-jahr-breite,120px); width:var(--as-jahr-breite,120px);
  min-width:0; max-width:var(--as-jahr-breite,120px);
  text-align:right; color:var(--as-leise); font-size:1.5em; line-height:1.1; padding-top:2px;
  overflow-wrap:break-word; hyphens:auto; }
.as-zs-eintrag--wende .as-zs-jahr{ color:var(--as-akzent); }
.as-zs-linie{ flex:0 0 2px; align-self:stretch; position:relative; display:flex; justify-content:center; }
.as-zs-punkt{ position:absolute; top:10px; width:11px; height:11px; border-radius:50%;
  background:var(--as-punkt-grund,#FBF8F5); border:2px solid var(--as-akzent); z-index:1; }
.as-zs-eintrag--wende .as-zs-punkt{ width:17px; height:17px; border-width:3px; top:7px;
  box-shadow:0 0 0 5px rgba(235,66,210,.14); }
.as-zs-inhalt{ flex:1 1 auto; min-width:0; padding-bottom:30px; }
.as-zs-eintrag:last-child .as-zs-inhalt{ padding-bottom:0; }
.as-zs-inhalt .as-titel{ margin-bottom:4px; }
.as-zs-inhalt .as-text{ max-width:56ch; margin:0; }
.as-zs-eintrag--wende .as-zs-inhalt .as-titel{ color:var(--as-akzent); }

/* ---------- Termine ---------- */
.as-termine{ display:flex; flex-direction:column; gap:0; margin:18px 0 0; }
.as-termin-zeile{ display:flex; flex-wrap:wrap; gap:6px 24px;
  padding:12px 0; border-bottom:1px solid #E9E1D9; }
.as-termin-zeile dt{ flex:0 0 160px; font-weight:600; font-size:14px; }
.as-termin-zeile dd{ flex:1 1 260px; margin:0; }
.as-hinweis{ margin-top:14px; font-size:14.5px; }

/* ---------- CTA ---------- */
.as-cta{ position:relative; display:flex; flex-direction:column; justify-content:center;
  min-height:42vh; overflow:hidden; text-align:center; }
.as-cta > .as-cta-bg{ position:absolute; inset:0; width:100%; height:100%; max-width:none;
  object-fit:cover; object-position:var(--as-fokus-x,50%) var(--as-fokus-y,28%); }
.as-cta-schleier{ position:absolute; inset:0; background:#100B0A; opacity:.58; }
.as-cta-inhalt{ position:relative; z-index:1; max-width:760px; margin-inline:auto;
  width:100%; padding:56px 24px; }
.as-cta .as-text{ margin-inline:auto; }

/* ---------- Schmale Bildschirme ---------- */
@media (max-width:880px){
  .as-flex,.as-flex--umgekehrt{ flex-direction:column; align-items:stretch; gap:22px; }
  .as-spalte,.as-spalte-text,.as-bild{ flex:1 1 100%; }
}
@media (max-width:620px){
  .as-zs-eintrag{ gap:14px; }
  .as-zs-jahr{ flex-basis:74px; font-size:1.25em; }
  .as-zs::before{ left:calc(74px + 14px); }
  .as-termin-zeile dt{ flex-basis:100%; }
  .as-stimme{ flex-basis:100%; }
}

/* ---------- Karten-Reihe ---------- */
.as-karten{ display:flex; flex-wrap:wrap; gap:24px; margin-top:26px; align-items:stretch; }
.as-karte{ display:flex; flex-direction:column;
  flex:1 1 calc((100% - (var(--as-spalten) - 1) * 24px) / var(--as-spalten)); min-width:240px; }
.as-karten--rahmen .as-karte{ background:#fff; border:1px solid #E9E1D9; border-radius:12px;
  overflow:hidden; }
.as-karte img{ display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover;
  object-position:var(--as-fokus-x,50%) var(--as-fokus-y,25%); }
.as-karte-text{ padding:18px 20px 20px; display:flex; flex-direction:column; gap:6px; }
.as-karten--rahmen .as-karte-text{ padding:18px 20px 22px; }
.as-karten:not(.as-karten--rahmen) .as-karte-text{ padding:16px 0 0; }
.as-karte .as-text{ margin:0; }

/* ---------- Buttons kompakter ---------- */
.as-btn.elementor-button{ padding:11px 24px; font-size:14.5px; line-height:1.3; }
@media (max-width:620px){ .as-btn.elementor-button{ padding:10px 20px; font-size:14px; } }

/* Button in Karten sitzt am unteren Rand, damit die Karten gleich hoch wirken */
.as-karte-text{ flex:1 1 auto; }
.as-karte .as-btn-zeile{ margin-top:auto; padding-top:14px; }
