/*
Theme Name: ING Twenty Twenty-Five Child
Theme URI: https://im-neuen-garten.de/
Description: Schlankes Child Theme für Institut Im Neuen Garten auf Basis von Twenty Twenty-Five.
Author: Institut Im Neuen Garten
Template: twentytwentyfive
Version: 0.33.62
Text Domain: ing-tt5-child
*/

:root {
  --ing-bg: #f7f4ee;
  --ing-surface: #ffffff;
  --ing-text: var(--charcoal-olive);
  --ing-muted: #6f6a61;
  --ing-line: #ded8ce;
  --ing-accent: #687463;
  --ing-accent-dark: #4d5849;
  --ing-radius: 18px;
  --ing-shadow: 0 14px 40px rgba(45, 42, 36, .08);
}

/* Veranstaltungs-Lebenszyklus v0.32.0 ------------------------------- */
.ing-event-status-notice {
  width: min(1180px, calc(100% - 40px));
  margin: -14px auto 58px;
  padding: clamp(24px, 4vw, 38px);
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  border: 1px solid var(--ing-theme-primary, var(--light-orange));
  border-radius: var(--ing-radius);
  background: var(--pearl-bone);
  box-shadow: 0 12px 34px rgba(47, 51, 46, .05);
}

.ing-event-status-notice--cancelled {
  border-left: 7px solid var(--ing-theme-primary, var(--warm-terracotta));
}

.ing-event-status-notice h2 {
  margin: 4px 0 8px;
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  line-height: 1.08;
}

.ing-event-status-notice p:last-child {
  margin: 0;
}

.ing-event-status-notice > .ing-button {
  flex: 0 0 auto;
  white-space: nowrap;
}





.single-veranstaltung .ing-event-more-date strong{
  display: block;
  margin: 0 0 7px;
  color: var(--charcoal-olive);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.3;
}



.single-veranstaltung .ing-event-more-date__date,
.single-veranstaltung .ing-event-more-date__time {
  color: var(--charcoal-olive);
  font-family: var(--wp--preset--font-family--ing-sans, Montserrat, sans-serif);
  font-size: .98rem !important;
  font-weight: 400;
  line-height: 1.45 !important;
}

/* Profilaufruf am Dateiende bewusst als Button priorisieren. */
.single-veranstaltung .ing-event-person-card__link .ing-event-person-card__more {
  display: inline-flex;
  min-height: 42px;
  margin-top: 22px;
  padding: 9px 16px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 10px;
  background: var(--warm-terracotta);
  color: #fff;
  font-family: var(--wp--preset--font-family--ing-sans, Montserrat, sans-serif);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.15;
}

.single-veranstaltung .ing-event-person-card__link:hover .ing-event-person-card__more,
.single-veranstaltung .ing-event-person-card__link:focus-visible .ing-event-person-card__more {
  background: var(--earthy-clay);
  color: #fff;
}

/* Personen-Cards: Bildkante und Profil-Button v0.32.3 ----------------- */
.single-angebot .ing-offer-person-card__link > br:first-child,
.single-veranstaltung .ing-event-person-card__link > br:first-child {
  display: none !important;
}

.single-angebot .ing-offer-person-card__link > p:empty,
.single-veranstaltung .ing-event-person-card__link > p:empty {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

.single-angebot .ing-offer-person-card__image,
.single-veranstaltung .ing-event-person-card__image {
  margin-top: 0 !important;
}

.single-veranstaltung .ing-event-person-card__more {
  display: inline-flex;
  min-height: 42px;
  margin-top: 22px;
  padding: 9px 16px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 10px;
  background: var(--warm-terracotta);
  color: #fff;
  font-family: var(--wp--preset--font-family--ing-sans, Montserrat, sans-serif);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.15;
}

.single-veranstaltung .ing-event-person-card__link:hover .ing-event-person-card__more,
.single-veranstaltung .ing-event-person-card__link:focus-visible .ing-event-person-card__more {
  background: var(--earthy-clay);
  color: #fff;
}

.ing-event-decision__sold-out {
  display: inline-flex;
  min-height: 44px;
  padding: 10px 18px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--warm-terracotta);
  border-radius: 10px;
  color: var(--warm-terracotta);
  font-weight: 700;
}

.single-veranstaltung .ing-event-more-date__status {
  align-self: flex-start;
  margin-top: 9px;
  padding: 4px 9px;
  border: 1px solid currentColor;
  border-radius: 999px;
  color: var(--warm-terracotta);
  font-family: var(--wp--preset--font-family--ing-sans, Montserrat, sans-serif);
  font-size: .72rem !important;
  font-weight: 700;
  line-height: 1.2 !important;
}

.single-veranstaltung .ing-event-more-date__status--cancelled {
  text-decoration: none;
}

.ing-event-booking--unavailable {
  background: var(--grey-green);
}

@media (max-width: 640px) {
  .ing-event-status-notice {
    width: calc(100% - 28px);
    margin-bottom: 42px;
    align-items: stretch;
    flex-direction: column;
  }

  .ing-event-status-notice > .ing-button {
    width: 100%;
    box-sizing: border-box;
    white-space: normal;
  }
}

body { background: var(--ing-bg); color: var(--ing-text); }

/* Themenwelt: Farben bleiben auf Markierungen und Flächen beschränkt. */
.ing-theme-marker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  max-width: 100%;
  margin: 4px 0 15px;
  color: var(--ing-text);
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.35;
}

.ing-theme-marker img,
.ing-theme-marker__swatch {
  display: inline-block;
  flex: 0 0 27px;
  width: 27px;
  height: 27px;
  border-radius: 50%;
  object-fit: cover;
}

.ing-theme-marker__swatch {
  border: 1px solid rgba(47,51,46,.14);
  background: linear-gradient(135deg, var(--ing-theme-primary) 50%, var(--ing-theme-secondary) 50%);
}

.ing-listing-card[style],
.ing-blog-card[style],
.ing-dynamic-teaser--event[style] {
  border-top: 5px solid var(--ing-theme-primary);
}

.ing-offer-hero[style] .ing-offer-hero__copy,
.ing-event-hero[style] .ing-event-hero__copy,
.ing-blog-hero[style] .ing-blog-hero__copy {
  border-left: 5px solid var(--ing-theme-primary);
}

.ing-blog-theme-cta[style] {
  box-shadow: inset 0 6px 0 var(--ing-theme-primary);
}

/* 404 ------------------------------------------------------------------- */
.ing-404 {
  display:flex;
  align-items:center;
  min-height:clamp(560px,68vh,760px);
  padding:clamp(72px,10vw,132px) 20px;
  text-align:center;
}

.ing-404__inner {
  width:min(860px,100%);
  margin:0 auto;
}

.ing-404__code {
  margin:0 0 20px;
  color:var(--ing-accent-dark);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.18em;
  line-height:1;
}

.ing-404__title {
  margin:0 auto;
  max-width:820px;
  font-family:var(--wp--preset--font-family--ing-serif);
  font-size:clamp(2.55rem,6vw,5.25rem);
  font-weight:400;
  letter-spacing:-.025em;
  line-height:1.06;
  text-wrap:balance;
}

.ing-404__text {
  margin:clamp(28px,4vw,38px) auto 0;
  max-width:590px;
  color:var(--ing-muted);
  font-size:clamp(1rem,1.7vw,1.15rem);
  line-height:1.7;
}

.ing-404__actions {
  margin-top:34px;
}

.ing-404__button .wp-block-button__link {
  border:1px solid var(--ing-accent);
  border-radius:999px;
  background:var(--ing-accent);
  color:#fff;
  padding:13px 24px;
  text-decoration:none;
  transition:background-color .2s ease, border-color .2s ease, transform .2s ease;
}

.ing-404__button .wp-block-button__link:hover,
.ing-404__button .wp-block-button__link:focus-visible {
  border-color:var(--ing-accent-dark);
  background:var(--ing-accent-dark);
  transform:translateY(-1px);
}

@media (max-width:640px) {
  .ing-404 {
    min-height:520px;
    padding:64px 20px 76px;
  }

  .ing-404__code {
    margin-bottom:16px;
  }

  .ing-404__text {
    margin-top:26px;
  }
}

.ing-offer-wrap { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.ing-offer-hero { margin: 28px auto 54px; }
.ing-offer-hero__media { border-radius: var(--ing-radius); overflow: hidden; box-shadow: var(--ing-shadow); }
.ing-offer-hero__media img { display:block; width:100%; height:min(58vw, 620px); object-fit:cover; }
.ing-offer-hero__copy { max-width: 860px; margin: -72px 0 0 5%; position:relative; background: rgba(255,255,255,.96); padding: 34px 38px; border-radius: var(--ing-radius); box-shadow: var(--ing-shadow); }
.ing-eyebrow { margin:0 0 8px; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ing-accent-dark); font-weight:700; }
.ing-offer-hero h1 { margin:0; font-size:clamp(2.25rem,5vw,4.6rem); line-height:1.02; letter-spacing:-.035em; }
.ing-offer-hero__lead { font-size:clamp(1.05rem,2vw,1.35rem); line-height:1.55; color:var(--ing-muted); margin:18px 0 0; }

.ing-offer-meta { margin: 0 auto 60px; }
.ing-offer-meta__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--ing-line); border:1px solid var(--ing-line); border-radius:var(--ing-radius); overflow:hidden; }
.ing-offer-meta__item { background:var(--ing-surface); padding:22px 24px; min-height:110px; }
.ing-offer-meta__label { display:block; font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ing-muted); margin-bottom:8px; }
.ing-offer-meta__value { display:block; font-size:1.05rem; line-height:1.45; font-weight:600; }

.ing-content-shell { width:min(820px,calc(100% - 40px)); margin:0 auto; }
.ing-content-shell .wp-block-post-content { font-size:1.08rem; line-height:1.75; }
.ing-content-shell .wp-block-post-content h2 { margin-top:2.35em; margin-bottom:.65em; font-size:clamp(1.7rem,3vw,2.45rem); line-height:1.15; }
.ing-content-shell .wp-block-post-content h3 { margin-top:1.9em; margin-bottom:.55em; font-size:clamp(1.3rem,2.3vw,1.75rem); }
.ing-content-shell .wp-block-post-content p, .ing-content-shell .wp-block-post-content ul, .ing-content-shell .wp-block-post-content ol { margin-top:0; margin-bottom:1.25em; }
.ing-content-shell .wp-block-post-content img { border-radius:14px; }

.ing-note, .ing-cta { width:min(920px,calc(100% - 40px)); margin:64px auto 0; border-radius:var(--ing-radius); }
.ing-note { background:#eee9df; padding:30px 34px; border:1px solid var(--ing-line); }
.ing-note h2, .ing-people h2, .ing-cta h2 { margin:0 0 12px; font-size:clamp(1.5rem,2.4vw,2rem); }
.ing-note p { margin:0; line-height:1.65; }

.ing-people { width:min(1180px,calc(100% - 40px)); margin:72px auto 0; }
.ing-people__intro { color:var(--ing-muted); margin:0 0 24px; }
.ing-people__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.ing-person-card { background:var(--ing-surface); border-radius:var(--ing-radius); overflow:hidden; box-shadow:var(--ing-shadow); }
.ing-person-card a { color:inherit; text-decoration:none; }
.ing-person-card__image img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.ing-person-card__body { padding:22px; }
.ing-person-card__name { margin:0 0 5px; font-size:1.3rem; }
.ing-person-card__role { margin:0; color:var(--ing-muted); line-height:1.45; }

.ing-cta { background:var(--ing-accent); color:white; padding:38px; margin-bottom:76px; display:flex; justify-content:space-between; gap:24px; align-items:center; }
.ing-cta p { margin:0; opacity:.92; }
.ing-button { display:inline-flex; align-items:center; justify-content:center; padding:13px 22px; border-radius:999px; background:#fff; color:var(--ing-accent-dark); font-weight:700; text-decoration:none; white-space:nowrap; }
.ing-button:hover { background:#f5f2ec; }

@media (max-width: 900px) {
  .ing-offer-meta__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ing-people__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ing-offer-hero__copy { margin:-42px 20px 0; padding:28px; }
}

@media (max-width: 640px) {
  .ing-offer-wrap, .ing-content-shell, .ing-note, .ing-people, .ing-cta { width:min(100% - 28px, 1180px); }
  .ing-offer-hero__media img { height:62vw; min-height:270px; }
  .ing-offer-hero__copy { margin:-24px 12px 0; padding:24px 22px; }
  .ing-offer-meta__grid, .ing-people__grid { grid-template-columns:1fr; }
  .ing-cta { display:block; padding:30px 24px; }
  .ing-cta .ing-button { margin-top:22px; }
}


/* Veranstaltung --------------------------------------------------------- */
.ing-event-wrap { width:min(1180px,calc(100% - 40px)); margin-left:auto; margin-right:auto; }
.ing-event-hero { margin-top:28px; margin-bottom:48px; }
.ing-event-hero__media { border-radius:var(--ing-radius); overflow:hidden; box-shadow:var(--ing-shadow); }
.ing-event-hero__media img { display:block; width:100%; height:min(56vw,620px); object-fit:cover; }
.ing-event-hero__copy { max-width:900px; margin:-72px 0 0 5%; position:relative; background:rgba(255,255,255,.96); padding:34px 38px; border-radius:var(--ing-radius); box-shadow:var(--ing-shadow); }
.ing-event-hero--no-image .ing-event-hero__copy { margin:0; max-width:100%; }
.ing-event-hero h1 { margin:0; font-size:clamp(2.25rem,5vw,4.5rem); line-height:1.02; letter-spacing:-.035em; }
.ing-event-hero__subtitle { margin:16px 0 0; font-size:clamp(1.18rem,2vw,1.5rem); line-height:1.45; font-weight:600; }
.ing-event-hero__lead { margin:12px 0 0; font-size:1.08rem; line-height:1.65; color:var(--ing-muted); }

.ing-event-meta { margin-bottom:56px; }
.ing-event-meta__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--ing-line); border:1px solid var(--ing-line); border-radius:var(--ing-radius); overflow:hidden; }
.ing-event-meta__item { background:var(--ing-surface); padding:22px 24px; min-height:105px; }
.ing-event-meta__label { display:block; font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ing-muted); margin-bottom:8px; }
.ing-event-meta__value { display:block; font-size:1.05rem; line-height:1.45; font-weight:600; }

.ing-event-section { width:min(920px,calc(100% - 40px)); margin:64px auto 0; }
.ing-event-section > h2 { margin:0 0 22px; font-size:clamp(1.6rem,2.6vw,2.15rem); }
.ing-event-dates__list { display:grid; gap:12px; }
.ing-event-date { display:flex; flex-wrap:wrap; gap:8px 18px; align-items:baseline; padding:20px 22px; background:var(--ing-surface); border:1px solid var(--ing-line); border-radius:14px; }
.ing-event-date__title { width:100%; font-size:1.06rem; }
.ing-event-date span { color:var(--ing-muted); }

.ing-event-practical__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.ing-event-practical__item { padding:24px; background:var(--ing-surface); border:1px solid var(--ing-line); border-radius:14px; }
.ing-event-practical__item h3 { margin:0 0 10px; font-size:1rem; }
.ing-event-practical__item p { margin:0; line-height:1.65; }
.ing-event-flags { display:flex; flex-wrap:wrap; gap:10px; list-style:none; padding:0; margin:18px 0 0; }
.ing-event-flags li { padding:8px 12px; border:1px solid var(--ing-line); border-radius:999px; background:#eee9df; font-size:.92rem; }

.ing-related-offer { display:grid; grid-template-columns:220px 1fr; gap:24px; align-items:center; background:var(--ing-surface); color:inherit; text-decoration:none; border-radius:var(--ing-radius); overflow:hidden; box-shadow:var(--ing-shadow); }
.ing-related-offer__image img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.ing-related-offer__body { display:grid; gap:8px; padding:24px 28px 24px 0; }
.ing-related-offer__body strong { font-size:1.25rem; }
.ing-related-offer__body span { color:var(--ing-muted); line-height:1.5; }

.ing-event-booking { width:min(920px,calc(100% - 40px)); margin:72px auto 76px; padding:36px; border-radius:var(--ing-radius); background:var(--ing-accent); color:#fff; }
.ing-event-booking__intro h2 { margin:0 0 10px; font-size:clamp(1.6rem,2.6vw,2.15rem); }
.ing-event-booking__intro p:not(.ing-eyebrow) { margin:0; opacity:.92; line-height:1.6; }
.ing-event-booking__options { display:grid; gap:10px; margin-top:24px; }
.ing-booking-option { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:16px 18px; border-radius:14px; background:rgba(255,255,255,.12); }
.ing-booking-option > div { display:flex; gap:12px; align-items:baseline; flex-wrap:wrap; }
.ing-booking-option__price { opacity:.9; }
.ing-button--contact { margin-top:24px; }

@media (max-width:900px) {
  .ing-event-meta__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ing-event-hero__copy { margin:-42px 20px 0; padding:28px; }
}
@media (max-width:640px) {
  .ing-event-wrap, .ing-event-section, .ing-event-booking { width:min(100% - 28px,1180px); }
  .ing-event-hero__media img { height:62vw; min-height:270px; }
  .ing-event-hero__copy { margin:-24px 12px 0; padding:24px 22px; }
  .ing-event-meta__grid, .ing-event-practical__grid { grid-template-columns:1fr; }
  .ing-related-offer { grid-template-columns:1fr; }
  .ing-related-offer__body { padding:0 22px 24px; }
  .ing-booking-option { display:block; }
  .ing-booking-option .ing-button { margin-top:14px; }
}

/* Person ---------------------------------------------------------------- */
.ing-person-wrap {
  width:min(1180px,calc(100% - 40px));
  margin-left:auto;
  margin-right:auto;
}

.ing-person-hero {
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(340px,.78fr);
  gap:42px;
  align-items:center;
  margin-top:28px;
  margin-bottom:50px;
}

.ing-person-hero--no-image {
  grid-template-columns:1fr;
}

.ing-person-hero__media {
  border-radius:var(--ing-radius);
  overflow:hidden;
  box-shadow:var(--ing-shadow);
}

.ing-person-hero__media img {
  width:100%;
  aspect-ratio:4/5;
  max-height:720px;
  object-fit:cover;
  display:block;
}

.ing-person-hero__copy {
  background:var(--ing-surface);
  border:1px solid var(--ing-line);
  border-radius:var(--ing-radius);
  padding:42px;
  box-shadow:var(--ing-shadow);
}

.ing-person-hero h1 {
  margin:0;
  font-size:clamp(2.4rem,5vw,4.8rem);
  line-height:1;
  letter-spacing:-.035em;
}

.ing-person-hero__role {
  margin:16px 0 0;
  color:var(--ing-accent-dark);
  font-weight:700;
  font-size:1.05rem;
  line-height:1.45;
}

.ing-person-hero__lead {
  margin:18px 0 0;
  color:var(--ing-muted);
  font-size:clamp(1.05rem,2vw,1.3rem);
  line-height:1.6;
}

.ing-person-contact {
  width:min(920px,calc(100% - 40px));
  margin:0 auto 60px;
}

.ing-person-contact__inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  padding:26px 30px;
  border-radius:var(--ing-radius);
  background:#eee9df;
  border:1px solid var(--ing-line);
}

.ing-person-contact h2 {
  margin:0;
  font-size:clamp(1.35rem,2.3vw,1.9rem);
}

.ing-person-contact__actions {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px 16px;
  align-items:center;
}

.ing-button--accent {
  background:var(--ing-accent);
  color:#fff;
}

.ing-button--accent:hover {
  background:var(--ing-accent-dark);
  color:#fff;
}

.ing-person-contact__link {
  color:var(--ing-accent-dark);
  font-weight:600;
  text-decoration:none;
}

.ing-person-contact__link:hover {
  text-decoration:underline;
}

.ing-person-quote {
  width:min(820px,calc(100% - 40px));
  margin:60px auto 0;
  padding:34px 38px;
  border-left:4px solid var(--ing-accent);
  border-radius:0 var(--ing-radius) var(--ing-radius) 0;
  background:var(--ing-surface);
  box-shadow:var(--ing-shadow);
}

.ing-person-quote p {
  margin:0;
  font-size:clamp(1.25rem,2.4vw,1.75rem);
  line-height:1.55;
  font-style:italic;
}

.ing-person-related {
  width:min(1180px,calc(100% - 40px));
  margin:72px auto 0;
}

.ing-person-related > h2 {
  margin:0 0 24px;
  font-size:clamp(1.6rem,2.6vw,2.2rem);
}

.ing-related-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}

.ing-related-card {
  overflow:hidden;
  border-radius:var(--ing-radius);
  background:var(--ing-surface);
  box-shadow:var(--ing-shadow);
}

.ing-related-card a {
  display:block;
  height:100%;
  color:inherit;
  text-decoration:none;
}

.ing-related-card__image img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
}

.ing-related-card__body {
  padding:22px;
}

.ing-related-card__body h3 {
  margin:6px 0 8px;
  font-size:1.25rem;
}

.ing-related-card__body p {
  margin:0;
  color:var(--ing-muted);
  line-height:1.55;
}

.ing-related-card__meta {
  display:inline-block;
  margin-top:12px;
  color:var(--ing-accent-dark);
  font-size:.9rem;
  font-weight:700;
}

.ing-person-events {
  margin-bottom:76px;
}

@media (max-width:900px) {
  .ing-person-hero {
    grid-template-columns:1fr 1fr;
    gap:24px;
  }

  .ing-person-hero__copy {
    padding:30px;
  }

  .ing-related-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:700px) {
  .ing-person-wrap,
  .ing-person-contact,
  .ing-person-quote,
  .ing-person-related {
    width:min(100% - 28px,1180px);
  }

  .ing-person-hero {
    grid-template-columns:1fr;
  }

  .ing-person-hero__media img {
    aspect-ratio:4/3;
    max-height:none;
  }

  .ing-person-contact__inner {
    display:block;
    padding:24px;
  }

  .ing-person-contact__actions {
    justify-content:flex-start;
    margin-top:20px;
  }

  .ing-related-grid {
    grid-template-columns:1fr;
  }

  .ing-person-quote {
    padding:28px 24px;
  }
}

/* Listings -------------------------------------------------------------- */
.ing-listing {
  width:min(1180px,calc(100% - 40px));
  margin:42px auto 80px;
}

.ing-listing__intro {
  max-width:760px;
  margin-bottom:36px;
}

.ing-listing__intro h1 {
  margin:0;
  font-size:clamp(2.6rem,5vw,4.8rem);
  line-height:1;
  letter-spacing:-.035em;
}

.ing-listing__intro > p:last-child {
  margin:18px 0 0;
  color:var(--ing-muted);
  font-size:1.12rem;
  line-height:1.6;
}

.ing-listing-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.ing-listing-card {
  overflow:hidden;
  border:1px solid var(--ing-line);
  border-radius:var(--ing-radius);
  background:var(--ing-surface);
  box-shadow:var(--ing-shadow);
}

.ing-listing-card__image img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
}

.ing-listing-card__body {
  display:flex;
  flex:1;
  flex-direction:column;
  padding:24px;
}

.ing-listing-card__date {
  margin-bottom:8px;
  color:var(--ing-accent-dark);
  font-size:.9rem;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
}

.ing-listing-card h2 {
  margin:0;
  font-size:1.45rem;
  line-height:1.2;
}

.ing-listing-card__text {
  margin:14px 0 0;
  color:var(--ing-muted);
  line-height:1.55;
}

.ing-listing-card__facts {
  display:flex;
  flex-wrap:wrap;
  gap:7px 12px;
  margin-top:18px;
  color:var(--ing-muted);
  font-size:.9rem;
}

.ing-listing-card__facts span:not(:last-child)::after {
  content:"·";
  margin-left:12px;
}

.ing-listing-card__price {
  margin-top:16px;
  font-weight:750;
}

.ing-listing-card__more {
  display:inline-block;
  margin-top:auto;
  padding-top:20px;
  color:var(--ing-accent-dark);
  font-weight:750;
}

.ing-listing-card:hover .ing-listing-card__more {
  text-decoration:underline;
}

@media (max-width:960px) {
  .ing-listing-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:640px) {
  .ing-listing {
    width:min(100% - 28px,1180px);
    margin-top:28px;
  }

  .ing-listing-grid {
    grid-template-columns:1fr;
  }
}

/* Menschenübersicht ------------------------------------------------------ */
.ing-people-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}

.ing-person-card {
  overflow:hidden;
  border:1px solid var(--ing-line);
  border-radius:var(--ing-radius);
  background:var(--ing-surface);
  box-shadow:var(--ing-shadow);
}

.ing-person-card__link {
  display:flex;
  flex-direction:column;
  height:100%;
  color:inherit;
  text-decoration:none;
}

.ing-person-card__image img {
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  display:block;
}

.ing-person-card__body {
  display:flex;
  flex:1;
  flex-direction:column;
  padding:24px;
}

.ing-person-card h2 {
  margin:0;
  font-size:1.45rem;
  line-height:1.2;
}

.ing-person-card__role {
  margin-top:8px;
  color:var(--ing-accent-dark);
  font-size:.9rem;
  font-weight:750;
  line-height:1.4;
}

.ing-person-card__body p {
  margin:14px 0 0;
  color:var(--ing-muted);
  line-height:1.55;
}

@media (max-width:960px) {
  .ing-people-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:640px) {
  .ing-people-grid {
    grid-template-columns:1fr;
  }
}

/* Komponentenbibliothek -------------------------------------------------- */
.ing-pattern-section {
  width:min(920px,calc(100% - 40px));
  margin:64px auto 0;
}

.ing-pattern-section > h2,
.ing-pattern-cta h2 {
  margin-top:0;
}

.ing-section-lead {
  max-width:720px;
  color:var(--ing-muted);
  font-size:1.05rem;
  line-height:1.65;
  margin-bottom:24px;
}

/* FAQ / Accordion */
.ing-faq .wp-block-details,
.ing-faq-item {
  margin:0 0 12px;
  border:1px solid var(--ing-line);
  border-radius:14px;
  background:var(--ing-surface);
  overflow:hidden;
}

.ing-faq .wp-block-details summary,
.ing-faq-item summary {
  cursor:pointer;
  padding:19px 22px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size:var(--wp--preset--font-size--large);
  font-weight:700;
  line-height:1.4;
  color:var(--charcoal-olive);
}

.ing-faq .wp-block-details[open] summary,
.ing-faq-item[open] summary {
  border-bottom:1px solid var(--ing-line);
}

.ing-faq .wp-block-details > :not(summary),
.ing-faq-item > :not(summary) {
  margin-left:22px;
  margin-right:22px;
  font-family:"Montserrat", Arial, sans-serif;
  font-size:var(--wp--preset--font-size--medium, 1rem);
  line-height:1.7;
  color:var(--charcoal-olive);
}

.ing-faq .wp-block-details > :last-child,
.ing-faq-item > :last-child {
  margin-bottom:20px;
}

/* Testimonial */
.ing-testimonial {
  padding:34px 38px;
  border-radius:var(--ing-radius);
  background:var(--ing-surface);
  border:1px solid var(--ing-line);
  box-shadow:var(--ing-shadow);
}

.ing-testimonial__quote,
.ing-testimonial .wp-block-quote {
  margin:0;
  padding:0;
  border:0;
}

.ing-testimonial__quote p,
.ing-testimonial .wp-block-quote p {
  margin:0;
  font-size:clamp(1.25rem,2.4vw,1.75rem);
  line-height:1.55;
  font-style:normal;
}

.ing-testimonial__quote cite,
.ing-testimonial .wp-block-quote cite {
  display:block;
  margin-top:18px;
  color:var(--ing-muted);
  font-size:.92rem;
  font-style:normal;
  font-weight:650;
}

/* CTA */
.ing-pattern-cta {
  width:min(920px,calc(100% - 40px));
  margin:64px auto 76px;
  padding:34px 38px;
  gap:24px;
  align-items:center;
  border-radius:var(--ing-radius);
  background:var(--ing-accent);
  color:#fff;
}

.ing-pattern-cta__copy {
  flex:1 1 520px;
}

.ing-pattern-cta__copy p {
  margin-bottom:0;
  opacity:.92;
}

.ing-pattern-cta .wp-block-button__link {
  border-radius:999px;
  background:#fff;
  color:var(--ing-accent-dark);
  padding:13px 22px;
  font-weight:700;
}

.ing-pattern-cta .wp-block-button__link:hover {
  background:#f5f2ec;
  color:var(--ing-accent-dark);
}

@media (max-width:640px) {
  .ing-pattern-section,
  .ing-pattern-cta {
    width:min(100% - 28px,920px);
  }

  .ing-testimonial,
  .ing-pattern-cta {
    padding:28px 24px;
  }
}



/* Komponentenbibliothek v0.7 -------------------------------------------- */
.ing-image-text,
.ing-info-box,
.ing-statement,
.ing-facts {
  width:min(1100px,calc(100% - 40px));
  margin:64px auto;
}

.ing-image-text__columns {
  gap:clamp(28px,5vw,64px);
}

.ing-image-text__image {
  margin:0;
}

.ing-image-text__image img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:var(--ing-radius);
  box-shadow:var(--ing-shadow);
}

.ing-info-box {
  padding:30px 34px;
  border:1px solid var(--ing-line);
  border-left:5px solid var(--ing-accent);
  border-radius:var(--ing-radius);
  background:var(--ing-surface);
  box-shadow:var(--ing-shadow);
}

.ing-info-box h3 {
  margin-top:0;
  margin-bottom:12px;
}

.ing-info-box p:last-child {
  margin-bottom:0;
}

.ing-statement {
  padding:46px 40px;
  border-radius:var(--ing-radius);
  background:#eee9df;
}

.ing-statement__quote {
  margin:0;
  border:0;
  padding:0;
}

.ing-statement__quote p {
  margin:0;
  font-size:clamp(1.5rem,3vw,2.4rem);
  line-height:1.35;
  font-style:italic;
}

.ing-facts-list {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  padding:0;
  list-style:none;
}

.ing-facts-list li {
  margin:0;
  padding:22px;
  border:1px solid var(--ing-line);
  border-radius:var(--ing-radius);
  background:var(--ing-surface);
  box-shadow:var(--ing-shadow);
  line-height:1.55;
}

.ing-facts-list strong {
  display:inline-block;
  margin-bottom:6px;
  color:var(--ing-accent-dark);
}

@media (max-width:780px) {
  .ing-image-text,
  .ing-info-box,
  .ing-statement,
  .ing-facts {
    width:min(100% - 28px,1100px);
    margin:44px auto;
  }

  .ing-statement {
    padding:30px 24px;
  }

  .ing-facts-list {
    grid-template-columns:1fr;
  }
}


/* Dynamische Teaser v0.8 ------------------------------------------------ */
.ing-dynamic-section,
.ing-dynamic-teaser {
  width:min(1100px,calc(100% - 40px));
  margin-left:auto;
  margin-right:auto;
}

.ing-dynamic-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}

.ing-dynamic-grid .ing-dynamic-teaser {
  width:100%;
  margin:0;
}

.ing-dynamic-teaser {
  overflow:hidden;
  border:1px solid var(--ing-line);
  border-radius:var(--ing-radius);
  background:var(--ing-surface);
  box-shadow:var(--ing-shadow);
}

.ing-dynamic-teaser__link {
  display:grid;
  grid-template-columns:minmax(220px,.9fr) minmax(0,1.1fr);
  min-height:100%;
  color:inherit;
  text-decoration:none;
}

.ing-dynamic-grid .ing-dynamic-teaser__link {
  grid-template-columns:1fr;
}

.ing-dynamic-teaser__media img {
  width:100%;
  height:100%;
  min-height:300px;
  object-fit:cover;
  display:block;
}

.ing-dynamic-grid .ing-dynamic-teaser__media img {
  min-height:0;
  aspect-ratio:4/3;
}

.ing-dynamic-teaser--person .ing-dynamic-teaser__media img {
  aspect-ratio:4/5;
}

.ing-dynamic-teaser__body {
  display:flex;
  flex-direction:column;
  padding:28px;
}

.ing-dynamic-teaser__body h3 {
  margin:0;
  font-size:1.6rem;
  line-height:1.2;
}

.ing-dynamic-teaser__body > p:not(.ing-eyebrow) {
  margin:14px 0 0;
  color:var(--ing-muted);
  line-height:1.55;
}

.ing-dynamic-teaser__meta {
  margin-top:10px;
  color:var(--ing-accent-dark);
  font-size:.92rem;
  font-weight:750;
}

.ing-dynamic-teaser__facts {
  display:flex;
  flex-wrap:wrap;
  gap:7px 12px;
  margin-top:18px;
  color:var(--ing-muted);
  font-size:.9rem;
}

.ing-dynamic-teaser__facts span:not(:last-child)::after {
  content:"·";
  margin-left:12px;
}

.ing-dynamic-teaser__price {
  margin-top:16px;
  font-weight:750;
}

.ing-dynamic-teaser__more {
  display:inline-block;
  margin-top:auto;
  padding-top:20px;
  color:var(--ing-accent-dark);
  font-weight:750;
}

.ing-dynamic-teaser__link:hover .ing-dynamic-teaser__more {
  text-decoration:underline;
}

.ing-component-hint {
  padding:14px 16px;
  border:1px dashed var(--ing-line);
  border-radius:12px;
  color:var(--ing-muted);
}

@media (max-width:900px) {
  .ing-dynamic-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .ing-dynamic-teaser__link {
    grid-template-columns:1fr;
  }

  .ing-dynamic-teaser__media img {
    min-height:0;
    aspect-ratio:4/3;
  }
}

@media (max-width:640px) {
  .ing-dynamic-section,
  .ing-dynamic-teaser {
    width:min(100% - 28px,1100px);
  }

  .ing-dynamic-grid {
    grid-template-columns:1fr;
  }
}


/* Video Consent v0.9 ----------------------------------------------------- */
.ing-video-consent {
  width:min(1100px,calc(100% - 40px));
  margin:64px auto;
}

.ing-video-consent__placeholder {
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:28px;
  align-items:center;
  min-height:320px;
  padding:38px;
  border:1px solid var(--ing-line);
  border-radius:var(--ing-radius);
  background:#eee9df;
  box-shadow:var(--ing-shadow);
}

.ing-video-consent__icon {
  display:grid;
  place-items:center;
  width:100px;
  height:100px;
  border-radius:999px;
  background:var(--ing-accent);
  color:#fff;
  font-size:2rem;
  line-height:1;
}

.ing-video-consent__copy h3 {
  margin:0 0 12px;
  font-size:clamp(1.45rem,2.5vw,2rem);
}

.ing-video-consent__copy p:not(.ing-eyebrow) {
  max-width:720px;
  margin:0 0 20px;
  color:var(--ing-muted);
  line-height:1.6;
}

.ing-video-consent__button {
  appearance:none;
  border:0;
  border-radius:999px;
  padding:13px 22px;
  background:var(--ing-accent);
  color:#fff;
  font:inherit;
  font-weight:750;
  cursor:pointer;
}

