/*
Theme Name: IBZ Tagungshaus Schloss Gimborn
Theme URI: https://ibz-gimborn.de
Author: IBZ Schloss Gimborn e.V.
Description: Block-Theme für das Tagungshaus Schloss Gimborn (ibz-gimborn.de) – im Design der Seminarseite ibz-gimborn.com.
Version: 1.2.0
Requires at least: 6.5
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: ibz-tagungen
*/

:root {
	--ibz-navy: #2B2D2F;
	--ibz-blue: #4A4D50;
	--ibz-slate: #6E7173;
	--ibz-red: #D8002B;
	--ibz-mist: #F2F3F4;
	--ibz-paper: #F8F8F9;
	--ibz-line: #DEDFE1;
	--ibz-muted: #5F6265;
	--ibz-pale: #CFD1D3;
	--ibz-dline: #45484B;
	--ibz-hd: 'Source Sans 3', 'Segoe UI', Arial, sans-serif;
	--ibz-serif: 'Source Serif 4', Georgia, 'Times New Roman', 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: #A80022; 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(33, 35, 37, .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: #ECEDEE; 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: #CFD1D3; }
.has-navy-background-color p:not([class*="has-"]), .has-blue-background-color p:not([class*="has-"]) { color: #ECEDEE; }

/* 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 #A3A6A9; }
.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: #ECEDEE; 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: #A3A6A9; }
.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: #ECEDEE; }
.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, #EDEEEF, #DEDFE1); 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: #A3A6A9; 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)); } }

/* ---------- Feinschliff aus der Testphase (vorher Zusatz-CSS) ---------- */
.ibz-hero h1 { font-size: clamp(34px, 4.3vw, 60px) !important; hyphens: auto; -webkit-hyphens: auto; overflow-wrap: normal; }
h1, h2, h3 { hyphens: manual; 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; }
}

.ibz-legal-box { padding: 14px 20px !important; border-left: 3px solid var(--wp--preset--color--slate); margin: 8px 0 16px; }
.ibz-legal-box p { margin: 0; }

/* IPA-Hinweis im Fuß */
.ibz-ipa { display: flex !important; align-items: center; gap: 14px; margin: -6px 0 20px; color: #fff !important; font-size: 14px; line-height: 1.35; text-decoration: none; }
.ibz-ipa img { width: 60px; height: 60px; flex: none; }
.ibz-ipa:hover span { text-decoration: underline; }
.ibz-iso { display: flex !important; }

/* =========================================================
   Übernommen aus den globalen Stilen von ibz-gimborn.com (Stand 11.10.2026)
   ========================================================= */
.ibz-hero h1{font-size:clamp(34px,4.3vw,60px)!important;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:normal}
h1,h2,h3{hyphens:manual;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}}
@media (max-width:1000px){.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}}
.ibz-legal-box{padding:14px 20px!important;border-left:3px solid var(--wp--preset--color--slate);margin:8px 0 16px}
.ibz-legal-box p{margin:0}
.ibz-hero .ibz-hero-castle img{object-position:22% 50%}
@media (max-width:1000px){.ibz-hero .ibz-hero-castle img{object-position:35% 55%}}
/* sticky-header */
.wp-site-blocks > .wp-block-template-part:has(> .ibz-header){position:sticky;top:0;z-index:1000}
.admin-bar .wp-site-blocks > .wp-block-template-part:has(> .ibz-header){top:32px}
@media (max-width:782px){.admin-bar .wp-site-blocks > .wp-block-template-part:has(> .ibz-header){top:46px}}
@media (max-width:600px){.admin-bar .wp-site-blocks > .wp-block-template-part:has(> .ibz-header){top:0}}
.ibz-header{box-shadow:0 1px 0 rgba(0,0,0,.06)}
/* logo-size */
header.ibz-header .ibz-header__in{min-height:132px}
header.ibz-header .ibz-header__logo img{height:100px;width:auto}
@media (max-width:1180px){header.ibz-header .ibz-header__in{min-height:104px} header.ibz-header .ibz-header__logo img{height:78px}}
@media (max-width:640px){header.ibz-header .ibz-header__in{min-height:84px} header.ibz-header .ibz-header__logo img{height:62px}}
@supports (animation-timeline: scroll()){@media (min-width:641px){header.ibz-header .ibz-header__logo img{animation:ibzLogoShrink linear both;animation-timeline:scroll(root);animation-range:0 180px} header.ibz-header .ibz-header__in{animation:ibzHdrShrink linear both;animation-timeline:scroll(root);animation-range:0 180px}} @keyframes ibzLogoShrink{to{height:64px}} @keyframes ibzHdrShrink{to{min-height:88px}}}
/* pagehead-align */
.ibz-pagehead > .ibz-pagehead__title{max-width:1240px;margin-left:auto !important;margin-right:auto !important;margin-top:0 !important;margin-bottom:0 !important}
/* breiten */
.wp-block-post-content.is-layout-constrained > :not(.alignfull):not(.alignleft):not(.alignright){max-width:var(--wp--style--global--wide-size,1240px)!important}
.wp-block-post-content.is-layout-constrained > :is(p,ul,ol,h2,h3,h4,h5,.wp-block-buttons,.ibz-legal-box):not(.alignwide):not(.alignfull){max-width:min(860px,100%)!important;margin-left:max(0px,calc((100% - var(--wp--style--global--wide-size,1240px)) / 2))!important;margin-right:auto!important}
.wp-block-post-content.is-layout-constrained > .is-style-card:not(.alignwide){margin-left:max(0px,calc((100% - var(--wp--style--global--wide-size,1240px)) / 2))!important;margin-right:auto!important}
/* align-grid */
.wp-block-post-content > .wp-block-cover.alignfull{padding-left:0!important;padding-right:0!important}
.wp-block-post-content > .wp-block-cover.alignfull > .wp-block-cover__inner-container{width:100%!important;max-width:1304px!important;margin-left:auto!important;margin-right:auto!important;padding-left:var(--wp--style--root--padding-left,32px)!important;padding-right:var(--wp--style--root--padding-right,32px)!important;box-sizing:border-box}
@media (max-width:640px){html body{--wp--style--root--padding-left:16px;--wp--style--root--padding-right:16px}}

