/* ╔══════════════════════════════════════════════════════════════════════╗
   ║ Gruppenhaus-OS 2.6.0 — Fachblöcke der Website                         ║
   ║                                                                      ║
   ║ Häuser, Angebote, Angebotsfinder (app/Cms/Fachbloecke.php). Nur die   ║
   ║ Variablen --cms-* des Aussehens (os-suite-cms), keine eigenen Farben. ║
   ║ Anfrageformular: Klassen cms-form* aus cms-site.css.                  ║
   ╚══════════════════════════════════════════════════════════════════════╝ */

/* ── Häuser ─────────────────────────────────────────────────────────── */
.cms-haeuser-grid { display: grid; gap: var(--cms-gap, 2rem); grid-template-columns: 1fr; }
@media (min-width: 640px) { .cms-haeuser-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) {
  .cms-haeuser--spalten-3 .cms-haeuser-grid { grid-template-columns: repeat(3, 1fr); }
  .cms-haeuser--spalten-4 .cms-haeuser-grid { grid-template-columns: repeat(4, 1fr); }
}
.cms-haus-card {
  display: flex; flex-direction: column;
  background: var(--cms-karte-bg, var(--cms-surface));
  border: 1px solid var(--cms-karte-rahmen, transparent);
  border-radius: var(--cms-radius-lg);
  overflow: hidden;
  box-shadow: var(--cms-karte-schatten, var(--cms-shadow-sm));
  transition: transform .25s, box-shadow .25s;
}
.cms-haus-card:hover { transform: translateY(-3px); box-shadow: var(--cms-karte-schatten-hover, var(--cms-shadow-md)); }
.cms-haus-card__bild { display: block; aspect-ratio: 4 / 3; background: var(--cms-bg-creme); position: relative; overflow: hidden; }
.cms-haus-card__bild img { width: 100%; height: 100%; object-fit: cover; }
.cms-haus-card__bild--leer::before {
  content: ''; position: absolute; inset: 0;
  background-image: linear-gradient(135deg, var(--cms-primary-soft), var(--cms-bg-sand));
}
.cms-haus-card__inhalt { padding: 1.5rem; flex: 1; display: flex; flex-direction: column; }
.cms-haus-card__titel {
  font-family: var(--cms-font-display); font-weight: var(--cms-weight-display, 600);
  font-size: 1.35rem; line-height: 1.2; margin: 0 0 .6rem;
}
.cms-haus-card__titel a { color: var(--cms-text); text-decoration: none; }
.cms-haus-card__titel a:hover { color: var(--cms-primary-text); }
.cms-haus-card__beschreibung { margin: 0 0 1rem; color: var(--cms-text-mute); font-size: .95rem; line-height: 1.55; flex: 1; }
.cms-haus-card__meta { font-size: .85rem; color: var(--cms-text-mute); letter-spacing: .02em; margin-bottom: 1rem; }
.cms-haus-card .cms-btn { align-self: flex-start; }

/* ── Angebote ───────────────────────────────────────────────────────── */
.cms-angebote__filter { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-bottom: 1.5rem; }
.cms-angebote__filter-btn {
  border: 1px solid var(--cms-border); background: transparent; color: var(--cms-text);
  border-radius: var(--cms-pill, 999px); padding: .4rem .95rem; font-size: .875rem;
  transition: background .15s, color .15s, border-color .15s;
}
.cms-angebote__filter-btn:hover,
.cms-angebote__filter-btn[aria-pressed="true"] { background: var(--cms-primary); border-color: var(--cms-primary); color: var(--cms-on-primary); }
.cms-angebote__filter-btn:focus-visible { outline: 2px solid var(--cms-focus); outline-offset: 2px; }
.cms-angebote-grid { display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .cms-angebote-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) {
  .cms-angebote-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .cms-angebote-grid--4 { grid-template-columns: repeat(4, 1fr); }
}
.cms-angebote__leer {
  text-align: center; padding: 3rem 1rem; color: var(--cms-text-mute);
  border: 1px dashed var(--cms-border); border-radius: var(--cms-radius-lg);
}
.cms-angebot-karte {
  display: block; color: inherit; text-decoration: none; overflow: hidden;
  background: var(--cms-karte-bg, var(--cms-surface));
  border: 1px solid var(--cms-border);
  border-radius: var(--cms-radius-lg);
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
.cms-angebot-karte:hover { transform: translateY(-3px); box-shadow: var(--cms-shadow-md); border-color: var(--cms-primary); color: inherit; }
.cms-angebot-karte[hidden] { display: none; }
.cms-angebot-karte__bild { aspect-ratio: 16 / 10; background: var(--cms-bg-creme); overflow: hidden; }
.cms-angebot-karte__bild img { width: 100%; height: 100%; object-fit: cover; }
.cms-angebot-karte__korpus { padding: 1.1rem 1.25rem 1.4rem; }
.cms-angebot-karte__kategorie {
  font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--cms-primary-text); margin-bottom: .35rem;
}
.cms-angebot-karte__titel { font-family: var(--cms-font-display); font-size: 1.15rem; font-weight: 600; line-height: 1.25; margin: 0 0 .4rem; }
.cms-angebot-karte__teaser {
  margin: 0 0 .8rem; font-size: .92rem; line-height: 1.45; color: var(--cms-text-mute);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.cms-angebot-karte__meta {
  display: flex; flex-wrap: wrap; gap: .35rem .75rem; font-size: .8rem; color: var(--cms-text-mute);
  border-top: 1px dashed var(--cms-border); padding-top: .6rem;
}

/* ── Angebotsfinder ─────────────────────────────────────────────────── */
.cms-block--angebotsfinder { background: var(--cms-bg-creme); }
.cms-angebotsfinder__layout { display: grid; grid-template-columns: 1fr; gap: 1.5rem; align-items: start; }
@media (min-width: 880px) { .cms-angebotsfinder__layout { grid-template-columns: 1.1fr 1fr; gap: 3rem; } }
.cms-angebotsfinder__kopf .cms-block__header { text-align: left; margin: 0; }
.cms-angebotsfinder__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
.cms-angebotsfinder__row {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: 1rem 1.4rem; text-decoration: none; color: var(--cms-text);
  background: var(--cms-surface); border: 1px solid var(--cms-border); border-radius: var(--cms-radius);
  transition: border-color .15s, transform .15s;
}
a.cms-angebotsfinder__row:hover { border-color: var(--cms-primary); transform: translateY(-1px); color: var(--cms-text); }
.cms-angebotsfinder__label { font-weight: 600; font-size: 1.02rem; }
.cms-angebotsfinder__nr {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 1.8rem; height: 1.8rem; padding: 0 .5rem; border-radius: var(--cms-radius-sm);
  background: var(--cms-secondary); color: var(--cms-on-secondary);
  font-size: .82rem; font-weight: 700; letter-spacing: .03em;
}

/* ── Anfrageformular ────────────────────────────────────────────────── */
.cms-block--anfrage .cms-lead { margin-bottom: 1.5rem; }
.cms-form.is-gesendet > :not(.cms-form__feedback) { display: none; }