.ing-video-consent__button:hover,
.ing-video-consent__button:focus-visible {
  background:var(--ing-accent-dark);
}

.ing-video-consent__frame {
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:var(--ing-radius);
  background:#000;
  box-shadow:var(--ing-shadow);
}

.ing-video-consent__frame iframe {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}

@media (max-width:700px) {
  .ing-video-consent {
    width:min(100% - 28px,1100px);
    margin:44px auto;
  }

  .ing-video-consent__placeholder {
    grid-template-columns:1fr;
    min-height:0;
    padding:28px 24px;
  }

  .ing-video-consent__icon {
    width:72px;
    height:72px;
    font-size:1.5rem;
  }
}


/* Designsystem v0.10 ---------------------------------------------------- */

.ing-editor-only {
  display:none !important;
}

/* Farbvarianten für CTA, Hinweisboxen, Statements und Gruppen */
.is-style-ing-primary,
.ing-pattern-cta.is-style-ing-primary,
.ing-info-box.is-style-ing-primary,
.ing-statement.is-style-ing-primary {
  background:#466E6E;
  color:#fff;
}

.is-style-ing-dark,
.ing-pattern-cta.is-style-ing-dark,
.ing-info-box.is-style-ing-dark,
.ing-statement.is-style-ing-dark {
  background:#233C5A;
  color:#fff;
}

.is-style-ing-body,
.ing-pattern-cta.is-style-ing-body,
.ing-info-box.is-style-ing-body,
.ing-statement.is-style-ing-body {
  background:#9BD49B;
  color:#23333A;
}

.is-style-ing-heart,
.ing-pattern-cta.is-style-ing-heart,
.ing-info-box.is-style-ing-heart,
.ing-statement.is-style-ing-heart {
  background:#F4A7A7;
  color:#23333A;
}

.is-style-ing-mind,
.ing-pattern-cta.is-style-ing-mind,
.ing-info-box.is-style-ing-mind,
.ing-statement.is-style-ing-mind {
  background:#A7C8F4;
  color:#23333A;
}

.is-style-ing-spirit,
.ing-pattern-cta.is-style-ing-spirit,
.ing-info-box.is-style-ing-spirit,
.ing-statement.is-style-ing-spirit {
  background:#F7C77B;
  color:#23333A;
}

.ing-pattern-cta.is-style-ing-primary .wp-block-button__link,
.ing-pattern-cta.is-style-ing-dark .wp-block-button__link {
  background:#fff;
  color:#233C5A;
}

.ing-pattern-cta.is-style-ing-body .wp-block-button__link,
.ing-pattern-cta.is-style-ing-heart .wp-block-button__link,
.ing-pattern-cta.is-style-ing-mind .wp-block-button__link,
.ing-pattern-cta.is-style-ing-spirit .wp-block-button__link {
  background:#233C5A;
  color:#fff;
}

/* Hinweisbox: farbige Varianten behalten die linke Akzentkante */
.ing-info-box.is-style-ing-primary,
.ing-info-box.is-style-ing-dark,
.ing-info-box.is-style-ing-body,
.ing-info-box.is-style-ing-heart,
.ing-info-box.is-style-ing-mind,
.ing-info-box.is-style-ing-spirit {
  border-left-color:currentColor;
}

/* Aussage/Zitat */
.ing-statement.is-style-ing-primary .wp-block-quote,
.ing-statement.is-style-ing-dark .wp-block-quote,
.ing-statement.is-style-ing-body .wp-block-quote,
.ing-statement.is-style-ing-heart .wp-block-quote,
.ing-statement.is-style-ing-mind .wp-block-quote,
.ing-statement.is-style-ing-spirit .wp-block-quote {
  color:inherit;
}


/* Hero-Komponenten v0.11 ----------------------------------------------- */
.ing-hero {
  width:min(1180px,calc(100% - 40px));
  margin:44px auto 72px;
  padding:clamp(34px,5vw,64px);
  border-radius:var(--ing-radius);
  background:var(--ing-surface);
  overflow:hidden;
}

.ing-hero__columns {
  gap:clamp(28px,5vw,72px);
  align-items:center;
}

.ing-hero__title {
  max-width:15ch;
  margin-top:0;
  margin-bottom:18px;
  font-size:clamp(2.6rem,6vw,5.6rem);
  line-height:.98;
  letter-spacing:-.03em;
}

.ing-hero__lead {
  max-width:42rem;
  margin:0;
  font-size:clamp(1.1rem,1.7vw,1.35rem);
  line-height:1.55;
}

.ing-hero__buttons {
  margin-top:26px;
}

.ing-hero__image {
  margin:0;
}

.ing-hero__image img {
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  border-radius:calc(var(--ing-radius) * .9);
  display:block;
}

.ing-hero--text {
  padding-top:clamp(50px,8vw,90px);
  padding-bottom:clamp(50px,8vw,90px);
}

.ing-hero--text .ing-hero__copy {
  max-width:900px;
  margin-left:0;
}

.ing-hero--text .ing-hero__title {
  max-width:18ch;
}

/* Hero unterstützt dieselben ING-Farbvarianten wie CTA & Co. */
.ing-hero.is-style-ing-primary { background:#466E6E; color:#fff; }
.ing-hero.is-style-ing-dark    { background:#233C5A; color:#fff; }
.ing-hero.is-style-ing-body    { background:#9BD49B; color:#23333A; }
.ing-hero.is-style-ing-heart   { background:#F4A7A7; color:#23333A; }
.ing-hero.is-style-ing-mind    { background:#A7C8F4; color:#23333A; }
.ing-hero.is-style-ing-spirit  { background:#F7C77B; color:#23333A; }

.ing-hero.is-style-ing-primary .wp-block-button__link,
.ing-hero.is-style-ing-dark .wp-block-button__link {
  background:#fff;
  color:#233C5A;
}

.ing-hero.is-style-ing-body .wp-block-button__link,
.ing-hero.is-style-ing-heart .wp-block-button__link,
.ing-hero.is-style-ing-mind .wp-block-button__link,
.ing-hero.is-style-ing-spirit .wp-block-button__link {
  background:#233C5A;
  color:#fff;
}

@media (max-width:780px) {
  .ing-hero {
    width:min(100% - 28px,1180px);
    margin:28px auto 48px;
    padding:28px 22px;
  }

  .ing-hero__title {
    font-size:clamp(2.25rem,12vw,4rem);
  }

  .ing-hero__image img {
    aspect-ratio:4/3;
  }
}


/* Warmer Design-Rahmen v0.12 ------------------------------------------- */
:root {
  --ing-bg: #F3EFE8;
  --ing-surface: #FBF8F3;
  --ing-muted: #6F6761;
  --ing-terracotta: #B75B47;
  --ing-terracotta-dark: #934636;
  --ing-line: rgba(47, 42, 39, .12);
  --ing-radius: 18px;
  --ing-shadow: 0 18px 50px rgba(69, 54, 44, .08);

  /* Rückwärtskompatibilität für ältere Komponenten */
  --ing-accent: var(--ing-terracotta);
  --ing-accent-dark: var(--ing-terracotta-dark);
}

body {
  background: var(--ing-bg);
  color: var(--charcoal-olive);
}

.wp-site-blocks {
  background: var(--ing-bg);
}

body,
button,
input,
select,
textarea {
  font-family: "Montserrat", Arial, sans-serif;
}

h1, h2, h3, h4, h5, h6,
.wp-block-heading {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 400;
  color: var(--charcoal-olive);
}

p,
li {
  color: var(--charcoal-olive);
}

.ing-eyebrow {
  color: var(--ing-terracotta) !important;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.ing-title-accent {
  color: var(--ing-terracotta);
  font-style: italic;
}

.wp-block-button__link {
  border-radius: 8px;
  background: var(--ing-terracotta);
  color: #fff;
}

.wp-block-button__link:hover {
  background: var(--ing-terracotta-dark);
}

/* Breitere, ruhige Inhaltsfläche für Standardseiten */
.entry-content,
.wp-block-post-content {
  --wp--style--global--content-size: 800px;
  --wp--style--global--wide-size: 1180px;
}

/* Hero neu: mehr Fläche, weniger Kartencharakter */
.ing-hero {
  width:min(1220px,calc(100% - 40px));
  margin:36px auto 76px;
  padding:clamp(42px,6vw,78px);
  border-radius:0;
  background:transparent;
  overflow:visible;
  box-shadow:none;
}

.ing-hero--image .ing-hero__columns {
  grid-template-columns: 58% 42%;
  gap:clamp(34px,6vw,84px);
}

.ing-hero__title {
  max-width: 12.5ch;
  margin:0 0 24px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size:clamp(3.2rem,6.3vw,6.4rem);
  font-weight:400;
  line-height:.96;
  letter-spacing:-.035em;
}

.ing-hero__lead {
  max-width: 39rem;
  color:var(--ing-muted);
  font-size:clamp(1.1rem,1.5vw,1.3rem);
  line-height:1.55;
}

.ing-hero__image img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:16px;
  box-shadow:var(--ing-shadow);
}

.ing-hero--text {
  max-width:1180px;
  padding-top:clamp(54px,8vw,100px);
  padding-bottom:clamp(54px,8vw,100px);
}

.ing-hero--text .ing-hero__copy {
  max-width:940px;
  margin-left:0;
}

/* Warme Flächen für Cards, CTA, Info etc. */
.ing-pattern-cta,
.ing-info-box,
.ing-statement,
.ing-dynamic-teaser {
  background:var(--ing-surface);
  border-color:var(--ing-line);
}

.ing-pattern-cta {
  border-radius:16px;
}

.ing-info-box {
  border-left-color:var(--ing-terracotta);
}

.ing-statement {
  background:#EFE7DE;
}

.ing-dynamic-teaser__body > p:not(.ing-eyebrow),
.ing-dynamic-teaser__facts,
.ing-hero__lead {
  color:var(--ing-muted);
}

/* Stilvarianten neu an den warmen Kern anbinden */
.is-style-ing-primary,
.ing-pattern-cta.is-style-ing-primary,
.ing-info-box.is-style-ing-primary,
.ing-statement.is-style-ing-primary,
.ing-hero.is-style-ing-primary {
  background:var(--ing-terracotta);
  color:#fff;
}

.is-style-ing-dark,
.ing-pattern-cta.is-style-ing-dark,
.ing-info-box.is-style-ing-dark,
.ing-statement.is-style-ing-dark,
.ing-hero.is-style-ing-dark {
  background:var(--charcoal-olive);
  color:#fff;
}

.ing-hero.is-style-ing-primary .ing-hero__title,
.ing-hero.is-style-ing-dark .ing-hero__title,
.ing-hero.is-style-ing-primary .ing-hero__lead,
.ing-hero.is-style-ing-dark .ing-hero__lead,
.ing-pattern-cta.is-style-ing-primary h2,
.ing-pattern-cta.is-style-ing-dark h2 {
  color:inherit;
}

.ing-hero.is-style-ing-primary .ing-title-accent,
.ing-hero.is-style-ing-dark .ing-title-accent {
  color:#F5D8CF;
}

@media (max-width:780px) {
  .ing-hero {
    width:min(100% - 28px,1220px);
    margin:24px auto 52px;
    padding:28px 0;
  }

  .ing-hero__title {
    max-width:13ch;
    font-size:clamp(2.65rem,13vw,4.5rem);
  }

  .ing-hero__image img {
    aspect-ratio:4/3;
  }
}


/* Wide-Breakout v0.12.1 ------------------------------------------------ */

/*
 * Normale Lesebreite bleibt kompakt.
 * Komponenten mit .alignwide dürfen sichtbar darüber hinausgehen.
 */
.wp-block-post-content > :where(:not(.alignwide):not(.alignfull)) {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

/*
 * Breite Inhaltskomponenten: Hero, CTA/"Störer" und andere Wide-Blöcke.
 * Nutzt die verfügbare Viewportbreite kontrolliert aus.
 */
.wp-block-post-content > .alignwide,
.wp-block-post-content .ing-hero.alignwide,
.wp-block-post-content .ing-pattern-cta.alignwide,
.wp-block-post-content .ing-pattern-section.alignwide {
  width: min(1220px, calc(100vw - 48px));
  max-width: none;
  margin-left: 50%;
  margin-right: 0;
  transform: translateX(-50%);
}

/*
 * Auch unsere bestehenden Komponenten dürfen bewusst breiter als Lesetext sein,
 * selbst wenn sie nicht explizit als alignwide gespeichert wurden.
 */
.wp-block-post-content > .ing-hero,
.wp-block-post-content > .ing-pattern-cta,
.wp-block-post-content > .ing-statement,
.wp-block-post-content > .ing-info-box {
  width: min(1180px, calc(100vw - 48px));
  max-width: none;
  margin-left: 50%;
  margin-right: 0;
  transform: translateX(-50%);
}

/* Lesetext innerhalb breiter Komponenten bleibt angenehm lesbar */
.ing-pattern-cta > *,
.ing-info-box > *,
.ing-statement > * {
  max-width: 900px;
}

@media (max-width: 780px) {
  .wp-block-post-content > .alignwide,
  .wp-block-post-content .ing-hero.alignwide,
  .wp-block-post-content .ing-pattern-cta.alignwide,
  .wp-block-post-content .ing-pattern-section.alignwide,
  .wp-block-post-content > .ing-hero,
  .wp-block-post-content > .ing-pattern-cta,
  .wp-block-post-content > .ing-statement,
  .wp-block-post-content > .ing-info-box {
    width: calc(100vw - 28px);
  }
}


/* Wide-Breakout Fix v0.12.2 -------------------------------------------- */
/*
 * Der Post-Content selbst darf die volle verfügbare Breite nutzen.
 * Die Lesebreite wird nicht mehr durch den Parent erzwungen, sondern
 * gezielt pro direktem Inhaltsblock gesetzt.
 */
.wp-block-post-content {
  width: 100% !important;
  max-width: none !important;
}

/* Normaler redaktioneller Inhalt: ruhige Lesebreite */
.wp-block-post-content > :where(
  :not(.alignwide)
  :not(.alignfull)
  :not(.ing-hero)
  :not(.ing-pattern-cta)
  :not(.ing-statement)
  :not(.ing-info-box)
) {
  width: min(800px, calc(100% - 40px));
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

/* Wide-Komponenten sauber im Viewport zentrieren – ohne Transform-Hack */
.wp-block-post-content > .alignwide,
.wp-block-post-content > .ing-hero,
.wp-block-post-content > .ing-pattern-cta,
.wp-block-post-content > .ing-statement,
.wp-block-post-content > .ing-info-box {
  width: min(1220px, calc(100% - 48px)) !important;
  max-width: 1220px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  transform: none !important;
}

/* Full-width bleibt tatsächlich full-width */
.wp-block-post-content > .alignfull {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  transform: none !important;
}

@media (max-width: 780px) {
  .wp-block-post-content > :where(
    :not(.alignwide)
    :not(.alignfull)
    :not(.ing-hero)
    :not(.ing-pattern-cta)
    :not(.ing-statement)
    :not(.ing-info-box)
  ) {
    width: calc(100% - 28px);
  }

  .wp-block-post-content > .alignwide,
  .wp-block-post-content > .ing-hero,
  .wp-block-post-content > .ing-pattern-cta,
  .wp-block-post-content > .ing-statement,
  .wp-block-post-content > .ing-info-box {
    width: calc(100% - 28px) !important;
  }
}


/* Hero Wide Fix v0.12.3 ------------------------------------------------- */
/*
 * Ursache:
 * Der äußere Hero war zwar breit, aber der Group-Block mit "constrained"
 * begrenzte seine direkte Columns-Struktur weiterhin auf die normale
 * Contentbreite. Deshalb blieb der sichtbare Hero schmal.
 */

.wp-block-post-content > .ing-hero {
  width: min(1220px, calc(100% - 48px)) !important;
  max-width: 1220px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Direkte Hero-Inhalte dürfen die gesamte Hero-Breite nutzen. */
.ing-hero > .ing-hero__columns,
.ing-hero > .wp-block-columns,
.ing-hero > .ing-hero__copy {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Bestehende bereits eingefügte Hero-Patterns ebenfalls auf 58/42 ziehen. */
.ing-hero__columns > .wp-block-column:first-child {
  flex-basis: 58% !important;
}

.ing-hero__columns > .wp-block-column:last-child {
  flex-basis: 42% !important;
}

.ing-hero__columns {
  gap: clamp(36px, 6vw, 84px) !important;
}

.ing-hero__title {
  max-width: 10.5ch;
}

@media (max-width: 781px) {
  .wp-block-post-content > .ing-hero {
    width: calc(100% - 28px) !important;
  }

  .ing-hero__columns > .wp-block-column:first-child,
  .ing-hero__columns > .wp-block-column:last-child {
    flex-basis: 100% !important;
  }

  .ing-hero__title {
    max-width: 13ch;
  }
}


/* Hero Feinschliff v0.12.4 --------------------------------------------- */

/*
 * Wenn eine Standardseite bereits einen ING-Hero besitzt, wird der zusätzliche
 * Seitentitel aus dem Twenty-Twenty-Five-Template ausgeblendet.
 */
body.has-ing-hero .wp-block-post-title {
  display: none !important;
}

/* Dadurch darf der eigentliche Seiteninhalt deutlich früher beginnen. */
body.has-ing-hero main,
body.has-ing-hero .wp-block-post-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.has-ing-hero .wp-block-post-content > .ing-hero:first-child {
  margin-top: 8px !important;
}

/*
 * Mehr Bühne auf großen Screens:
 * Fließtext bleibt schmal, der Hero darf deutlich breiter werden.
 */
.wp-block-post-content > .ing-hero {
  width: min(1400px, calc(100% - 64px)) !important;
  max-width: 1400px !important;
}

/* Etwas großzügigere horizontale Komposition. */
.ing-hero {
  padding-left: clamp(28px, 4vw, 64px);
  padding-right: clamp(28px, 4vw, 64px);
}

.ing-hero__columns {
  gap: clamp(46px, 7vw, 108px) !important;
}

.ing-hero__title {
  max-width: 11.5ch;
}

@media (max-width: 1100px) {
  .wp-block-post-content > .ing-hero {
    width: min(1180px, calc(100% - 40px)) !important;
  }
}

@media (max-width: 780px) {
  body.has-ing-hero .wp-block-post-content > .ing-hero:first-child {
    margin-top: 0 !important;
  }

  .wp-block-post-content > .ing-hero {
    width: calc(100% - 28px) !important;
  }
}


/* Header & Navigation v0.13 -------------------------------------------- */
.wp-site-blocks > header.wp-block-template-part,
.wp-site-blocks > .wp-block-template-part:has(> .ing-site-header) {
  position: sticky;
  top: 0;
  z-index: 1000;
  margin-block-start: 0 !important;
}

.ing-site-header {
  position: relative;
  z-index: auto;
  width: 100%;
  margin: 0;
  padding: 0 24px;
  background: rgba(243, 239, 232, .96);
  border-bottom: 1px solid var(--ing-line);
  box-shadow: 0 4px 18px rgba(46, 45, 42, .06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

body.admin-bar .wp-site-blocks > header.wp-block-template-part,
body.admin-bar .wp-site-blocks > .wp-block-template-part:has(> .ing-site-header) {
  top: 32px;
}

.ing-site-header__inner {
  width: min(1400px, 100%);
  max-width: 1400px !important;
  min-height: 92px;
  margin: 0 auto;
  padding: 10px 0;
}

.ing-site-logo {
  flex: 0 0 auto;
  margin: 0;
}

.ing-site-logo img {
  display: block;
  width: auto;
  max-height: 72px;
  object-fit: contain;
}

.ing-main-navigation {
  font-family: "Montserrat", Arial, sans-serif;
  font-size: .96rem;
  font-weight: 650;
}

.ing-main-navigation .wp-block-navigation__container {
  gap: clamp(18px, 2.2vw, 34px);
  align-items: center;
}

.ing-main-navigation .wp-block-navigation-item__content {
  position: relative;
  padding: 10px 0;
  color: var(--charcoal-olive);
  text-decoration: none;
}

.ing-main-navigation .wp-block-navigation-item:not(.ing-nav-cta) > .wp-block-navigation-item__content::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 4px;
  height: 2px;
  background: var(--ing-terracotta);
  transition: right .2s ease;
}

.ing-main-navigation .wp-block-navigation-item:not(.ing-nav-cta) > .wp-block-navigation-item__content:hover::after,
.ing-main-navigation .wp-block-navigation-item.current-menu-item:not(.ing-nav-cta) > .wp-block-navigation-item__content::after,
.ing-main-navigation .wp-block-navigation-item.current-menu-parent:not(.ing-nav-cta) > .wp-block-navigation-item__content::after,
.ing-main-navigation .wp-block-navigation-item.current-menu-ancestor:not(.ing-nav-cta) > .wp-block-navigation-item__content::after,
.ing-main-navigation .wp-block-navigation-item.ing-nav-active:not(.ing-nav-cta) > .wp-block-navigation-item__content::after {
  right: 0;
}

.ing-main-navigation .ing-nav-cta > .wp-block-navigation-item__content {
  padding: 11px 18px;
  border-radius: 8px;
  background: var(--ing-terracotta);
  color: #fff;
  font-weight: 750;
}

.ing-main-navigation .ing-nav-cta > .wp-block-navigation-item__content:hover {
  background: var(--ing-terracotta-dark);
  color: #fff;
}

.ing-main-navigation .wp-block-navigation__responsive-container-open {
  color: var(--charcoal-olive);
}

.ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open {
  padding: 28px;
  background: var(--ing-bg);
  color: var(--charcoal-olive);
}

.ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  padding-top: 72px;
}

.ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  gap: 8px;
  align-items: stretch;
}

.ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  width: 100%;
  padding: 14px 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(1.8rem, 8vw, 3rem);
  font-weight: 400;
}

.ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open .ing-nav-cta > .wp-block-navigation-item__content {
  margin-top: 18px;
  padding: 14px 18px;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 1rem;
  text-align: center;
}

@media (max-width: 780px) {
  .ing-site-header {
    padding: 0 14px;
  }

  .ing-site-header__inner {
    min-height: 76px;
    padding: 8px 0;
  }

  .ing-site-logo img {
    max-height: 58px;
  }
}

@media (max-width: 782px) {
  body.admin-bar .wp-site-blocks > header.wp-block-template-part,
  body.admin-bar .wp-site-blocks > .wp-block-template-part:has(> .ing-site-header) {
    top: 46px;
  }
}

@media (max-width: 600px) {
  body.admin-bar .wp-site-blocks > header.wp-block-template-part,
  body.admin-bar .wp-site-blocks > .wp-block-template-part:has(> .ing-site-header) {
    top: 0;
  }
}


/* SVG Logo Fix v0.13.2 -------------------------------------------------- */
/*
 * SVG-Dateien liefern WordPress teilweise keine verwertbaren Rastermaße.
 * Deshalb bekommt das Site-Logo eine explizite Breite.
 */
.ing-site-logo,
.wp-block-site-logo.ing-site-logo {
  width: 88px !important;
  min-width: 88px;
  flex: 0 0 88px;
}

.ing-site-logo img,
.wp-block-site-logo.ing-site-logo img {
  display: block;
  width: 88px !important;
  max-width: 88px !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain;
}

@media (max-width: 780px) {
  .ing-site-logo,
  .wp-block-site-logo.ing-site-logo {
    width: 68px !important;
    min-width: 68px;
    flex-basis: 68px;
  }

  .ing-site-logo img,
  .wp-block-site-logo.ing-site-logo img {
    width: 68px !important;
    max-width: 68px !important;
  }
}


/* Navigation Untermenüs v0.14 ------------------------------------------ */

/* Top-Level Punkte mit Untermenü */
.ing-main-navigation .wp-block-navigation-submenu {
  position: relative;
}

.ing-main-navigation .wp-block-navigation-submenu > .wp-block-navigation-item__content {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* Dropdown auf Desktop */
@media (min-width: 782px) {
  .ing-main-navigation .wp-block-navigation__submenu-container {
    min-width: 240px;
    margin-top: 8px;
    padding: 10px;
    border: 1px solid var(--ing-line);
    border-radius: 12px;
    background: var(--ing-surface);
    box-shadow: 0 18px 40px rgba(69, 54, 44, .12);
  }

  .ing-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item {
    width: 100%;
  }

  .ing-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border-radius: 8px;
    color: var(--charcoal-olive);
    line-height: 1.35;
    text-decoration: none;
  }

  .ing-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
  .ing-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
  .ing-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item.current-menu-parent > .wp-block-navigation-item__content,
  .ing-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item.current-menu-ancestor > .wp-block-navigation-item__content,
  .ing-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item.ing-nav-active > .wp-block-navigation-item__content {
    background: #EFE7DE;
    color: var(--ing-terracotta-dark);
  }

  /* Kein Unterstrich-Effekt innerhalb der Dropdown-Ebene */
  .ing-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after {
    display: none !important;
  }

  /* Fokus per Tastatur sichtbar */
  .ing-main-navigation .wp-block-navigation-item__content:focus-visible,
  .ing-main-navigation .wp-block-navigation-submenu__toggle:focus-visible {
    outline: 2px solid var(--ing-terracotta);
    outline-offset: 3px;
    border-radius: 6px;
  }

  .ing-main-navigation .wp-block-navigation__submenu-icon {
    width: .75em;
    height: .75em;
    color: currentColor;
  }
}

/* Mobile Overlay: Unterpunkte klar einrücken */
@media (max-width: 781px) {
  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-submenu {
    width: 100%;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-submenu > .wp-block-navigation-item__content {
    width: auto;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__submenu-container {
    position: static !important;
    display: block !important;
    width: 100%;
    height: auto;
    margin: 4px 0 12px;
    padding: 0 0 0 18px;
    border: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    padding: 8px 0;
    font-family: "Montserrat", Arial, sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: var(--ing-muted);
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
    color: var(--ing-terracotta-dark);
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__submenu-icon {
    display: none;
  }
}


/* Navigation Untermenü Hover-Fix v0.14.1 ------------------------------- */
/*
 * Zwischen Top-Level-Link und Dropdown entstand durch margin-top ein kleiner
 * "toter" Bereich. Beim Überfahren verlor das Submenu dadurch den Hover-Zustand.
 * Wir schließen diese Lücke über Padding am Parent und positionieren das
 * Dropdown direkt darunter.
 */
@media (min-width: 782px) {
  .ing-main-navigation .wp-block-navigation__container > .wp-block-navigation-submenu {
    padding-bottom: 10px;
    margin-bottom: -10px;
  }

  .ing-main-navigation .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
    margin-top: 0 !important;
    top: 100% !important;
  }

  /*
   * Zusätzliche unsichtbare Hover-Brücke für Browser/Block-Markup,
   * damit das Menü beim Wechsel vom Hauptpunkt ins Dropdown offen bleibt.
   */
  .ing-main-navigation .wp-block-navigation__container > .wp-block-navigation-submenu::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 12px;
  }

  /* Seitliche Untermenüs: am auslösenden Eintrag ausrichten.
   * Die horizontale Öffnungsrichtung bestimmt weiterhin WordPress.
   * Ohne vertikalen Versatz bleibt der Mausweg ins Untermenü lückenlos.
   */
  .ing-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
    top: 0 !important;
    margin-top: 0 !important;
  }

  .ing-main-navigation .wp-block-navigation-submenu:hover > .wp-block-navigation__submenu-container,
  .ing-main-navigation .wp-block-navigation-submenu:focus-within > .wp-block-navigation__submenu-container {
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }

  .ing-main-navigation .wp-block-navigation__submenu-container {
    pointer-events: auto;
  }
}


/* Menschen-Cards v0.15 ------------------------------------------------- */
/*
 * Unterschiedliche Portraitformate sollen die Karten nicht unterschiedlich
 * hoch werden lassen. Die Bildfläche bekommt deshalb ein einheitliches
 * Portraitformat, das Bild wird darin per object-fit zugeschnitten.
 */

.ing-people-grid {
  align-items: stretch;
}

.ing-person-card,
.ing-dynamic-teaser--person {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.ing-person-card__media,
.ing-dynamic-teaser--person .ing-dynamic-teaser__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  background: var(--ing-surface);
}

.ing-person-card__media img,
.ing-dynamic-teaser--person .ing-dynamic-teaser__media img {
  width: 100%;
  height: 100% !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover;
  object-position: center center;
  display: block;
}

/*
 * Falls die Menschen-Übersicht die generische Card-Struktur nutzt,
 * greifen diese Regeln ebenfalls auf die ersten Bilder innerhalb der Cards.
 */
.post-type-archive-person .wp-block-post-template > li,
.page .ing-person-card {
  height: 100%;
}

.post-type-archive-person .wp-block-post-featured-image,
.page .ing-person-card .wp-block-post-featured-image {
  overflow: hidden;
  aspect-ratio: 4 / 5;
  margin: 0;
}

.post-type-archive-person .wp-block-post-featured-image img,
.page .ing-person-card .wp-block-post-featured-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* Inhalt unterhalb des Bildes gleichmäßiger ausrichten */
.ing-person-card__body,
.ing-dynamic-teaser--person .ing-dynamic-teaser__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

.ing-person-card__more,
.ing-dynamic-teaser--person .ing-dynamic-teaser__more {
  margin-top: auto;
}

/* Optional etwas kompakter auf kleineren Screens */
@media (max-width: 780px) {
  .ing-person-card__media,
  .ing-dynamic-teaser--person .ing-dynamic-teaser__media {
    aspect-ratio: 4 / 4.8;
  }
}


/* Menschen-Cards Fix v0.15.1 ------------------------------------------ */
/*
 * v0.15 hat teilweise auf `.ing-person-card__media` gezielt.
 * Die Menschenübersicht verwendet tatsächlich `.ing-person-card__image`.
 * Deshalb bekommt jetzt der reale Bild-Wrapper selbst das feste Format.
 */

.ing-people-grid {
  align-items: stretch;
}

.ing-people-grid .ing-person-card {
  height: 100%;
}

.ing-people-grid .ing-person-card__link {
  height: 100%;
}

.ing-people-grid .ing-person-card__image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  flex: 0 0 auto;
  background: #eee7df;
}

.ing-people-grid .ing-person-card__image img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center;
  display: block;
}

.ing-people-grid .ing-person-card__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

.ing-people-grid .ing-listing-card__more {
  margin-top: auto;
  padding-top: 22px;
}

/* Auf kleinen Displays bleiben die Portraits etwas kompakter. */
@media (max-width: 640px) {
  .ing-people-grid .ing-person-card__image {
    aspect-ratio: 4 / 4.6;
  }
}


/* Angebots- und Veranstaltungs-Cards v0.15.2 --------------------------- */
/*
 * Die Übersichten für Angebote und Veranstaltungen verwenden beide
 * `.ing-listing-card`. Das Bild bekommt deshalb eine feste 4:3-Fläche,
 * unabhängig von den Abmessungen des Originalbildes.
 */

.ing-offers-listing .ing-listing-grid,
.ing-events-listing .ing-listing-grid {
  align-items: stretch;
}

.ing-offers-listing .ing-listing-card,
.ing-events-listing .ing-listing-card {
  height: 100%;
}

.ing-offers-listing .ing-listing-card__image,
.ing-events-listing .ing-listing-card__image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  flex: 0 0 auto;
  background: #eee7df;
}

.ing-offers-listing .ing-listing-card__image img,
.ing-events-listing .ing-listing-card__image img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center;
  display: block;
}

/* Textbereiche der Cards gleichmäßig aufbauen */
.ing-offers-listing .ing-listing-card__body,
.ing-events-listing .ing-listing-card__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

.ing-offers-listing .ing-listing-card__more,
.ing-events-listing .ing-listing-card__more {
  margin-top: auto;
}

/* Veranstaltungsteaser aus normalen Inhaltsseiten ebenfalls angleichen */
.ing-dynamic-teaser--event .ing-dynamic-teaser__media {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  flex: 0 0 auto;
}

.ing-dynamic-teaser--event .ing-dynamic-teaser__media img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center;
}


/* Footer v0.16 ---------------------------------------------------------- */
.ing-site-footer {
  margin-top: clamp(72px, 10vw, 140px);
  padding: clamp(58px, 7vw, 88px) 24px 26px;
  background: var(--charcoal-olive);
  color: #F7F1E9;
}

.ing-site-footer__inner {
  width: min(1400px, 100%);
  max-width: 1400px !important;
  margin: 0 auto;
}

.ing-site-footer__columns {
  gap: clamp(34px, 5vw, 78px);
  margin-bottom: 54px;
}

.ing-footer-logo {
  margin-bottom: 24px;
}

.ing-footer-logo img {
  width: 96px !important;
  max-width: 96px !important;
  height: auto !important;
  filter: none;
}

.ing-site-footer__headline {
  margin: 0 0 16px;
  color: #F7F1E9;
  font-size: clamp(2rem, 3vw, 3rem);
}

.ing-site-footer__intro {
  max-width: 34rem;
  margin: 0;
  color: rgba(247, 241, 233, .76);
  line-height: 1.65;
}

.ing-footer-label {
  margin: 0 0 18px;
  color: #D9826C;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.ing-footer-navigation,
.ing-footer-legal {
  font-family: "Montserrat", Arial, sans-serif;
}

.ing-footer-navigation .wp-block-navigation__container {
  gap: 7px;
  align-items: flex-start;
}

.ing-footer-navigation .wp-block-navigation-item__content {
  padding: 4px 0;
  color: #F7F1E9;
  text-decoration: none;
}

.ing-footer-navigation .wp-block-navigation-item__content:hover,
.ing-footer-legal .wp-block-navigation-item__content:hover {
  color: #D9826C;
}

.ing-site-footer__contact {
  margin: 0 0 12px;
  color: rgba(247, 241, 233, .78);
  line-height: 1.6;
}

.ing-site-footer__contact a {
  color: #F7F1E9;
  text-decoration-color: rgba(247, 241, 233, .4);
  text-underline-offset: 4px;
}

.ing-site-footer__separator {
  margin: 0 0 24px;
  border-color: rgba(247, 241, 233, .14);
}

.ing-site-footer__bottom {
  gap: 18px 34px;
}

.ing-site-footer__copyright {
  margin: 0;
  color: rgba(247, 241, 233, .56);
  font-size: .86rem;
}

.ing-footer-legal .wp-block-navigation__container {
  gap: 18px;
}

.ing-footer-legal .wp-block-navigation-item__content {
  color: rgba(247, 241, 233, .66);
  font-size: .86rem;
  text-decoration: none;
}

@media (max-width: 900px) {
  .ing-site-footer__columns {
    flex-wrap: wrap !important;
  }

  .ing-site-footer__brand {
    flex-basis: 100% !important;
  }

  .ing-site-footer__columns > .wp-block-column:not(.ing-site-footer__brand) {
    flex-basis: calc(33.333% - 24px) !important;
  }
}

@media (max-width: 640px) {
  .ing-site-footer {
    margin-top: 64px;
    padding: 48px 20px 24px;
  }

  .ing-site-footer__columns {
    display: block;
    margin-bottom: 38px;
  }

  .ing-site-footer__columns > .wp-block-column {
    width: 100% !important;
    margin-bottom: 34px;
  }

  .ing-site-footer__bottom {
    display: block;
  }

  .ing-footer-legal {
    margin-top: 16px;
  }

  .ing-footer-legal .wp-block-navigation__container {
    gap: 10px 18px;
  }
}


/* Footer klassisch v0.16.1 --------------------------------------------- */
.ing-site-footer--classic {
  margin-top: clamp(72px, 9vw, 130px);
  padding: clamp(64px, 7vw, 92px) 24px;
  background: #E9DCCF;
  color: #5E5751;
}

.ing-site-footer--classic .ing-site-footer__inner {
  width: min(1240px, 100%);
  max-width: 1240px !important;
}

.ing-site-footer--classic .ing-site-footer__columns--classic {
  gap: clamp(44px, 6vw, 88px);
  margin: 0;
}

.ing-site-footer--classic .ing-site-footer__links {
  align-self: stretch;
  display: flex;
  align-items: center;
}

.ing-site-footer--classic .ing-footer-navigation--classic .wp-block-navigation__container {
  gap: 12px;
  align-items: flex-start;
}

.ing-site-footer--classic .ing-footer-navigation--classic .wp-block-navigation-item__content {
  padding: 2px 0;
  color: #5E5751;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.06rem;
  line-height: 1.45;
  text-decoration: none;
}

.ing-site-footer--classic .ing-footer-navigation--classic .wp-block-navigation-item__content:hover {
  color: var(--ing-terracotta-dark);
}

.ing-site-footer--classic .ing-site-footer__center {
  text-align: center;
}

.ing-site-footer--classic .ing-footer-logo--classic {
  width: 170px !important;
  margin: 0 auto 34px;
}

.ing-site-footer--classic .ing-footer-logo--classic img {
  width: 170px !important;
  max-width: 170px !important;
  height: auto !important;
}

.ing-site-footer--classic .ing-footer-socials {
  margin: 0 0 32px;
  gap: 22px;
}

.ing-site-footer--classic .ing-footer-socials .wp-social-link {
  color: #5E5751;
  background: transparent !important;
}

.ing-site-footer--classic .ing-footer-socials .wp-social-link a {
  padding: 0;
}

.ing-site-footer--classic .ing-footer-socials svg {
  width: 28px;
  height: 28px;
}

.ing-site-footer--classic .ing-footer-legal--classic .wp-block-navigation__container {
  gap: 24px;
  justify-content: center;
}

.ing-site-footer--classic .ing-footer-legal--classic .wp-block-navigation-item__content {
  color: #5E5751;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1rem;
  text-decoration: none;
}

.ing-site-footer--classic .ing-footer-legal--classic .wp-block-navigation-item__content:hover {
  color: var(--ing-terracotta-dark);
}

.ing-site-footer--classic .ing-site-footer__address {
  text-align: right;
}

.ing-site-footer--classic .ing-site-footer__institution {
  margin: 0 0 22px;
  color: #403A36;
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: .04em;
}

.ing-site-footer--classic .ing-site-footer__address p {
  margin: 0 0 18px;
  color: #5E5751;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1rem;
  line-height: 1.55;
}

.ing-site-footer--classic .ing-site-footer__address a {
  color: inherit;
  text-decoration: none;
}

.ing-site-footer--classic .ing-site-footer__address a:hover {
  color: var(--ing-terracotta-dark);
}

@media (max-width: 900px) {
  .ing-site-footer--classic .ing-site-footer__columns--classic {
    flex-wrap: wrap !important;
  }

  .ing-site-footer--classic .ing-site-footer__links,
  .ing-site-footer--classic .ing-site-footer__center,
  .ing-site-footer--classic .ing-site-footer__address {
    flex-basis: 100% !important;
    text-align: center;
  }

  .ing-site-footer--classic .ing-site-footer__links {
    justify-content: center;
  }

  .ing-site-footer--classic .ing-footer-navigation--classic .wp-block-navigation__container {
    align-items: center;
  }

  .ing-site-footer--classic .ing-site-footer__address {
    margin-top: 24px;
  }
}

@media (max-width: 640px) {
  .ing-site-footer--classic {
    padding: 50px 20px;
  }

  .ing-site-footer--classic .ing-footer-logo--classic,
  .ing-site-footer--classic .ing-footer-logo--classic img {
    width: 145px !important;
    max-width: 145px !important;
  }
}


/* Footer Breite v0.16.2 ------------------------------------------------ */
.ing-site-footer--classic .ing-site-footer__inner {
  width: min(1480px, calc(100% - 48px));
  max-width: 1480px !important;
}

.ing-site-footer--classic .ing-site-footer__columns--classic {
  gap: clamp(64px, 7vw, 110px);
}

.ing-site-footer--classic .ing-site-footer__links {
  flex-basis: 32% !important;
}

.ing-site-footer--classic .ing-site-footer__center {
  flex-basis: 36% !important;
}

.ing-site-footer--classic .ing-site-footer__address {
  flex-basis: 32% !important;
}

.ing-site-footer--classic .ing-site-footer__address p {
  max-width: 360px;
  margin-left: auto;
}

.ing-site-footer--classic .ing-footer-navigation--classic .wp-block-navigation__container {
  max-width: 330px;
}

@media (max-width: 1100px) {
  .ing-site-footer--classic .ing-site-footer__inner {
    width: min(1240px, calc(100% - 40px));
  }

  .ing-site-footer--classic .ing-site-footer__columns--classic {
    gap: 44px;
  }
}


/* Footer Wide Fix v0.16.3 ---------------------------------------------- */
/*
 * Der Footer-Inner-Block war trotz größerer width weiterhin durch das
 * Gutenberg-"constrained"-Layout begrenzt. Deshalb blieb die sichtbare
 * Dreispaltenstruktur schmal.
 */

.ing-site-footer--classic > .ing-site-footer__inner {
  width: min(1480px, calc(100% - 48px)) !important;
  max-width: 1480px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Direkte Inhalte des Footer-Inners dürfen die volle Footer-Breite nutzen */
.ing-site-footer--classic .ing-site-footer__inner > .ing-site-footer__columns--classic,
.ing-site-footer--classic .ing-site-footer__inner > .wp-block-columns {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Die Columns selbst nicht erneut durch Theme-Layout begrenzen */
.ing-site-footer--classic .ing-site-footer__columns--classic {
  width: 100% !important;
  max-width: none !important;
}

/* Auf großen Screens etwas großzügiger verteilen */
@media (min-width: 1200px) {
  .ing-site-footer--classic .ing-site-footer__columns--classic {
    gap: clamp(70px, 6vw, 120px) !important;
  }
}


/* Shortcode-Card Bildhöhen v0.16.4 ------------------------------------- */
/*
 * Dynamische Shortcode-Cards verwenden `.ing-dynamic-teaser`.
 * Die Bildhöhe wird ab jetzt immer vom Bild-Container bestimmt,
 * niemals von den Originalabmessungen des Bildes.
 */

.ing-dynamic-grid {
  align-items: stretch;
}

.ing-dynamic-grid .ing-dynamic-teaser {
  height: 100%;
}

.ing-dynamic-grid .ing-dynamic-teaser__link {
  height: 100%;
  min-height: 0;
}

/* Einheitliche Bildfläche für Event-Cards: 4:3 */
.ing-dynamic-teaser--event .ing-dynamic-teaser__media {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  flex: 0 0 auto;
  background: #eee7df;
}

/* Einheitliche Bildfläche für Personen-Cards: 4:5 */
.ing-dynamic-teaser--person .ing-dynamic-teaser__media {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  flex: 0 0 auto;
  background: #eee7df;
}

/* Das eigentliche Bild füllt nur noch den definierten Container */
.ing-dynamic-teaser--event .ing-dynamic-teaser__media img,
.ing-dynamic-teaser--person .ing-dynamic-teaser__media img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center;
  display: block;
}

/* Body füllt den verbleibenden Card-Bereich */
.ing-dynamic-grid .ing-dynamic-teaser__body {
  min-height: 0;
  flex: 1 1 auto;
}

.ing-dynamic-grid .ing-dynamic-teaser__more {
  margin-top: auto;
}

/*
 * Standalone-Teaser außerhalb eines Grids bleiben zweispaltig,
 * werden aber ebenfalls nicht mehr von der Originalbildhöhe beeinflusst.
 */
@media (min-width: 901px) {
  .ing-dynamic-teaser:not(.ing-dynamic-grid .ing-dynamic-teaser)
  .ing-dynamic-teaser__media {
    min-height: 0;
  }
}


/* Personen-Cards in Shortcodes v0.16.5 --------------------------------- */
/*
 * Die Personen-Cards am Ende von Angebot/Veranstaltung werden NICHT über
 * `.ing-people-grid`, sondern über `.ing-people__grid` gerendert.
 * Deshalb griffen die bisherigen Bildhöhen-Regeln dort noch nicht.
 */

.ing-people__grid {
  align-items: stretch;
}

.ing-people__grid .ing-person-card {
  height: 100%;
}

.ing-people__grid .ing-person-card > a,
.ing-people__grid .ing-person-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.ing-people__grid .ing-person-card__image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  flex: 0 0 auto;
  background: #eee7df;
}

.ing-people__grid .ing-person-card__image img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center;
  display: block;
}

.ing-people__grid .ing-person-card__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

@media (max-width: 640px) {
  .ing-people__grid .ing-person-card__image {
    aspect-ratio: 4 / 4.6;
  }
}


/* Related Cards auf Personenseiten v0.16.6 ----------------------------- */
/*
 * Die Cards unter „Mit [Name] arbeiten“ und „Mit [Name] erleben“ werden
 * über `.ing-related-card` gerendert. Dort war bisher nur das IMG selbst
 * auf 4:3 gesetzt – der Wrapper hatte keine feste Höhe.
 */

.ing-related-grid {
  align-items: stretch;
}

.ing-related-card {
  height: 100%;
}

.ing-related-card > a {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.ing-related-card__image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  flex: 0 0 auto;
  background: #eee7df;
}

.ing-related-card__image img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center;
  display: block;
}

.ing-related-card__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

.ing-related-card__meta {
  margin-top: auto;
  padding-top: 16px;
}


/* Farbpalette der bisherigen Website v0.17 ----------------------------- */
:root {
  --dawn-orange: #ece0d5;
  --soft-cream: #f5f2ed;
  --deep-sage: #7d8c7b;
  --pastel-yellow: #c3c3b1;
  --earthy-clay: #b86d52;
  --warm-terracotta: #ad5745;
  --grey-orange: #c79c8d;
  --light-orange: #dad0c9;
  --charcoal-olive: #2f332e;
  --dusty-rose: #c48b82;
  --grey-green: #657363;
  --deep-sea-slate: #4a7a8c;
  --pearl-bone: #fcfaf7;
  --ghost-white: #f9f9f9;

  /* Semantische ING-Aliase */
  --ing-bg: var(--soft-cream);
  --ing-surface: var(--pearl-bone);
  --ing-muted: var(--grey-green);
  --ing-terracotta: var(--earthy-clay);
  --ing-terracotta-dark: var(--warm-terracotta);
  --ing-line: var(--light-orange);

  /* Rückwärtskompatibilität */
  --ing-accent: var(--ing-terracotta);
  --ing-accent-dark: var(--ing-terracotta-dark);
}

/* Grundflächen */
body,
.wp-site-blocks,
.editor-styles-wrapper {
  background: var(--soft-cream);
  color: var(--charcoal-olive);
}

.ing-site-header {
  background: color-mix(in srgb, var(--soft-cream) 96%, transparent);
  border-bottom-color: var(--light-orange);
}

.ing-site-footer--classic {
  background: var(--dawn-orange);
  color: var(--grey-green);
}

/* Typografie & Akzente */
h1, h2, h3, h4, h5, h6,
.wp-block-heading {
  color: var(--charcoal-olive);
}

.ing-eyebrow,
.ing-title-accent,
.ing-dynamic-teaser__more,
.ing-listing-card__more,
.ing-related-card__meta {
  color: var(--warm-terracotta) !important;
}

.wp-block-button__link,
.ing-main-navigation .ing-nav-cta > .wp-block-navigation-item__content,
.ing-video-consent__button {
  background: var(--earthy-clay);
}

.wp-block-button__link:hover,
.ing-main-navigation .ing-nav-cta > .wp-block-navigation-item__content:hover,
.ing-video-consent__button:hover,
.ing-video-consent__button:focus-visible {
  background: var(--warm-terracotta);
}

/* Warme Flächen */
.ing-pattern-cta,
.ing-info-box,
.ing-dynamic-teaser,
.ing-listing-card,
.ing-related-card,
.ing-person-card {
  background: var(--pearl-bone);
  border-color: var(--light-orange);
}

.ing-statement {
  background: var(--dawn-orange);
}

.ing-info-box {
  border-left-color: var(--earthy-clay);
}

/* Navigation */
.ing-main-navigation .wp-block-navigation-item:not(.ing-nav-cta) > .wp-block-navigation-item__content::after {
  background: var(--earthy-clay);
}

.ing-main-navigation .wp-block-navigation__submenu-container {
  background: var(--pearl-bone);
  border-color: var(--light-orange);
}

.ing-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.ing-main-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content {
  background: var(--dawn-orange);
  color: var(--warm-terracotta);
}

/* Footer */
.ing-site-footer--classic .ing-footer-navigation--classic .wp-block-navigation-item__content,
.ing-site-footer--classic .ing-footer-legal--classic .wp-block-navigation-item__content,
.ing-site-footer--classic .ing-site-footer__address p,
.ing-site-footer--classic .ing-site-footer__address a {
  color: var(--grey-green);
}

.ing-site-footer--classic .ing-site-footer__institution {
  color: var(--charcoal-olive);
}

/* ING-Stilvarianten neu belegt */
.is-style-ing-primary,
.ing-pattern-cta.is-style-ing-primary,
.ing-info-box.is-style-ing-primary,
.ing-statement.is-style-ing-primary,
.ing-hero.is-style-ing-primary {
  background: var(--earthy-clay);
  color: #fff;
}

.is-style-ing-dark,
.ing-pattern-cta.is-style-ing-dark,
.ing-info-box.is-style-ing-dark,
.ing-statement.is-style-ing-dark,
.ing-hero.is-style-ing-dark {
  background: var(--charcoal-olive);
  color: #fff;
}

.is-style-ing-body,
.ing-pattern-cta.is-style-ing-body,
.ing-info-box.is-style-ing-body,
.ing-statement.is-style-ing-body,
.ing-hero.is-style-ing-body {
  background: var(--deep-sage);
  color: #fff;
}

.is-style-ing-heart,
.ing-pattern-cta.is-style-ing-heart,
.ing-info-box.is-style-ing-heart,
.ing-statement.is-style-ing-heart,
.ing-hero.is-style-ing-heart {
  background: var(--dusty-rose);
  color: var(--charcoal-olive);
}

.is-style-ing-mind,
.ing-pattern-cta.is-style-ing-mind,
.ing-info-box.is-style-ing-mind,
.ing-statement.is-style-ing-mind,
.ing-hero.is-style-ing-mind {
  background: var(--deep-sea-slate);
  color: #fff;
}

.is-style-ing-spirit,
.ing-pattern-cta.is-style-ing-spirit,
.ing-info-box.is-style-ing-spirit,
.ing-statement.is-style-ing-spirit,
.ing-hero.is-style-ing-spirit {
  background: var(--pastel-yellow);
  color: var(--charcoal-olive);
}


/* Veranstaltungs-Funnel v0.18 ----------------------------------------- */














/* Content beginnt nach der Entscheidungsleiste ruhiger. */
.single-veranstaltung .ing-content-shell {
  margin-top: 0;
}

/* Person bewusst vor den sachlichen Praxisdaten. */
.single-veranstaltung .ing-people {
  margin-top: 70px;
}

.single-veranstaltung .ing-event-practical {
  margin-top: 58px;
}

/* Finaler CTA darf etwas stärker als Abschluss wirken. */
.single-veranstaltung .ing-event-booking {
  margin-top: 74px;
}






/* Veranstaltungs-Funnel Feinschliff v0.18.1 ---------------------------- */

/* Oberer Buchungs-CTA: kleiner, ruhiger, sauber zentriert */








/*
 * Der Abschlussbereich wird als zusammengehörige Entscheidungzone behandelt,
 * statt drei voneinander losgelöste Blöcke untereinander zu stapeln.
 */
.ing-event-closing-shell {
  width: min(1180px, calc(100% - 40px));
  max-width: 1180px !important;
  margin: 78px auto 0;
  display: grid;
  grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr);
  gap: 28px;
  align-items: stretch;
}

/* WordPress-Constrained-Regeln innerhalb dieses Bereichs neutralisieren */
.wp-block-post-content + .ing-event-closing-shell,
.ing-event-closing-shell > * {
  max-width: none !important;
}

.ing-event-closing-shell .ing-people,
.ing-event-closing-shell .ing-event-practical,
.ing-event-closing-shell .ing-event-booking {
  width: 100%;
  max-width: none;
  margin: 0;
}

/* Gemeinsame Flächensprache für Vertrauen + praktische Infos */
.ing-event-closing-shell .ing-people,
.ing-event-closing-shell .ing-event-practical {
  padding: 30px;
  border: 1px solid var(--light-orange);
  border-radius: var(--ing-radius);
  background: var(--pearl-bone);
  box-shadow: 0 12px 34px rgba(47, 51, 46, .045);
}

.ing-event-closing-shell .ing-people h2,
.ing-event-closing-shell .ing-event-practical h2 {
  margin: 0 0 22px;
  font-size: clamp(1.7rem, 2.3vw, 2.2rem);
}

/* Person kompakter und horizontal statt winziger Einzelkarte */
.ing-event-closing-shell .ing-people__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.ing-event-closing-shell .ing-person-card {
  border: 0;
  border-radius: 12px;
  box-shadow: none;
  background: var(--soft-cream);
  overflow: hidden;
}

.ing-event-closing-shell .ing-person-card > a {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  min-height: 164px;
  height: auto;
  color: inherit;
  text-decoration: none;
}

.ing-event-closing-shell .ing-person-card__image {
  width: 132px;
  height: 164px;
  aspect-ratio: auto;
  border-radius: 0;
}

.ing-event-closing-shell .ing-person-card__body {
  justify-content: center;
  padding: 20px 22px;
}

.ing-event-closing-shell .ing-person-card__name {
  margin: 0 0 8px;
  font-size: 1.35rem;
}

.ing-event-closing-shell .ing-person-card__role {
  margin: 0;
}

/* Praktische Infos lesen sich als ein Block, Tags sind nur Sekundärinfos */
.ing-event-closing-shell .ing-event-practical__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.ing-event-closing-shell .ing-event-practical__item {
  padding: 18px 20px;
  border-radius: 12px;
  background: var(--soft-cream);
}

.ing-event-closing-shell .ing-event-practical__item h3 {
  margin: 0 0 8px;
  font-size: 1.05rem;
}

.ing-event-closing-shell .ing-event-practical__item p {
  margin: 0;
  line-height: 1.55;
}

.ing-event-closing-shell .ing-event-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.ing-event-closing-shell .ing-event-flags li {
  margin: 0;
  padding: 7px 11px;
  border: 1px solid var(--light-orange);
  border-radius: 999px;
  background: transparent;
  color: var(--grey-green);
  font-size: .78rem;
  line-height: 1.2;
}

/* Finaler CTA hängt optisch an der Entscheidungzone und wirkt kompakter */
.ing-event-closing-shell .ing-event-booking {
  grid-column: 1 / -1;
  margin-top: 2px;
  padding: 30px 34px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(290px, .85fr);
  gap: 24px 36px;
  align-items: center;
  border-radius: var(--ing-radius);
  background: var(--earthy-clay);
  color: var(--pearl-bone);
}

.ing-event-closing-shell .ing-event-booking__intro {
  align-self: center;
}

.ing-event-closing-shell .ing-event-booking__intro .ing-eyebrow,
.ing-event-closing-shell .ing-event-booking__intro h2,
.ing-event-closing-shell .ing-event-booking__intro p {
  color: var(--pearl-bone) !important;
}

.ing-event-closing-shell .ing-event-booking__intro h2 {
  margin: 0 0 8px;
}

.ing-event-closing-shell .ing-event-booking__intro p:last-child {
  margin-bottom: 0;
}

.ing-event-closing-shell .ing-event-booking__options {
  display: grid;
  gap: 10px;
  align-self: center;
}

.ing-event-closing-shell .ing-booking-option {
  margin: 0;
  padding: 14px 16px;
  border: 1px solid rgba(252, 250, 247, .2);
  border-radius: 10px;
  background: rgba(252, 250, 247, .10);
}

.ing-event-closing-shell .ing-booking-option strong,
.ing-event-closing-shell .ing-booking-option__price {
  color: var(--pearl-bone);
}

.ing-event-closing-shell .ing-booking-option .ing-button,
.ing-event-closing-shell .ing-button--contact {
  min-height: 42px;
  padding: 9px 16px;
  border-radius: 9px;
  background: var(--pearl-bone);
  color: var(--warm-terracotta);
  text-align: center;
}

.ing-event-closing-shell .ing-button--contact {
  grid-column: 2;
  justify-self: start;
  margin-top: 0;
}

/* Related Offer bewusst aus dem primären Buchungsfunnel entfernt. */
.single-veranstaltung .ing-event-related-offer {
  display: none;
}

@media (max-width: 900px) {
  

  

  .ing-event-closing-shell {
    grid-template-columns: 1fr;
  }

  .ing-event-closing-shell .ing-event-booking {
    grid-template-columns: 1fr;
  }

  .ing-event-closing-shell .ing-button--contact {
    grid-column: 1;
  }
}

@media (max-width: 640px) {
  .ing-event-closing-shell {
    width: calc(100% - 28px);
    margin-top: 54px;
    gap: 18px;
  }

  .ing-event-closing-shell .ing-people,
  .ing-event-closing-shell .ing-event-practical,
  .ing-event-closing-shell .ing-event-booking {
    padding: 22px;
  }

  .ing-event-closing-shell .ing-person-card > a {
    grid-template-columns: 96px minmax(0, 1fr);
    min-height: 124px;
  }

  .ing-event-closing-shell .ing-person-card__image {
    width: 96px;
    height: 124px;
  }

  .ing-event-closing-shell .ing-person-card__body {
    padding: 16px;
  }

  
}


/* Veranstaltungs-Funnel Feinschliff v0.18.2 ---------------------------- */

/* Obere Entscheidungsleiste: keine farbige Abschlusszelle mehr */








/* Abschlussbereich: echtes Zwei-Spalten-Grid ohne Überlappungen */
.ing-event-closing-shell {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  column-gap: 24px;
  row-gap: 24px;
}

.ing-event-closing-shell > * {
  min-width: 0;
  box-sizing: border-box;
}

.ing-event-closing-shell .ing-people,
.ing-event-closing-shell .ing-event-practical {
  overflow: hidden;
}

.ing-event-closing-shell .ing-people {
  grid-column: 1;
}

.ing-event-closing-shell .ing-event-practical {
  grid-column: 2;
}

.ing-event-closing-shell .ing-person-card {
  width: 100%;
  max-width: none;
}

.ing-event-closing-shell .ing-person-card > a {
  grid-template-columns: 118px minmax(0, 1fr);
}

.ing-event-closing-shell .ing-person-card__image {
  width: 118px;
  height: 148px;
}

.ing-event-closing-shell .ing-person-card__body {
  min-width: 0;
}

/* Finaler Störer: Button optisch wie echter CTA statt Fremdkörper */
.ing-event-closing-shell .ing-event-booking {
  grid-column: 1 / -1;
}

.ing-event-closing-shell .ing-booking-option .ing-button,
.ing-event-closing-shell .ing-button--contact {
  display: inline-flex;
  width: auto;
  min-width: 0;
  min-height: 44px;
  padding: 10px 18px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--pearl-bone);
  color: var(--warm-terracotta);
  font-weight: 750;
  line-height: 1.1;
  box-shadow: none;
}