/* =========================================================
   Tagungshaus: Weiche (Startseite) und Tagungsseiten
   ========================================================= */
.ibz-header--weiche .ibz-header__in{justify-content:space-between}
.ibz-header__phone{font-family:var(--ibz-hd,inherit);font-weight:600;font-size:18px;color:var(--ibz-navy);text-decoration:none;white-space:nowrap}
.ibz-header__phone:hover{color:var(--ibz-red)}
.ibz-weiche{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1240px;margin:0 auto}
.ibz-weiche__tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:440px;padding:28px;color:#fff;text-decoration:none;background:var(--ibz-navy) center/cover no-repeat;overflow:hidden;isolation:isolate}
.ibz-weiche__tile::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(33,35,37,0) 35%,rgba(33,35,37,.88) 100%);transition:background .25s}
.ibz-weiche__tile:hover::before,.ibz-weiche__tile:focus-visible::before{background:linear-gradient(180deg,rgba(33,35,37,.15) 20%,rgba(33,35,37,.94) 100%)}
.ibz-weiche__eyebrow{font-size:13px;letter-spacing:.12em;text-transform:uppercase;opacity:.85;margin:0 0 6px}
.ibz-weiche__title{font-family:var(--ibz-hd,inherit);font-size:clamp(28px,2.6vw,38px);font-weight:700;line-height:1.1;margin:0 0 8px;color:#fff}
.ibz-weiche__text{margin:0 0 18px;font-size:17px;line-height:1.45}
.ibz-weiche__go{display:inline-flex;align-items:center;gap:8px;font-weight:600;border-top:2px solid var(--ibz-red);padding-top:12px;align-self:flex-start}
.ibz-weiche__tile--main .ibz-weiche__go{color:#fff}
@media (max-width:900px){.ibz-weiche{grid-template-columns:1fr}.ibz-weiche__tile{min-height:300px}}
.ibz-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ibz-facts > *{border-top:2px solid var(--ibz-red);padding-top:12px}
@media (max-width:781px){.ibz-facts{grid-template-columns:repeat(2,1fr)}}

/* Anfrageformular */
.ibz-sub{color:var(--ibz-muted);margin-top:-4px!important}
.ibz-form{display:grid;gap:18px;max-width:760px}
.ibz-form fieldset{border:0;padding:0;margin:0;display:grid;gap:14px}
.ibz-form legend{font-family:var(--ibz-hd);font-weight:700;font-size:22px;color:var(--ibz-navy);margin-bottom:6px}
.ibz-form__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:640px){.ibz-form__row{grid-template-columns:1fr}}
.ibz-form label{display:grid;gap:6px;font-size:15px;font-weight:600;color:var(--ibz-navy)}
.ibz-form input:not([type=checkbox]),.ibz-form select,.ibz-form textarea{font:inherit;font-weight:400;font-size:16px;padding:11px 12px;border:1px solid var(--ibz-line);border-radius:0;background:#fff;color:var(--ibz-navy);width:100%;box-sizing:border-box}
.ibz-form input:focus,.ibz-form select:focus,.ibz-form textarea:focus{outline:2px solid var(--ibz-blue);outline-offset:1px}
.ibz-form .ibz-form__check{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.ibz-form .ibz-form__check input{margin-top:4px;width:18px;height:18px;flex:none}
.ibz-form button{justify-self:start}
.ibz-form__hint{font-size:14px;color:var(--ibz-muted);margin:0}
.ibz-form__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ibz-form__ok,.ibz-form__err{padding:16px 20px;margin-bottom:18px;border-left:4px solid #1E6B43;background:#EEF6F1}
.ibz-form__err{border-left-color:var(--ibz-red);background:#FBEDED}


/* =========================================================
   1.1 Steingrau: Schrift & Feinschliff
   ========================================================= */
h1,h2,h3,.wp-block-heading,.ibz-weiche__title,.ibz-form legend,.ibz-quickfacts strong,.ibz-pagehead__title{font-family:var(--ibz-serif)!important;font-weight:600!important;letter-spacing:-.005em}
.ibz-nav__menu{font-size:17px;letter-spacing:.01em}
.ibz-btn,.wp-element-button{letter-spacing:.06em}
.is-style-eyebrow{color:var(--ibz-red)}
.ibz-footer{background:#2B2D2F}
.ibz-topbar{background:#2B2D2F}
.ibz-weiche__tile::before{background:linear-gradient(180deg,rgba(24,25,27,.05) 30%,rgba(24,25,27,.9) 100%)}
.ibz-weiche__tile:hover::before,.ibz-weiche__tile:focus-visible::before{background:linear-gradient(180deg,rgba(24,25,27,.2) 15%,rgba(24,25,27,.95) 100%)}
.ibz-weiche__eyebrow{opacity:1;color:#ECEDEE;text-shadow:0 1px 2px rgba(0,0,0,.4)}

/* 1.1.1: größeres Logo, Quickfacts (zuvor in den globalen Stilen der Website) */
html body header.ibz-header .ibz-header__in{min-height:150px} html body header.ibz-header .ibz-header__logo img{height:124px}
@media (max-width:1180px){html body header.ibz-header .ibz-header__in{min-height:124px} html body header.ibz-header .ibz-header__logo img{height:100px}}
@media (max-width:640px){html body header.ibz-header .ibz-header__in{min-height:96px} html body header.ibz-header .ibz-header__logo img{height:76px}}
@supports (animation-timeline: scroll()){@keyframes ibzLogoShrink{to{height:80px}} @keyframes ibzHdrShrink{to{min-height:100px}}}
html body .ibz-quickfacts strong{font-family:var(--ibz-hd)!important;font-weight:700!important;font-size:19px;letter-spacing:0;hyphens:manual}
@media (max-width:1000px){html body .ibz-quickfacts .wp-block-columns{flex-wrap:wrap!important;row-gap:24px} html body .ibz-quickfacts .wp-block-column{flex-basis:calc(50% - 1em)!important}}


/* =========================================================
   1.2 Neutralgrau + Rot, Landingpage, Bildgestaltung
   ========================================================= */
body{color:#1F2123}
h1,h2,h3,.wp-block-heading{color:#1F2123}
.has-navy-background-color h1,.has-navy-background-color h2,.has-navy-background-color h3,.wp-block-cover h1,.wp-block-cover h2{color:#fff}
/* Titelbilder: Verlauf statt Flächentönung */
html body .ibz-staycover .wp-block-cover__background{background:linear-gradient(180deg,rgba(20,21,22,.10) 0%,rgba(20,21,22,.25) 45%,rgba(20,21,22,.78) 100%)!important;opacity:1!important}
/* Bilder: einheitliche Formate, sanfter Zoom */
.ibz-cover-img img{aspect-ratio:3/2;object-fit:cover;width:100%}
.ibz-gallery .wp-block-image,.ibz-ways .wp-block-image,.ibz-cover-img{overflow:hidden}
.ibz-gallery .wp-block-image img,.ibz-ways .wp-block-image img,.ibz-cover-img img{transition:transform .5s ease}
.ibz-gallery .wp-block-image:hover img,.ibz-ways .wp-block-column:hover .wp-block-image img,.ibz-cover-img:hover img{transform:scale(1.04)}
.ibz-ways .wp-block-image img{aspect-ratio:4/3;object-fit:cover;width:100%}
.ibz-gallery figcaption{font-size:14px;letter-spacing:.06em;text-transform:uppercase;margin-top:10px!important}
/* Social Media einfarbig */
html body .ibz-social a{background:transparent;border:1px solid rgba(255,255,255,.28);color:#fff}
html body .ibz-social a:hover{background:#fff;color:#2B2D2F;border-color:#fff}
html body .ibz-social__ico{width:20px;height:20px}

/* ---------- Landingpage (Startseite) ---------- */
html body .ibz-landing{min-height:min(100svh,920px)!important;padding-top:120px!important;padding-bottom:64px!important}
html body .ibz-landing .wp-block-cover__background{background:linear-gradient(180deg,rgba(20,21,22,.35) 0%,rgba(20,21,22,.45) 40%,rgba(20,21,22,.82) 100%)!important;opacity:1!important}
.ibz-landing h1{font-size:clamp(40px,5.4vw,76px)!important;color:#fff;margin:6px 0 10px!important;line-height:1.02}
.ibz-landing .ibz-lead{color:#ECEDEE;max-width:640px}
.ibz-landing .is-style-eyebrow-light{color:#fff;opacity:.9}
html body .ibz-weiche{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1240px;margin:48px 0 0}
html body .ibz-weiche__tile{position:relative;display:flex;flex-direction:column;min-height:0;padding:0;background:#fff;color:#1F2123;text-decoration:none;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.28);border-top:4px solid transparent;transition:transform .2s ease,box-shadow .2s ease}
html body .ibz-weiche__tile::before{content:none}
html body .ibz-weiche__tile:hover,html body .ibz-weiche__tile:focus-visible{transform:translateY(-4px);box-shadow:0 24px 50px rgba(0,0,0,.34)}
html body .ibz-weiche__tile--main{border-top-color:var(--ibz-red)}
.ibz-weiche__img{display:block;aspect-ratio:16/10;background:#DEDFE1 center/cover no-repeat;transition:transform .5s ease}
.ibz-weiche__tile:hover .ibz-weiche__img{transform:scale(1.04)}
.ibz-weiche__body{display:flex;flex-direction:column;gap:6px;padding:22px 24px 24px;flex:1;background:#fff;position:relative}
html body .ibz-weiche__eyebrow{color:#6E7173;opacity:1;text-shadow:none;font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin:0;font-weight:700}
html body .ibz-weiche__title{color:#1F2123;font-size:clamp(26px,2.2vw,32px);margin:0}
html body .ibz-weiche__text{color:#4A4D50;font-size:16px;margin:0 0 12px}
html body .ibz-weiche__go{margin-top:auto;color:var(--ibz-red);border:0;padding:0;font-weight:700;letter-spacing:.02em}
@media (max-width:900px){html body .ibz-weiche{grid-template-columns:1fr}.ibz-weiche__img{aspect-ratio:16/8}}
.ibz-landing-band{display:flex;flex-wrap:wrap;gap:12px 40px;justify-content:space-between;align-items:center;font-size:16px;color:#4A4D50}
.ibz-landing-band strong{color:#1F2123}
