/* Zuordnung von WordPress-Blockwrappern zu den Folgeseiten-Sektionen (Teil B).
   Nur Mapping-Regeln für Core-Wrapper; die Sektionsstile selbst bleiben in subpage.css.
   Alle Selektoren sind an .custom-page-wrapper und die Sektionsklassen gebunden,
   damit sie unabhängig von der Ladereihenfolge gegenüber Core-Layout-Regeln gewinnen. */

/* Lightbox-Overlay: 100vw/100vh ragt unter den Scrollbar, Schließen-Button rutscht aus dem Sichtbereich. */
.lightbox-modal {
  width: 100%;
  height: 100%;
}

/* Abstände: Core setzt auf figure.wp-block-image margin 0 0 1em (Spezifität 0,1,1). */
.custom-page-wrapper .contact-center-frame > figure.wp-block-image,
.custom-page-wrapper .gallery-portrait-item > figure.wp-block-image,
.custom-page-wrapper .gallery-landscape-item > figure.wp-block-image {
  margin: 0;
  width: 100%;
}

.custom-page-wrapper .gallery-portrait-item > figure.wp-block-image,
.custom-page-wrapper .gallery-landscape-item > figure.wp-block-image {
  height: 100%;
}

/* Bilder: füllen die Figure wie im Quellmarkup (object-fit bleibt aus subpage.css). */
.custom-page-wrapper .contact-center-frame > figure.wp-block-image > img {
  width: 100%;
  height: auto;
  max-width: none;
  max-height: 320px;
  object-fit: cover;
  display: block;
}

.custom-page-wrapper .gallery-portrait-item > figure.wp-block-image > img,
.custom-page-wrapper .gallery-landscape-item > figure.wp-block-image > img {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  display: block;
}

/* Sektions-Kinder: Außenabstände aus dem Quellmarkup (Core-Layout-Flow liefert 0). */
.custom-page-wrapper .downloads-section > .downloads-header {
  margin-bottom: 60px;
}

.custom-page-wrapper .seminars-right > .seminars-header-row {
  margin-bottom: 10px;
}

.custom-page-wrapper .gallery-section > .gallery-sub-grid {
  margin-top: 30px;
}

.custom-page-wrapper .contact-info-card > .card-user-icon {
  margin-bottom: 5px;
}

.custom-page-wrapper .contact-info-card > .card-pin-icon {
  margin-top: 15px;
}

/* Icon-Absätze: Schrift, Farbe und Zeilenhöhe kommen vom Icon-Wrapper, nicht von `.contact-info-card p`.
   Die Quelle setzt für Icon-Wrapper line-height 1 (Box-Höhe = Schriftgröße). */
.custom-page-wrapper .contact-info-card > .card-user-icon,
.custom-page-wrapper .contact-info-card > .card-pin-icon,
.custom-page-wrapper .gallery-headline-col > .gallery-icon-box {
  line-height: 1;
}

.custom-page-wrapper .contact-info-card > .card-user-icon > .wp-block-kjp-icon,
.custom-page-wrapper .contact-info-card > .card-pin-icon > .wp-block-kjp-icon,
.custom-page-wrapper .gallery-headline-col > .gallery-icon-box > .wp-block-kjp-icon {
  margin: 0;
  font-size: inherit;
  color: inherit;
  line-height: inherit;
}

/* Adress-Label: Werte aus dem ehemaligen Inline-Style. */
.custom-page-wrapper .contact-info-card .contact-address-label {
  font-weight: 700;
  color: #213242;
  margin-bottom: 4px;
}

/* Telefon-Anker steht in einem Absatz: Absatz neutralisiert `.contact-info-card p`,
   damit Schriftgröße (1.25em des Karten-Fonts) und Abstand dem Quellmarkup entsprechen.
   Der Anker wird per :has() angesprochen, damit im Markup keine zusätzliche Klasse nötig ist. */
.custom-page-wrapper .contact-info-card p:has(> .contact-phone-box) {
  margin: 15px 0 0;
  font-size: 1em;
  color: inherit;
  line-height: inherit;
}

.custom-page-wrapper .contact-info-card .contact-phone-box {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
}