.ing-event-closing-shell .ing-booking-option .ing-button:hover,
.ing-event-closing-shell .ing-button--contact:hover {
  background: var(--ghost-white);
  color: var(--charcoal-olive);
}

/* Wenn nur ein Button vorhanden ist, soll er nicht verloren in der Box stehen */
.ing-event-closing-shell .ing-event-booking__options {
  justify-items: start;
}

@media (max-width: 900px) {
  

  .ing-event-closing-shell {
    grid-template-columns: 1fr;
  }

  .ing-event-closing-shell .ing-people,
  .ing-event-closing-shell .ing-event-practical,
  .ing-event-closing-shell .ing-event-booking {
    grid-column: 1;
  }
}

@media (max-width: 640px) {
  .ing-event-closing-shell .ing-booking-option .ing-button,
.ing-event-closing-shell .ing-button--contact{
    width: 100%;
  }
}


/* Event Content + Button BR Fix v0.18.4 -------------------------------- */


/*
 * Defensive Korrektur: Falls WordPress/Block-Rendering in einem CTA
 * ein führendes <br> erzeugt, darf es das Buttonlayout nicht verändern.
 */
.ing-button > br:first-child,
.wp-block-button__link > br:first-child,
.ing-event-booking a > br:first-child{
  display: none !important;
}

/* Buttons immer über Flex zentrieren – unabhängig von enthaltenem Markup. */
.ing-button,
.ing-event-closing-shell .ing-booking-option .ing-button,
.ing-event-closing-shell .ing-button--contact{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1.15 !important;
  vertical-align: middle;
}


/* Veranstaltungs-Abschluss v0.18.5 ------------------------------------- */

/* Vertrauen: Personenbox soll inhaltlich tragen, nicht leer wirken. */
.ing-event-closing-shell .ing-people {
  align-self: start;
}

.ing-event-closing-shell .ing-event-practical {
  align-self: start;
}

.ing-event-closing-shell .ing-person-card > a {
  grid-template-columns: 168px minmax(0, 1fr);
  min-height: 210px;
}

.ing-event-closing-shell .ing-person-card__image {
  width: 168px;
  height: 210px;
}

.ing-event-closing-shell .ing-person-card__body {
  justify-content: center;
  padding: 24px 26px;
}

.ing-event-closing-shell .ing-person-card__short {
  margin: 12px 0 0;
  color: var(--grey-green);
  font-size: .92rem;
  line-height: 1.55;
}

.ing-event-closing-shell .ing-person-card__more {
  display: inline-block;
  margin-top: 16px;
  color: var(--warm-terracotta);
  font-size: .86rem;
  font-weight: 750;
}

/* Praktische Fakten: mehr Daten, aber bewusst als sekundäre Chips. */
.ing-event-closing-shell .ing-event-flags {
  margin-top: 22px;
}

.ing-event-closing-shell .ing-event-flags li {
  padding: 7px 12px;
  background: var(--pearl-bone);
}

/* Finaler Störer bewusst maximal einfach: Aussage + CTA. */
.ing-event-closing-shell .ing-event-booking {
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 0;
  padding: 32px 36px;
}

.ing-event-closing-shell .ing-event-booking__intro h2 {
  max-width: 22ch;
  margin: 0;
  font-size: clamp(1.9rem, 3vw, 2.7rem);
  line-height: 1.05;
}

.ing-event-closing-shell .ing-event-booking__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
}

.ing-event-closing-shell .ing-event-booking__actions .ing-button {
  display: inline-flex !important;
  width: auto;
  min-height: 46px;
  padding: 11px 19px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--pearl-bone);
  color: var(--warm-terracotta);
  font-weight: 750;
  line-height: 1.1;
  text-align: center;
  white-space: nowrap;
}

.ing-event-closing-shell .ing-event-booking__actions .ing-button:hover {
  background: var(--ghost-white);
  color: var(--charcoal-olive);
}

/* Altes Options-Markup wird nicht mehr verwendet. */
.ing-event-closing-shell .ing-event-booking__options,
.ing-event-closing-shell .ing-booking-option {
  display: none;
}

@media (max-width: 900px) {
  .ing-event-closing-shell .ing-event-booking {
    grid-template-columns: 1fr;
  }

  .ing-event-closing-shell .ing-event-booking__actions {
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .ing-event-closing-shell .ing-person-card > a {
    grid-template-columns: 110px minmax(0, 1fr);
    min-height: 145px;
  }

  .ing-event-closing-shell .ing-person-card__image {
    width: 110px;
    height: 145px;
  }

  .ing-event-closing-shell .ing-person-card__body {
    padding: 16px;
  }

  .ing-event-closing-shell .ing-person-card__short {
    display: none;
  }

  .ing-event-closing-shell .ing-event-booking__actions .ing-button {
    width: 100%;
  }
}


/* Raumhalter-Person v0.18.6 -------------------------------------------- */
/*
 * Die Personenbox soll dieselbe Höhe wie "Praktische Informationen" haben.
 * Das Portrait wird dabei zum tragenden visuellen Element, statt wie ein
 * kleines Bild in einer großen Fläche zu wirken.
 */
.ing-event-closing-shell {
  align-items: stretch;
}

.ing-event-closing-shell .ing-people,
.ing-event-closing-shell .ing-event-practical {
  align-self: stretch;
  height: 100%;
}

.ing-event-closing-shell .ing-people {
  display: flex;
  flex-direction: column;
}

.ing-event-closing-shell .ing-people__grid {
  flex: 1 1 auto;
  min-height: 0;
}

.ing-event-closing-shell .ing-person-card {
  height: 100%;
}

.ing-event-closing-shell .ing-person-card > a {
  display: grid;
  grid-template-columns: minmax(220px, 46%) minmax(0, 1fr);
  height: 100%;
  min-height: 0;
}

.ing-event-closing-shell .ing-person-card__image {
  width: 100%;
  height: 100%;
  min-height: 260px;
  aspect-ratio: auto;
}

.ing-event-closing-shell .ing-person-card__image img {
  object-position: center 18%;
}

.ing-event-closing-shell .ing-person-card__body {
  justify-content: center;
  padding: 30px 28px;
}

.ing-event-closing-shell .ing-person-card__name {
  margin: 0 0 8px;
  font-size: clamp(1.45rem, 2vw, 1.8rem);
}

.ing-event-closing-shell .ing-person-card__role {
  margin: 0;
}

.ing-event-closing-shell .ing-person-card__more {
  margin-top: 22px;
}

/* Alte Kurzbeschreibung ist für diesen Bereich bewusst entfernt. */
.ing-event-closing-shell .ing-person-card__short {
  display: none !important;
}

@media (max-width: 900px) {
  .ing-event-closing-shell .ing-people,
  .ing-event-closing-shell .ing-event-practical {
    height: auto;
  }

  .ing-event-closing-shell .ing-person-card > a {
    grid-template-columns: 180px minmax(0, 1fr);
    min-height: 220px;
    height: auto;
  }

  .ing-event-closing-shell .ing-person-card__image {
    min-height: 220px;
  }
}

@media (max-width: 640px) {
  .ing-event-closing-shell .ing-person-card > a {
    grid-template-columns: 120px minmax(0, 1fr);
    min-height: 150px;
  }

  .ing-event-closing-shell .ing-person-card__image {
    min-height: 150px;
  }

  .ing-event-closing-shell .ing-person-card__body {
    padding: 18px;
  }
}


/* Abschlussbereich 1/3 + 2/3 v0.18.7 ---------------------------------- */
.ing-event-closing-shell {
  grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr);
  align-items: stretch;
}

.ing-event-closing-shell .ing-people,
.ing-event-closing-shell .ing-event-practical {
  height: 100%;
}

.ing-event-closing-shell .ing-people {
  grid-column: 1;
}

.ing-event-closing-shell .ing-event-practical {
  grid-column: 2;
}

/* Person kompakt genug für die schmalere 1/3-Spalte */
.ing-event-closing-shell .ing-person-card > a {
  grid-template-columns: 1fr;
  height: 100%;
}

.ing-event-closing-shell .ing-person-card__image {
  width: 100%;
  height: 240px;
  min-height: 240px;
  aspect-ratio: auto;
}

.ing-event-closing-shell .ing-person-card__image img {
  object-fit: cover;
  object-position: center 18%;
}

.ing-event-closing-shell .ing-person-card__body {
  padding: 24px 26px 28px;
  justify-content: flex-start;
}

.ing-event-closing-shell .ing-person-card__more {
  margin-top: 18px;
}

/* Tags deutlich lesbarer */
.ing-event-closing-shell .ing-event-flags li {
  color: var(--charcoal-olive) !important;
  border-color: #cfc6bd;
  background: #fcfaf7;
  font-size: .82rem;
  font-weight: 600;
}

/* Sekundärinfos in den praktischen Infos ebenfalls etwas kräftiger */
.ing-event-closing-shell .ing-event-practical {
  color: var(--charcoal-olive);
}

.ing-event-closing-shell .ing-event-practical__item p {
  color: var(--charcoal-olive);
}

@media (max-width: 900px) {
  .ing-event-closing-shell {
    grid-template-columns: 1fr;
  }

  .ing-event-closing-shell .ing-people,
  .ing-event-closing-shell .ing-event-practical {
    grid-column: 1;
    height: auto;
  }

  .ing-event-closing-shell .ing-person-card__image {
    height: 260px;
    min-height: 260px;
  }
}


/* Angebots-Funnel v0.19 ------------------------------------------------- */

/* Meta-Leiste mit einfachem CTA rechts */
.single-angebot .ing-offer-meta__grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  align-items: stretch;
}

.single-angebot .ing-offer-meta__item {
  min-height: 104px;
}

.single-angebot .ing-offer-meta__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px 18px;
  background: transparent;
}

.single-angebot .ing-offer-meta__cta .ing-button {
  display: inline-flex !important;
  width: auto;
  min-height: 44px;
  padding: 10px 18px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--earthy-clay);
  color: #fff;
  font-weight: 750;
  line-height: 1.15;
  text-align: center;
  white-space: nowrap;
}

.single-angebot .ing-offer-meta__cta .ing-button:hover {
  background: var(--warm-terracotta);
  color: #fff;
}

/* Zusammenhängender Abschlussbereich */
.single-angebot .ing-offer-closing-shell {
  width: min(1180px, calc(100% - 40px));
  max-width: 1180px !important;
  margin: 72px auto 0;
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr);
  gap: 24px;
  align-items: stretch;
}

.single-angebot .ing-offer-closing-shell > * {
  min-width: 0;
  max-width: none !important;
  box-sizing: border-box;
}

/* Hinweis = 2/3, Begleitung = 1/3 */
.single-angebot .ing-note {
  grid-column: 2;
  width: 100%;
  margin: 0;
  padding: 30px;
  border: 1px solid var(--light-orange);
  border-left: 1px solid var(--light-orange);
  border-radius: var(--ing-radius);
  background: var(--pearl-bone);
  box-shadow: 0 12px 34px rgba(47, 51, 46, .045);
}

