/*
Theme Name: IBZ Schloss Gimborn
Theme URI: https://ibz-gimborn.com
Author: IBZ Schloss Gimborn e.V.
Description: Schlankes Block-Theme für das Fortbildungsangebot von IBZ Schloss Gimborn – International Law Enforcement Training & Education.
Version: 1.2.0
Requires at least: 6.5
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: ibz-gimborn
*/

:root {
	--ibz-navy: #1B2838;
	--ibz-blue: #2E4560;
	--ibz-slate: #465F7B;
	--ibz-red: #C11718;
	--ibz-mist: #F2F4F7;
	--ibz-paper: #F7F8FA;
	--ibz-line: #D9DEE5;
	--ibz-muted: #5A6778;
	--ibz-pale: #C9D2DD;
	--ibz-dline: #3A4B60;
	--ibz-hd: 'Barlow Semi Condensed', 'Arial Narrow', sans-serif;
	--ibz-pad: clamp(56px, 7vw, 88px);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; }
:where(a, button, input, select, textarea):focus-visible { outline: 3px solid var(--ibz-red); outline-offset: 2px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.ibz-skip { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: #fff; color: var(--ibz-navy); padding: 10px 16px; }
.ibz-skip:focus { left: 8px; }

.ibz-wrap { max-width: 1304px; margin: 0 auto; padding: 0 32px; box-sizing: border-box; }

/* Volle Breite: keine Lücken zwischen Sektionen */
.ibz-main { margin: 0; }
.ibz-main > .wp-block-post-content > .alignfull,
.ibz-main > .wp-block-post-content > .alignfull + * { margin-block-start: 0; }
.ibz-main > .wp-block-post-content { margin-block-start: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.ibz-main .wp-block-shortcode, .ibz-main > .wp-block-post-content > p:empty { margin: 0; }

/* ---------- Topbar ---------- */
.ibz-topbar { background: var(--ibz-navy); color: var(--ibz-pale); font-size: 14px; }
.ibz-topbar__in { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; min-height: 40px; }
.ibz-topbar a { color: var(--ibz-pale); text-decoration: none; }
.ibz-topbar a:hover { color: #fff; }
.ibz-topbar__contact { display: flex; gap: 20px; flex-wrap: wrap; }
.ibz-topbar__links { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.ibz-topbar__links > a { color: #fff; }

/* ---------- Header ---------- */
.ibz-header { background: #fff; border-bottom: 1px solid var(--ibz-line); position: sticky; top: 0; z-index: 100; }
.admin-bar .ibz-header { top: 32px; }
.ibz-header__in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 92px; }
.ibz-header__logo img { height: 60px; width: auto; display: block; }
.ibz-header__cta { white-space: nowrap; }
.ibz-btn { font-family: var(--ibz-hd); font-weight: 600; font-size: 17px; letter-spacing: .04em; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 22px; border: 0; cursor: pointer; box-sizing: border-box; text-transform: uppercase; }
.ibz-btn--red { background: var(--ibz-red); color: #fff; }
.ibz-btn--red:hover { background: #9E1213; color: #fff; }

.ibz-nav { display: flex; align-items: center; }
.ibz-nav__menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 32px; align-items: center; font-family: var(--ibz-hd); font-size: 18px; font-weight: 600; letter-spacing: .02em; }
.ibz-nav__menu > li { position: relative; display: flex; align-items: center; gap: 4px; }
.ibz-nav__menu > li > a { color: var(--ibz-navy); text-decoration: none; padding: 34px 0 31px; border-bottom: 3px solid transparent; }
.ibz-nav__menu > li > a:hover, .ibz-nav__menu > li.current-menu-item > a, .ibz-nav__menu > li.current-menu-ancestor > a, .ibz-nav__menu > li.current-page-ancestor > a { color: var(--ibz-red); border-bottom-color: var(--ibz-red); }
.ibz-subtoggle { background: none; border: 0; padding: 6px 2px; cursor: pointer; color: var(--ibz-navy); display: inline-flex; }
.ibz-subtoggle svg { transition: transform .15s; }
.ibz-nav__menu > li.is-open .ibz-subtoggle svg { transform: rotate(180deg); }
.ibz-nav__menu .sub-menu { list-style: none; margin: 0; padding: 14px 0; position: absolute; top: 100%; left: -24px; min-width: 300px; background: #fff; border: 1px solid var(--ibz-line); border-top: 3px solid var(--ibz-red); box-shadow: 0 16px 40px rgba(27, 40, 56, .14); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s; font-family: 'Source Sans 3', sans-serif; font-size: 16px; font-weight: 400; letter-spacing: 0; z-index: 10; }
.ibz-nav__menu > li:hover > .sub-menu, .ibz-nav__menu > li:focus-within > .sub-menu, .ibz-nav__menu > li.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.ibz-nav__menu .sub-menu a { display: block; padding: 9px 24px; color: var(--ibz-navy); text-decoration: none; }
.ibz-nav__menu .sub-menu a:hover { background: var(--ibz-mist); color: var(--ibz-red); }
.ibz-nav__mobile-extra { display: none; }
.ibz-burger { display: none; background: none; border: 0; color: var(--ibz-navy); cursor: pointer; padding: 8px; }
.ibz-burger .ibz-ico + .ibz-ico { display: none; }

@media (max-width: 1180px) {
	.ibz-header__in { min-height: 76px; }
	.ibz-header__logo img { height: 48px; }
	.ibz-burger { display: inline-flex; }
	.ibz-header__cta { margin-left: auto; }
	.ibz-nav { position: fixed; inset: 0; top: var(--ibz-navtop, 116px); background: #fff; display: none; flex-direction: column; align-items: stretch; overflow-y: auto; padding: 8px 32px 40px; z-index: 99; border-top: 1px solid var(--ibz-line); }
	.ibz-nav-open .ibz-nav { display: flex; }
	.ibz-nav-open body { overflow: hidden; }
	.ibz-nav-open .ibz-burger .ibz-ico:first-child { display: none; }
	.ibz-nav-open .ibz-burger .ibz-ico + .ibz-ico { display: block; }
	.ibz-nav__menu { flex-direction: column; align-items: stretch; gap: 0; font-size: 22px; }
	.ibz-nav__menu > li { flex-wrap: wrap; border-bottom: 1px solid var(--ibz-line); }
	.ibz-nav__menu > li > a { padding: 16px 0; border: 0; flex: 1; }
	.ibz-subtoggle { padding: 16px; }
	.ibz-nav__menu .sub-menu { position: static; display: none; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 12px; width: 100%; min-width: 0; }
	.ibz-nav__menu > li:hover > .sub-menu, .ibz-nav__menu > li:focus-within > .sub-menu { display: none; }
	.ibz-nav__menu > li.is-open > .sub-menu { display: block; }
	.ibz-nav__menu .sub-menu a { padding: 10px 0 10px 16px; font-size: 18px; }
	.ibz-nav__mobile-extra { display: flex; flex-direction: column; gap: 14px; padding-top: 24px; font-size: 17px; }
	.ibz-nav__mobile-extra a { color: var(--ibz-blue); }
	.ibz-nav__mobile-extra .ibz-lang { color: var(--ibz-muted); font-weight: 600; }
	.ibz-nav__mobile-extra .ibz-lang.is-current { color: var(--ibz-red); }
}
@media (max-width: 640px) {
	.ibz-wrap { padding: 0 16px; }
	.ibz-topbar__hours, .ibz-topbar__links { display: none; }
	.ibz-topbar__contact { gap: 16px; }
	.ibz-header__cta { display: none; }
	.ibz-header__logo img { height: 42px; }
	.ibz-nav { padding: 8px 16px 40px; }
	.admin-bar .ibz-header { top: 0; }
}

/* ---------- Seitenkopf (Unterseiten) ---------- */
.ibz-pagehead { padding-top: 36px !important; padding-bottom: 56px !important; }
.ibz-pagehead .ibz-crumbs { font-size: 14px; color: var(--ibz-pale); margin-bottom: 20px; }
.ibz-crumbs a { color: #fff; text-decoration: none; }
.ibz-crumbs a:hover { color: #fff; text-decoration: underline; }
.ibz-pagehead__title { font-size: clamp(36px, 5vw, 56px) !important; color: #fff; margin: 0 !important; max-width: 960px; }
.ibz-pagehead p { max-width: 760px; color: #E4E9EF; font-size: 20px; }
.ibz-page-content { padding-top: var(--ibz-pad); padding-bottom: var(--ibz-pad); }
.ibz-postmeta { gap: 16px; font-size: 14px; color: var(--ibz-pale); margin-bottom: 12px; }
.ibz-postmeta a { color: #fff; }
.ibz-article { padding-top: 56px; padding-bottom: var(--ibz-pad); }

/* ---------- Bausteine ---------- */
.ibz-section { padding-top: var(--ibz-pad) !important; padding-bottom: var(--ibz-pad) !important; }
.ibz-section--tight { padding-top: 40px !important; padding-bottom: 40px !important; }
.is-style-eyebrow { font-family: var(--ibz-hd); color: var(--ibz-red); font-weight: 600 !important; letter-spacing: .14em; font-size: 15px !important; text-transform: uppercase; margin-bottom: 8px !important; }
.is-style-eyebrow + .wp-block-heading { margin-top: 0 !important; }
.is-style-eyebrow-light { font-family: var(--ibz-hd); color: var(--ibz-pale); font-weight: 600 !important; letter-spacing: .14em; font-size: 15px !important; text-transform: uppercase; display: flex; align-items: center; gap: 12px; }
.is-style-eyebrow-light::before { content: ""; width: 12px; height: 12px; background: var(--ibz-red); flex: none; }
.ibz-lead { font-size: 20px !important; line-height: 1.5; }
.ibz-muted { color: var(--ibz-muted); }
.has-navy-background-color .ibz-muted, .has-blue-background-color .ibz-muted { color: var(--ibz-pale); }
.has-navy-background-color, .has-blue-background-color { --ibz-text-soft: #C9D2DD; }
.has-navy-background-color p:not([class*="has-"]), .has-blue-background-color p:not([class*="has-"]) { color: #E4E9EF; }

/* Links mit Pfeil */
.ibz-more a, a.ibz-more { font-family: var(--ibz-hd); font-weight: 600; font-size: 18px; text-decoration: none; color: var(--ibz-blue); }
.ibz-more a:hover, a.ibz-more:hover { color: var(--ibz-red); }
.has-navy-background-color .ibz-more a, .has-blue-background-color .ibz-more a { color: #fff; }

/* Buttons */
.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; color: #fff; border: 1px solid #8FA3B8; }
.wp-block-button.is-style-ghost .wp-block-button__link:hover { border-color: #fff; background: rgba(255, 255, 255, .06); }
.wp-block-button.is-style-light .wp-block-button__link { background: #fff; color: var(--ibz-navy); }
.wp-block-button.is-style-light .wp-block-button__link:hover { background: var(--ibz-mist); color: var(--ibz-navy); }
.wp-block-button__link { min-height: 46px; display: inline-flex; align-items: center; }

/* Kopf mit Zeile rechts */
.ibz-headrow { justify-content: space-between; align-items: flex-end !important; margin-bottom: 36px; }
.ibz-headrow .wp-block-heading { margin: 0; }

/* Hero */
.ibz-hero { padding-top: clamp(56px, 7vw, 88px) !important; padding-bottom: clamp(56px, 7vw, 96px) !important; }
.ibz-hero h1 { color: #fff; margin: 20px 0 24px !important; }
.ibz-hero .ibz-lead { color: #E4E9EF; max-width: 600px; margin-bottom: 40px; }
.ibz-hero .wp-block-image img { aspect-ratio: 4/5; object-fit: cover; width: 100%; }
.ibz-hero .wp-block-columns { align-items: center !important; gap: 56px; }

/* Vertrauensleiste */
.ibz-trust { border-bottom: 1px solid var(--ibz-line); }
.ibz-trust .wp-block-column { display: flex; gap: 16px; align-items: flex-start; }
.ibz-trust .ibz-ico { color: var(--ibz-slate); flex: none; width: 32px; height: 32px; }
.ibz-trust strong { font-family: var(--ibz-hd); font-size: 20px; display: block; }
.ibz-trust p { margin: 0; color: var(--ibz-muted); font-size: 16px; }

/* Karten "Vier Wege" */
.ibz-ways .wp-block-column { display: flex; flex-direction: column; gap: 12px; }
.ibz-ways .wp-block-image { margin: 0; }
.ibz-ways .wp-block-image img { aspect-ratio: 4/3; object-fit: cover; width: 100%; }
.ibz-ways h3 { margin: 4px 0 0 !important; font-size: 24px !important; }
.ibz-ways h3 a { color: var(--ibz-navy); text-decoration: none; }
.ibz-ways h3 a:hover { color: var(--ibz-red); }
.ibz-ways p { margin: 0; color: var(--ibz-muted); font-size: 16px; }
.ibz-ways .ibz-more { margin-top: auto !important; }

/* Themenfelder */
.ibz-topics .wp-block-column { background: #fff; padding: 28px; border-top: 3px solid var(--ibz-slate); display: flex; flex-direction: column; gap: 8px; transition: border-color .15s; }
.ibz-topics .wp-block-column:hover { border-top-color: var(--ibz-red); }
.ibz-topics h3 { font-size: 24px !important; margin: 0 !important; }
.ibz-topics h3 a { color: var(--ibz-navy); text-decoration: none; }
.ibz-topics p { margin: 0; color: var(--ibz-muted); font-size: 16px; }
.ibz-topics .ibz-more { margin-top: auto !important; padding-top: 8px; }

/* Liste mit Nummern und Linien */
ul.is-style-numbered-lines, ol.is-style-numbered-lines { list-style: none; margin: 0; padding: 0; counter-reset: ibz; border-top: 1px solid var(--ibz-line); }
.is-style-numbered-lines li { counter-increment: ibz; padding: 18px 0 18px 48px; border-bottom: 1px solid var(--ibz-line); position: relative; }
.is-style-numbered-lines li::before { content: counter(ibz, decimal-leading-zero); position: absolute; left: 0; font-family: var(--ibz-hd); font-weight: 700; color: var(--ibz-red); }
.has-navy-background-color .is-style-numbered-lines, .has-navy-background-color .is-style-numbered-lines li { border-color: var(--ibz-dline); }
ul.is-style-checks { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--ibz-line); }
.is-style-checks li { padding: 12px 0 12px 36px; border-bottom: 1px solid var(--ibz-line); position: relative; }
.is-style-checks li::before { content: ""; position: absolute; left: 4px; top: 18px; width: 14px; height: 8px; border-left: 2px solid var(--ibz-slate); border-bottom: 2px solid var(--ibz-slate); transform: rotate(-45deg); }

/* Karte mit Linie oben */
.wp-block-group.is-style-card { border: 1px solid var(--ibz-line); border-top: 4px solid var(--ibz-red); padding: 28px; background: #fff; }
.has-navy-background-color .wp-block-group.is-style-card { color: var(--ibz-navy); }

/* Partnerkacheln */
.ibz-logos { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.ibz-logos > * { margin: 0 !important; min-height: 96px; border: 1px solid var(--ibz-line); display: flex; flex-direction: column; justify-content: center; padding: 16px 20px; background: #fff; }
.ibz-logos strong { font-family: var(--ibz-hd); font-size: 19px; line-height: 1.2; }
.ibz-logos span { font-size: 14px; color: var(--ibz-muted); }
.ibz-logos img { max-height: 64px; width: auto; object-fit: contain; }

/* Personen */
.ibz-people { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; }
.ibz-people > p { margin: 0 !important; padding: 14px 0; border-bottom: 1px solid var(--ibz-line); font-size: 15px; color: var(--ibz-muted); }
.ibz-people > p strong { display: block; color: var(--ibz-navy); font-size: 17px; }
.ibz-people--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ibz-lead-person { display: flex; gap: 24px; align-items: center; border: 1px solid var(--ibz-line); padding: 24px; }
.ibz-lead-person .ibz-portrait { width: 120px; height: 150px; background: var(--ibz-mist); flex: none; display: flex; align-items: flex-end; justify-content: center; color: var(--ibz-muted); font-size: 12px; padding-bottom: 8px; box-sizing: border-box; }
.ibz-lead-person .ibz-portrait img { width: 100%; height: 100%; object-fit: cover; }
.ibz-role { font-size: 13px !important; font-weight: 700; letter-spacing: .12em; color: var(--ibz-red); text-transform: uppercase; margin: 0 !important; }
.ibz-chips { display: flex !important; flex-wrap: wrap; gap: 8px; }
.ibz-chips > p { margin: 0 !important; background: var(--ibz-mist); padding: 4px 12px; font-size: 14px; }
.ibz-team .wp-block-column { border-top: 3px solid var(--ibz-slate); padding-top: 16px; }
.ibz-team h3 { font-size: 22px !important; margin: 0 !important; }
.ibz-team p { margin: 0; font-size: 15px; color: var(--ibz-muted); }

/* Zahlen */
.ibz-stats { gap: 0 !important; border-top: 1px solid var(--ibz-line); border-bottom: 1px solid var(--ibz-line); }
.ibz-stats .wp-block-column { padding: 20px 0; }
.ibz-stats .wp-block-column + .wp-block-column { border-left: 1px solid var(--ibz-line); padding-left: 24px; }
.ibz-stats strong { font-family: var(--ibz-hd); font-size: 44px; line-height: 1; display: block; color: var(--ibz-blue); }
.ibz-stats p { margin: 0; color: var(--ibz-muted); }

/* Bildunterschriften / Galerie */
.ibz-gallery .wp-block-image img { aspect-ratio: 4/3; object-fit: cover; width: 100%; }
.ibz-gallery--tall .wp-block-image img { aspect-ratio: 3/4; }
.wp-block-image figcaption { font-family: var(--ibz-hd); font-weight: 600; font-size: 18px; color: var(--ibz-navy); text-align: left; margin-top: 10px; }
.ibz-cover-img img { width: 100%; aspect-ratio: 3/2; object-fit: cover; }

/* Kurzfakten (Aufenthalt) */
.ibz-quickfacts .wp-block-column { display: flex; gap: 14px; align-items: flex-start; }
.ibz-quickfacts .ibz-ico { color: var(--ibz-slate); width: 30px; height: 30px; flex: none; }
.ibz-quickfacts p { margin: 0; font-size: 15px; color: var(--ibz-muted); }
.ibz-quickfacts strong { font-family: var(--ibz-hd); font-size: 20px; color: var(--ibz-navy); display: block; }

/* Shuttle-Liste */
.ibz-pricelist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ibz-line); }
.ibz-pricelist li { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--ibz-line); }
.ibz-pricelist .ok { color: #1E6B43; font-weight: 700; }
.ibz-pricelist .req { color: var(--ibz-muted); }

/* Einblicke (Beiträge) */
.ibz-posts .wp-block-post-featured-image img { aspect-ratio: 16/10; object-fit: cover; }
.ibz-posts__date { font-size: 14px; color: var(--ibz-muted); margin-top: 12px; }
.ibz-posts__title { font-size: 22px !important; margin: 4px 0 8px !important; }
.ibz-posts__title a { color: var(--ibz-navy); text-decoration: none; }
.ibz-posts__title a:hover { color: var(--ibz-red); }
.ibz-posts .wp-block-post-excerpt { font-size: 16px; color: var(--ibz-muted); }

/* Formular-Platzhalter (z. B. Kontakt, Mitglieder) */
.ibz-note { background: var(--ibz-mist); border-left: 3px solid var(--ibz-slate); padding: 16px 20px !important; font-size: 16px; }

/* ---------- Footer ---------- */
.ibz-footer { background: var(--ibz-navy); color: var(--ibz-pale); font-size: 15px; }
.ibz-footer a { color: var(--ibz-pale); text-decoration: none; }
.ibz-footer a:hover { color: #fff; }
.ibz-footer__grid { display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); gap: 40px; padding-top: 64px; padding-bottom: 48px; }
.ibz-footer__brand img { height: 72px; width: auto; display: block; margin-bottom: 20px; }
.ibz-footer__brand p { margin: 0 0 20px; line-height: 1.6; }
.ibz-footer__h { font-family: var(--ibz-hd); color: #fff; font-weight: 700; font-size: 17px !important; margin: 0 0 12px !important; letter-spacing: .02em; }
.ibz-footer__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ibz-footer__menu .sub-menu { display: none; }
.ibz-footer__ext { color: #fff !important; font-weight: 600; }
.ibz-social { display: flex; flex-wrap: wrap; gap: 8px; }
.ibz-social a { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--ibz-dline); color: #fff; padding: 0 14px; min-height: 44px; font-weight: 600; }
.ibz-social a:hover { border-color: #8FA3B8; }
.ibz-footer__bottom { border-top: 1px solid var(--ibz-dline); }
.ibz-footer__bottom-in { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 20px; padding-bottom: 20px; font-size: 14px; }
.ibz-footer__legal { list-style: none; margin: 0; padding: 0; display: flex; gap: 20px; flex-wrap: wrap; }
.ibz-footer__legal a { text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1000px) {
	.ibz-footer__grid { grid-template-columns: 1fr 1fr; }
	.ibz-people { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
	.ibz-stats .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; border-top: 1px solid var(--ibz-line); }
	.ibz-hero .wp-block-columns { gap: 32px; }
	.ibz-hero .wp-block-image img { aspect-ratio: 16/10; }
	.ibz-headrow { flex-direction: column; align-items: flex-start !important; gap: 12px; }
}
@media (max-width: 640px) {
	.ibz-footer__grid { grid-template-columns: 1fr; }
	.ibz-people, .ibz-people--2 { grid-template-columns: 1fr; }
	.ibz-lead-person { flex-direction: column; align-items: flex-start; }
	:root { --wp--style--root--padding-left: 16px; --wp--style--root--padding-right: 16px; }
}

/* Ergänzungen */
.ibz-team { flex-wrap: wrap !important; }
.ibz-team > .wp-block-column { flex: 1 1 calc(33.333% - 2em) !important; min-width: 220px; }
.ibz-people--1 { grid-template-columns: 1fr !important; }
.ibz-lead-person h3 { margin: 4px 0 !important; }
.ibz-lead-person p { margin: 0; }
@media (max-width: 640px) { .ibz-team > .wp-block-column { flex-basis: 100% !important; } }
.ibz-staycover { padding-bottom: 56px !important; }
.ibz-staycover h1 { color: #fff; margin: 12px 0 12px !important; }
.ibz-staycover .ibz-lead { color: #E4E9EF; }
.ibz-staycover .ibz-crumbs { font-size: 14px; color: var(--ibz-pale); }
.ibz-gallery--dark figcaption { color: #fff; }
.ibz-quickfacts .wp-block-column > p:first-child, .ibz-trust .wp-block-column > p:first-child { margin: 0; line-height: 0; }

/* Feinschliff Responsiv */
.ibz-hero h1 { font-size: clamp(34px, 4.3vw, 60px) !important; hyphens: auto; -webkit-hyphens: auto; overflow-wrap: normal; }
h1, h2, h3 { overflow-wrap: break-word; }
@media (max-width: 1000px) {
	.ibz-hero .wp-block-columns { flex-wrap: wrap !important; }
	.ibz-hero .wp-block-column { flex-basis: 100% !important; }
	.ibz-hero .wp-block-image img { aspect-ratio: 16/10; }
	.ibz-ways, .ibz-topics { flex-wrap: wrap !important; }
	.ibz-ways > .wp-block-column, .ibz-topics > .wp-block-column { flex-basis: calc(50% - 1em) !important; }
}
@media (max-width: 640px) {
	.ibz-ways > .wp-block-column, .ibz-topics > .wp-block-column { flex-basis: 100% !important; }
}

/* Social-Media-Symbole (farbig) & ISO-Siegel */
.ibz-social { gap: 10px; }
.ibz-social a { border: 0; padding: 0; min-height: 0; width: 44px; height: 44px; justify-content: center; border-radius: 50%; background: rgba(255,255,255,.06); transition: transform .15s, background .15s; }
.ibz-social a:hover { transform: translateY(-2px); background: rgba(255,255,255,.14); }
.ibz-social a span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
.ibz-social__ico { width: 26px; height: 26px; display: block; }
.ibz-iso { display: inline-flex !important; align-items: center; gap: 14px; margin-bottom: 20px; color: #fff !important; font-size: 14px; line-height: 1.35; }
.ibz-iso img { width: 96px; height: auto; background: #fff; padding: 6px 8px; border-radius: 4px; }
.ibz-iso:hover span { text-decoration: underline; }
.ibz-qm-badge img { max-width: 220px; }
.wp-block-columns.is-style-card { border: 1px solid var(--ibz-line); border-top: 4px solid var(--ibz-red); padding: 28px; background: #fff; }
.ibz-social a { width: 48px; height: 48px; }
.ibz-social__ico { width: 30px; height: 30px; }
.ibz-social-label { font-family: var(--ibz-hd); color: #fff; font-weight: 700; font-size: 15px; margin: 4px 0 10px; letter-spacing: .02em; }
.ibz-iso { margin-bottom: 12px; } .ibz-social { gap: 8px !important; }

/* Personenkarten (Team, Vorstand, Kuratorium) */
.ibz-persons { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; margin-bottom: 24px; }
.ibz-persons > * { margin: 0 !important; }
.ibz-person__photo { aspect-ratio: 4/5; background: linear-gradient(160deg, #E9EDF2, #D9DEE5); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; overflow: hidden; }
.ibz-person__photo span { font-family: var(--ibz-hd); font-size: 44px; font-weight: 700; color: #8FA3B8; letter-spacing: .04em; }
.ibz-person__photo img { width: 100%; height: 100%; object-fit: cover; }
.ibz-person h3 { font-size: 21px !important; margin: 0 0 4px !important; }
.ibz-person__role { font-size: 15px; color: var(--ibz-muted); margin: 0 !important; }
.ibz-anchor { display: block; position: relative; top: -110px; }
@media (max-width: 1000px) { .ibz-persons { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ibz-persons { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