.single-angebot .ing-note h2 {
  margin: 0 0 14px;
  font-size: clamp(1.7rem, 2.3vw, 2.2rem);
}

.single-angebot .ing-note p {
  margin: 0;
  color: var(--charcoal-olive);
  line-height: 1.65;
}

.single-angebot .ing-people {
  grid-column: 1;
  width: 100%;
  margin: 0;
  padding: 30px;
  border: 1px solid var(--light-orange);
  border-radius: var(--ing-radius);
  background: var(--pearl-bone);
  box-shadow: 0 12px 34px rgba(47, 51, 46, .045);
}

.single-angebot .ing-people h2 {
  margin: 0 0 8px;
  font-size: clamp(1.7rem, 2.3vw, 2.2rem);
}

.single-angebot .ing-people__intro {
  margin: 0 0 18px;
  color: var(--grey-green);
}

/* Begleitperson in der schmalen Spalte: Bild vollflächiger */
.single-angebot .ing-people__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.single-angebot .ing-person-card {
  height: 100%;
  border: 0;
  border-radius: 12px;
  box-shadow: none;
  background: var(--soft-cream);
  overflow: hidden;
}

.single-angebot .ing-person-card > a {
  display: grid;
  grid-template-columns: 1fr;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.single-angebot .ing-person-card__image {
  width: 100%;
  height: 240px;
  min-height: 240px;
  aspect-ratio: auto;
}

.single-angebot .ing-person-card__image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 18%;
}

.single-angebot .ing-person-card__body {
  padding: 22px 24px 26px;
}

/* Finaler CTA */
.single-angebot .ing-offer-booking {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px 36px;
  margin: 0;
  padding: 30px 34px;
  border-radius: var(--ing-radius);
  background: var(--earthy-clay);
  color: var(--pearl-bone);
}

.single-angebot .ing-offer-booking__copy {
  min-width: 0;
}

.single-angebot .ing-offer-booking .ing-eyebrow,
.single-angebot .ing-offer-booking h2 {
  color: var(--pearl-bone) !important;
}

.single-angebot .ing-offer-booking h2 {
  margin: 0;
}

.single-angebot .ing-offer-booking .ing-button {
  display: inline-flex !important;
  width: auto;
  min-height: 44px;
  padding: 10px 18px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--pearl-bone);
  color: var(--warm-terracotta);
  font-weight: 750;
  line-height: 1.15;
  text-align: center;
  white-space: nowrap;
}

.single-angebot .ing-offer-booking .ing-button:hover {
  background: var(--ghost-white);
  color: var(--charcoal-olive);
}

/* Defensive BR-Korrektur analog Veranstaltungen */
.single-angebot .ing-button > br:first-child,
.single-angebot .ing-offer-meta__cta a > br:first-child,
.single-angebot .ing-offer-booking a > br:first-child {
  display: none !important;
}

@media (max-width: 1050px) {
  .single-angebot .ing-offer-meta__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .single-angebot .ing-offer-meta__cta {
    grid-column: 1 / -1;
    justify-content: flex-start;
    border-top: 1px solid var(--light-orange);
  }
}

@media (max-width: 900px) {
  .single-angebot .ing-offer-closing-shell {
    grid-template-columns: 1fr;
  }

  .single-angebot .ing-note,
  .single-angebot .ing-people,
  .single-angebot .ing-offer-booking {
    grid-column: 1;
  }

  .single-angebot .ing-offer-booking {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 640px) {
  .single-angebot .ing-offer-content-shell,
  .single-angebot .ing-offer-closing-shell {
    width: calc(100% - 28px);
  }

  .single-angebot .ing-offer-meta__grid {
    grid-template-columns: 1fr;
  }

  .single-angebot .ing-offer-meta__cta {
    grid-column: 1;
  }

  .single-angebot .ing-offer-meta__cta .ing-button,
  .single-angebot .ing-offer-booking .ing-button {
    width: 100%;
  }
}


/* Angebots-Funnel Feinschliff v0.19.1 ---------------------------------- */

/* Meta-Leiste oben: gleiche Höhe, sauberer vertikaler Rhythmus */
.single-angebot .ing-offer-meta {
  margin-top: 28px;
  margin-bottom: 58px;
}

.single-angebot .ing-offer-meta__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  align-items: stretch;
}

.single-angebot .ing-offer-meta__item,
.single-angebot .ing-offer-meta__cta {
  min-height: 112px;
  box-sizing: border-box;
}

.single-angebot .ing-offer-meta__item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 18px 20px;
}

.single-angebot .ing-offer-meta__label {
  margin-bottom: 7px;
  line-height: 1.2;
}

.single-angebot .ing-offer-meta__value {
  line-height: 1.45;
}

.single-angebot .ing-offer-meta__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px 20px;
  border-left: 1px solid var(--light-orange);
}

.single-angebot .ing-offer-meta__cta .ing-button {
  margin: 0 !important;
}

/* Abschlussbereich wirklich 1/3 Person + 2/3 Gut zu wissen */
.single-angebot .ing-offer-closing-shell {
  grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr);
  align-items: stretch;
}

.single-angebot .ing-people {
  grid-column: 1;
  height: 100%;
}

.single-angebot .ing-note {
  grid-column: 2;
  height: 100%;
}

.single-angebot .ing-people,
.single-angebot .ing-note {
  align-self: stretch;
}

/* Person kompakt und passend zur 1/3-Spalte */
.single-angebot .ing-person-card {
  height: 100%;
}

.single-angebot .ing-person-card > a {
  height: 100%;
}

.single-angebot .ing-person-card__image {
  height: 230px;
  min-height: 230px;
}

.single-angebot .ing-person-card__body {
  padding: 22px 24px 26px;
}

/* Hinweis nutzt die größere 2/3-Fläche ruhiger */
.single-angebot .ing-note {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 34px 36px;
}

@media (max-width: 1050px) {
  .single-angebot .ing-offer-meta__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .single-angebot .ing-offer-meta__cta {
    grid-column: 1 / -1;
    min-height: auto;
    justify-content: flex-start;
    border-left: 0;
    border-top: 1px solid var(--light-orange);
  }
}

@media (max-width: 900px) {
  .single-angebot .ing-offer-closing-shell {
    grid-template-columns: 1fr;
  }

  .single-angebot .ing-people,
  .single-angebot .ing-note {
    grid-column: 1;
    height: auto;
  }
}

@media (max-width: 640px) {
  .single-angebot .ing-offer-meta__grid {
    grid-template-columns: 1fr;
  }

  .single-angebot .ing-offer-meta__item,
  .single-angebot .ing-offer-meta__cta {
    min-height: auto;
  }
}


/* Angebots-Funnel Feinschliff v0.19.2 ---------------------------------- */

/*
 * Meta-Leiste analog zur Veranstaltungsseite:
 * kompakt, gleichmäßig, ohne übergroße Höhe oder farbige CTA-Zelle.
 */
.single-angebot .ing-offer-meta {
  width: min(1180px, calc(100% - 40px));
  max-width: 1180px;
  margin: 28px auto 58px;
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.single-angebot .ing-offer-meta__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--light-orange);
  border-radius: var(--ing-radius);
  background: var(--pearl-bone);
  box-shadow: 0 12px 34px rgba(47, 51, 46, .05);
}

.single-angebot .ing-offer-meta__item,
.single-angebot .ing-offer-meta__cta {
  min-height: 0;
}

.single-angebot .ing-offer-meta__item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 18px 20px;
  border-right: 1px solid var(--light-orange);
}

.single-angebot .ing-offer-meta__label {
  display: block;
  margin: 0 0 7px;
  color: var(--grey-green);
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.single-angebot .ing-offer-meta__value {
  display: block;
  color: var(--charcoal-olive);
  font-size: .98rem;
  font-weight: 600;
  line-height: 1.4;
}

.single-angebot .ing-offer-meta__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px 18px;
  background: transparent;
}

.single-angebot .ing-offer-meta__cta .ing-button {
  display: inline-flex !important;
  width: auto;
  min-width: 0;
  min-height: 44px;
  margin: 0 !important;
  padding: 10px 18px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--earthy-clay);
  color: #fff;
  font-weight: 750;
  line-height: 1.1;
  text-align: center;
  white-space: nowrap;
}

/*
 * Abschlussbereich:
 * "Gut zu wissen" oben ausrichten statt vertikal zu zentrieren.
 * Die Box behält dieselbe Außenhöhe wie die Begleitungsbox,
 * der Inhalt benötigt aber deutlich weniger künstlichen Leerraum.
 */
.single-angebot .ing-note {
  display: block;
  align-self: stretch;
  height: 100%;
  padding: 30px 34px;
}

.single-angebot .ing-note h2 {
  margin-top: 0;
  margin-bottom: 14px;
}

.single-angebot .ing-note p:last-child {
  margin-bottom: 0;
}

/* Auch die Begleitungsbox oben beginnen lassen */
.single-angebot .ing-people {
  align-self: stretch;
}

@media (max-width: 1050px) {
  .single-angebot .ing-offer-meta__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .single-angebot .ing-offer-meta__item:nth-child(2n) {
    border-right: 0;
  }

  .single-angebot .ing-offer-meta__cta {
    grid-column: 1 / -1;
    justify-content: flex-start;
    border-top: 1px solid var(--light-orange);
  }
}

@media (max-width: 640px) {
  .single-angebot .ing-offer-meta {
    width: calc(100% - 28px);
  }

  .single-angebot .ing-offer-meta__grid {
    grid-template-columns: 1fr;
  }

  .single-angebot .ing-offer-meta__item {
    border-right: 0;
    border-bottom: 1px solid var(--light-orange);
  }

  .single-angebot .ing-offer-meta__cta {
    grid-column: 1;
  }

  .single-angebot .ing-offer-meta__cta .ing-button {
    width: 100%;
  }
}


/* Angebots-Abschlussbereich variabel v0.19.3 ---------------------------- */

/*
 * Person und "Gut zu wissen" müssen nicht künstlich gleich hoch sein.
 * Beide Boxen orientieren sich an ihrem tatsächlichen Inhalt.
 */
.single-angebot .ing-offer-closing-shell {
  align-items: start;
}

.single-angebot .ing-people,
.single-angebot .ing-note {
  height: auto !important;
  align-self: start;
}

.single-angebot .ing-note {
  justify-content: flex-start;
  min-height: 0;
}

/* Eine einzelne Begleitperson: kompakter als bisher */
.single-angebot .ing-people__grid {
  display: grid;
  gap: 14px;
}

.single-angebot .ing-person-card {
  height: auto;
}

.single-angebot .ing-person-card > a {
  height: auto;
}

.single-angebot .ing-person-card__image {
  height: 200px;
  min-height: 200px;
}

.single-angebot .ing-person-card__body {
  padding: 20px 22px 22px;
}

/*
 * Bei mehreren Begleitpersonen wechseln die Cards automatisch
 * in eine kompakte horizontale Darstellung.
 */
.single-angebot .ing-people__grid:has(.ing-person-card + .ing-person-card) .ing-person-card > a {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  align-items: stretch;
}

.single-angebot .ing-people__grid:has(.ing-person-card + .ing-person-card) .ing-person-card__image {
  width: 108px;
  height: 132px;
  min-height: 132px;
}

.single-angebot .ing-people__grid:has(.ing-person-card + .ing-person-card) .ing-person-card__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 16px 18px;
}

.single-angebot .ing-people__grid:has(.ing-person-card + .ing-person-card) .ing-person-card__name {
  margin-bottom: 6px;
  font-size: 1.25rem;
}

.single-angebot .ing-people__grid:has(.ing-person-card + .ing-person-card) .ing-person-card__role {
  margin: 0;
  line-height: 1.35;
}

/* Auch die Box selbst darf bei wenig Inhalt kompakter sein. */
.single-angebot .ing-people,
.single-angebot .ing-note {
  padding-top: 26px;
  padding-bottom: 26px;
}

/* Der finale CTA bleibt unter beiden Spalten über volle Breite. */
.single-angebot .ing-offer-booking {
  grid-column: 1 / -1;
  margin-top: 0;
}

@media (max-width: 900px) {
  .single-angebot .ing-people__grid:has(.ing-person-card + .ing-person-card) .ing-person-card > a {
    grid-template-columns: 96px minmax(0, 1fr);
  }

  .single-angebot .ing-people__grid:has(.ing-person-card + .ing-person-card) .ing-person-card__image {
    width: 96px;
    height: 120px;
    min-height: 120px;
  }
}

@media (max-width: 520px) {
  .single-angebot .ing-people__grid:has(.ing-person-card + .ing-person-card) .ing-person-card > a {
    grid-template-columns: 82px minmax(0, 1fr);
  }

  .single-angebot .ing-people__grid:has(.ing-person-card + .ing-person-card) .ing-person-card__image {
    width: 82px;
    height: 104px;
    min-height: 104px;
  }
}


/* Begleitpersonen – Bildformat & Ausrichtung v0.19.4 ------------------- */
/*
 * Einheitliche Darstellung unabhängig vom Ausgangsformat:
 * - immer definierter Bildrahmen
 * - kein "kleines Bild in großer Fläche"
 * - kein unnötiges Zoomen
 * - bei mehreren Personen kompaktere Cards
 */

/* Einzelperson: ruhige, breite Bildfläche */
.single-angebot .ing-people__grid .ing-person-card__image {
  position: relative;
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--soft-cream);
}

.single-angebot .ing-people__grid .ing-person-card__image img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block;
}

/*
 * Mehrere Personen:
 * Karten bleiben untereinander, Bild und Text stehen aber kompakt nebeneinander.
 * Der Selektor zielt auf das echte Grid und nicht auf indirekte Wrapper.
 */
.single-angebot .ing-people__grid:has(> .ing-person-card:nth-child(2)) .ing-person-card > a {
  display: grid !important;
  grid-template-columns: 118px minmax(0, 1fr) !important;
  align-items: stretch;
  height: auto !important;
}

.single-angebot .ing-people__grid:has(> .ing-person-card:nth-child(2)) .ing-person-card__image {
  width: 118px !important;
  height: 138px !important;
  min-height: 138px !important;
  aspect-ratio: auto !important;
}

.single-angebot .ing-people__grid:has(> .ing-person-card:nth-child(2)) .ing-person-card__body {
  min-width: 0;
  padding: 16px 18px;
  justify-content: center;
}

.single-angebot .ing-people__grid:has(> .ing-person-card:nth-child(2)) .ing-person-card__name {
  margin: 0 0 6px;
  font-size: 1.2rem;
}

.single-angebot .ing-people__grid:has(> .ing-person-card:nth-child(2)) .ing-person-card__role {
  margin: 0;
  line-height: 1.35;
}

/* Portraits mit viel "Luft" werden optisch etwas höher im Rahmen positioniert. */
.single-angebot .ing-people__grid .ing-person-card__image img {
  object-position: center 25% !important;
}

@media (max-width: 900px) {
  .single-angebot .ing-people__grid:has(> .ing-person-card:nth-child(2)) .ing-person-card > a {
    grid-template-columns: 104px minmax(0, 1fr) !important;
  }

  .single-angebot .ing-people__grid:has(> .ing-person-card:nth-child(2)) .ing-person-card__image {
    width: 104px !important;
    height: 124px !important;
    min-height: 124px !important;
  }
}

@media (max-width: 520px) {
  .single-angebot .ing-people__grid:has(> .ing-person-card:nth-child(2)) .ing-person-card > a {
    grid-template-columns: 92px minmax(0, 1fr) !important;
  }

  .single-angebot .ing-people__grid:has(> .ing-person-card:nth-child(2)) .ing-person-card__image {
    width: 92px !important;
    height: 110px !important;
    min-height: 110px !important;
  }
}


/* Begleitpersonen robust: Single/Multiple v0.19.5 ---------------------- */
/*
 * Nicht mehr auf CSS :has() verlassen.
 * Der Shortcode setzt jetzt explizit:
 *   .ing-people--single
 *   .ing-people--multiple
 */

/* Gemeinsame Bildlogik */
.single-angebot .ing-people .ing-person-card__image {
  position: relative;
  overflow: hidden;
  background: var(--soft-cream);
}

.single-angebot .ing-people .ing-person-card__image img {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  object-fit: cover !important;
  display: block;
}

/* Eine Person: ruhiges, vollflächiges Querformat */
.single-angebot .ing-people--single .ing-person-card > a {
  display: block !important;
  height: auto !important;
}

.single-angebot .ing-people--single .ing-person-card__image {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 3 !important;
}

.single-angebot .ing-people--single .ing-person-card__image img {
  object-position: center 24% !important;
}

.single-angebot .ing-people--single .ing-person-card__body {
  padding: 20px 22px 22px;
}

/* Mehrere Personen: kompakte horizontale Karten */
.single-angebot .ing-people--multiple .ing-people__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.single-angebot .ing-people--multiple .ing-person-card > a {
  display: grid !important;
  grid-template-columns: 112px minmax(0, 1fr) !important;
  align-items: stretch;
  height: auto !important;
}

.single-angebot .ing-people--multiple .ing-person-card__image {
  width: 112px !important;
  height: 128px !important;
  min-height: 128px !important;
  aspect-ratio: auto !important;
}

.single-angebot .ing-people--multiple .ing-person-card__image img {
  object-position: center 22% !important;
}

.single-angebot .ing-people--multiple .ing-person-card__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 14px 16px;
}

.single-angebot .ing-people--multiple .ing-person-card__name {
  margin: 0 0 5px;
  font-size: 1.15rem;
}

.single-angebot .ing-people--multiple .ing-person-card__role {
  margin: 0;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

@media (max-width: 520px) {
  .single-angebot .ing-people--multiple .ing-person-card > a {
    grid-template-columns: 92px minmax(0, 1fr) !important;
  }

  .single-angebot .ing-people--multiple .ing-person-card__image {
    width: 92px !important;
    height: 108px !important;
    min-height: 108px !important;
  }
}


/* Angebote mit mehreren Begleitpersonen v0.19.6 ------------------------ */
/*
 * Bei mehreren Begleitpersonen wird der untere Bereich bewusst anders
 * aufgebaut:
 *
 * 1. "Gut zu wissen" über die volle Breite
 * 2. "Deine Begleitung" darunter über die volle Breite
 * 3. Personen nebeneinander
 * 4. CTA darunter über die volle Breite
 *
 * Dadurch wird die schmale 1/3-Spalte nicht künstlich in die Höhe gezogen.
 */

body.ing-offer-has-multiple-people.single-angebot .ing-offer-closing-shell {
  grid-template-columns: 1fr;
  gap: 24px;
}

body.ing-offer-has-multiple-people.single-angebot .ing-note {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
}

body.ing-offer-has-multiple-people.single-angebot .ing-people {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
}

body.ing-offer-has-multiple-people.single-angebot .ing-offer-booking {
  grid-column: 1;
  grid-row: 3;
}

/* Personen nebeneinander statt untereinander */
body.ing-offer-has-multiple-people.single-angebot .ing-people__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 18px;
}

/* Jede Personenkarte wieder als kompakte vertikale Card */
body.ing-offer-has-multiple-people.single-angebot .ing-people .ing-person-card > a {
  display: block !important;
  height: auto !important;
}

body.ing-offer-has-multiple-people.single-angebot .ing-people .ing-person-card__image {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 3 !important;
}

body.ing-offer-has-multiple-people.single-angebot .ing-people .ing-person-card__image img {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 24% !important;
}

body.ing-offer-has-multiple-people.single-angebot .ing-people .ing-person-card__body {
  display: block;
  min-width: 0;
  padding: 18px 20px 20px;
}

body.ing-offer-has-multiple-people.single-angebot .ing-people .ing-person-card__name {
  margin: 0 0 6px;
  font-size: 1.25rem;
}

body.ing-offer-has-multiple-people.single-angebot .ing-people .ing-person-card__role {
  margin: 0;
  line-height: 1.4;
}

/* Begleitungsbox braucht bei horizontalen Cards weniger Außenhöhe */
body.ing-offer-has-multiple-people.single-angebot .ing-people {
  padding-bottom: 28px;
}

/*
 * Eine einzelne Begleitperson behält den 1/3 + 2/3 Aufbau,
 * aber die Personenkarte wird etwas kompakter.
 */
body.ing-offer-has-single-person.single-angebot .ing-person-card__image {
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  min-height: 0 !important;
}

body.ing-offer-has-single-person.single-angebot .ing-person-card__body {
  padding: 18px 20px 20px;
}

@media (max-width: 640px) {
  body.ing-offer-has-multiple-people.single-angebot .ing-people__grid {
    grid-template-columns: 1fr;
  }
}


/* Begleitpersonen Bildrahmen robust v0.19.7 ---------------------------- */
/*
 * Die Angebots-Begleitkarten nutzen für das Portrait jetzt einen echten
 * Background-Frame. Damit können WordPress-Bildattribute oder ältere
 * img-Regeln die sichtbare Größe nicht mehr beeinflussen.
 */

.single-angebot .ing-person-card__image--background {
  display: block;
  width: 100% !important;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center 24%;
}

/* Eine Person: klarer 4:3-Rahmen */
body.ing-offer-has-single-person.single-angebot .ing-person-card__image--background {
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  min-height: 0 !important;
}

/* Mehrere Personen: gleich breite Cards, Bild über volle Cardbreite */
body.ing-offer-has-multiple-people.single-angebot .ing-people__grid {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  align-items: start;
}

body.ing-offer-has-multiple-people.single-angebot .ing-person-card {
  width: 100%;
}

body.ing-offer-has-multiple-people.single-angebot .ing-person-card > a {
  display: block !important;
  width: 100%;
}

body.ing-offer-has-multiple-people.single-angebot .ing-person-card__image--background {
  width: 100% !important;
  aspect-ratio: 4 / 3 !important;
  height: auto !important;
  min-height: 0 !important;
  background-position: center 24%;
}

body.ing-offer-has-multiple-people.single-angebot .ing-person-card__body {
  display: block;
  padding: 18px 20px 20px;
}

/* Frühere Thumbnail-Festbreiten sicher neutralisieren */
body.ing-offer-has-multiple-people.single-angebot .ing-person-card__image {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 3 !important;
}

@media (max-width: 640px) {
  body.ing-offer-has-multiple-people.single-angebot .ing-people__grid {
    grid-template-columns: 1fr;
  }
}


/* Begleitpersonen konsistent v0.19.8 ----------------------------------- */
/*
 * Ein einziges Bildmodell für eine oder mehrere Personen:
 * fester 4:3-Rahmen + echtes IMG mit object-fit: cover.
 * Keine Background-Images, keine Thumbnail-Festbreiten.
 */

/* Alte Varianten sicher neutralisieren */
.single-angebot .ing-person-card__image--background {
  background-image: none !important;
}

.single-angebot .ing-person-card__image--fixed {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 3 !important;
  overflow: hidden !important;
  background: var(--soft-cream);
}

.single-angebot .ing-person-card__portrait {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}

/* Eine Person: volle Kartenbreite */
body.ing-offer-has-single-person.single-angebot .ing-person-card > a {
  display: block !important;
}

body.ing-offer-has-single-person.single-angebot .ing-person-card__image--fixed {
  width: 100% !important;
}

/* Mehrere Personen: Cards nebeneinander, beide identisch aufgebaut */
body.ing-offer-has-multiple-people.single-angebot .ing-people__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 18px !important;
  align-items: start !important;
}

body.ing-offer-has-multiple-people.single-angebot .ing-person-card {
  width: 100% !important;
  height: auto !important;
}

body.ing-offer-has-multiple-people.single-angebot .ing-person-card > a {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

body.ing-offer-has-multiple-people.single-angebot .ing-person-card__image,
body.ing-offer-has-multiple-people.single-angebot .ing-person-card__image--fixed {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 3 !important;
}

body.ing-offer-has-multiple-people.single-angebot .ing-person-card__body {
  display: block !important;
  padding: 18px 20px 20px !important;
}

@media (max-width: 700px) {
  body.ing-offer-has-multiple-people.single-angebot .ing-people__grid {
    grid-template-columns: 1fr !important;
  }
}


/* Angebots-Begleitung v0.20 -------------------------------------------- */
/*
 * Eigene Card-Klassen nur für "Deine Begleitung" auf Angebotsseiten.
 * Mehrere Personen laufen in einem 4-Spalten-Raster:
 * 1 Person  = bestehender Einzelaufbau
 * 2 Personen = 2 x 1/4, danach 2/4 frei
 * 3 Personen = 3 x 1/4, danach 1/4 frei
 * 4 Personen = volle Reihe
 */

/* Basiskarte */
.single-angebot .ing-offer-person-card {
  width: 100%;
  overflow: hidden;
  border-radius: 12px;
  background: var(--soft-cream);
}

.single-angebot .ing-offer-person-card__link {
  display: block;
  width: 100%;
  color: inherit;
  text-decoration: none;
}

.single-angebot .ing-offer-person-card__image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--dawn-orange);
}

.single-angebot .ing-offer-person-card__portrait {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}

.single-angebot .ing-offer-person-card__body {
  padding: 16px 18px 18px;
}

.single-angebot .ing-offer-person-card__name {
  margin: 0 0 5px;
  font-size: 1.2rem;
  line-height: 1.2;
}

.single-angebot .ing-offer-person-card__role {
  margin: 0;
  color: var(--grey-green);
  font-weight: 700;
  line-height: 1.35;
}

/* Eine Person: weiter kompakt in der 1/3-Spalte */
body.ing-offer-has-single-person.single-angebot .ing-people__grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0 !important;
}

/* Mehrere Personen: "Gut zu wissen" oben, Begleitung darunter vollbreit */
body.ing-offer-has-multiple-people.single-angebot .ing-offer-closing-shell {
  grid-template-columns: 1fr !important;
}

body.ing-offer-has-multiple-people.single-angebot .ing-note {
  grid-column: 1 !important;
  grid-row: 1 !important;
}

body.ing-offer-has-multiple-people.single-angebot .ing-people {
  grid-column: 1 !important;
  grid-row: 2 !important;
}

body.ing-offer-has-multiple-people.single-angebot .ing-offer-booking {
  grid-column: 1 !important;
  grid-row: 3 !important;
}

/* 4/4-Raster: jede Person exakt 1/4 */
body.ing-offer-has-multiple-people.single-angebot .ing-people__grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
  align-items: start !important;
}

/* Card-Höhen nicht künstlich strecken */
body.ing-offer-has-multiple-people.single-angebot .ing-offer-person-card {
  height: auto !important;
  align-self: start;
}

/* Tablet: 2 Spalten */
@media (max-width: 1050px) {
  body.ing-offer-has-multiple-people.single-angebot .ing-people__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Mobile: 1 Spalte */
@media (max-width: 640px) {
  body.ing-offer-has-multiple-people.single-angebot .ing-people__grid {
    grid-template-columns: 1fr !important;
  }
}


/* Wissenswertes / Blog v0.21 ------------------------------------------ */
.ing-blog-hero {
  width: min(1180px, calc(100% - 40px));
  margin: 42px auto 64px;
}
.ing-blog-hero__copy { max-width: 900px; margin-bottom: 28px; }
.ing-blog-hero h1 { margin: 6px 0 16px; font-size: clamp(3rem, 6vw, 5.4rem); line-height: .98; }
.ing-blog-hero__excerpt { max-width: 800px; margin: 0; color: var(--grey-green); font-size: clamp(1.15rem,2vw,1.5rem); line-height:1.5; }
.ing-blog-hero__image { width:100%; aspect-ratio: 16/8; overflow:hidden; border-radius: var(--ing-radius); background:var(--dawn-orange); }
.ing-blog-hero__image img { width:100%!important; height:100%!important; object-fit:cover!important; display:block; }

.ing-blog-content .wp-block-post-content { width:100%!important; max-width:none!important; font-size:1.06rem; line-height:1.75; }
.ing-blog-content .wp-block-post-content > :where(:not(.alignwide):not(.alignfull)) { width:100%!important; max-width:900px!important; margin-left:auto!important; margin-right:auto!important; }
.ing-blog-content h2 { margin-top:2.5em; }
.ing-blog-content h3 { margin-top:2em; }

.ing-blog-overview { width:min(1400px,calc(100% - 40px)); margin:56px auto 0; }
.ing-blog-overview__header { max-width:900px; margin-bottom:42px; }
.ing-blog-overview__header h1 { margin:6px 0 14px; font-size:clamp(3rem,6vw,5rem); line-height:1; }
.ing-blog-overview__header p:last-child { max-width:720px; color:var(--grey-green); font-size:1.15rem; }
.ing-blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.ing-blog-card { overflow:hidden; border:1px solid var(--light-orange); border-radius:var(--ing-radius); background:var(--pearl-bone); box-shadow:0 12px 34px rgba(47,51,46,.045); }
.ing-blog-card__image { position:relative; width:100%; aspect-ratio:4/3; overflow:hidden; background:var(--dawn-orange); }
.ing-blog-card__image img { width:100%!important; height:100%!important; object-fit:cover!important; display:block; }
.ing-blog-card__placeholder { display:block; width:100%; height:100%; background:linear-gradient(135deg,var(--dawn-orange),var(--light-orange)); }
.ing-blog-card__body { display:flex; flex-direction:column; flex:1; padding:24px; }
.ing-blog-card__category { margin-bottom:10px; color:var(--warm-terracotta); font-size:.75rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.ing-blog-card h2 { margin:0 0 12px; font-size:1.65rem; line-height:1.15; }
.ing-blog-card p { margin:0 0 22px; color:var(--grey-green); line-height:1.55; }
.ing-blog-card__more { margin-top:auto; color:var(--warm-terracotta); font-weight:750; }
@media(max-width:980px){ .ing-blog-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media(max-width:640px){ .ing-blog-hero,.ing-blog-overview{width:calc(100% - 28px);} .ing-blog-grid{grid-template-columns:1fr;} .ing-blog-hero__image{aspect-ratio:4/3;} }


/* Wissenswertes Feinschliff v0.21.1 ----------------------------------- */

/* Breitenlogik wird ab v0.33.21 zentral über .ing-detail-content gesteuert. */

/* Wissenswertes Themenfunnel + Bildfokus v0.22 ------------------------- */

/* Bildfokus wird redaktionell am Beitrag gewählt. */
.ing-blog-hero__image img,
.ing-blog-card__image img {
  object-position: var(--ing-image-position, center center) !important;
}

/* Artikel-Hero etwas ruhiger und weniger aggressiv beschnitten. */
.ing-blog-hero__image {
  aspect-ratio: 16 / 7.5;
}

/* Cards behalten 4:3, aber respektieren den Bildfokus. */
.ing-blog-card__image {
  aspect-ratio: 4 / 3;
}

/* Themen-CTA am Ende eines Artikels */
.ing-blog-theme-cta {
  width: min(1180px, calc(100% - 40px));
  margin: 72px auto 0;
  padding: 34px 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px 42px;
  border-radius: var(--ing-radius);
  background: var(--earthy-clay);
  color: var(--pearl-bone);
}

.ing-blog-theme-cta__copy {
  max-width: 720px;
}

.ing-blog-theme-cta .ing-eyebrow,
.ing-blog-theme-cta h2,
.ing-blog-theme-cta p {
  color: var(--pearl-bone) !important;
}

.ing-blog-theme-cta h2 {
  margin: 4px 0 10px;
  font-size: clamp(2rem, 3.5vw, 3rem);
  line-height: 1.08;
}

.ing-blog-theme-cta p:last-child {
  margin-bottom: 0;
}

.ing-blog-theme-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  flex: 0 0 auto;
}

.ing-blog-theme-cta .ing-button {
  display: inline-flex;
  min-height: 44px;
  padding: 10px 18px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--pearl-bone);
  color: var(--warm-terracotta);
  white-space: nowrap;
}

.ing-blog-theme-cta .ing-button--secondary {
  border: 1px solid rgba(252,250,247,.55);
  background: transparent;
  color: var(--pearl-bone);
}

.ing-blog-theme-cta .ing-button:hover {
  background: var(--ghost-white);
  color: var(--charcoal-olive);
}

.ing-blog-theme-cta .ing-button--secondary:hover {
  background: rgba(252,250,247,.12);
  color: var(--pearl-bone);
}

/* Sichtbarer Zustand auf vorgefilterten Angebots-/Veranstaltungsseiten */
.ing-active-filter {
  width: fit-content;
  max-width: 100%;
  margin: -18px 0 30px;
  padding: 9px 12px 9px 14px;
  display: flex;
  align-items: center;
  gap: 14px;
  border: 1px solid var(--light-orange);
  border-radius: 999px;
  background: var(--pearl-bone);
  color: var(--charcoal-olive);
  font-size: .9rem;
}

.ing-active-filter a {
  color: var(--warm-terracotta);
  font-weight: 750;
  text-decoration: none;
}

@media (max-width: 760px) {
  .ing-blog-theme-cta {
    width: calc(100% - 28px);
    padding: 26px 24px;
    align-items: flex-start;
    flex-direction: column;
  }

  .ing-blog-theme-cta__actions {
    width: 100%;
  }

  .ing-blog-theme-cta .ing-button {
    width: 100%;
  }

  .ing-blog-hero__image {
    aspect-ratio: 4 / 3;
  }
}


/* Footer mobil konsequent einspaltig v0.31.3 -------------------------- */
@media (max-width: 900px) {
  .ing-site-footer--classic {
    padding: 48px 20px 42px;
  }

  .ing-site-footer--classic > .ing-site-footer__inner {
    width: 100% !important;
    max-width: 560px !important;
  }

  .ing-site-footer--classic .ing-site-footer__columns--classic {
    width: 100% !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 44px !important;
  }

  .ing-site-footer--classic .ing-site-footer__links,
  .ing-site-footer--classic .ing-site-footer__center,
  .ing-site-footer--classic .ing-site-footer__address {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
    flex-basis: auto !important;
    align-self: stretch !important;
    text-align: center;
  }

  .ing-site-footer--classic .ing-site-footer__links {
    display: block;
  }

  .ing-site-footer--classic .ing-footer-navigation--classic,
  .ing-site-footer--classic .ing-footer-legal--classic {
    width: 100%;
  }

  .ing-site-footer--classic .ing-footer-navigation--classic .wp-block-navigation__container,
  .ing-site-footer--classic .ing-footer-legal--classic .wp-block-navigation__container {
    width: 100%;
    max-width: none;
    align-items: center;
    justify-content: center;
  }

  .ing-site-footer--classic .ing-footer-logo--classic {
    margin-bottom: 24px;
  }

  .ing-site-footer--classic .ing-footer-socials {
    margin-bottom: 22px;
  }

  .ing-site-footer--classic .ing-site-footer__address p {
    max-width: 420px;
    margin-right: auto;
    margin-left: auto;
  }
}

@media (max-width: 480px) {
  .ing-site-footer--classic .ing-footer-navigation--classic .wp-block-navigation__container {
    gap: 8px;
  }

  .ing-site-footer--classic .ing-footer-legal--classic .wp-block-navigation__container {
    gap: 10px 20px;
  }
}


/* Card-Harmonisierung v0.22.1 ----------------------------------------- */

/*
 * Gemeinsame Hierarchie:
 * 1. Bild
 * 2. kleine Kontextzeile (Kategorie/Datum)
 * 3. Serif-Titel
 * 4. kurze Beschreibung
 * 5. kompakte Meta-Zeile
 * 6. CTA
 */

/* Angebote + Veranstaltungen */
.ing-listing-card__body {
  padding: 22px 24px 24px;
}

.ing-listing-card h2,
.ing-blog-card h2 {
  margin: 0;
  color: var(--charcoal-olive);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: clamp(1.45rem, 1.8vw, 1.7rem);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.015em;
}

.ing-listing-card__date,
.ing-blog-card__category {
  margin-bottom: 10px;
  color: var(--warm-terracotta);
  font-family: inherit;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.ing-listing-card__text,
.ing-blog-card p {
  margin: 13px 0 0;
  color: var(--grey-green);
  font-size: .98rem;
  font-weight: 400;
  line-height: 1.5;
}

/* Beschreibungen bewusst kurz halten, damit Cards ruhig bleiben. */
.ing-listing-card__text,
.ing-blog-card p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

/* Eine einzige Meta-Zeile statt mehrerer Facts/Preis-Blöcke. */
.ing-listing-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin-top: 16px;
  color: var(--charcoal-olive);
  font-size: .86rem;
  font-weight: 600;
  line-height: 1.35;
}

.ing-listing-card__meta span:not(:last-child)::after {
  content: "·";
  margin-left: 10px;
  color: var(--grey-orange);
}

/* Alte, überladene Meta-Varianten neutralisieren. */
.ing-listing-card__facts,
.ing-listing-card__price {
  display: none !important;
}

.ing-listing-card__more,
.ing-blog-card__more {
  display: inline-block;
  margin-top: auto;
  padding-top: 22px;
  color: var(--warm-terracotta);
  font-size: .95rem;
  font-weight: 750;
  line-height: 1.2;
}

/* Bildhöhe auf den Übersichten vereinheitlichen. */
.ing-listing-card__image,
.ing-blog-card__image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.ing-listing-card__image img,
.ing-blog-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Blog-Karten exakt dieselbe Innenlogik. */
.ing-blog-card__body {
  padding: 22px 24px 24px;
}

.ing-blog-card h2 {
  margin-bottom: 0;
}

.ing-blog-card p {
  margin-bottom: 0;
}

/* Kleinere Screens */
@media (max-width: 640px) {
  .ing-listing-card__body,
  .ing-blog-card__body {
    padding: 20px;
  }

  .ing-listing-card h2,
  .ing-blog-card h2 {
    font-size: 1.45rem;
  }
}


/* Related-Cards unter Personen ----------------------------------------- */
.ing-person-related > h2 {
  margin-bottom: 28px;
}

.ing-related-grid {
  gap: 24px;
  align-items: start;
}

.ing-related-card {
  height: auto;
  border: 1px solid var(--light-orange);
  border-radius: var(--ing-radius);
  background: var(--pearl-bone);
  box-shadow: 0 12px 34px rgba(47,51,46,.045);
}

.ing-related-card > a {
  display: block;
  height: auto !important;
  min-height: 0;
}

.ing-related-card__image {
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0;
  overflow: hidden;
}

.ing-related-card__image img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover;
  display: block;
}

.ing-related-card__body {
  min-height: 0;
  padding: 26px 24px 20px;
}

.ing-related-card__body h3 {
  margin: 0;
  color: var(--charcoal-olive);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: clamp(1.45rem, 1.8vw, 1.7rem);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.015em;
}

.ing-related-card__body p {
  margin: 14px 0 0;
  color: var(--grey-green);
  font-size: .98rem;
  line-height: 1.5;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.ing-related-card__meta {
  display: block;
  margin: 18px 0 0;
  color: var(--warm-terracotta);
  font-size: .9rem;
  font-weight: 750;
  line-height: 1.35;
}

.ing-related-card p:empty,
.ing-related-card > a > p:empty {
  display: none !important;
}

@media (max-width: 640px) {
  .ing-related-card__body {
    padding: 22px 20px 18px;
  }
}


/* Personenübersicht Card-Rhythmus v0.22.4 ----------------------------- */

/* Personen-Cards ebenfalls nicht künstlich auf Zeilenhöhe strecken */
.ing-people-grid {
  align-items: start;
}

.ing-person-overview-card,
.ing-person-overview-card > a {
  height: auto !important;
  min-height: 0 !important;
}

/* Leere WordPress-Absätze vor dem Bild vollständig neutralisieren */
.ing-person-overview-card p:empty,
.ing-person-overview-card > a > p:empty {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

/* Bild ohne zusätzlichen Abstand */
.ing-person-overview-card__image {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0;
}

.ing-person-overview-card__image img {
  margin: 0 !important;
  padding: 0 !important;
  display: block;
}

/* Gleicher Innenrhythmus wie Angebote / Veranstaltungen / Wissenswertes */
.ing-person-overview-card__body {
  padding: 26px 24px 20px;
}

.ing-person-overview-card__name {
  margin: 0;
}

.ing-person-overview-card__role {
  margin: 10px 0 0;
}

.ing-person-overview-card__text {
  margin: 14px 0 0;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.ing-person-overview-card__more {
  display: inline-block;
  margin-top: 18px !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}

@media (max-width: 640px) {
  .ing-person-overview-card__body {
    padding: 22px 20px 18px;
  }
}


/* Übersichtsraster + Personen-Cards ----------------------------------- */
.ing-listing,
.ing-blog-overview {
  width: min(1400px, calc(100% - 48px)) !important;
  max-width: 1400px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.ing-listing__intro {
  max-width: 900px;
}

.ing-people-grid {
  align-items: start !important;
}

.ing-person-card,
.ing-person-card__link {
  height: auto !important;
  min-height: 0 !important;
}

.ing-person-card__link > p {
  display: none !important;
}

.ing-person-card__image {
  margin: 0 !important;
  padding: 0 !important;
}

.ing-people-grid .ing-person-card__body {
  flex: 0 1 auto !important;
  padding: 26px 24px 20px !important;
}

.ing-people-grid .ing-person-card h2 {
  margin: 0 !important;
  font-size: clamp(1.45rem, 1.8vw, 1.7rem);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.015em;
}

.ing-people-grid .ing-person-card__role {
  margin: 10px 0 0 !important;
  color: var(--warm-terracotta);
  font-size: .9rem;
  font-weight: 750;
  line-height: 1.35;
}

.ing-people-grid .ing-person-card__body p {
  margin: 14px 0 0 !important;
  color: var(--grey-green);
  font-size: .98rem;
  line-height: 1.5;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.ing-people-grid .ing-listing-card__more {
  margin-top: 18px !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}

@media (max-width: 640px) {
  .ing-listing,
  .ing-blog-overview {
    width: calc(100% - 28px) !important;
  }

  .ing-people-grid .ing-person-card__body {
    padding: 22px 20px 18px !important;
  }
}


/* Blog-Template Breite v0.22.6 ---------------------------------------- */

/*
 * Der äußere Rahmen des Blog-Detailtemplates folgt jetzt ebenfalls
 * derselben 1400-px-Achse wie Header und Übersichtsseiten.
 *
 * Die eigentliche Lesespalte bleibt bewusst schmaler bei 900 px.
 */

/* Hero / Artikelkopf */
.single-post .ing-blog-hero {
  width: min(1400px, calc(100% - 48px)) !important;
  max-width: 1400px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Themen-CTA am Artikelende */
.single-post .ing-blog-theme-cta {
  width: min(1400px, calc(100% - 48px)) !important;
  max-width: 1400px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 640px) {
  .single-post .ing-blog-hero,
  .single-post .ing-blog-theme-cta {
    width: calc(100% - 28px) !important;
  }

}


/* Angebote / Veranstaltungen Bildfokus v0.22.7 ------------------------ */

/* Hero-Bilder */
.ing-offer-hero__media img,
.ing-event-hero__media img {
  object-position: var(--ing-image-position, center center) !important;
}

/* Übersichts-Cards */
.ing-offers-listing .ing-listing-card__image img,
.ing-events-listing .ing-listing-card__image img {
  object-position: var(--ing-image-position, center center) !important;
}

/* Angebot / Veranstaltung unter Personen */
.ing-related-card__image img {
  object-position: var(--ing-image-position, center center) !important;
}


/* Angebot / Veranstaltung Hero 1400px v0.22.8 ------------------------- */

.single-angebot .ing-offer-hero,
.single-veranstaltung .ing-event-hero {
  width: min(1400px, calc(100% - 48px)) !important;
  max-width: 1400px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Die überlagerte Textbox bleibt bewusst schmaler. */
.single-angebot .ing-offer-hero__card,
.single-veranstaltung .ing-event-hero__card {
  max-width: 720px;
}

@media (max-width: 640px) {
  .single-angebot .ing-offer-hero,
  .single-veranstaltung .ing-event-hero {
    width: calc(100% - 28px) !important;
  }
}


/* Veranstaltung: weitere Termine + Mehrpersonen-Layout v0.22.9 -------- */

/* Weitere Termine direkt unter der Entscheidungsleiste */
.single-veranstaltung .ing-event-more-dates {
  width: min(1400px, calc(100% - 48px));
  max-width: 1400px;
  margin: 18px auto 52px;
}

.single-veranstaltung .ing-event-more-dates > .ing-eyebrow {
  margin: 0 0 10px;
}

.single-veranstaltung .ing-event-more-dates__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.single-veranstaltung .ing-event-more-date {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 14px 16px;
  border: 1px solid var(--light-orange);
  border-radius: 12px;
  background: var(--pearl-bone);
  color: var(--charcoal-olive);
}

.single-veranstaltung .ing-event-more-date strong {
  margin-bottom: 2px;
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: 1.05rem;
  font-weight: 500;
}

.single-veranstaltung .ing-event-more-date span {
  font-size: .9rem;
  line-height: 1.4;
}

/*
 * Eine Person:
 * bestehender 1/3 + 2/3-Aufbau bleibt erhalten.
 */
body.ing-event-has-single-person.single-veranstaltung .ing-event-closing-shell {
  grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr);
  align-items: start;
}

body.ing-event-has-single-person.single-veranstaltung .ing-people {
  grid-column: 1;
  height: auto !important;
  align-self: start !important;
}

body.ing-event-has-single-person.single-veranstaltung .ing-event-practical {
  grid-column: 2;
  height: auto !important;
  align-self: start !important;
}

/*
 * Ab zwei Personen:
 * praktische Informationen oben vollbreit,
 * Personen darunter horizontal im 4-Spalten-Raster.
 */
body.ing-event-has-multiple-people.single-veranstaltung .ing-event-closing-shell {
  grid-template-columns: 1fr !important;
  align-items: start !important;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-event-practical {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 100%;
  height: auto !important;
  align-self: start !important;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-people {
  grid-column: 1 !important;
  grid-row: 2 !important;
  width: 100%;
  height: auto !important;
  align-self: start !important;
  display: block !important;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-event-booking {
  grid-column: 1 !important;
  grid-row: 3 !important;
}

/* Vier gleich breite Plätze – 2 oder 3 Personen lassen rechts bewusst frei */
body.ing-event-has-multiple-people.single-veranstaltung .ing-people__grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
  align-items: start !important;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-person-card {
  width: 100%;
  height: auto !important;
  align-self: start !important;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-person-card > a {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-person-card__image {
  position: relative;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 4 / 3 !important;
  overflow: hidden;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-person-card__image img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-person-card__body {
  padding: 18px 20px 20px !important;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-person-card__more {
  margin-top: 16px !important;
}

/* Praktische Infos nie mehr durch die Personenhöhe aufziehen */
.single-veranstaltung .ing-event-practical {
  min-height: 0 !important;
}

@media (max-width: 1050px) {
  body.ing-event-has-multiple-people.single-veranstaltung .ing-people__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 900px) {
  body.ing-event-has-single-person.single-veranstaltung .ing-event-closing-shell {
    grid-template-columns: 1fr;
  }

  body.ing-event-has-single-person.single-veranstaltung .ing-people,
  body.ing-event-has-single-person.single-veranstaltung .ing-event-practical {
    grid-column: 1;
  }
}

@media (max-width: 640px) {
  .single-veranstaltung .ing-event-more-dates {
    width: calc(100% - 28px);
    margin-bottom: 36px;
  }

  .single-veranstaltung .ing-event-more-dates__grid,
  body.ing-event-has-multiple-people.single-veranstaltung .ing-people__grid {
    grid-template-columns: 1fr !important;
  }
}


/* Veranstaltungen – Abschlussbereich v0.23.0 -------------------------- */

/*
 * Reihenfolge unten:
 * 1. Praktische Informationen
 * 2. Weitere Termine (falls vorhanden)
 * 3. Wer diesen Raum hält
 * 4. Buchungs-CTA
 */

.single-veranstaltung .ing-event-closing-shell {
  width: min(1400px, calc(100% - 48px)) !important;
  max-width: 1400px !important;
  margin: 72px auto 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start !important;
}

.single-veranstaltung .ing-event-closing-shell .ing-event-practical,
.single-veranstaltung .ing-event-closing-shell .ing-event-more-dates,
.single-veranstaltung .ing-event-closing-shell .ing-people,
.single-veranstaltung .ing-event-closing-shell .ing-event-booking {
  grid-column: 1 !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  margin: 0 !important;
  align-self: start !important;
}

/* Weitere Termine kompakter und optisch als Teil des Abschlussbereichs */
.single-veranstaltung .ing-event-closing-shell .ing-event-more-dates {
  padding: 30px;
  border: 1px solid var(--light-orange);
  border-radius: var(--ing-radius);
  background: var(--pearl-bone);
  box-shadow: 0 12px 34px rgba(47, 51, 46, .045);
}

.single-veranstaltung .ing-event-closing-shell .ing-event-more-dates > .ing-eyebrow {
  margin: 0 0 16px;
}

.single-veranstaltung .ing-event-closing-shell .ing-event-more-dates__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.single-veranstaltung .ing-event-closing-shell .ing-event-more-date {
  min-height: 0;
  padding: 16px 18px;
}

.single-veranstaltung .ing-event-closing-shell .ing-event-more-date span {
  display: block;
}

.single-veranstaltung .ing-event-closing-shell .ing-event-more-date span + span {
  margin-top: 4px;
}

/* Eigene Event-Personen-Cards: keine alten Person-Card-Regeln mehr */
.single-veranstaltung .ing-event-person-card {
  width: 100%;
  overflow: hidden;
  border: 0;
  border-radius: 12px;
  background: var(--soft-cream);
  box-shadow: none;
}

.single-veranstaltung .ing-event-person-card__link {
  display: block;
  width: 100%;
  height: auto;
  color: inherit;
  text-decoration: none;
}

.single-veranstaltung .ing-event-person-card__image {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  line-height: 0;
}

.single-veranstaltung .ing-event-person-card__image img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}

.single-veranstaltung .ing-event-person-card__body {
  padding: 18px 20px 20px;
}

.single-veranstaltung .ing-event-person-card__name {
  margin: 0 0 7px;
  font-size: 1.35rem;
  line-height: 1.15;
}

.single-veranstaltung .ing-event-person-card__role {
  margin: 0;
  color: var(--grey-green);
  font-weight: 700;
  line-height: 1.4;
}

.single-veranstaltung .ing-event-person-card__more {
  display: inline-block;
  margin-top: 18px;
  color: var(--warm-terracotta);
  font-weight: 750;
}

/* Mehrere Personen weiterhin horizontal im 4er-Raster */
body.ing-event-has-multiple-people.single-veranstaltung .ing-people__grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 18px !important;
  align-items: start !important;
}

/* Eine Person bleibt kompakt; keine künstlich breite Einzelkarte */
body.ing-event-has-single-person.single-veranstaltung .ing-people__grid {
  display: grid !important;
  grid-template-columns: minmax(260px, 1fr) minmax(0, 2fr) !important;
  gap: 18px !important;
}

body.ing-event-has-single-person.single-veranstaltung .ing-event-person-card {
  grid-column: 1;
}

/* Alte Grid-Zuweisungen aus v0.22.9 sicher neutralisieren */
body.ing-event-has-single-person.single-veranstaltung .ing-people,
body.ing-event-has-single-person.single-veranstaltung .ing-event-practical,
body.ing-event-has-multiple-people.single-veranstaltung .ing-people,
body.ing-event-has-multiple-people.single-veranstaltung .ing-event-practical,
body.ing-event-has-multiple-people.single-veranstaltung .ing-event-booking {
  grid-row: auto !important;
}

/* Kein leerer Absatz vor Bild oder Card */
.single-veranstaltung .ing-event-person-card p:empty,
.single-veranstaltung .ing-event-person-card__link > p:empty {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

@media (max-width: 1050px) {
  .single-veranstaltung .ing-event-closing-shell .ing-event-more-dates__grid,
  body.ing-event-has-multiple-people.single-veranstaltung .ing-people__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  .single-veranstaltung .ing-event-closing-shell {
    width: calc(100% - 28px) !important;
  }

  .single-veranstaltung .ing-event-closing-shell .ing-event-more-dates__grid,
  body.ing-event-has-multiple-people.single-veranstaltung .ing-people__grid,
  body.ing-event-has-single-person.single-veranstaltung .ing-people__grid {
    grid-template-columns: 1fr !important;
  }
}


/* Weitere Termine Absatzabstände v0.23.1 ------------------------------ */

.single-veranstaltung .ing-event-more-date__date,
.single-veranstaltung .ing-event-more-date__time {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.4;
}

.single-veranstaltung .ing-event-more-date__time {
  margin-top: 6px !important;
}

/* Falls WordPress zusätzliche Absätze in der Termin-Card erzeugt */
.single-veranstaltung .ing-event-more-date > p:empty {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}


/* Fokusdarstellung Cards v0.23.2 -------------------------------------- */

/*
 * Der Browser-/Theme-Standard hat bei fokussierten Card-Links einen dunklen
 * bzw. blauen Rahmen gezeichnet. Für diese großen klickbaren Cards entfernen
 * wir den sichtbaren Border/Outline.
 */
.ing-person-card__link:focus,
.ing-person-card__link:focus-visible,
.ing-related-card > a:focus,
.ing-related-card > a:focus-visible,
.ing-offer-person-card__link:focus,
.ing-offer-person-card__link:focus-visible,
.ing-event-person-card__link:focus,
.ing-event-person-card__link:focus-visible {
  outline: none !important;
  box-shadow: none !important;
  border-color: transparent !important;
}


/* Fokusdarstellung Navigation v0.23.3 --------------------------------- */

.wp-block-navigation a:focus,
.wp-block-navigation a:focus-visible,
.wp-block-navigation-item__content:focus,
.wp-block-navigation-item__content:focus-visible,
.wp-block-navigation-submenu__toggle:focus,
.wp-block-navigation-submenu__toggle:focus-visible,
.wp-block-navigation__responsive-container-open:focus,
.wp-block-navigation__responsive-container-open:focus-visible,
.wp-block-navigation__responsive-container-close:focus,
.wp-block-navigation__responsive-container-close:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}


/* Veranstaltungs-Abschluss: Einzelperson korrigiert v0.23.4 ----------- */

/*
 * v0.23.0 hat den Abschlussbereich grundsätzlich einspaltig gemacht.
 * Für mehrere Personen ist das richtig, für genau eine Person war damit
 * jedoch der frühere 1/3 + 2/3-Aufbau verloren gegangen.
 *
 * Desktop mit EINER Person:
 * [ Person 1/3 ][ Praktische Informationen 2/3 ]
 * [ Weitere Termine                         ]
 * [ Buchungs-CTA                            ]
 */
@media (min-width: 901px) {
  body.ing-event-has-single-person.single-veranstaltung .ing-event-closing-shell {
    display: grid !important;
    grid-template-columns: minmax(280px, 1fr) minmax(0, 2fr) !important;
    grid-template-areas:
      "people practical"
      "dates dates"
      "booking booking" !important;
    gap: 24px !important;
    align-items: start !important;
  }

  body.ing-event-has-single-person.single-veranstaltung .ing-event-practical {
    grid-area: practical !important;
    width: 100% !important;
    height: auto !important;
    align-self: start !important;
  }

  body.ing-event-has-single-person.single-veranstaltung .ing-event-more-dates {
    grid-area: dates !important;
    width: 100% !important;
  }

  body.ing-event-has-single-person.single-veranstaltung .ing-people {
    grid-area: people !important;
    width: 100% !important;
    height: auto !important;
    align-self: start !important;
  }

  body.ing-event-has-single-person.single-veranstaltung .ing-event-booking {
    grid-area: booking !important;
    width: 100% !important;
  }

  /* In der 1/3-Spalte genau eine volle Card */
  body.ing-event-has-single-person.single-veranstaltung .ing-people__grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }

  body.ing-event-has-single-person.single-veranstaltung .ing-event-person-card {
    grid-column: 1 !important;
    width: 100% !important;
  }
}

/*
 * Mehrere Personen bleiben wie gewünscht:
 * Praktische Infos → weitere Termine → Personen horizontal → Buchung.
 */
body.ing-event-has-multiple-people.single-veranstaltung .ing-event-closing-shell {
  display: grid !important;
  grid-template-columns: 1fr !important;
  grid-template-areas:
    "practical"
    "dates"
    "people"
    "booking" !important;
  gap: 24px !important;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-event-practical {
  grid-area: practical !important;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-event-more-dates {
  grid-area: dates !important;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-people {
  grid-area: people !important;
}

body.ing-event-has-multiple-people.single-veranstaltung .ing-event-booking {
  grid-area: booking !important;
}

/* Auf kleineren Screens immer klare vertikale Reihenfolge */
@media (max-width: 900px) {
  body.ing-event-has-single-person.single-veranstaltung .ing-event-closing-shell,
  body.ing-event-has-multiple-people.single-veranstaltung .ing-event-closing-shell {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "practical"
      "dates"
      "people"
      "booking" !important;
  }

  body.ing-event-has-single-person.single-veranstaltung .ing-event-practical,
  body.ing-event-has-multiple-people.single-veranstaltung .ing-event-practical {
    grid-area: practical !important;
  }

  body.ing-event-has-single-person.single-veranstaltung .ing-event-more-dates,
  body.ing-event-has-multiple-people.single-veranstaltung .ing-event-more-dates {
    grid-area: dates !important;
  }

  body.ing-event-has-single-person.single-veranstaltung .ing-people,
  body.ing-event-has-multiple-people.single-veranstaltung .ing-people {
    grid-area: people !important;
  }

  body.ing-event-has-single-person.single-veranstaltung .ing-event-booking,
  body.ing-event-has-multiple-people.single-veranstaltung .ing-event-booking {
    grid-area: booking !important;
  }
}


/* Homepage Hero / große Bildbühne v0.23.5 ----------------------------- */

/*
 * Vollflächige Bildbühne direkt unter der Navigation.
 * Der eigentliche Inhalt bleibt auf derselben 1400-px-Achse wie Header
 * und Übersichtsseiten.
 */
body.has-ing-hero .wp-block-post-content > .ing-home-stage:first-child {
  width: 100% !important;
  max-width: none !important;
  margin-top: 0 !important;
  margin-bottom: 36px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
}

/* Kein Abstand zwischen Header und Bühne */
body.has-ing-hero main,
body.has-ing-hero .wp-block-post-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.ing-home-stage {
  min-height: clamp(560px, 72vh, 820px);
  padding: 0 !important;
  border-radius: 0 !important;
  overflow: hidden;
}

.ing-home-stage .wp-block-cover__image-background {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.ing-home-stage .wp-block-cover__inner-container {
  width: 100%;
}

.ing-home-stage__inner {
  width: min(1400px, calc(100% - 48px)) !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: clamp(72px, 10vh, 130px) 0 clamp(58px, 8vh, 96px);
  display: flex;
  align-items: flex-end;
  min-height: inherit;
}

.ing-home-stage__copy {
  width: min(680px, 100%);
  max-width: 680px !important;
  margin: 0 !important;
  padding: clamp(28px, 4vw, 48px);
  border: 1px solid rgba(236, 224, 213, .78);
  border-radius: 18px;
  background: rgba(252, 250, 247, .92);
  box-shadow: 0 22px 60px rgba(47, 51, 46, .14);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  color: var(--charcoal-olive);
}

.ing-home-stage__copy .ing-eyebrow {
  margin: 0 0 12px;
}

.ing-home-stage__title {
  max-width: 11ch;
  margin: 0;
  color: var(--charcoal-olive);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: clamp(3.2rem, 5.7vw, 6.2rem);
  font-weight: 400;
  line-height: .94;
  letter-spacing: -.035em;
}

.ing-home-stage__title .ing-title-accent {
  color: var(--warm-terracotta);
}

.ing-home-stage__lead {
  max-width: 34rem;
  margin: 24px 0 0;
  color: var(--grey-green);
  font-size: clamp(1.05rem, 1.4vw, 1.25rem);
  line-height: 1.55;
}

.ing-home-stage__buttons {
  margin-top: 28px;
}

.ing-home-stage__buttons .wp-block-button__link {
  min-height: 48px;
  padding: 12px 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--earthy-clay);
  color: var(--pearl-bone);
  font-weight: 750;
}

.ing-home-stage__buttons .wp-block-button__link:hover {
  background: var(--warm-terracotta);
  color: var(--pearl-bone);
}

@media (max-width: 780px) {
  body.has-ing-hero .wp-block-post-content > .ing-home-stage:first-child {
    margin-bottom: 26px !important;
  }

  .ing-home-stage {
    min-height: 620px;
  }

  .ing-home-stage__inner {
    width: calc(100% - 28px) !important;
    padding: 56px 0 34px;
    align-items: flex-end;
  }

  .ing-home-stage__copy {
    width: 100%;
    padding: 24px 22px 26px;
  }

  .ing-home-stage__title {
    max-width: 12ch;
    font-size: clamp(2.8rem, 13vw, 4.6rem);
  }
}


/* Homepage Hero – Full Bleed + direkt editierbar v0.23.6 -------------- */

body.has-ing-hero .wp-site-blocks > main,
body.has-ing-hero main,
body.has-ing-hero main.wp-block-group,
body.has-ing-hero .wp-block-post-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.has-ing-hero .wp-site-blocks > main > *:first-child,
body.has-ing-hero main > *:first-child,
body.has-ing-hero .wp-block-post-content > *:first-child {
  margin-top: 0 !important;
}

body.has-ing-hero .wp-block-post-content > .ing-home-stage:first-child,
body.has-ing-hero .ing-home-stage:first-child {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-top: 0 !important;
  margin-right: calc(50% - 50vw) !important;
  margin-bottom: 24px !important;
  margin-left: calc(50% - 50vw) !important;
  padding: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
}

.ing-home-stage {
  /* 112 px entsprechen der tatsächlichen Desktop-Höhe der Navigation. */
  min-height: clamp(560px, calc(100vh - 112px), 780px) !important;
  min-height: clamp(560px, calc(100svh - 112px), 780px) !important;
  padding: 0 !important;
}

.ing-home-stage .wp-block-cover__inner-container {
  width: min(1400px, calc(100% - 48px)) !important;
  max-width: 1400px !important;
  min-height: inherit;
  margin: 0 auto !important;
  padding: clamp(54px, 8vh, 96px) 0 clamp(44px, 6vh, 72px);
  display: flex;
  align-items: flex-end;
}

.ing-home-stage__panel {
  width: min(690px, 100%);
  max-width: 690px !important;
  margin: 0 !important;
  padding: clamp(28px, 4vw, 46px);
  border: 1px solid rgba(236, 224, 213, .78);
  border-radius: 18px;
  background: rgba(252, 250, 247, .92);
  box-shadow: 0 22px 60px rgba(47, 51, 46, .14);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  color: var(--charcoal-olive);
}

.ing-home-stage__panel > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.ing-home-stage__title {
  margin: 0 !important;
  color: var(--charcoal-olive);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: clamp(3.1rem, 5.4vw, 5.9rem);
  font-weight: 400;
  line-height: .94;
  letter-spacing: -.035em;
}

.ing-home-stage__accent {
  margin: 2px 0 0 !important;
  color: var(--warm-terracotta);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: clamp(3rem, 5.2vw, 5.7rem);
  font-style: italic;
  font-weight: 400;
  line-height: .94;
  letter-spacing: -.035em;
}

.ing-home-stage__lead {
  max-width: 34rem !important;
  margin-top: 24px !important;
  margin-bottom: 0 !important;
}

.ing-home-stage__buttons {
  margin-top: 26px !important;
  margin-bottom: 0 !important;
}

@media (max-width: 780px) {
  body.has-ing-hero .wp-block-post-content > .ing-home-stage:first-child,
  body.has-ing-hero .ing-home-stage:first-child {
    margin-bottom: 18px !important;
  }

  .ing-home-stage {
    /* Mobil: 76 px Innenhöhe + 16 px vertikales Header-Padding. */
    min-height: clamp(560px, calc(100vh - 92px), 720px) !important;
    min-height: clamp(560px, calc(100svh - 92px), 720px) !important;
  }

  .ing-home-stage .wp-block-cover__inner-container {
    width: calc(100% - 28px) !important;
    padding: 42px 0 28px;
  }

  .ing-home-stage__panel {
    width: 100%;
    padding: 24px 22px 26px;
  }

  .ing-home-stage__title,
  .ing-home-stage__accent {
    font-size: clamp(2.7rem, 12vw, 4.4rem);
  }
}


/* Homepage Hero – Wrapper-Abstände entfernen v0.23.7 ------------------ */

/*
 * WordPress/Twenty Twenty-Five setzt um den Seiteninhalt zwei zusätzliche
 * constrained Gruppen mit Inline-Padding (Preset spacing 60).
 * Genau diese erzeugen den weißen Streifen zwischen Header und Hero.
 */
body.has-ing-hero main#wp--skip-link--target {
  margin-top: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Erster Content-Wrapper der Seite */
body.has-ing-hero main#wp--skip-link--target > .wp-block-group.alignfull:first-child,
body.has-ing-hero main#wp--skip-link--target > .wp-block-group:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Falls WordPress noch eine constrained Gruppe um den eigentlichen Post-Content legt */
body.has-ing-hero main#wp--skip-link--target > .wp-block-group:first-child > .wp-block-group:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Der Hero selbst bleibt der erste sichtbare Block und sitzt direkt am Header */
body.has-ing-hero .ing-home-stage:first-of-type {
  margin-top: 0 !important;
}


/* Homepage Hero – Panelbreite + Typografie v0.23.8 -------------------- */

/* Etwas mehr Raum für längere Headlines */
.ing-home-stage__panel {
  width: min(840px, 100%) !important;
  max-width: 840px !important;
}

/* Maximalgröße bewusst etwas zurückgenommen */
.ing-home-stage__title {
  font-size: clamp(3.1rem, 4.5vw, 4.5rem) !important;
}

.ing-home-stage__accent {
  font-size: clamp(3rem, 4.4vw, 4.5rem) !important;
}

@media (max-width: 780px) {
  .ing-home-stage__panel {
    width: 100% !important;
  }

  .ing-home-stage__title,
  .ing-home-stage__accent {
    font-size: clamp(2.5rem, 11vw, 4rem) !important;
  }
}


/* =====================================================================
   HOMEPAGE / PATTERNS – KONSOLIDIERT v0.25.2
   Eine einzige Quelle für Breiten, Abstände und Typografie.
   ===================================================================== */

:root {
  --ing-home-module-width: 1120px;
  --ing-home-text-width: 900px;
  --ing-home-gap: 28px;
}

/* Gemeinsame Außenkante aller großen Homepage-Module */
.home .wp-block-post-content > .ing-pattern,
.home .wp-block-post-content > .ing-pattern-section:not(.ing-hero),
.home .wp-block-post-content > .ing-statement {
  box-sizing: border-box !important;
  width: min(var(--ing-home-module-width), calc(100% - 48px)) !important;
  max-width: var(--ing-home-module-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Kein verstecktes WordPress-Constrained-Maximum mehr innerhalb der Patterns */
.home .wp-block-post-content > .ing-pattern > *,
.home .wp-block-post-content > .ing-pattern-section:not(.ing-hero) > *,
.home .wp-block-post-content > .ing-statement > * {
  width: 100% !important;
  max-width: none !important;
}

/* Vertikaler Rhythmus */
.home .ing-pattern,
.home .ing-pattern-section:not(.ing-hero),
.home .ing-statement {
  margin-top: 56px !important;
  margin-bottom: 56px !important;
}

.home .ing-pattern > h2,
.home .ing-pattern-section > h2 {
  position: relative;
  margin-top: 0 !important;
  margin-bottom: 26px !important;
  font-size: clamp(2.1rem, 3vw, 3rem) !important;
  line-height: 1.08 !important;
}

.home .ing-pattern > h2::after,
.home .ing-pattern-section > h2::after {
  content: "";
  display: block;
  width: 68px;
  height: 3px;
  margin-top: 14px;
  background: var(--warm-terracotta);
}

.home .ing-pattern-section .ing-dynamic-section {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

/* Normaler Lesetext bleibt schmaler */
.home .wp-block-post-content > p:not(.alignwide):not(.alignfull),
.home .wp-block-post-content > h2:not(.alignwide):not(.alignfull),
.home .wp-block-post-content > h3:not(.alignwide):not(.alignfull),
.home .wp-block-post-content > ul:not(.alignwide):not(.alignfull),
.home .wp-block-post-content > ol:not(.alignwide):not(.alignfull),
.home .wp-block-post-content > blockquote:not(.alignwide):not(.alignfull) {
  max-width: var(--ing-home-text-width) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* ---------------------------------------------------------------------
   FLEXIBLE INFOKARTEN
   ------------------------------------------------------------------ */

.ing-feature-cards__grid {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  gap: var(--ing-home-gap) !important;
  align-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
}

.ing-feature-cards__grid > .ing-feature-card {
  grid-column: span 4;
  min-width: 0;
  margin: 0 !important;
  align-self: stretch !important;
}

.ing-feature-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  padding-bottom: 20px;
  border: 1px solid var(--light-orange);
  border-radius: 18px;
  background: var(--pearl-bone);
  box-shadow: 0 10px 28px rgba(47,51,46,.04);
}

.ing-feature-card__media {
  margin: 0 0 18px !important;
  line-height: 0;
}

.ing-feature-card__media img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.ing-feature-card > :not(.ing-feature-card__media) {
  margin-left: 22px;
  margin-right: 22px;
}

.ing-feature-card h3 {
  margin-top: 0 !important;
  margin-bottom: 8px !important;
  color: var(--warm-terracotta);
  font-size: 1.12rem !important;
  line-height: 1.15 !important;
}

.ing-feature-card p {
  margin-top: 0;
  font-size: .92rem !important;
  line-height: 1.42 !important;
}

.ing-feature-card .wp-block-buttons {
  margin-top: auto;
  padding-top: 14px;
}

.ing-feature-card .wp-block-button__link {
  font-size: .84rem !important;
  padding: 8px 13px !important;
}

/* 2 Karten */
.ing-feature-cards__grid:has(> .ing-feature-card:nth-child(2):last-child) > .ing-feature-card {
  grid-column: span 6;
}

/* 4 Karten */
.ing-feature-cards__grid:has(> .ing-feature-card:nth-child(4):last-child) > .ing-feature-card {
  grid-column: span 6;
}

/* 5 Karten = 3 + 2 */
.ing-feature-cards__grid:has(> .ing-feature-card:nth-child(5):last-child) > .ing-feature-card:nth-child(-n/**/+3) {
  grid-column: span 4;
}
.ing-feature-cards__grid:has(> .ing-feature-card:nth-child(5):last-child) > .ing-feature-card:nth-child(n/**/+4) {
  grid-column: span 6;
}

/* 6 Karten = 3 + 3 */
.ing-feature-cards__grid:has(> .ing-feature-card:nth-child(6):last-child) > .ing-feature-card {
  grid-column: span 4;
}

/* ---------------------------------------------------------------------
   EDITORIAL CARDS
   ------------------------------------------------------------------ */

.ing-editorial-cards__grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: var(--ing-home-gap) !important;
  align-items: stretch !important;
}

.ing-editorial-card {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(180px, .75fr);
  min-height: 285px;
  overflow: hidden;
  border-radius: 24px;
  background:
    radial-gradient(circle at 90% 45%, rgba(125,140,123,.92) 0 28%, transparent 28.2%),
    var(--pastel-yellow);
}

.ing-editorial-card__copy {
  z-index: 2;
  padding: 30px 0 28px 30px;
}

.ing-editorial-card__eyebrow {
  display: inline-block;
  margin: 0;
  padding: 4px 9px;
  border-radius: 999px;
  background: rgba(252,250,247,.35);
  font-size: .66rem !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ing-editorial-card__copy h3 {
  margin: 10px 0 !important;
  font-size: 1.55rem !important;
  line-height: 1.08 !important;
}

.ing-editorial-card__copy p:not(.ing-editorial-card__eyebrow) {
  font-size: .9rem !important;
  line-height: 1.45 !important;
}

.ing-editorial-card__copy .wp-block-buttons {
  margin-top: 20px;
}

.ing-editorial-card__copy .wp-block-button__link {
  background: var(--pearl-bone);
  color: var(--charcoal-olive);
  font-size: .86rem !important;
  padding: 9px 14px !important;
}

.ing-editorial-card__media {
  z-index: 1;
  align-self: center;
  justify-self: center;
  width: 78%;
  margin: 0 !important;
}

.ing-editorial-card__media img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  border-radius: 50%;
  object-fit: cover;
}

/* ---------------------------------------------------------------------
   BILDER-SLIDESHOW
   ------------------------------------------------------------------ */

.ing-image-slideshow__slides {
  overflow: hidden;
  border-radius: 24px;
  background: var(--soft-cream);
}

.ing-image-slideshow__slides > figure {
  margin: 0 !important;
}

.ing-image-slideshow__slides img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.ing-image-slideshow.is-enhanced .ing-image-slideshow__slides > * {
  display: none;
}
.ing-image-slideshow.is-enhanced .ing-image-slideshow__slides > *.is-active {
  display: block;
}

/* ---------------------------------------------------------------------
   TESTIMONIALS
   ------------------------------------------------------------------ */

.ing-testimonial-slideshow {
  padding: 34px 40px !important;
  border: 1px solid var(--light-orange);
  border-radius: 24px;
  background: var(--dawn-orange);
}

.ing-testimonial-slide {
  max-width: 860px !important;
  margin: 0 auto;
}

.ing-testimonial-slide blockquote {
  margin: 0;
  padding: 0;
  border: 0;
}

.ing-testimonial-slide blockquote p {
  margin: 0;
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: 1.18rem !important;
  line-height: 1.45 !important;
}

.ing-testimonial-slide cite {
  display: block;
  margin-top: 16px;
  color: var(--grey-green);
  font-size: .95rem;
  font-style: normal;
}

.ing-testimonial-slideshow.is-enhanced .ing-testimonial-slideshow__slides > * {
  display: none;
}
.ing-testimonial-slideshow.is-enhanced .ing-testimonial-slideshow__slides > *.is-active {
  display: block;
}

/* ---------------------------------------------------------------------
   STATEMENT / ZITAT
   ------------------------------------------------------------------ */

.ing-statement {
  padding: 34px 40px !important;
}

/* ---------------------------------------------------------------------
   SLIDER CONTROLS
   ------------------------------------------------------------------ */

.ing-slider-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 20px;
}

.ing-slider-arrow,
.ing-slider-dot {
  appearance: none;
  border: 0;
  cursor: pointer;
}

.ing-slider-arrow {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: var(--earthy-clay);
  color: var(--pearl-bone);
  font-size: 1.2rem;
}

.ing-slider-dots {
  display: flex;
  gap: 8px;
}

.ing-slider-dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border-radius: 999px;
  background: var(--light-orange);
}

.ing-slider-dot.is-active {
  background: var(--warm-terracotta);
  transform: scale(1.2);
}

.ing-slider-arrow:focus,
.ing-slider-arrow:focus-visible,
.ing-slider-dot:focus,
.ing-slider-dot:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* ---------------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------------ */

@media (max-width: 980px) {
  .ing-feature-cards__grid > .ing-feature-card {
    grid-column: span 6 !important;
  }

  .ing-editorial-cards__grid {
    grid-template-columns: 1fr !important;
  }

  .ing-editorial-card {
    grid-template-columns: 1fr;
  }

  .ing-editorial-card__media {
    width: 190px;
    margin: 0 auto 28px !important;
  }
}

@media (max-width: 640px) {
  .home .wp-block-post-content > .ing-pattern,
  .home .wp-block-post-content > .ing-statement {
    width: calc(100% - 28px) !important;
  }

  .ing-feature-cards__grid > .ing-feature-card {
    grid-column: 1 / -1 !important;
  }

  .ing-statement,
  .ing-testimonial-slideshow {
    padding: 26px 22px !important;
  }

  .ing-testimonial-slide blockquote p {
    font-size: 1.08rem !important;
  }
}

/* Veranstaltungsseite: CTA-Farben der führenden Themenwelt und Motiv. */




.single-veranstaltung .ing-event-closing-shell .ing-event-booking[style] {
  background: var(--ing-theme-primary);
  color: var(--ing-theme-ink);
}

.single-veranstaltung .ing-event-closing-shell .ing-event-booking[style] .ing-event-booking__intro .ing-eyebrow,
.single-veranstaltung .ing-event-closing-shell .ing-event-booking[style] .ing-event-booking__intro h2,
.single-veranstaltung .ing-event-closing-shell .ing-event-booking[style] .ing-event-booking__intro p {
  color: var(--ing-theme-ink) !important;
}

.single-veranstaltung .ing-event-closing-shell .ing-event-booking[style] .ing-event-booking__actions .ing-button {
  background: #fff;
  color: var(--charcoal-olive);
}

.single-veranstaltung .ing-event-hero {
  position: relative;
}

.single-veranstaltung .ing-event-hero--no-image.ing-event-hero--has-ornament .ing-event-hero__copy {
  padding-right: 170px;
}

.single-veranstaltung .ing-event-hero__ornament {
  position: absolute;
  top: clamp(18px, 3vw, 42px);
  right: clamp(18px, 3vw, 42px);
  width: clamp(76px, 9vw, 130px);
  aspect-ratio: 1;
  overflow: hidden;
  border: 5px solid rgba(255,255,255,.88);
  border-radius: 50%;
  box-shadow: 0 10px 30px rgba(30,28,25,.14);
  pointer-events: none;
}

.single-veranstaltung .ing-event-hero__ornament img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 640px) {
  .single-veranstaltung .ing-event-hero__ornament {
    top: 14px;
    right: 14px;
    width: 64px;
    border-width: 3px;
  }

  .single-veranstaltung .ing-event-hero--no-image.ing-event-hero--has-ornament .ing-event-hero__copy {
    padding-top: 90px;
    padding-right: 22px;
  }
}

/* Wissenswertes: Bildbühne und Themenfarbe analog zur Veranstaltung. */
.single-post .ing-blog-hero {
  position: relative;
}

.single-post .ing-blog-hero__image {
  height: min(56vw, 620px);
  aspect-ratio: auto;
  box-shadow: var(--ing-shadow);
}

.single-post .ing-blog-hero__copy {
  position: relative;
  width: min(900px, 90%);
  max-width: 900px;
  margin: -72px 0 0 5%;
  padding: 34px 38px;
  border-radius: var(--ing-radius);
  background: rgba(255,255,255,.97);
  box-shadow: var(--ing-shadow);
}

.single-post .ing-blog-hero--no-image .ing-blog-hero__copy {
  width: 100%;
  margin: 0;
}

.single-post .ing-blog-hero h1 {
  font-size: clamp(2.25rem, 5vw, 4.5rem);
  line-height: 1.02;
}

.single-post .ing-blog-hero__excerpt {
  font-size: clamp(1rem, 1.6vw, 1.18rem);
  line-height: 1.6;
}

.single-post .ing-blog-hero--no-image.ing-blog-hero--has-ornament .ing-blog-hero__copy {
  padding-right: 170px;
}

.single-post .ing-blog-hero__ornament {
  position: absolute;
  top: clamp(18px, 3vw, 42px);
  right: clamp(18px, 3vw, 42px);
  width: clamp(76px, 9vw, 130px);
  aspect-ratio: 1;
  overflow: hidden;
  border: 5px solid rgba(255,255,255,.88);
  border-radius: 50%;
  box-shadow: 0 10px 30px rgba(30,28,25,.14);
  pointer-events: none;
}

.single-post .ing-blog-hero__ornament img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.single-post .ing-blog-theme-cta[style] {
  background: var(--ing-theme-primary);
  color: var(--ing-theme-ink);
}

.single-post .ing-blog-theme-cta[style] .ing-eyebrow,
.single-post .ing-blog-theme-cta[style] h2,
.single-post .ing-blog-theme-cta[style] p {
  color: var(--ing-theme-ink) !important;
}

.single-post .ing-blog-theme-cta[style] .ing-button {
  background: #fff;
  color: var(--charcoal-olive);
}

.single-post .ing-blog-theme-cta[style] .ing-button--secondary {
  border: 1px solid currentColor;
  background: transparent;
  color: var(--ing-theme-ink);
}

.single-post .ing-blog-theme-cta[style] .ing-button--secondary:hover {
  background: rgba(255,255,255,.18);
  color: var(--ing-theme-ink);
}

@media (max-width: 760px) {
  .single-post .ing-blog-hero__image {
    height: clamp(270px, 62vw, 460px);
  }

  .single-post .ing-blog-hero__copy {
    width: calc(100% - 24px);
    margin: -24px 12px 0;
    padding: 24px 22px;
  }

  .single-post .ing-blog-hero--no-image .ing-blog-hero__copy {
    width: 100%;
    margin: 0;
  }
}

@media (max-width: 640px) {
  .single-post .ing-blog-hero__ornament {
    top: 14px;
    right: 14px;
    width: 64px;
    border-width: 3px;
  }

  .single-post .ing-blog-hero--no-image.ing-blog-hero--has-ornament .ing-blog-hero__copy {
    padding-top: 90px;
    padding-right: 22px;
  }
}

/* Angebote: Themenweltfarbe und Motiv in den gleichen Bereichen. */
.single-angebot .ing-offer-meta[style] .ing-offer-meta__cta .ing-button {
  background: var(--ing-theme-primary);
  color: var(--ing-theme-ink);
}

.single-angebot .ing-offer-meta[style] .ing-offer-meta__cta .ing-button:hover,
.single-angebot .ing-offer-meta[style] .ing-offer-meta__cta .ing-button:focus-visible {
  background: var(--ing-theme-primary);
  color: var(--ing-theme-ink);
  filter: brightness(.92);
}

.single-angebot .ing-offer-booking[style] {
  background: var(--ing-theme-primary);
  color: var(--ing-theme-ink);
}

.single-angebot .ing-offer-booking[style] .ing-eyebrow,
.single-angebot .ing-offer-booking[style] h2 {
  color: var(--ing-theme-ink) !important;
}

.single-angebot .ing-offer-booking[style] .ing-button {
  background: #fff;
  color: var(--charcoal-olive);
}

.single-angebot .ing-offer-hero {
  position: relative;
}

.single-angebot .ing-offer-hero--no-image .ing-offer-hero__copy {
  margin-top: 0;
  max-width: 100%;
}

.single-angebot .ing-offer-hero--no-image.ing-offer-hero--has-ornament .ing-offer-hero__copy {
  padding-right: 170px;
}

.single-angebot .ing-offer-hero__ornament {
  position: absolute;
  top: clamp(18px, 3vw, 42px);
  right: clamp(18px, 3vw, 42px);
  width: clamp(76px, 9vw, 130px);
  aspect-ratio: 1;
  overflow: hidden;
  border: 5px solid rgba(255,255,255,.88);
  border-radius: 50%;
  box-shadow: 0 10px 30px rgba(30,28,25,.14);
  pointer-events: none;
}

.single-angebot .ing-offer-hero__ornament img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 640px) {
  .single-angebot .ing-offer-hero__ornament {
    top: 14px;
    right: 14px;
    width: 64px;
    border-width: 3px;
  }

  .single-angebot .ing-offer-hero--no-image.ing-offer-hero--has-ornament .ing-offer-hero__copy {
    padding-top: 90px;
    padding-right: 22px;
  }
}

/* Vier großflächige Veranstaltungs-Teaser mit frei platzierbaren Texten. */
.ing-pattern-section:has(.ing-event-posters) > h2 {
  width: 100%;
  max-width: none !important;
  margin: 0 0 20px;
  text-align: left;
  font-size: clamp(2.1rem, 3vw, 3rem);
}

.ing-pattern-section:has(.ing-event-posters) > h2::after {
  content: "";
  display: block;
  width: 68px;
  height: 3px;
  margin-top: 14px;
  background: var(--warm-terracotta);
}

.ing-event-posters {
  width: 100%;
  max-width: none !important;
  margin: 24px 0 80px;
}

.ing-event-posters__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 26px);
}

.ing-event-poster {
  position: relative;
  aspect-ratio: 1.45;
  overflow: hidden;
  border-radius: var(--ing-radius);
  background: var(--ing-theme-secondary, #dad0c9);
  box-shadow: var(--ing-shadow);
  isolation: isolate;
}

.ing-event-poster__image,
.ing-event-poster__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.ing-event-poster__image img {
  display: block;
  object-fit: cover;
}

.ing-event-poster__content {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  min-height: 100%;
  display: grid;
  grid-template-rows: auto 1fr auto auto;
  gap: 10px;
  align-items: center;
  padding: clamp(22px, 3vw, 36px);
}

.ing-event-poster__date,
.ing-event-poster__title,
.ing-event-poster__copy {
  width: fit-content;
  max-width: min(82%, 450px);
  margin: 0;
  padding: 8px 12px;
  border-radius: 11px;
  background: rgba(255, 252, 248, .94);
  color: var(--charcoal-olive);
  box-decoration-break: clone;
}

.ing-event-poster__date {
  font-family: var(--wp--preset--font-family--ing-sans);
  font-size: clamp(.78rem, 1vw, .95rem);
  font-weight: 700;
}

.ing-event-poster__title {
  align-self: end;
  padding: 12px 16px;
  font-size: clamp(1.75rem, 2.15vw, 2.5rem);
  line-height: 1.02;
}

.ing-event-poster__copy {
  font-size: clamp(.9rem, 1.05vw, 1.03rem);
  line-height: 1.55;
}

.ing-event-poster__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  margin-top: 8px;
  padding: 11px 16px;
  border-radius: 10px;
  background: var(--ing-theme-primary, #ad5745);
  color: var(--ing-theme-ink, #fff);
  text-decoration: none;
}

.ing-event-poster__cta:hover,
.ing-event-poster__cta:focus-visible {
  color: var(--ing-theme-ink, #fff);
  filter: brightness(.92);
}

.ing-event-poster__align--left { justify-self: start; text-align: left; }
.ing-event-poster__align--center { justify-self: center; text-align: center; }
.ing-event-poster__align--right { justify-self: end; text-align: right; }

/* Fertige Motive enthalten die Gestaltung samt Text und CTA bereits im Bild. */
.ing-event-poster.ing-event-poster--finished {
  aspect-ratio: auto;
  min-height: 0;
}

.ing-event-poster__finished-link {
  display: block;
  color: var(--charcoal-olive);
  text-decoration: none;
}

.ing-event-poster__finished-link:hover,
.ing-event-poster__finished-link:focus-visible {
  color: var(--charcoal-olive);
}

.ing-event-poster__finished-link:focus-visible {
  outline: 3px solid var(--ing-theme-primary, #ad5745);
  outline-offset: -3px;
}

.ing-event-poster__finished-image {
  display: block;
  width: 100%;
  height: auto;
}

.ing-event-poster__date-strip {
  display: block;
  padding: 12px clamp(18px, 2vw, 26px);
  background: #fffaf5;
  color: var(--charcoal-olive);
  font-family: var(--wp--preset--font-family--ing-sans);
  font-size: clamp(.8rem, 1vw, .95rem);
  font-weight: 600;
  line-height: 1.45;
}

.ing-event-poster__date-strip--left { text-align: left; }
.ing-event-poster__date-strip--center { text-align: center; }
.ing-event-poster__date-strip--right { text-align: right; }

@media (max-width: 900px) {
  .ing-event-posters__list { grid-template-columns: 1fr; }
  .ing-event-poster { aspect-ratio: auto; min-height: 440px; }
}

@media (max-width: 700px) {
  .ing-event-poster { min-height: 460px; }
  .ing-event-poster__content { padding: 24px; }
  .ing-event-poster__date,
  .ing-event-poster__title,
  .ing-event-poster__copy { max-width: 100%; }
  .ing-event-poster__title { font-size: clamp(2rem, 7vw, 3rem); }
}

@media (max-width: 900px) {
  .ing-event-poster.ing-event-poster--finished { min-height: 0; }
}

/* Dynamisches Kartenraster nach der tatsächlich ausgegebenen Anzahl. */
.ing-dynamic-grid[class*="ing-dynamic-grid--count-"] {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.ing-dynamic-grid[class*="ing-dynamic-grid--count-"] > .ing-dynamic-teaser {
  grid-column: span 4;
}

.ing-dynamic-grid--count-1 > .ing-dynamic-teaser { grid-column: span 12 !important; }
.ing-dynamic-grid--count-2 > .ing-dynamic-teaser,
.ing-dynamic-grid--count-4 > .ing-dynamic-teaser { grid-column: span 6 !important; }

.ing-dynamic-grid--count-5 > .ing-dynamic-teaser:nth-child(n/**/+4),
.ing-dynamic-grid--count-8 > .ing-dynamic-teaser:nth-child(n/**/+7),
.ing-dynamic-grid--count-11 > .ing-dynamic-teaser:nth-child(n/**/+10) {
  grid-column: span 6 !important;
}

.ing-dynamic-grid--count-7 > .ing-dynamic-teaser:nth-child(n/**/+4),
.ing-dynamic-grid--count-10 > .ing-dynamic-teaser:nth-child(n/**/+7) {
  grid-column: span 6 !important;
}

@media (max-width: 900px) {
  .ing-dynamic-grid[class*="ing-dynamic-grid--count-"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ing-dynamic-grid[class*="ing-dynamic-grid--count-"] > .ing-dynamic-teaser {
    grid-column: auto !important;
  }

  .ing-dynamic-grid--count-1 {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 640px) {
  .ing-dynamic-grid[class*="ing-dynamic-grid--count-"] {
    grid-template-columns: 1fr;
  }
}

/* Veranstaltungsübersicht: Filterchips + Ansichtswechsel v0.30.0 -------- */
.ing-event-listing-toolbar {
  min-height: 42px;
  margin: -8px 0 28px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 18px;
}

.ing-event-active-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: .86rem;
}

.ing-event-active-filters__label {
  color: var(--grey-green);
}

.ing-event-active-filters a {
  padding: 7px 11px;
  border: 1px solid var(--light-orange);
  border-radius: 999px;
  background: var(--pearl-bone);
  color: var(--charcoal-olive);
  text-decoration: none;
}

.ing-event-active-filters a:hover,
.ing-event-active-filters a:focus-visible {
  border-color: var(--warm-terracotta);
  color: var(--warm-terracotta);
}

.ing-event-active-filters .ing-event-active-filters__reset {
  border-color: transparent;
  background: transparent;
  color: var(--warm-terracotta);
}

.ing-event-view-switch {
  flex: 0 0 auto;
  display: inline-flex;
  padding: 3px;
  border: 1px solid var(--light-orange);
  border-radius: 999px;
  background: var(--pearl-bone);
}

.ing-event-view-switch button {
  min-height: 34px;
  padding: 9px 16px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--grey-green);
  font: inherit;
  font-size: .92rem;
  line-height: 1;
  cursor: pointer;
}

.ing-event-view-switch button svg {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  fill: currentColor;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}

.ing-event-view-switch button svg path {
  fill: none;
}

.ing-event-view-switch button.is-active {
  background: var(--warm-terracotta);
  color: var(--pearl-bone);
}

.ing-events-listing .ing-listing-card {
  overflow: hidden;
}

.ing-events-listing .ing-listing-card__image {
  display: block;
}

.ing-events-listing .ing-listing-card h2 a {
  color: inherit;
  text-decoration: none;
}

.ing-events-listing .ing-listing-card h2 a:hover,
.ing-events-listing .ing-listing-card h2 a:focus-visible {
  color: var(--warm-terracotta);
}

.ing-event-card__chips {
  margin: 0 0 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* WordPress kann <br>-Elemente erst nach der Shortcode-Ausgabe ergänzen. */
.ing-events-listing br {
  display: none !important;
}

.ing-event-card__chip {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 5px 11px;
  border: 1px solid var(--warm-terracotta);
  border-radius: 999px;
  background: var(--pearl-bone);
  color: var(--warm-terracotta);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: 1rem;
  line-height: 1.1;
  text-decoration: none;
}

a.ing-event-card__chip:hover,
a.ing-event-card__chip:focus-visible,
.ing-event-card__chip.is-active {
  border-color: var(--warm-terracotta);
  background: rgba(184,109,82,.1);
  color: var(--warm-terracotta);
}

.ing-event-card__chip--meta {
  border-color: #dedbd5;
  background: #ece9e4;
  color: #696b66;
}

.ing-events-listing .ing-listing-card__date {
  margin-bottom: 11px;
}

.ing-events-listing .ing-listing-card__meta {
  color: var(--grey-green);
  font-weight: 500;
}

.ing-events-listing .ing-listing-card__more {
  width: fit-content;
  text-decoration: none;
}

/* Listenansicht: Bild und Inhalt stehen auf großen Screens nebeneinander. */
.ing-event-listing-grid.is-list-view {
  grid-template-columns: 1fr !important;
  gap: 18px;
}

.ing-event-listing-grid.is-list-view .ing-listing-card {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(260px, 34%) minmax(0, 1fr);
}

.ing-event-listing-grid.is-list-view .ing-listing-card__image {
  height: 100%;
  aspect-ratio: auto;
}

.ing-event-listing-grid.is-list-view .ing-listing-card__image img {
  height: 100%;
  min-height: 290px;
  aspect-ratio: auto;
}

.ing-event-listing-grid.is-list-view .ing-listing-card__body {
  padding: 28px 32px;
}

.ing-event-listing-grid.is-list-view .ing-event-card__chips {
  margin-bottom: 18px;
}

@media (max-width: 760px) {
  .ing-event-listing-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .ing-event-listing-grid.is-list-view .ing-listing-card {
    display: block;
  }

  .ing-event-listing-grid.is-list-view .ing-listing-card__image {
    aspect-ratio: 4 / 3;
  }

  .ing-event-listing-grid.is-list-view .ing-listing-card__image img {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }

  .ing-event-listing-grid.is-list-view .ing-listing-card__body {
    padding: 22px 20px;
  }
}


/* Mobile Navigation und Blog-Detail v0.31.1 --------------------------- */

/*
 * Der Navigation-Block schaltet standardmäßig erst bei einer schmaleren
 * Breite auf das Overlay um als unser Header. Dadurch blieb auf Tablets nur
 * der erste Menüpunkt sichtbar. Bis 900 px erzwingen wir deshalb den
 * kompakten Menüschalter und halten Logo und Schalter in einer Zeile.
 */
@media (max-width: 900px) {
  .ing-site-header,
  .ing-site-header__inner,
  .ing-main-navigation {
    box-sizing: border-box;
  }

  .ing-site-header {
    padding-right: 14px;
    padding-left: 14px;
  }

  .ing-site-header__inner {
    width: 100%;
    min-height: 76px;
    padding: 8px 0;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
  }

  .ing-site-logo,
  .wp-block-site-logo.ing-site-logo {
    display: block !important;
    width: 68px !important;
    min-width: 68px;
    flex: 0 0 68px;
  }

  .ing-site-logo img,
  .wp-block-site-logo.ing-site-logo img {
    width: 68px !important;
    max-width: 68px !important;
  }

  .ing-main-navigation {
    width: auto;
    flex: 0 0 auto;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container-open {
    width: 44px;
    height: 44px;
    padding: 10px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--ing-line);
    border-radius: 50%;
    background: var(--ing-surface);
  }

  .ing-main-navigation .wp-block-navigation__responsive-container-open svg {
    width: 24px;
    height: 24px;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100dvh;
    box-sizing: border-box;
    overflow-y: auto;
    z-index: 100000;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container-close {
    top: 22px;
    right: 22px;
    width: 44px;
    height: 44px;
  }
}


/* Mobile Navigation: einheitliche Menüachse v0.31.2 ------------------- */
@media (max-width: 900px) {
  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open {
    padding: 22px 24px 28px;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content {
    width: 100%;
    padding-top: 58px;
    display: block;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__container {
    width: 100%;
    height: auto;
    min-height: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 2px;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__container > .wp-block-navigation-item,
  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__container > .wp-block-navigation-submenu {
    width: 100%;
    margin: 0;
    display: block;
    align-self: stretch !important;
    text-align: left !important;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content,
  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation-item__content {
    width: 100% !important;
    box-sizing: border-box;
    padding: 9px 0;
    display: block;
    font-size: clamp(2rem, 8vw, 2.6rem);
    line-height: 1.08;
    text-align: left !important;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__submenu-container {
    width: 100%;
    margin: 0 0 7px !important;
    padding: 0 0 3px 18px !important;
    box-sizing: border-box;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__submenu-container .wp-block-navigation-item {
    width: 100%;
    margin: 0;
    display: block;
    text-align: left;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    width: 100%;
    padding: 7px 0;
    display: block;
    font-size: 1rem;
    line-height: 1.35;
    text-align: left;
  }

  .ing-main-navigation .wp-block-navigation__responsive-container.is-menu-open
  .ing-nav-cta > .wp-block-navigation-item__content {
    width: fit-content !important;
    margin-top: 12px;
    padding: 12px 18px;
    display: inline-flex;
    font-size: 1rem;
    line-height: 1.2;
  }
}

@media (max-width: 760px) {
  /* Hero und Lesespalte bleiben vollständig innerhalb des Viewports. */
  .single-post .ing-blog-hero,
  .single-post .ing-blog-theme-cta {
    width: calc(100% - 28px) !important;
    max-width: none !important;
    box-sizing: border-box;
  }

  .single-post .ing-blog-hero {
    margin-top: 22px !important;
    margin-bottom: 38px !important;
  }

  .single-post .ing-blog-hero__image {
    height: clamp(250px, 72vw, 390px);
  }

  .single-post .ing-blog-hero__copy {
    width: auto !important;
    max-width: none !important;
    margin: -22px 10px 0 !important;
    padding: 22px 18px 24px;
    box-sizing: border-box;
  }

  .single-post .ing-blog-hero--no-image .ing-blog-hero__copy {
    width: 100% !important;
    margin: 0 !important;
  }

  .single-post .ing-blog-hero h1 {
    margin-top: 10px;
    margin-bottom: 14px;
    font-size: clamp(2.15rem, 10vw, 3rem);
    line-height: 1.02;
    overflow-wrap: anywhere;
  }

  .single-post .ing-blog-hero__excerpt {
    font-size: 1rem;
    line-height: 1.55;
  }

  .single-post .ing-blog-content {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .single-post .ing-blog-content .wp-block-post-content {
    font-size: 1rem;
    line-height: 1.68;
  }

  .single-post .ing-blog-content h2 {
    margin-top: 1.8em;
    margin-bottom: .55em;
  }

  .single-post .ing-blog-content h3 {
    margin-top: 1.55em;
    margin-bottom: .5em;
  }

  .single-post .ing-blog-content p,
  .single-post .ing-blog-content ul,
  .single-post .ing-blog-content ol {
    margin-bottom: 1.05em;
  }

  .single-post .ing-blog-content p:empty {
    display: none;
  }

  .single-post .ing-blog-content .wp-block-spacer {
    max-height: 48px;
  }

  /* Abschluss-CTA: weniger Leerraum und keine durch Padding erzeugte Überbreite. */
  .single-post .ing-blog-theme-cta {
    margin-top: 38px !important;
    padding: 24px 20px;
    gap: 22px;
  }

  .single-post .ing-blog-theme-cta h2 {
    margin-top: 5px;
    margin-bottom: 10px;
    font-size: clamp(2rem, 9vw, 2.65rem);
  }

  .single-post .ing-blog-theme-cta__actions {
    gap: 12px;
  }

  .single-post .ing-blog-theme-cta br {
    display: none !important;
  }

  .single-post .ing-blog-theme-cta .ing-button {
    min-height: 50px;
    padding: 13px 16px;
    box-sizing: border-box;
    line-height: 1.25;
  }
}

/* Aktueller und weitere Termine typografisch konsistent v0.32.2 -------- */
.single-veranstaltung .ing-event-more-date strong{
  display: block;
  margin: 0 0 7px;
  color: var(--charcoal-olive);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.3;
}



.single-veranstaltung .ing-event-more-date__date,
.single-veranstaltung .ing-event-more-date__time {
  color: var(--charcoal-olive);
  font-family: var(--wp--preset--font-family--ing-sans, Montserrat, sans-serif);
  font-size: .98rem !important;
  font-weight: 400;
  line-height: 1.45 !important;
}

/* Personenkarte Veranstaltung v0.32.3 ------------------------------- */
.single-veranstaltung .ing-event-person-card__link .ing-event-person-card__more {
  display: inline-flex;
  min-height: 42px;
  margin-top: 22px;
  padding: 9px 16px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 10px;
  background: var(--warm-terracotta);
  color: #fff;
  font-family: var(--wp--preset--font-family--ing-sans, Montserrat, sans-serif);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.15;
}

.single-veranstaltung .ing-event-person-card__link:hover .ing-event-person-card__more,
.single-veranstaltung .ing-event-person-card__link:focus-visible .ing-event-person-card__more {
  background: var(--earthy-clay);
  color: #fff;
}

/* Personenkarte Angebot und Veranstaltung v0.32.4 ------------------- */
.single-angebot .ing-offer-closing-shell {
  width: min(1400px, calc(100% - 48px)) !important;
  max-width: 1400px !important;
  grid-template-columns: minmax(260px, 1fr) minmax(0, 2fr) !important;
}

.single-angebot .ing-offer-person-card__body {
  padding: 18px 20px 20px;
}

.single-angebot .ing-offer-person-card__link .ing-offer-person-card__more {
  display: inline-flex;
  min-height: 42px;
  margin-top: 22px;
  padding: 9px 16px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 10px;
  background: var(--warm-terracotta);
  color: #fff;
  font-family: var(--wp--preset--font-family--ing-sans, Montserrat, sans-serif);
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.15;
}

.single-angebot .ing-offer-person-card__link:hover .ing-offer-person-card__more,
.single-angebot .ing-offer-person-card__link:focus-visible .ing-offer-person-card__more {
  background: var(--earthy-clay);
  color: #fff;
}

@media (max-width: 900px) {
  .single-angebot .ing-offer-closing-shell {
    width: min(1400px, calc(100% - 28px)) !important;
    grid-template-columns: 1fr !important;
  }

  .single-angebot .ing-offer-closing-shell .ing-people,
  .single-angebot .ing-offer-closing-shell .ing-note,
  .single-angebot .ing-offer-closing-shell .ing-offer-booking {
    grid-column: 1 !important;
  }
}

/* Wissenswertes im Veranstaltungsrhythmus v0.32.5 ------------------- */
.single-post .ing-blog-hero {
  margin-top: 28px !important;
  margin-bottom: 48px !important;
}

.single-post .ing-blog-hero__copy {
  width: auto;
  max-width: 900px;
  box-sizing: border-box;
}

.single-post .ing-blog-theme-cta {
  margin-top: 72px !important;
  padding: 32px 36px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 28px 42px;
}

.single-post .ing-blog-theme-cta__copy {
  min-width: 0;
  max-width: 720px;
}

.single-post .ing-blog-theme-cta h2 {
  max-width: 22ch;
  font-size: clamp(1.9rem, 3vw, 2.7rem);
  line-height: 1.05;
}

.single-post .ing-blog-theme-cta__actions {
  align-items: center;
  justify-content: flex-end;
}

.single-post .ing-blog-theme-cta .ing-button {
  min-height: 46px;
  padding: 11px 19px;
}

@media (max-width: 760px) {
  .single-post .ing-blog-hero {
    margin-top: 22px !important;
    margin-bottom: 38px !important;
  }

  .single-post .ing-blog-theme-cta {
    grid-template-columns: 1fr;
    margin-top: 38px !important;
    padding: 24px 20px;
    gap: 22px;
  }

  .single-post .ing-blog-theme-cta__actions {
    width: 100%;
    justify-content: flex-start;
  }
}

/* Veranstaltungsübersicht: echte mobile Liste v0.32.6 --------------- */
.ing-events-listing .ing-listing-card__occurrence-title {
  margin: 0 0 7px;
  color: var(--charcoal-olive);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: 1.05rem;
  font-weight: 500;
  line-height: 1.3;
}

@media (max-width: 760px) {
  .ing-event-listing-grid.is-list-view {
    gap: 12px;
  }

  .ing-event-listing-grid.is-list-view .ing-listing-card {
    display: block;
    min-height: 0;
    border-radius: 14px;
  }

  .ing-event-listing-grid.is-list-view .ing-listing-card__image {
    display: none !important;
  }

  .ing-event-listing-grid.is-list-view .ing-listing-card__body {
    min-height: 0;
    padding: 18px 18px 20px !important;
  }

  .ing-event-listing-grid.is-list-view .ing-event-card__chips {
    margin-bottom: 14px;
    gap: 6px;
  }

  .ing-event-listing-grid.is-list-view .ing-event-card__chip {
    min-height: 28px;
    padding: 4px 9px;
    font-size: .9rem;
  }

  .ing-event-listing-grid.is-list-view .ing-listing-card__occurrence-title {
    margin-bottom: 5px;
    font-size: 1rem;
  }

  .ing-event-listing-grid.is-list-view .ing-listing-card__date {
    margin-bottom: 7px;
  }

  .ing-event-listing-grid.is-list-view .ing-listing-card h2 {
    margin-bottom: 10px;
    font-size: 1.65rem;
  }

  .ing-event-listing-grid.is-list-view .ing-listing-card__meta {
    margin-bottom: 0;
  }

  .ing-event-listing-grid.is-list-view .ing-listing-card__more {
    margin-top: 16px;
  }
}

/* Globale Typografie und Karten-CTAs v0.32.8 ------------------------ */
html,
body,
.wp-site-blocks {
  color: var(--charcoal-olive);
}

body,
p,
li,
dt,
dd,
figcaption,
label,
input,
select,
textarea {
  font-family: var(--wp--preset--font-family--ing-sans, Montserrat, Arial, sans-serif) !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-heading {
  color: var(--charcoal-olive);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif) !important;
}

button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.ing-button,
.wp-block-button__link,
.wp-element-button,
.ing-video-consent__button,
.ing-event-view-switch button,
.ing-main-navigation,
.ing-main-navigation .wp-block-navigation-item__content,
.ing-main-navigation .wp-block-navigation-submenu__toggle,
.ing-main-navigation .wp-block-navigation__responsive-container-open,
.ing-main-navigation .wp-block-navigation__responsive-container-close,
.ing-footer-navigation .wp-block-navigation-item__content,
.ing-footer-legal .wp-block-navigation-item__content {
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif) !important;
}

.ing-main-navigation {
  color: var(--charcoal-olive);
  font-size: 1.08rem;
  font-weight: 600;
}

.ing-main-navigation .wp-block-navigation-item__content,
.ing-main-navigation .wp-block-navigation__responsive-container-open,
.ing-main-navigation .wp-block-navigation__responsive-container-close {
  color: var(--charcoal-olive);
}

/* Kachel-System v0.33.1 -------------------------------------------------
 * Konsolidierter Stand für Angebote, Veranstaltungen, Wissenswertes und
 * Event-Shortcodes. Keine ganzflächigen Kartenlinks mehr; dadurch bleibt
 * das Markup stabil und wpautop kann keine leeren Link-/Absatz-Fragmente
 * innerhalb der Karten erzeugen.
 */
article.ing-listing-card,
article.ing-blog-card,
article.ing-dynamic-teaser {
  --ing-theme-primary: unset !important;
  --ing-theme-secondary: unset !important;
}

.ing-offers-listing .ing-listing-grid,
.ing-events-listing .ing-listing-grid,
.ing-blog-overview .ing-blog-grid,
.ing-dynamic-grid {
  align-items: stretch;
}

.ing-offers-listing .ing-listing-card,
.ing-events-listing .ing-listing-card,
.ing-blog-overview .ing-blog-card,
.ing-dynamic-grid > .ing-dynamic-teaser--event {
  height: 100%;
  min-height: 0;
  align-self: stretch;
  display: flex;
  flex-direction: column;
}

.ing-offers-listing .ing-listing-card__image,
.ing-events-listing .ing-listing-card__image,
.ing-blog-overview .ing-blog-card__image,
.ing-dynamic-teaser--event .ing-dynamic-teaser__media {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  flex: 0 0 auto;
  display: block;
  background: #eee7df;
}

.ing-offers-listing .ing-listing-card__image-link,
.ing-events-listing .ing-listing-card__image-link,
.ing-blog-overview .ing-blog-card__image-link,
.ing-dynamic-teaser--event .ing-dynamic-teaser__media-link {
  position: absolute;
  inset: 0;
  display: block;
}

.ing-offers-listing .ing-listing-card__image img,
.ing-events-listing .ing-listing-card__image img,
.ing-blog-overview .ing-blog-card__image img,
.ing-dynamic-teaser--event .ing-dynamic-teaser__media img {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-height: 0 !important;
  object-fit: cover !important;
  object-position: var(--ing-image-position, center center) !important;
  display: block;
}

.ing-offers-listing .ing-listing-card__body,
.ing-events-listing .ing-listing-card__body,
.ing-blog-overview .ing-blog-card__body,
.ing-dynamic-grid > .ing-dynamic-teaser--event .ing-dynamic-teaser__body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 26px 24px 20px;
}

.ing-offers-listing .ing-listing-card h2,
.ing-events-listing .ing-listing-card h2,
.ing-blog-overview .ing-blog-card h2 {
  margin: 0;
}

.ing-offers-listing .ing-listing-card h2 a,
.ing-events-listing .ing-listing-card h2 a,
.ing-blog-overview .ing-blog-card h2 a,
.ing-dynamic-teaser--event h3 a {
  color: inherit;
  text-decoration: none;
}

.ing-offers-listing .ing-listing-card__text,
.ing-blog-overview .ing-blog-card p,
.ing-dynamic-teaser--event .ing-dynamic-teaser__excerpt {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.ing-offers-listing .ing-listing-card__text,
.ing-blog-overview .ing-blog-card p {
  margin: 14px 0 18px;
}

.ing-card-theme-row {
  display: block;
  min-height: 28px;
  margin: 0 0 12px;
}

.ing-card-theme-row:empty {
  display: none;
}

.ing-card-context-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 28px;
  margin: 0 0 12px;
}

.ing-card-context-row .ing-theme-marker {
  margin: 0 !important;
}

.ing-theme-label {
  display: inline-block;
  margin: 0 0 12px;
  color: var(--charcoal-olive);
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.ing-event-card__datetime {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin-top: 14px;
  color: var(--charcoal-olive);
  font-size: .92rem;
  font-weight: 650;
  line-height: 1.4;
}

.ing-event-card__datetime span:not(:last-child)::after {
  content: "·";
  margin-left: 10px;
  color: var(--grey-orange);
}

.ing-event-card__people {
  margin-top: 8px;
  color: var(--grey-green);
  font-size: .9rem;
  line-height: 1.4;
}

.ing-event-card__people-label {
  font-weight: 600;
  color: var(--charcoal-olive);
}

.ing-event-card__people a {
  color: var(--warm-terracotta);
  text-decoration: none;
}

.ing-event-card__people a:hover,
.ing-event-card__people a:focus-visible {
  text-decoration: underline;
}

.ing-event-card__tags {
  position: relative;
  margin-left: auto;
}

.ing-event-card__tag-trigger {
  width: 30px;
  height: 30px;
  padding: 5px;
  box-sizing: border-box;
  display: grid;
  place-items: center;
  border: 1px solid var(--light-orange);
  border-radius: 999px;
  background: #fff;
  color: var(--warm-terracotta);
  cursor: pointer;
  list-style: none;
}

.ing-event-card__tag-trigger::-webkit-details-marker { display: none; }
.ing-event-card__tag-trigger::marker { display: none; content: ""; }
.ing-event-card__tag-trigger svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ing-event-card__tag-popover {
  position: absolute;
  z-index: 30;
  top: calc(100% + 8px);
  right: 0;
  width: max-content;
  max-width: min(320px, 78vw);
  padding: 10px;
  display: none;
  flex-wrap: wrap;
  gap: 7px;
  border: 1px solid var(--light-orange);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(47,51,46,.12);
}

.ing-event-card__tags[open] .ing-event-card__tag-popover,
.ing-event-card__tags:hover .ing-event-card__tag-popover,
.ing-event-card__tags:focus-within .ing-event-card__tag-popover {
  display: flex;
}

.ing-event-card__tag {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid var(--light-orange);
  border-radius: 999px;
  background: var(--pearl-bone);
  color: var(--charcoal-olive);
  font-size: .78rem;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
}

.ing-event-card__tag.is-active {
  border-color: var(--warm-terracotta);
}

.ing-event-card__tag--meta {
  opacity: .78;
}

.ing-card-actions {
  margin-top: auto;
  padding-top: 18px;
}

.ing-card-actions:empty {
  display: none;
}

.ing-offers-listing .ing-listing-card__more,
.ing-events-listing .ing-listing-card__more,
.ing-blog-overview .ing-blog-card__more,
.ing-dynamic-teaser--event .ing-dynamic-teaser__more {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  min-height: 42px;
  margin-top: 0;
  padding: 9px 15px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  border: 1px solid var(--warm-terracotta);
  border-radius: 999px;
  background: #fff;
  color: var(--warm-terracotta);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
}

/* Mindestabstand zum CTA; zusätzlicher freier Raum liegt ebenfalls darüber. */
.ing-offers-listing .ing-listing-card__text,
.ing-blog-overview .ing-blog-card p,
.ing-events-listing .ing-event-card__people,
.ing-events-listing .ing-event-card__datetime,
.ing-dynamic-teaser--event .ing-event-card__people,
.ing-dynamic-teaser--event .ing-event-card__datetime,
.ing-dynamic-teaser--event .ing-dynamic-teaser__excerpt {
  margin-bottom: 18px;
}

.ing-offers-listing .ing-listing-card__more:hover,
.ing-offers-listing .ing-listing-card__more:focus-visible,
.ing-events-listing .ing-listing-card__more:hover,
.ing-events-listing .ing-listing-card__more:focus-visible,
.ing-blog-overview .ing-blog-card__more:hover,
.ing-blog-overview .ing-blog-card__more:focus-visible,
.ing-dynamic-teaser--event .ing-dynamic-teaser__more:hover,
.ing-dynamic-teaser--event .ing-dynamic-teaser__more:focus-visible {
  border-color: var(--warm-terracotta);
  background: #fff;
  color: var(--warm-terracotta);
  text-decoration: none;
}

/* Listenansicht der Veranstaltungen folgt bewusst dem normalen Dokumentfluss. */
.ing-event-listing-grid.is-list-view .ing-listing-card {
  height: auto;
  align-self: auto;
  display: grid;
  grid-template-columns: minmax(260px, 34%) minmax(0, 1fr);
}

.ing-event-listing-grid.is-list-view .ing-listing-card__body {
  display: block;
}

.ing-event-listing-grid.is-list-view .ing-listing-card__more {
  margin-top: 18px;
}

@media (max-width: 760px) {
  .ing-event-listing-grid.is-list-view .ing-listing-card {
    display: block;
  }
}

@media (max-width: 640px) {
  .ing-offers-listing .ing-listing-card__body,
  .ing-events-listing .ing-listing-card__body,
  .ing-blog-overview .ing-blog-card__body,
  .ing-dynamic-grid > .ing-dynamic-teaser--event .ing-dynamic-teaser__body {
    padding: 22px 20px 18px;
  }

  .ing-event-card__tag-popover {
    right: -2px;
  }
}


/* v0.33.2: defensiver Fallback für leere Absätze nach Event-CTAs.
 * Die eigentliche Bereinigung erfolgt in der finalen Content-Ausgabe. */
.ing-events-listing .ing-listing-card__body > p:empty,
.ing-dynamic-teaser--event .ing-dynamic-teaser__body > p:empty {
  display: none !important;
}


/* Finaler Website-Abgleich v0.33.3 --------------------------------------
 * Kachelfarbe, tabellarische Veranstaltungs-Liste und Personen-Karten.
 */

/* Einheitliche Hintergrundfarbe für die redaktionellen Kacheln. */
.ing-offers-listing .ing-listing-card,
.ing-events-listing .ing-listing-card,
.ing-blog-overview .ing-blog-card,
.ing-dynamic-grid > .ing-dynamic-teaser,
.ing-people-listing .ing-person-card,
.ing-offer-person-card,
.ing-event-person-card,
.ing-related-grid > article,
.ing-related-grid > a,
.ing-feature-card {
  background: #ece0d5;
}

/* Menschenübersicht an das konsolidierte Kachelsystem angleichen. */
.ing-people-listing .ing-person-card {
  height: 100%;
  min-height: 0;
  align-self: stretch;
  display: flex;
  flex-direction: column;
}

.ing-people-listing .ing-person-card__link {
  flex: 1 1 auto;
}

.ing-people-listing .ing-person-card__body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 26px 24px 20px;
}

.ing-people-listing .ing-person-card__body p {
  margin: 14px 0 18px;
}

.ing-people-listing .ing-card-actions {
  margin-top: auto;
  padding-top: 18px;
}

.ing-people-listing .ing-listing-card__more {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  min-height: 42px;
  margin-top: 0;
  padding: 9px 15px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--warm-terracotta);
  border-radius: 999px;
  background: #fff;
  color: var(--warm-terracotta);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
}

/* Echte Tabellenansicht der Veranstaltungen. */
.ing-event-table-head,
.ing-event-table-row {
  display: none;
}

.ing-event-listing-grid.is-list-view {
  display: grid;
  grid-template-columns: 1fr !important;
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--ing-line);
  border-radius: 14px;
  background: #ece0d5;
}

.ing-event-listing-grid.is-list-view .ing-event-table-head {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) minmax(190px, 1.55fr) minmax(140px, 1fr) minmax(120px, .85fr) minmax(120px, .9fr);
  align-items: center;
  min-height: 52px;
  padding: 0 20px;
  gap: 18px;
  border-bottom: 1px solid var(--ing-line);
  background: rgba(255,255,255,.34);
  color: var(--charcoal-olive);
  font-size: .82rem;
  font-weight: 750;
  letter-spacing: .025em;
  text-transform: uppercase;
}

.ing-event-table-head__icon {
  display: inline-flex;
  align-items: center;
}

.ing-event-table-head__icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ing-event-listing-grid.is-list-view .ing-listing-card {
  width: 100%;
  height: auto;
  min-height: 0;
  display: block;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.ing-event-listing-grid.is-list-view .ing-listing-card + .ing-listing-card {
  border-top: 1px solid var(--ing-line);
}

.ing-event-listing-grid.is-list-view .ing-listing-card__image,
.ing-event-listing-grid.is-list-view .ing-listing-card__body {
  display: none !important;
}

.ing-event-listing-grid.is-list-view .ing-event-table-row {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) minmax(190px, 1.55fr) minmax(140px, 1fr) minmax(120px, .85fr) minmax(120px, .9fr);
  align-items: center;
  min-height: 68px;
  padding: 10px 20px;
  gap: 18px;
}

.ing-event-listing-grid.is-list-view .ing-event-table-cell {
  min-width: 0;
  color: var(--charcoal-olive);
  font-size: .94rem;
  line-height: 1.35;
}

.ing-event-listing-grid.is-list-view .ing-event-table-cell--name > a {
  color: inherit;
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: 1.14rem;
  font-weight: 650;
  text-decoration: none;
}

.ing-event-listing-grid.is-list-view .ing-event-table-cell--name > a:hover,
.ing-event-listing-grid.is-list-view .ing-event-table-cell--name > a:focus-visible {
  color: var(--warm-terracotta);
}

.ing-event-listing-grid.is-list-view .ing-event-table-cell--theme .ing-theme-marker {
  margin: 0;
  gap: 0;
}

.ing-event-listing-grid.is-list-view .ing-event-table-cell--theme .ing-theme-marker > span:last-child {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.ing-event-listing-grid.is-list-view .ing-event-table-cell--theme .ing-theme-marker img,
.ing-event-listing-grid.is-list-view .ing-event-table-cell--theme .ing-theme-marker__swatch {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
}

.ing-event-listing-grid.is-list-view .ing-event-table-cell--booking a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--warm-terracotta);
  font-weight: 700;
  text-decoration: none;
}

.ing-event-listing-grid.is-list-view .ing-event-table-cell--booking a:hover,
.ing-event-listing-grid.is-list-view .ing-event-table-cell--booking a:focus-visible {
  text-decoration: underline;
}

@media (max-width: 900px) {
  .ing-event-listing-grid.is-list-view .ing-event-table-head {
    display: none;
  }

  .ing-event-listing-grid.is-list-view {
    gap: 0;
  }

  .ing-event-listing-grid.is-list-view .ing-event-table-row {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 9px 18px;
    padding: 18px 20px;
  }

  .ing-event-listing-grid.is-list-view .ing-event-table-cell {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
  }

  .ing-event-listing-grid.is-list-view .ing-event-table-cell::before {
    content: attr(data-label);
    color: var(--grey-green);
    font-size: .76rem;
    font-weight: 750;
    letter-spacing: .025em;
    text-transform: uppercase;
  }

  .ing-event-listing-grid.is-list-view .ing-event-table-cell--name,
  .ing-event-listing-grid.is-list-view .ing-event-table-cell--booking {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  .ing-people-listing .ing-person-card__body {
    padding: 22px 20px 18px;
  }

  .ing-event-listing-grid.is-list-view .ing-event-table-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  .ing-event-listing-grid.is-list-view .ing-event-table-cell {
    grid-column: auto;
    grid-template-columns: 78px minmax(0, 1fr);
  }
}


/* Personen-Karten Markup-Fix v0.33.4 -----------------------------------
 * Kein vollflächiger <a>-Wrapper mehr: Das verhindert, dass wpautop den
 * Link um Blockelemente aufteilt und dabei zusätzliche <p>/<br>-Nodes
 * erzeugt. Bild, Titel und CTA sind jetzt eigenständige Links.
 */
.ing-people-listing .ing-person-card__image > a {
  display: block;
  height: 100%;
}

.ing-people-listing .ing-person-card__name a {
  color: inherit;
  text-decoration: none;
}

.ing-people-listing .ing-person-card__name a:hover,
.ing-people-listing .ing-person-card__name a:focus-visible {
  color: var(--warm-terracotta);
}

.ing-people-listing .ing-person-card__body {
  display: flex;
  flex-direction: column;
}

.ing-people-listing .ing-card-actions {
  margin-top: auto;
  padding-top: 18px;
}

.ing-people-listing .ing-card-actions .ing-listing-card__more {
  display: inline-flex;
  width: auto;
  max-width: 100%;
  min-height: 42px;
  margin: 0;
  padding: 9px 15px !important;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border: 1px solid var(--warm-terracotta);
  border-radius: 999px;
  background: #fff;
  color: var(--warm-terracotta);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
}

.ing-people-listing .ing-card-actions .ing-listing-card__more:hover,
.ing-people-listing .ing-card-actions .ing-listing-card__more:focus-visible {
  border-color: var(--warm-terracotta);
  background: #fff;
  color: var(--warm-terracotta);
  text-decoration: none;
}


/* Finaler Feinschliff v0.33.5 ------------------------------------------
 * Personen-CTA bündig unten; Veranstaltungs-Liste mit Terminbezeichnung.
 */

/* Frühere Regeln setzen die Menschen-Karten absichtlich auf auto/start.
 * Für die finale Kachelansicht überschreiben wir diese Altregeln explizit,
 * damit alle Karten einer Grid-Zeile gleich hoch sind und der CTA unten sitzt. */
.ing-people-listing .ing-people-grid {
  align-items: stretch !important;
}

.ing-people-listing .ing-person-card {
  height: 100% !important;
  min-height: 0 !important;
  align-self: stretch !important;
  display: flex !important;
  flex-direction: column !important;
}

.ing-people-listing .ing-person-card__body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}

.ing-people-listing .ing-card-actions {
  margin-top: auto !important;
  padding-top: 18px !important;
}

.ing-people-listing .ing-card-actions .ing-listing-card__more {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 9px 15px !important;
}

/* Die zweite Tabellenspalte zeigt jetzt die Terminbezeichnung des konkreten
 * Termins (z. B. "Die Reise nach Indien") statt der Themenwelt. */
.ing-event-listing-grid.is-list-view .ing-event-table-cell--description {
  color: var(--grey-green);
}


/* ========================================================================== 
   Detailseiten v0.33.6 – Bildbühne ohne Overlay + gemeinsames Intro-System
   ========================================================================== */
.single-angebot .ing-detail-hero,
.single-veranstaltung .ing-detail-hero,
.single-post .ing-detail-hero {
  width: min(1180px, calc(100% - 40px));
  margin: 34px auto 36px;
  display: block !important;
  position: relative;
  overflow: visible !important;
  min-height: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.single-angebot .ing-detail-hero__media,
.single-veranstaltung .ing-detail-hero__media,
.single-post .ing-detail-hero__media {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  height: clamp(300px, 42vw, 520px) !important;
  max-height: 520px;
  margin: 0 !important;
  overflow: hidden;
  border-radius: 20px;
  background: var(--pearl-bone);
}
.single-angebot .ing-detail-hero__media img,
.single-veranstaltung .ing-detail-hero__media img,
.single-post .ing-detail-hero__media img {
  width: 100% !important;
  height: 100% !important;
  display: block;
  object-fit: cover !important;
  object-position: var(--ing-image-position, center center) !important;
}
.single-angebot .ing-detail-hero__copy,
.single-veranstaltung .ing-detail-hero__copy,
.single-post .ing-detail-hero__copy {
  position: static !important;
  inset: auto !important;
  width: min(960px, calc(100% - 64px)) !important;
  max-width: none !important;
  margin: 0 auto !important;
  padding: clamp(30px, 4vw, 52px) 0 0 !important;
  transform: none !important;
  border: 0 !important;
  border-left: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--charcoal-olive) !important;
}
.single-angebot .ing-detail-hero__copy::before,
.single-veranstaltung .ing-detail-hero__copy::before,
.single-post .ing-detail-hero__copy::before { content: none !important; }
.single-angebot .ing-detail-hero__copy h1,
.single-veranstaltung .ing-detail-hero__copy h1,
.single-post .ing-detail-hero__copy h1 {
  margin: 20px 0 12px !important;
  color: var(--charcoal-olive) !important;
  font-size: clamp(2.8rem, 5.3vw, 5rem) !important;
  line-height: .98 !important;
}
.single-angebot .ing-detail-hero__lead,
.single-veranstaltung .ing-detail-hero__lead,
.single-post .ing-detail-hero__lead,
.single-veranstaltung .ing-event-hero__subtitle {
  max-width: 850px;
  margin-left: 0 !important;
  margin-right: 0 !important;
  color: var(--grey-green) !important;
}
.ing-detail-theme { display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; margin-top:12px; }
.ing-detail-theme .ing-theme-marker { margin:0; flex:0 0 auto; }
.ing-detail-theme__description { margin:0; color:var(--grey-green); font-size:.98rem; line-height:1.5; }




















.single-veranstaltung .ing-event-closing-shell { width:min(1180px,calc(100% - 40px)); margin-left:auto; margin-right:auto; display:grid !important; grid-template-columns:1fr !important; grid-template-areas:none !important; gap:28px; }
.single-veranstaltung .ing-event-closing-shell > .ing-people,
.single-veranstaltung .ing-event-closing-shell > .ing-event-practical,
.single-veranstaltung .ing-event-closing-shell > .ing-event-more-dates { grid-area:auto !important; width:100% !important; margin:0 !important; }
.single-veranstaltung .ing-event-people .ing-people__grid { grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.single-veranstaltung .ing-event-person-card__link { height:100%; display:flex; flex-direction:column; text-decoration:none; }
.single-veranstaltung .ing-event-person-card__body { flex:1; display:flex; flex-direction:column; }
.single-veranstaltung .ing-event-person-card__more { margin-top:auto; }

@media (max-width:900px) {
  .single-angebot .ing-detail-hero__copy,
.single-veranstaltung .ing-detail-hero__copy,
.single-post .ing-detail-hero__copy{ width:min(100%,calc(100% - 32px)) !important; }
  
  
  
}
@media (max-width:640px) {
  .single-angebot .ing-detail-hero,.single-veranstaltung .ing-detail-hero,.single-post .ing-detail-hero { width:calc(100% - 28px); margin-top:20px; }
  .single-angebot .ing-detail-hero__media,.single-veranstaltung .ing-detail-hero__media,.single-post .ing-detail-hero__media { height:300px !important; border-radius:15px; }
  .single-angebot .ing-detail-hero__copy,
.single-veranstaltung .ing-detail-hero__copy,
.single-post .ing-detail-hero__copy{ width:100% !important; }
  .ing-detail-theme { display:block; }
  .ing-detail-theme__description { margin-top:8px; }
  
  
  
  
  
  
}


/* ========================================================================== 
   Detailseiten v0.33.7 – Feinschliff Intro, Keyfacts und Event-Personen
   ========================================================================== */
/* Intro folgt fast der vollen Hero-Breite: nur 20px Einzug je Seite. */
.single-angebot .ing-detail-hero__copy,
.single-veranstaltung .ing-detail-hero__copy,
.single-post .ing-detail-hero__copy {
  width: calc(100% - 40px) !important;
  margin-left: 20px !important;
  margin-right: 20px !important;
}

/* Keyfacts oben ausrichten; Label und Inhalt kompakt zusammenhalten. */






/* Buchungs-CTA wie der Kontakt-Button in der Hauptnavigation. */



/* Event-Personen: stabiles Markup ohne Link um Blockelemente / wpautop-Fragmente. */
.single-veranstaltung .ing-event-person-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.single-veranstaltung .ing-event-person-card__image {
  display: block;
  text-decoration: none;
}
.single-veranstaltung .ing-event-person-card__body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.single-veranstaltung .ing-event-person-card__name a {
  color: inherit;
  text-decoration: none;
}
.single-veranstaltung .ing-event-person-card .ing-card-actions {
  margin-top: auto;
  padding-top: 18px;
}
.single-veranstaltung .ing-event-person-card__more {
  margin: 0 !important;
}

@media (max-width: 640px) {
  .single-angebot .ing-detail-hero__copy,
  .single-veranstaltung .ing-detail-hero__copy,
  .single-post .ing-detail-hero__copy {
    width: calc(100% - 24px) !important;
    margin-left: 12px !important;
    margin-right: 12px !important;
  }
}


/* ========================================================================== 
   Detailseiten v0.33.8 – ruhige Inhaltsachse + konsistente CTA-Hierarchie
   ========================================================================== */


/*
 * CTA-System:
 * - Primär = echte Aktion (Buchen, Kontakt, Platz sichern): gefüllt.
 * - Sekundär = weiterführender Link (Profil ansehen, Mehr erfahren): Outline.
 * Die Utility-Klassen können für neue Elemente direkt wiederverwendet werden.
 */
.ing-cta--primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 18px;
  box-sizing: border-box;
  border: 1px solid var(--earthy-clay);
  border-radius: 8px;
  background: var(--earthy-clay);
  color: #fff;
  text-decoration: none;
}

.ing-cta--secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 9px 16px;
  box-sizing: border-box;
  border: 1px solid var(--warm-terracotta);
  border-radius: 999px;
  background: #fff;
  color: var(--warm-terracotta);
  text-decoration: none;
}

/* Profil ansehen ist bewusst ein weiterführender Link, keine Hauptaktion. */
.single-veranstaltung .ing-event-person-card__more {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 9px 16px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  align-self: flex-start !important;
  box-sizing: border-box !important;
  border: 1px solid var(--warm-terracotta) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--warm-terracotta) !important;
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  line-height: 1.15 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.single-veranstaltung .ing-event-person-card__more:hover,
.single-veranstaltung .ing-event-person-card__more:focus-visible {
  border-color: var(--earthy-clay) !important;
  background: #fff !important;
  color: var(--earthy-clay) !important;
}

/* Action-Container darf den sekundären CTA nicht auf Kartenbreite ziehen. */
.single-veranstaltung .ing-event-person-card .ing-card-actions {
  margin-top: auto !important;
  padding-top: 18px !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
}

/* ========================================================================== 
   Detailseite Veranstaltung v0.33.9 – Intro + Metainformationen 50/50
   ========================================================================== */

/* Hero-Bild bleibt volle Detailbreite. Darunter teilen sich Intro und Meta
 * dieselbe Achse, so dass die bisherige Breiten-"Treppe" verschwindet. */
.single-veranstaltung .ing-event-hero__below {
  width: calc(100% - 40px);
  margin: 0 20px;
  padding-top: clamp(30px, 4vw, 52px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 1fr);
  column-gap: clamp(34px, 5vw, 72px);
  row-gap: 0;
  align-items: start;
}

.single-veranstaltung .ing-event-hero__below .ing-detail-hero__copy {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.single-veranstaltung .ing-event-hero__meta-column {
  min-width: 0;
  padding-top: 2px;
}

/* Die Meta-Karte ist im rechten 50%-Bereich bewusst vertikal aufgebaut. */














/* Der später im Seiteninhalt vorhandene Entscheidung-Shortcode bleibt als
 * Fallback kompatibel. Für die normale Detailseite kommt die Ausgabe oben. */
.single-veranstaltung .ing-event-hero__meta-column .ing-event-status-notice {
  width: 100% !important;
  margin: 0 !important;
}

@media (max-width: 980px) {
  .single-veranstaltung .ing-event-hero__below {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  
}

@media (max-width: 640px) {
  .single-veranstaltung .ing-event-hero__below {
    width: calc(100% - 24px);
    margin: 0 12px;
    padding-top: 28px;
    gap: 24px;
  }
}

/* ========================================================================== 
   Detailseiten v0.33.10 – 2/3 Intro + 1/3 Meta für Veranstaltung & Angebot
   ========================================================================== */

/* Veranstaltung: Inhalt erhält die visuelle Führung, Meta bleibt kompakt. */
.single-veranstaltung .ing-event-hero__below {
  grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr) !important;
  column-gap: clamp(34px, 4vw, 64px) !important;
  row-gap: 0 !important;
}

/* Angebot folgt derselben Komposition wie die Veranstaltungsdetailseite. */
.single-angebot .ing-offer-hero__below {
  width: calc(100% - 40px);
  margin: 0 20px;
  padding-top: clamp(30px, 4vw, 52px);
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr);
  gap: clamp(34px, 4vw, 64px);
  align-items: start;
}

.single-angebot .ing-offer-hero__below .ing-detail-hero__copy {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.single-angebot .ing-offer-hero__meta-column {
  min-width: 0;
  padding-top: 2px;
}

.single-angebot .ing-offer-hero__meta-column .ing-offer-meta {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.single-angebot .ing-offer-hero__meta-column .ing-offer-meta__grid {
  width: 100%;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--light-orange) !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 12px 32px rgba(47,51,46,.055) !important;
}

.single-angebot .ing-offer-hero__meta-column .ing-offer-meta__item,
.single-angebot .ing-offer-hero__meta-column .ing-offer-meta__cta {
  width: 100%;
  min-height: 0 !important;
  box-sizing: border-box;
  padding: 18px 22px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--light-orange) !important;
  background: #fff !important;
}

.single-angebot .ing-offer-hero__meta-column .ing-offer-meta__item {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  gap: 4px !important;
}

.single-angebot .ing-offer-hero__meta-column .ing-offer-meta__label {
  margin: 0 0 3px !important;
  color: var(--grey-green) !important;
  font-size: .72rem !important;
  font-weight: 750 !important;
  line-height: 1.2 !important;
  letter-spacing: .09em !important;
  text-transform: uppercase !important;
}

.single-angebot .ing-offer-hero__meta-column .ing-offer-meta__value {
  margin: 0 !important;
  color: var(--charcoal-olive) !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
}

.single-angebot .ing-offer-hero__meta-column .ing-offer-meta__cta {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  border-bottom: 0 !important;
}

/* Angebots-CTA = echte Aktion, deshalb primärer Terracotta-Button. */
.single-angebot .ing-offer-hero__meta-column .ing-offer-meta__cta .ing-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 10px 18px !important;
  border: 1px solid var(--earthy-clay) !important;
  border-radius: 8px !important;
  background: var(--earthy-clay) !important;
  color: #fff !important;
  font-weight: 750 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.single-angebot .ing-offer-hero__meta-column .ing-offer-meta__cta .ing-button:hover,
.single-angebot .ing-offer-hero__meta-column .ing-offer-meta__cta .ing-button:focus-visible {
  background: var(--warm-terracotta) !important;
  border-color: var(--warm-terracotta) !important;
  color: #fff !important;
}

@media (max-width: 980px) {
  .single-veranstaltung .ing-event-hero__below,
  .single-angebot .ing-offer-hero__below {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }
}

@media (max-width: 640px) {
  .single-angebot .ing-offer-hero__below {
    width: calc(100% - 24px);
    margin: 0 12px;
    padding-top: 28px;
    gap: 24px !important;
  }
}


/* ==========================================================================
   Detailseiten v0.33.12 – kompakte Meta-Aktionszeile
   ========================================================================== */

/* Keine layoutrelevanten <br>-Abstände mehr in den Event-Keyfacts.
 * Datum und Uhrzeit sind semantisch getrennte Zeilen. */






/* Info und primärer CTA teilen sich eine kompakte Abschlusszeile. */










/* ==========================================================================
   Veranstaltung Detail – Keyfacts konsolidiert v0.33.14
   Eine Quelle für Layout, Abstände, Popover und CTA.
   ========================================================================== */
.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts,
.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts *,
.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts *::before,
.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts *::after {
  box-sizing: border-box;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-self: start;
  border: 1px solid var(--light-orange);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(47,51,46,.055);
  overflow: visible;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__main {
  width: 100%;
  display: flex;
  flex-direction: column;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__unit {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 18px 22px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 5px;
  border: 0;
  border-bottom: 1px solid var(--light-orange);
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__label {
  display: block;
  margin: 0 0 5px;
  color: var(--grey-green);
  font-size: .72rem;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__value,
.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__value strong {
  display: block;
  margin: 0;
  padding: 0;
  color: var(--charcoal-olive);
  font-family: inherit;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.42;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__date-time {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__focus {
  margin: 3px 0 0;
  color: var(--grey-green);
  font-size: .92rem;
  line-height: 1.4;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__focus b {
  color: var(--charcoal-olive);
  font-weight: 500;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__actions {
  width: 100%;
  margin: 0;
  padding: 16px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__info {
  position: relative;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  border: 0;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__info > summary {
  width: 34px;
  height: 34px;
  margin: 0;
  padding: 0;
  display: grid;
  place-items: center;
  list-style: none;
  cursor: pointer;
  border: 1px solid var(--warm-terracotta);
  border-radius: 999px;
  color: var(--warm-terracotta);
  font-family: Georgia, serif;
  font-style: italic;
  font-weight: 750;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__info > summary::-webkit-details-marker { display: none; }
.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__info > summary::marker { content: ""; }

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__popover {
  position: absolute;
  z-index: 50;
  top: calc(100% + 10px);
  left: 0;
  width: min(320px, 80vw);
  margin: 0;
  padding: 14px;
  display: none;
  gap: 10px;
  border: 1px solid var(--light-orange);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(47,51,46,.14);
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__info[open] .ing-event-keyfacts__popover,
.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__info:hover .ing-event-keyfacts__popover,
.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__info:focus-within .ing-event-keyfacts__popover {
  display: grid;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__popover > div {
  display: grid;
  gap: 2px;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__popover span {
  color: var(--grey-green);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__popover strong {
  color: var(--charcoal-olive);
  font-size: .9rem;
  line-height: 1.35;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__cta {
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__cta .ing-button {
  display: inline-flex;
  width: auto;
  min-width: 0;
  min-height: 42px;
  margin: 0;
  padding: 10px 18px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--earthy-clay);
  border-radius: 8px;
  background: var(--earthy-clay);
  color: #fff;
  font-weight: 750;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: none;
}

.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__cta .ing-button:hover,
.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__cta .ing-button:focus-visible {
  border-color: var(--warm-terracotta);
  background: var(--warm-terracotta);
  color: #fff;
}

/* Temporär nur defensiv: Markup-Bereinigung folgt separat. */
.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts br,
.single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts p:empty {
  display: none;
}

@media (max-width: 640px) {
  .single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__unit,
  .single-veranstaltung .ing-event-hero__meta-column .ing-event-keyfacts__actions {
    padding-left: 18px;
    padding-right: 18px;
  }
}


/* ==========================================================================
   Detailseite Veranstaltung v0.33.15 – Hero/Content-Abstand bereinigt
   ========================================================================== */
/* Die Meta-Box wird bereits im Hero gerendert. Ein evtl. von WordPress
 * eingeschobener leerer Absatz darf keine zusätzliche Grid-Zeile erzeugen. */
.single-veranstaltung .ing-event-hero__below > p:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Nur horizontaler Abstand zwischen Intro und Meta; keine künstliche zweite
 * Grid-Zeile. */
.single-veranstaltung .ing-event-hero__below {
  row-gap: 0 !important;
}

/* Der redaktionelle Inhalt soll direkt an den Hero anschließen. */
.single-veranstaltung .ing-detail-hero {
  margin-bottom: 18px !important;
}
.single-veranstaltung .ing-content-shell {
  margin-top: 0 !important;
}


/* -------------------------------------------------------------------------
   Detailseiten v0.33.17 – erster Inhaltsabschnitt + Shortcode-Bereinigung
   ---------------------------------------------------------------------- */
.single-veranstaltung .ing-content-shell .wp-block-post-content > h2:first-child,
.single-angebot .ing-content-shell .wp-block-post-content > h2:first-child {
  margin-top: 0;
}

/* =========================================================
   Detailseiten v0.33.21 – gemeinsame Content-Shell
   ========================================================= */

/*
 * Veranstaltung, Angebot und Wissenswertes verwenden dieselbe Struktur:
 * - .ing-detail-content = breite dekorative Bühne
 * - .wp-block-post-content = zentrierte Lesespalte
 * So bleibt die Ranke unabhängig von der Textbreite sichtbar.
 */
.single-veranstaltung .ing-detail-content,
.single-angebot .ing-detail-content,
.single-post .ing-detail-content {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
  position: relative;
  isolation: isolate;
  overflow-x: clip;
  background-image: none;
}

.single-veranstaltung .ing-detail-content > .wp-block-post-content,
.single-angebot .ing-detail-content > .wp-block-post-content,
.single-post .ing-detail-content > .wp-block-post-content {
  width: min(900px, 100%) !important;
  max-width: 900px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.single-veranstaltung .ing-detail-content .wp-block-post-content > :where(:not(.alignwide):not(.alignfull)),
.single-angebot .ing-detail-content .wp-block-post-content > :where(:not(.alignwide):not(.alignfull)),
.single-post .ing-detail-content .wp-block-post-content > :where(:not(.alignwide):not(.alignfull)) {
  width: 100% !important;
  max-width: 900px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Inhalt liegt sicher über der rein dekorativen Ranke. */
.single-veranstaltung .ing-detail-content > *,
.single-angebot .ing-detail-content > *,
.single-post .ing-detail-content > * {
  position: relative;
  z-index: 1;
}

@media (max-width: 900px), (prefers-reduced-motion: reduce) {
  .single-veranstaltung .ing-detail-content,
  .single-angebot .ing-detail-content,
  .single-post .ing-detail-content {
    background-image: none;
  }
}

@media (max-width: 640px) {
  .single-veranstaltung .ing-detail-content,
  .single-angebot .ing-detail-content,
  .single-post .ing-detail-content {
    padding-left: 14px;
    padding-right: 14px;
  }

  .single-veranstaltung .ing-detail-content > .wp-block-post-content,
  .single-angebot .ing-detail-content > .wp-block-post-content,
  .single-post .ing-detail-content > .wp-block-post-content {
    width: 100% !important;
    max-width: none !important;
  }
}


/* v0.33.23 — Konsistente Klick- und Tastaturfokus-Darstellung.
 * :focus-visible schützt die Orientierung bei Tastaturbedienung.
 * Bei Mausklick/Touch werden störende Browser-Rahmen entfernt.
 */
:where(a, button, input, select, textarea, summary, [tabindex]):focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

/* Ein zentraler, sichtbarer Tastaturfokus, auch bei älteren Theme-Overrides. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--charcoal-olive, #465447) !important;
  outline-offset: 3px;
}

/* ==========================================================================
   v0.33.24 – Terracotta-Trennlinie unter redaktionellen H2
   Die Inhaltsüberschriften der Startseite und der Detailseiten sind vereinheitlicht.
   Teaser, Karten, Hero- und Navigationsüberschriften bleiben unberührt.
   ========================================================================== */
:where(
  .wp-block-post-content > h2,
  .wp-block-post-content > .ing-pattern > h2,
  .wp-block-post-content > .ing-pattern-section > h2,
  .ing-content-shell .wp-block-post-content > h2,
  .ing-content-shell .wp-block-post-content > .wp-block-group > h2
)::after {
  content: "";
  display: block;
  width: 68px;
  height: 3px;
  margin-top: 14px;
  background: var(--warm-terracotta);
}

/* v0.33.25 – CTA-Farbtreue zwischen Editor und Frontend.
   Verhindert, dass allgemeine Absatz-/Heading-Regeln die gewählte CTA-Variante übersteuern. */
.ing-pattern-cta:is(.is-style-ing-primary, .is-style-ing-dark, .is-style-ing-body, .is-style-ing-mind) :is(h1,h2,h3,h4,h5,h6,p),
.ing-pattern-cta:is(.is-style-ing-primary, .is-style-ing-dark, .is-style-ing-body, .is-style-ing-mind) .wp-block-heading {
  color: #fff;
}
.ing-pattern-cta:is(.is-style-ing-heart, .is-style-ing-spirit) :is(h1,h2,h3,h4,h5,h6,p),
.ing-pattern-cta:is(.is-style-ing-heart, .is-style-ing-spirit) .wp-block-heading {
  color: var(--charcoal-olive, #2f332e);
}

/* v0.33.26 — zwei Kacheln je Slider-Seite */
.ing-two-card-slider__page { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2vw, 30px); }
.ing-two-card-slider__page[hidden] { display: none !important; }
.ing-two-card-slider__page > .ing-event-poster { width: 100%; min-width: 0; }
.ing-two-card-slider__controls { display:flex; align-items:center; justify-content:center; gap:22px; margin-top:22px; }
.ing-two-card-slider__controls button { cursor:pointer; border:1px solid currentColor; background:transparent; border-radius:100%; width:42px; height:42px; color:var(--charcoal-olive); font:inherit; }
.ing-two-card-slider__controls span { font-family:Montserrat, sans-serif; font-size:0.9rem; }
@media (max-width: 700px) { .ing-two-card-slider__page { grid-template-columns:1fr; } }


/* v0.33.29 – Breite am Slider selbst statt am Shortcode-Wrapper.
   Nur ein Element wird verbreitert und relativ zur Lesespalte zentriert.
   Der Wrapper bleibt in seiner normalen Content-Breite. */
.wp-block-post-content .wp-block-shortcode:has(.ing-two-card-slider) {
  width: 100% !important;
  max-width: 900px !important;
  position: static;
  left: auto;
  transform: none;
  margin-left: auto !important;
  margin-right: auto !important;
}
.wp-block-post-content .ing-two-card-slider,
.wp-block-post-content .wp-block-shortcode .ing-two-card-slider {
  box-sizing: border-box;
  width: min(1200px, calc(100vw - 48px)) !important;
  max-width: none !important;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  margin-left: 0 !important;
  margin-right: 0 !important;
}
@media (max-width: 700px) {
  .wp-block-post-content .ing-two-card-slider,
  .wp-block-post-content .wp-block-shortcode .ing-two-card-slider {
    width: calc(100vw - 28px) !important;
  }
}
/* Angebot: grundsätzlich keine Datums-/Uhrzeitleiste ausgeben. */
.ing-offer-poster .ing-event-poster__date-strip,
.ing-offer-poster .ing-event-poster__date { display: none !important; }
/* Gemeinsame Navigationssprache: Terracotta-Kontur statt vollflächiger Buttons. */
.ing-slider-arrow,
.ing-two-card-slider__controls button {
  background: transparent !important;
  border: 1.5px solid var(--warm-terracotta, #b45b49) !important;
  color: var(--warm-terracotta, #b45b49) !important;
  box-shadow: none;
}
.ing-slider-arrow:hover,
.ing-two-card-slider__controls button:hover {
  background: rgba(180, 91, 73, .08) !important;
}
.ing-slider-arrow:focus-visible,
.ing-two-card-slider__controls button:focus-visible {
  outline: 2px solid var(--warm-terracotta, #b45b49) !important;
  outline-offset: 3px;
}
.ing-slider-dot { background: transparent; border: 1.5px solid var(--warm-terracotta, #b45b49); }
.ing-slider-dot.is-active { background: var(--warm-terracotta, #b45b49); }

/* v0.33.31 – Fertig gestaltete Angebotsmotive ohne Bildbeschnitt.
   Schrift und CTA sind Teil der Bilddatei; das originale Seitenverhältnis
   hat daher Vorrang vor einer festen Poster-Höhe. */
.ing-two-card-slider[data-ing-slider="offers"] .ing-offer-poster.ing-event-poster--finished {
  aspect-ratio: auto;
  min-height: 0;
  background: transparent;
}
.ing-two-card-slider[data-ing-slider="offers"] .ing-offer-poster.ing-event-poster--finished .ing-event-poster__finished-link {
  position: static;
  inset: auto;
  display: block;
}
.ing-two-card-slider[data-ing-slider="offers"] .ing-offer-poster.ing-event-poster--finished .ing-event-poster__finished-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* v0.33.32 – Fertige Veranstaltungs-Kachelbilder im Slider ohne Beschnitt.
   Datums-/Uhrzeitleiste bleibt als eigener Bereich unter dem Bild erhalten. */
.ing-two-card-slider[data-ing-slider="events"] .ing-event-poster.ing-event-poster--finished {
  aspect-ratio: auto;
  min-height: 0;
}
.ing-two-card-slider[data-ing-slider="events"] .ing-event-poster.ing-event-poster--finished .ing-event-poster__finished-link {
  position: static;
  inset: auto;
  display: block;
}
.ing-two-card-slider[data-ing-slider="events"] .ing-event-poster.ing-event-poster--finished .ing-event-poster__finished-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}


/* v0.33.33 – Video-Vorschaubild, ohne vorzeitige YouTube-Anfrage */
.ing-video-consent__placeholder--image {
  position: relative;
  isolation: isolate;
  background-image: linear-gradient(90deg, rgba(25, 28, 23, .78), rgba(25, 28, 23, .40)), var(--ing-video-poster);
  background-size: cover;
  background-position: center;
  color: #fff;
}
.ing-video-consent__placeholder--image .ing-video-consent__copy h3,
.ing-video-consent__placeholder--image .ing-video-consent__copy p,
.ing-video-consent__placeholder--image .ing-eyebrow { color: #fff !important; }

/* v0.33.33 – Angebots-Ansprechpartner nicht auf die Höhe der Nebenspalte strecken. */
.single-angebot .ing-offer-closing-shell { align-items: start !important; }
.single-angebot .ing-offer-closing-shell > .ing-people {
  align-self: start !important;
  height: auto !important;
  min-height: 0 !important;
}
.single-angebot .ing-offer-person-card,
.single-angebot .ing-offer-person-card__link {
  height: auto !important;
  min-height: 0 !important;
  align-self: start !important;
}
.single-angebot .ing-offer-person-card__body {
  height: auto !important;
  min-height: 0 !important;
  padding: 18px 20px 20px;
}
.single-angebot .ing-offer-person-card__more { margin-top: 18px !important; }


/* v0.33.34 – Angebot & Veranstaltung teilen dieselbe Ansprechpartner-Karte.
   Das Angebots-Markup benutzt nun exakt die Event-Klassen. */
.single-angebot .ing-event-person-card {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: auto;
  min-height: 0;
  align-self: start;
  overflow: hidden;
  border: 0;
  border-radius: 12px;
  background: var(--soft-cream);
  box-shadow: none;
}
.single-angebot .ing-event-person-card__image {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  line-height: 0;
  text-decoration: none;
}
.single-angebot .ing-event-person-card__image img {
  position: absolute;
  inset: 0;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.single-angebot .ing-event-person-card__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  padding: 18px 20px 20px;
}
.single-angebot .ing-event-person-card__name {
  margin: 0 0 7px;
  font-size: 1.35rem;
  line-height: 1.15;
}
.single-angebot .ing-event-person-card__name a {
  color: inherit;
  text-decoration: none;
}
.single-angebot .ing-event-person-card__role {
  margin: 0;
  color: var(--grey-green);
  font-weight: 700;
  line-height: 1.4;
}
.single-angebot .ing-event-person-card .ing-card-actions {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  margin-top: auto !important;
  padding-top: 18px !important;
}
.single-angebot .ing-event-person-card__more {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: flex-start !important;
  gap: 8px !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 9px 16px !important;
  box-sizing: border-box !important;
  border: 1px solid var(--warm-terracotta) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--warm-terracotta) !important;
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif) !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  line-height: 1.15 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
.single-angebot .ing-event-person-card__more:hover,
.single-angebot .ing-event-person-card__more:focus-visible {
  border-color: var(--earthy-clay) !important;
  color: var(--earthy-clay) !important;
}
.single-angebot .ing-event-person-card p:empty,
.single-angebot .ing-people__grid > p:empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  line-height: 0 !important;
}



/* v0.33.36 – Empfehlungen auf Personenprofilen im regulären Listing-Grid. */
.ing-person-related__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
}
.ing-person-related__grid .ing-listing-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
}
.ing-person-related__grid .ing-listing-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.ing-person-related__grid .ing-card-actions { margin-top: auto; }
@media (max-width: 900px) { .ing-person-related__grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 650px) { .ing-person-related__grid { grid-template-columns: minmax(0,1fr); } }


/* v0.33.37 – Personenprofil: Grid exakt wie reguläre Übersichten */
.ing-person-related__grid .ing-listing-card {
  overflow: hidden;
  background: var(--ing-card-bg, #ece0d5);
  border: 1px solid var(--ing-line, #ddcfc6);
  border-radius: var(--ing-radius, 20px);
}
.ing-person-related__grid .ing-listing-card__body {
  padding: 26px 24px 20px;
  background: #ece0d5;
}
.ing-person-related__grid .ing-listing-card h2 { margin: 0; }
.ing-person-related__grid .ing-listing-card h2 a,
.ing-person-related__grid .ing-listing-card h2 a:hover,
.ing-person-related__grid .ing-listing-card h2 a:focus-visible {
  color: var(--charcoal-olive);
  text-decoration: none !important;
}
.ing-person-related__grid .ing-listing-card__text {
  margin: 14px 0 18px;
  color: var(--grey-green);
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.ing-person-related__grid .ing-listing-card__more,
.ing-person-related__grid .ing-listing-card__more:visited,
.ing-person-related__grid .ing-listing-card__more:hover,
.ing-person-related__grid .ing-listing-card__more:focus-visible {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  min-height: 42px;
  padding: 9px 15px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--warm-terracotta);
  border-radius: 999px;
  background: #fff;
  color: var(--warm-terracotta);
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none !important;
  box-shadow: none;
}
.ing-person-related__grid .ing-listing-card__image-link,
.ing-person-related__grid .ing-listing-card__image-link:hover { text-decoration: none !important; }
/* Profil-Header: Kontakt in die rechte Informationsbox integriert */
.ing-person-hero__contact {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--ing-line);
}
.ing-person-hero__contact .ing-eyebrow { margin: 0 0 8px; }
.ing-person-hero__contact h2 {
  margin: 0 0 16px;
  font-size: clamp(1.35rem, 2vw, 1.7rem);
  line-height: 1.15;
}
.ing-person-hero__contact-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}
.ing-person-hero__contact-link,
.ing-person-hero__contact-link:hover,
.ing-person-hero__contact-link:focus-visible {
  color: var(--ing-accent-dark);
  font-weight: 600;
  text-decoration: none !important;
  overflow-wrap: anywhere;
}

/* v0.33.38 – Personen-Content an die Lesebreite der übrigen Detailseiten angleichen.
 * Hero und Related-Grids behalten ihre bisherigen breiten Container. */
.single-person .ing-person-content-shell {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-inline: 20px;
  box-sizing: border-box;
}
.single-person .ing-person-content-shell > .wp-block-post-content {
  width: min(900px, 100%) !important;
  max-width: 900px !important;
  margin-inline: auto !important;
}
.single-person .ing-person-content-shell .wp-block-post-content > :where(:not(.alignwide):not(.alignfull)) {
  width: 100% !important;
  max-width: 900px !important;
  margin-inline: auto !important;
}
@media (max-width:640px) {
  .single-person .ing-person-content-shell { padding-inline:14px; }
}

/* v0.33.39 – Kompakte CTA-Buttons in den Empfehlungen auf Personenprofilen.
   Spezifisch auf den Grid-Button begrenzen, damit andere CTAs unverändert bleiben. */
.ing-person-related__grid .ing-card-actions > a.ing-listing-card__more {
  box-sizing: border-box;
  min-height: 42px;
  padding: 8px 15px !important;
  margin: 0 !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
  font-weight: 600;
  width: max-content;
  max-width: 100%;
  align-self: flex-start;
  text-decoration: none !important;
}



/* Redaktionelles ING-Grid v0.33.43 – dieselbe Breakout-/Kartenlogik wie die Aggregationen.
   Betrifft auch bereits im Editor eingefuegte alte Pattern-Instanzen. */
.wp-block-post-content .ing-editorial-grid,
.wp-block-post-content > .ing-editorial-grid,
.ing-editorial-grid {
  box-sizing: border-box;
  display: block;
  position: relative;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  width: min(1400px, calc(100vw - 48px)) !important;
  max-width: none !important;
  margin: 56px 0 64px !important;
  padding: 0 !important;
}
/* Die inneren constrained-Gruppen duerfen die 800px-Lesespalte NICHT erben. */
.ing-editorial-grid > .ing-editorial-grid__inner,
.ing-editorial-grid > .ing-editorial-grid__grid,
.ing-editorial-grid__inner > .ing-editorial-grid__grid {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.ing-editorial-grid__inner > h2 { margin-top: 0 !important; }
.ing-editorial-grid__accent {
  width: 104px;
  height: 5px;
  margin: 14px 0 32px;
  background: var(--earthy-clay);
}
.ing-editorial-grid .ing-editorial-grid__grid {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch;
  grid-auto-rows: auto;
  width: 100% !important;
  max-width: none !important;
  margin-block-start: 0 !important;
}
.ing-editorial-grid__grid > .ing-editorial-grid-card {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  height: auto !important;
  align-self: stretch;
  margin: 0 !important;
  margin-block: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid var(--light-orange);
  border-radius: 24px;
  background: var(--dawn-orange);
  box-shadow: none;
}
.ing-editorial-grid-card > .ing-editorial-grid-card__media {
  position: relative;
  box-sizing: border-box;
  display: block;
  flex: 0 0 auto;
  width: 100% !important;
  max-width: none !important;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  margin: 0 !important;
  line-height: 0;
  background: #eee7df;
}
.ing-editorial-grid-card__media img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
}
.ing-editorial-grid-card > .ing-editorial-grid-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  min-height: 0;
  margin: 0 !important;
  padding: 26px 24px 20px;
}
.ing-editorial-grid-card__body > * { width: 100%; max-width: none !important; }
.ing-editorial-grid-card .ing-card-theme-row {
  min-height: 28px;
  margin: 0 0 12px !important;
}
.ing-editorial-grid-card h3 {
  margin: 0 !important;
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: clamp(1.7rem, 2vw, 2.1rem) !important;
  font-weight: 500;
  line-height: 1.12 !important;
  letter-spacing: -.015em;
  overflow-wrap: anywhere;
}
.ing-editorial-grid-card__body > p {
  margin: 14px 0 18px !important;
  color: var(--grey-green);
  font-size: .98rem !important;
  line-height: 1.5 !important;
}
.ing-editorial-grid-card__options {
  margin-top: auto !important;
  padding-top: 18px;
  border-top: 1px solid var(--light-orange);
}
.ing-editorial-grid-card__label {
  margin: 0 0 9px !important;
  color: var(--grey-green);
  font-size: .72rem !important;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.ing-editorial-grid-card__chips { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 !important; }
.ing-editorial-grid-card__chips span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border: 1px solid var(--light-orange);
  border-radius: 999px;
  background: rgba(255,255,255,.34);
  color: var(--charcoal-olive);
  font-size: .78rem;
  line-height: 1.2;
}
.ing-editorial-grid-card__actions {
  width: 100%;
  margin-top: auto !important;
  padding-top: 18px;
}
.ing-editorial-grid-card__actions .wp-block-button,
.ing-editorial-grid-card__actions .wp-block-button__link { width: auto !important; }
.ing-editorial-grid-card__actions .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 42px;
  padding: 9px 15px !important;
  border: 1px solid var(--warm-terracotta) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--warm-terracotta) !important;
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif);
  font-size: 1rem !important;
  font-weight: 600;
  text-decoration: none !important;
  box-shadow: none !important;
}
.ing-editorial-grid-card__actions .wp-block-button__link:hover,
.ing-editorial-grid-card__actions .wp-block-button__link:focus-visible {
  background: #fff !important;
  color: var(--warm-terracotta) !important;
  text-decoration: none !important;
}
@media (max-width: 980px) {
  .ing-editorial-grid .ing-editorial-grid__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .wp-block-post-content .ing-editorial-grid,
  .wp-block-post-content > .ing-editorial-grid,
  .ing-editorial-grid { width: calc(100vw - 28px) !important; }
  .ing-editorial-grid .ing-editorial-grid__grid { grid-template-columns: 1fr; gap: 18px; }
  .ing-editorial-grid-card > .ing-editorial-grid-card__body { padding: 22px 20px 18px; }
}


/* v0.33.44: Wide-Grid wie CTA zentrieren – keine konkurrierenden Transform-Hacks. */
.wp-block-post-content > .ing-editorial-grid,
.wp-block-post-content > .alignwide.ing-editorial-grid,
.wp-block-post-content > .alignfull.ing-editorial-grid,
.ing-editorial-grid {
  box-sizing: border-box;
  position: static !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  width: min(1400px, calc(100% - 48px)) !important;
  max-width: 1400px !important;
  margin: 56px auto 64px !important;
  padding: 0 !important;
}
/* Gutenberg-Constrained-Layout: innere Überschrift und Karten auf derselben Achse. */
.ing-editorial-grid > .ing-editorial-grid__inner {
  display: block !important;
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.ing-editorial-grid__inner > h2,
.ing-editorial-grid__inner > .ing-editorial-grid__accent,
.ing-editorial-grid__inner > .ing-editorial-grid__grid {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
@media (max-width: 780px) {
  .wp-block-post-content > .ing-editorial-grid,
  .wp-block-post-content > .alignwide.ing-editorial-grid,
  .wp-block-post-content > .alignfull.ing-editorial-grid,
  .ing-editorial-grid {
    width: calc(100% - 28px) !important;
  }
}


/* Inhaltsboxen v0.33.46 – auf den vorhandenen ING-CTA-Stilen aufgebaut */
.wp-block-post-content > .ing-content-boxes.alignwide,
.wp-block-post-content .ing-content-boxes.alignwide {
  box-sizing: border-box;
  width: min(1180px, calc(100vw - 48px));
  max-width: none;
  margin-left: 50%;
  margin-right: 0;
  transform: translateX(-50%);
}
.ing-content-boxes.wp-block-columns {
  gap: clamp(18px, 2.5vw, 30px);
  align-items: stretch;
}
.ing-content-boxes > .wp-block-column { min-width: 0; display: flex; }
.ing-content-boxes > .wp-block-column > .ing-content-box { flex: 1; }
.ing-content-box {
  box-sizing: border-box;
  width: 100%;
  padding: clamp(26px, 3vw, 38px) !important;
  border-radius: var(--ing-radius, 18px);
  box-shadow: var(--ing-shadow);
}
.ing-content-box > * { margin-left: 0 !important; margin-right: 0 !important; max-width: none !important; }
.ing-content-box > :first-child { margin-top: 0 !important; }
.ing-content-box > :last-child { margin-bottom: 0 !important; }
.ing-content-box :is(h2,h3,h4,p,li) { color: inherit !important; }
.ing-content-box > h3.wp-block-heading {
  margin-top: 0 !important;
  margin-bottom: 18px !important;
  font-size: clamp(1.35rem, 2vw, 1.7rem) !important;
  line-height: 1.2;
}
.ing-content-box > p { margin: 0 0 18px !important; font-size: 1rem !important; line-height: 1.6; }
.ing-content-box > ul, .ing-content-box > ol {
  padding-left: 1.4em !important;
  margin: 0 0 22px !important;
  font-size: 1rem !important;
  line-height: 1.6;
}
.ing-content-box li + li { margin-top: 8px; }
.ing-content-box > .wp-block-buttons {
  margin-top: 24px !important;
  padding: 0 !important;
  gap: 10px;
}
/* Bewährte CTA-Button-Maße; keine abweichende neue Button-Optik. */
.ing-content-box .wp-block-button__link {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  min-height: 44px;
  padding: 10px 18px !important;
  border-radius: 10px !important;
  align-items: center;
  justify-content: center;
  font-weight: 750;
  line-height: 1.1;
  text-decoration: none !important;
  box-shadow: none;
}
.ing-content-box:is(.is-style-ing-primary,.is-style-ing-dark,.is-style-ing-body,.is-style-ing-mind) .wp-block-button__link {
  background: var(--pearl-bone) !important;
  color: var(--warm-terracotta) !important;
}
.ing-content-box:is(.is-style-ing-heart,.is-style-ing-spirit) .wp-block-button__link {
  background: var(--charcoal-olive) !important;
  color: #fff !important;
}
.ing-content-box .wp-block-button__link:hover { filter: brightness(.96); }
@media(max-width:781px) {
  .ing-content-boxes.wp-block-columns { flex-direction: column; }
  .ing-content-box { padding: 26px 24px !important; }
  .wp-block-post-content > .ing-content-boxes.alignwide,
  .wp-block-post-content .ing-content-boxes.alignwide { width: calc(100vw - 28px); }
}

/* Kommende Veranstaltungen: Übersichtsbreite auch in schmalen Inhaltsgruppen.
 * Nur den Veranstaltungsblock verbreitern; das Raster folgt dessen Breite.
 * Entspricht .ing-listing: 1180px, außen 20px / mobil 14px Abstand.
 */
.wp-block-post-content .ing-upcoming-events,
.home .wp-block-post-content .ing-pattern > .ing-upcoming-events,
.home .wp-block-post-content .ing-pattern-section:not(.ing-hero) > .ing-upcoming-events {
  box-sizing: border-box;
  width: min(1180px, calc(100vw - 40px)) !important;
  max-width: none !important;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  margin-left: 0 !important;
  margin-right: 0 !important;
}
@media (max-width: 640px) {
  .wp-block-post-content .ing-upcoming-events,
  .home .wp-block-post-content .ing-pattern > .ing-upcoming-events,
  .home .wp-block-post-content .ing-pattern-section:not(.ing-hero) > .ing-upcoming-events {
    width: min(1180px, calc(100vw - 28px)) !important;
  }
}

/* CTA-Vorlage: identische Innenaufteilung auf Homepage und Inhaltsseiten.
 * Homepage-Regeln für volle Modulbreite dürfen Flex-Kinder nicht verbreitern.
 */
:is(.home, .page) .wp-block-post-content .ing-pattern-cta {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  box-sizing: border-box;
}
:is(.home, .page) .wp-block-post-content .ing-pattern-cta > .ing-pattern-cta__copy {
  flex: 1 1 0;
  width: auto !important;
  min-width: 0;
  max-width: none !important;
  margin: 0 !important;
}
:is(.home, .page) .wp-block-post-content .ing-pattern-cta > .wp-block-buttons {
  flex: 0 0 auto;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  justify-content: flex-start;
}
:is(.home, .page) .wp-block-post-content .ing-pattern-cta__copy > :is(h2, p) {
  width: auto !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
@media (max-width: 900px) {
  :is(.home, .page) .wp-block-post-content .ing-pattern-cta {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
  }
  :is(.home, .page) .wp-block-post-content .ing-pattern-cta > .ing-pattern-cta__copy,
  :is(.home, .page) .wp-block-post-content .ing-pattern-cta > .wp-block-buttons {
    flex: 0 1 auto;
  }
}

/* Optionale kompakte Icon-Karten: Klasse am Block "Kartenraster" setzen. */
.ing-cards-compact:is(.ing-feature-cards__grid, .ing-editorial-grid__grid) {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 16px !important;
}
.ing-cards-compact.ing-cards-compact > :is(.ing-feature-card, .ing-editorial-grid-card):nth-child(n) {
  grid-column: auto !important;
  min-width: 0;
  border-radius: 16px;
}
.ing-cards-compact :is(.ing-feature-card__media, .ing-editorial-grid-card__media) {
  position: relative;
  box-sizing: border-box;
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  margin: 0 !important;
}
.ing-cards-compact :is(.ing-feature-card__media, .ing-editorial-grid-card__media) img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
  aspect-ratio: auto !important;
}
.ing-cards-compact .ing-editorial-grid-card__body {
  padding: 16px 12px !important;
}
.ing-cards-compact :is(.ing-feature-card, .ing-editorial-grid-card) h3 {
  box-sizing: border-box;
  padding: 12px !important;
  text-align: center !important;
  font-size: 1.12rem !important;
  line-height: 1.25 !important;
  overflow-wrap: break-word;
}
.ing-cards-compact :is(.ing-feature-card, .ing-editorial-grid-card) .wp-block-button__link {
  box-sizing: border-box;
  max-width: 100%;
  padding: 8px 10px !important;
  font-size: .85rem !important;
}
@media (max-width: 1100px) {
  .ing-cards-compact:is(.ing-feature-cards__grid, .ing-editorial-grid__grid) {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 640px) {
  .ing-cards-compact:is(.ing-feature-cards__grid, .ing-editorial-grid__grid) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 380px) {
  .ing-cards-compact:is(.ing-feature-cards__grid, .ing-editorial-grid__grid) {
    grid-template-columns: 1fr !important;
  }
}

/* Großer Logo-Hero: zusätzliche Klasse direkt am Spalten-Block. */
.wp-block-post-content .wp-block-columns.ing-logo-hero {
  box-sizing: border-box;
  display: flex;
  width: min(1320px, calc(100vw - 64px)) !important;
  max-width: none !important;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  margin: 0 0 64px !important;
  padding: clamp(32px, 5vw, 72px) 0 !important;
  gap: clamp(36px, 6vw, 88px) !important;
  align-items: center !important;
}
.wp-block-post-content .ing-logo-hero > .wp-block-column {
  box-sizing: border-box;
  flex: 1 1 0 !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0;
  margin: 0 !important;
}
.wp-block-post-content .ing-logo-hero > .wp-block-column > :is(.wp-block-group, .wp-block-shortcode) {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
}
.wp-block-post-content .ing-logo-hero .ing-logo-bloom {
  width: 100% !important;
  max-width: 580px !important;
  height: auto;
  margin-inline: auto;
}
.wp-block-post-content .ing-logo-hero :is(h1, h2) {
  max-width: 14ch !important;
  margin: 0 0 24px !important;
  font-size: clamp(2.6rem, 4.5vw, 4.6rem) !important;
  font-weight: 500;
  line-height: 1.04 !important;
  letter-spacing: -.025em;
  text-align: left;
}
.wp-block-post-content .ing-logo-hero p {
  max-width: 46ch;
  font-size: clamp(1.05rem, 1.35vw, 1.2rem);
  line-height: 1.6;
}
.wp-block-post-content .ing-logo-hero .wp-block-buttons {
  margin-top: 28px;
}
@media (max-width: 781px) {
  .wp-block-post-content .wp-block-columns.ing-logo-hero {
    width: calc(100vw - 32px) !important;
    flex-direction: column;
    gap: 28px !important;
    padding: 24px 0 12px !important;
    margin-bottom: 40px !important;
  }
  .wp-block-post-content .ing-logo-hero > .wp-block-column {
    flex: 0 1 auto !important;
    width: 100% !important;
  }
  .wp-block-post-content .ing-logo-hero .ing-logo-bloom {
    max-width: 340px !important;
  }
}

/* Einzelne Inhaltsbox: dieselbe Außenkante wie die Homepage-Module.
 * Nur alleinstehende Boxen verbreitern, keine Boxen innerhalb von Spalten.
 */
.home .wp-block-post-content > .ing-content-box {
  box-sizing: border-box;
  width: min(var(--ing-home-module-width, 1120px), calc(100% - 48px)) !important;
  max-width: var(--ing-home-module-width, 1120px) !important;
  margin: 56px auto !important;
  transform: none !important;
}
@media (max-width: 781px) {
  .home .wp-block-post-content > .ing-content-box {
    width: calc(100% - 28px) !important;
  }
}

/* Ranken stehen innerhalb des sichtbaren Inhaltsbereichs am Bildschirmrand.
 * Die kleine Steuerung berücksichtigt Inhaltsanfang, Inhaltsende und Header.
 */
.ing-detail-vines { display: none; }
@media (min-width: 1200px) {
  .ing-detail-vines:not([hidden]) {
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 2;
    --ing-vine-width: clamp(105px, calc((100vw - 960px) / 2), 180px);
  }
  .ing-detail-vines::before,
  .ing-detail-vines::after {
    content: "";
    position: absolute;
    width: var(--ing-vine-width);
    aspect-ratio: 311 / 560;
    background: url("assets/ranke-rechts.png") center / contain no-repeat;
    pointer-events: none;
  }
  .ing-detail-vines::before {
    left: 0;
    top: 0;
    transform: translate(-6.43%, -3.57%) scaleX(-1);
  }
  .ing-detail-vines::after {
    right: 0;
    bottom: 0;
    transform: translate(6.43%, 3.57%);
  }
}

/* Quote / Statement: Institut-Serif auch bei globaler Absatzschrift. */
.ing-statement .ing-statement__quote,
.ing-statement .ing-statement__quote :is(p, em, strong, cite) {
  font-family: var(--wp--preset--font-family--ing-serif, "Cormorant Garamond", Georgia, serif) !important;
}
