.elementor-kit-6{--e-global-color-primary:#D21E1D;--e-global-color-secondary:#05051E;--e-global-color-text:#23242C;--e-global-color-accent:#A9171A;--e-global-color-gray700:#4A4B55;--e-global-color-gray500:#8C8D96;--e-global-color-gray300:#D5D6DB;--e-global-color-gray100:#EFEFF1;--e-global-color-gray50:#F7F7F8;--e-global-color-white:#FFFFFF;--e-global-typography-primary-font-family:"Plus Jakarta Sans";--e-global-typography-secondary-font-family:"Plus Jakarta Sans";--e-global-typography-text-font-family:"Plus Jakarta Sans";--e-global-typography-accent-font-family:"Source Serif 4";background-color:#FFFFFF;color:#05051E;font-family:"Plus Jakarta Sans", system-ui, sans-serif;font-size:17px;line-height:1.6em;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:#D21E1D;}.elementor-kit-6 a:hover{color:#A9171A;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1180px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6{font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --color-brand:#D21E1D; --color-brand-dark:#A9171A; --color-brand-light:#FF6B66; --color-ink:#05051E; --color-ink-overlay:rgba(5,5,30,0.52); --gray-900:#23242C; --gray-700:#4A4B55; --gray-500:#8C8D96; --gray-300:#D5D6DB; --gray-100:#EFEFF1; --gray-50:#F7F7F8; --color-white:#FFFFFF; --color-footer-text:#C9CAD2; --color-footer-line:#2A2B40; --font-sans:"Plus Jakarta Sans"; --font-serif:"Source Serif 4"; --container-max:1200px; --gutter:32px; --gutter-mobile:20px; --section-space:104px; --section-space-mobile:64px; --fs-display:76px; --fs-page-title:72px; --fs-h2:44px; --fs-h2-mobile:30px; --fs-intro:32px; --fs-h3:26px; --fs-lead:21px; --fs-body:17px; --fs-small:15px; --fs-meta:13px; --radius-sm:2px; }
/* Start custom CSS *//*
 * Kampagnenforum – Site Settings › Custom CSS
 * Source of truth for the kit's custom_css (deploy: elementor/deploy-site-css.php).
 * Only what V4 global classes cannot express lives here:
 *   - descendant/pseudo .elementor-kit-6s (rich text, inline <span>/<strong>/<a>)
 *   - the Theme Builder header location wrapper (sticky)
 *   - skins for V3 widgets used inside V4 layouts (nav-menu, post-info, share-buttons)
 *   - typography for the post body (theme-post-content renders plain HTML)
 * Design tokens come from V4 global variables (var(--color-brand) …).
 */

/* ---------- Sticky header: topbar scrolls away, main header sticks ---------- */
.elementor-location-header { position: sticky; top: -41px; z-index: 50; }
body.admin-bar .elementor-location-header { top: -9px; }
@media (max-width: 782px) { body.admin-bar .elementor-location-header { top: 5px; } }
@media (max-width: 767px) {
	.elementor-location-header { top: 0; }
	body.admin-bar .elementor-location-header { top: 46px; }
}
@media (max-width: 600px) { body.admin-bar .elementor-location-header { top: 0; } }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }

/* ---------- Line breaks: balanced headings (no orphan word); long German compounds hyphenate on small screens ---------- */
.elementor h1, .elementor h2 { text-wrap: balance; }
@media (max-width: 1180px) { .elementor h1, .elementor h2, .elementor h3 { hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 10 4 4; overflow-wrap: break-word; } }
/* the intro text block on phones: left-aligned, hyphenated so the right edge stays calm (customer: no block format) */
@media (max-width: 767px) { .elementor .text-intro { hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 8 3 3; text-wrap: pretty; } }

/* ---------- Rich-text accents ---------- */
.hero__title span { box-shadow: inset 0 -0.16em 0 var(--color-brand); }
.text-intro strong { color: var(--color-brand); font-weight: 700; }
.elementor .text-lead a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.elementor .text-lead a:hover { color: var(--color-brand-dark); }
.breadcrumb a { color: var(--gray-700); text-decoration: none; }
.breadcrumb a:hover { color: var(--color-brand); }
.site-footer a { color: var(--color-white); text-decoration: none; }
.site-footer a:hover { color: var(--color-brand-light); }

/* ---------- Post meta row (class post-meta): date · von Autor ---------- */
.elementor .post-meta > * + *::before { content: "·"; margin-inline-end: 8px; }

/* ---------- Loop utilities: limit-2-mobile shows only the first two items of a loop layout on phones; the second,
   now the last row, loses its divider (post-row) ---------- */
@media (max-width: 767px) {
	.elementor .limit-2-mobile > :nth-child(n+3) { display: none; }
	.elementor .limit-2-mobile > :nth-child(2) { border-bottom: 0; }
}

/* ---------- Category chips (V3 post-info › Terms, class "tag-list") ---------- */
.elementor .tag-list .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.elementor .tag-list .elementor-post-info__item { margin: 0 !important; padding: 0 !important; }
.elementor .tag-list .elementor-icon-list-item .elementor-post-info__terms-list { display: flex; flex-wrap: wrap; column-gap: 0; row-gap: 8px; font-size: 0; /* hides ", " separators (they are anonymous flex items, so spacing uses margins) */ }
.elementor .tag-list .elementor-icon-list-icon, .elementor .tag-list .elementor-post-info__item-prefix { display: none; }
.elementor .tag-list .elementor-icon-list-item .elementor-icon-list-text a.elementor-post-info__terms-list-item {
	display: inline-flex; align-items: center; min-height: 30px; padding: 0 12px;
	border: 1px solid var(--gray-300); border-radius: 999px; background: var(--color-white);
	font-family: var(--font-sans); font-size: 13px; font-weight: 600; line-height: 1; color: var(--gray-900);
	text-decoration: none; white-space: nowrap; transition: border-color .15s, color .15s;
	margin-right: 8px;
}
.elementor .tag-list .elementor-icon-list-item .elementor-icon-list-text a.elementor-post-info__terms-list-item::before {
	content: ""; width: 6px; height: 6px; margin-right: 8px; border-radius: 50%; background: var(--color-brand); flex-shrink: 0;
}
.elementor .tag-list .elementor-icon-list-item .elementor-icon-list-text a.elementor-post-info__terms-list-item:hover { border-color: var(--color-brand); color: var(--color-brand); }
@media (max-width: 767px) { .elementor .tag-list .elementor-icon-list-item .elementor-icon-list-text a.elementor-post-info__terms-list-item { min-height: 36px; } }

/* ---------- Navigation (V3 nav-menu) ---------- */
.elementor .nav-topbar .elementor-nav-menu--main .elementor-item { padding: 0; font-size: 13px; font-weight: 500; color: var(--gray-700); }
.elementor .nav-topbar .elementor-nav-menu--main .elementor-item:hover,
.elementor .nav-topbar .elementor-nav-menu--main .elementor-item:focus { color: var(--color-brand); }
.elementor .nav-topbar .elementor-nav-menu--main :is(.elementor-item.elementor-item-active, li:is(.current-lang, .wpml-ls-current-language) > .elementor-item) { color: var(--color-ink); font-weight: 700; }
.elementor .nav-topbar .elementor-nav-menu > li:not(:last-child) { margin-right: 22px; }

.elementor .nav-main .elementor-nav-menu--main .elementor-item { padding: 0; font-size: 15px; font-weight: 600; color: var(--color-ink); white-space: nowrap; }
.elementor .nav-main .elementor-nav-menu--main .elementor-item:hover,
.elementor .nav-main .elementor-nav-menu--main .elementor-item:focus,
.elementor .nav-main .elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor .nav-main .elementor-nav-menu--main :is(.current-page-ancestor, .current_page_parent) > .elementor-item { color: var(--color-brand); }
.elementor .nav-main .elementor-nav-menu--main .elementor-nav-menu > li:not(:last-child) { margin-right: 24px; }
.elementor .nav-main .elementor-menu-toggle { width: 48px; height: 48px; padding: 0; background: transparent; color: var(--color-ink); font-size: 26px; border-radius: 0; }
.elementor .nav-main .elementor-menu-toggle:hover { color: var(--color-brand); }

/* Mobile/tablet dropdown (mobile menu): overlays the page, full width under .site-header (position: relative) */
.elementor .nav-mobile .elementor-widget-nav-menu { position: static; }
.elementor .nav-mobile .elementor-nav-menu--dropdown.elementor-nav-menu__container {
	position: absolute; top: 100% !important; left: 0 !important; right: 0; width: 100% !important; margin-top: 0 !important; z-index: 60;
}
.elementor .nav-mobile .elementor-menu-toggle { width: 48px; height: 48px; padding: 0; background: transparent; color: var(--color-ink); font-size: 26px; border-radius: 0; }
.elementor .nav-mobile .elementor-nav-menu--dropdown {
	background: var(--color-white); border-top: 1px solid var(--gray-300); border-bottom: 1px solid var(--gray-300);
	box-shadow: 0 16px 32px rgba(5, 5, 30, .08);
}
.elementor .nav-mobile .elementor-nav-menu--dropdown .elementor-item {
	padding: 14px 32px; min-height: 48px; font-family: var(--font-sans); font-size: 17px; font-weight: 600; color: var(--color-ink);
	border-bottom: 1px solid var(--gray-100);
}
.elementor .nav-mobile .elementor-nav-menu--dropdown .elementor-item:hover,
.elementor .nav-mobile .elementor-nav-menu--dropdown .elementor-item.elementor-item-active,
.elementor .nav-mobile .elementor-nav-menu--dropdown :is(.current-page-ancestor, .current_page_parent) > .elementor-item { color: var(--color-brand); background: var(--gray-50); }
/* Service links (Newsletter, language switcher and its languages) after the main items: secondary style.
   The menu items carry the classes (migration/import/kf-menus.php), so the menu can change without CSS edits. */
.elementor .nav-mobile .elementor-nav-menu--dropdown :is(li.menu-item--secondary, li.lang-item, li.wpml-ls-item) .elementor-item { font-size: 14px; font-weight: 500; color: var(--gray-700); min-height: 44px; padding-top: 10px; padding-bottom: 10px; }
/* The current language (WPML's / Polylang's switcher items; the footer's [kf_languages] wraps it in <strong>) */
.elementor .nav-mobile .elementor-nav-menu--dropdown li:is(.lang-item.current-lang, .wpml-ls-current-language) .elementor-item { color: var(--color-ink); font-weight: 700; }
/* "Kontakt" as a CTA */
.elementor .nav-mobile .elementor-nav-menu--dropdown li.menu-item--cta .elementor-item { color: var(--color-brand); font-weight: 700; }
@media (max-width: 767px) { .elementor .nav-mobile .elementor-nav-menu--dropdown .elementor-item { padding-left: 20px; padding-right: 20px; } }

/* Blog filter (V3 nav-menu "Dienstleistung-Filter") as pills */
.elementor .filter-nav { flex: 1 1 0%; min-width: 0; }
.elementor .filter-nav .elementor-nav-menu { display: flex; flex-wrap: wrap; gap: 10px; }
.elementor .filter-nav .elementor-nav-menu > li { margin: 0 !important; }
.elementor .filter-nav .elementor-nav-menu--main .elementor-item {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px;
	border: 1px solid var(--gray-300); border-radius: 999px; background: var(--color-white);
	font-family: var(--font-sans); font-size: 14px; font-weight: 600; color: var(--color-ink); white-space: nowrap;
}
.elementor .filter-nav .elementor-nav-menu--main .elementor-item:hover { border-color: var(--color-ink); color: var(--color-ink); }
.elementor .filter-nav .elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor .filter-nav .elementor-nav-menu--main .current-menu-item > .elementor-item {
	background: var(--color-ink); border-color: var(--color-ink); color: var(--color-white);
}
@media (max-width: 767px) {
	.elementor .filter-nav { flex: 0 0 auto; }
	.elementor .filter-nav .elementor-nav-menu { flex-wrap: nowrap; }
	.filter-bar { margin-left: -20px !important; margin-right: -20px !important; padding-left: 20px !important; padding-right: 20px !important; scrollbar-width: none; }
	.filter-bar::-webkit-scrollbar { display: none; }
}

/* Footer links (V3 nav-menu vertical) */
.elementor .nav-footer .elementor-nav-menu--main .elementor-nav-menu { display: grid; gap: 6px; }
.elementor .nav-footer .elementor-nav-menu--main .elementor-item { padding: 0; font-size: 15px; font-weight: 400; line-height: 1.6; color: var(--color-white); }
.elementor .nav-footer .elementor-nav-menu--main .elementor-item:hover { color: var(--color-brand-light); }

/* ---------- Post body (theme-post-content) ----------
   Applies to blog posts / events (.article-body) and to pages using the Default Page template whose
   body is still plain block content (.page-body whose post content is not an Elementor layout; an Elementor
   template embedded by shortcode, e.g. a form, does not count). The rules apply inside the post content widget only:
   the author box and share bar next to it in .article-body keep their own classes. */
.elementor .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor)) { max-width: 784px; margin: 72px auto 104px; padding-inline: var(--gutter); }
@media (max-width: 767px) { .elementor .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor)) { margin: 40px auto 64px; padding-inline: var(--gutter-mobile); } }

:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content p { margin: 0 0 24px; font-family: var(--font-serif); font-size: 21px; line-height: 1.7; color: var(--gray-900); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content > .elementor-widget-container > p:first-child,
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content > p:first-child { font-size: 24px; line-height: 1.55; color: var(--color-ink); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content h2, :is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content h3 { margin: 44px 0 16px; font-family: var(--font-sans); font-size: 26px; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; color: var(--color-ink); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content figure, :is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-image { margin: 40px 0; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content img { display: block; width: 100%; height: auto; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content a { color: var(--color-brand); text-decoration-thickness: 1px; text-underline-offset: 3px; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .cta-box { margin: 40px 0; padding: 32px 36px; border-left: 5px solid var(--color-brand); background: var(--gray-50); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .cta-box p { margin: 0 0 18px; font-family: var(--font-sans); font-size: 17px; line-height: 1.6; color: var(--gray-900); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .cta-box p:first-child { margin-bottom: 10px; font-size: 24px; font-weight: 800; line-height: 1.3; color: var(--color-ink); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 24px;
	border-radius: 2px; background: var(--color-brand); color: var(--color-white);
	font-family: var(--font-sans); font-size: 15px; font-weight: 700; text-decoration: none; transition: background-color .15s;
}
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-button__link:hover { background: var(--color-brand-dark); color: var(--color-white); }

/* Migrated Drupal content (migration/convert.py block set) */
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content { overflow-wrap: break-word; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content a { overflow-wrap: anywhere; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content h4, :is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content h5 { margin: 32px 0 12px; font-family: var(--font-sans); font-size: 20px; font-weight: 800; line-height: 1.25; color: var(--color-ink); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content ul, :is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content ol { margin: 0 0 28px; padding-left: 1.3em; font-family: var(--font-serif); font-size: 19px; line-height: 1.65; color: var(--gray-900); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content li { margin-bottom: 8px; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content li::marker { color: var(--color-brand); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content figcaption { margin-top: 10px; font-family: var(--font-sans); font-size: 14px; color: var(--gray-700); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-buttons { margin: 32px 0; display: flex; flex-wrap: wrap; gap: 12px; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-quote { margin: 40px 0; padding: 4px 0 4px 28px; border-left: 4px solid var(--color-brand); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-quote p { font-size: 23px; line-height: 1.55; color: var(--color-ink); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-quote cite { font-family: var(--font-sans); font-size: 14px; font-style: normal; font-weight: 700; color: var(--gray-700); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .kf-author-box { margin: 48px 0; padding: 28px; gap: 28px; background: var(--gray-50); align-items: start; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .kf-author-box .wp-block-media-text__content { padding: 0; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .kf-author-box img { aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .kf-author-box h3 { margin: 0 0 10px; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--color-brand); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .kf-author-box p { margin-bottom: 12px; font-family: var(--font-sans); font-size: 16px; line-height: 1.6; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .kf-card { margin: 0 0 28px; padding: 24px; border: 1px solid var(--gray-300); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .kf-card h3 { margin: 12px 0 8px; font-size: 20px; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .kf-card p { font-family: var(--font-sans); font-size: 16px; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .kf-card figure { margin: 0; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-columns { margin: 32px 0; gap: 32px; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-columns figure { margin: 0 0 16px; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-embed { margin: 40px 0; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-embed iframe { width: 100%; max-width: 100%; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-table { margin: 32px 0; overflow-x: auto; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-table table { width: 100%; border-collapse: collapse; font-family: var(--font-sans); font-size: 15px; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-table th, :is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-table td { padding: 10px 12px; border-bottom: 1px solid var(--gray-300); text-align: left; vertical-align: top; }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-details { margin: 0; padding: 18px 0; border-bottom: 1px solid var(--gray-300); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-details summary { cursor: pointer; font-family: var(--font-sans); font-size: 19px; font-weight: 800; color: var(--color-ink); }
:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .wp-block-details[open] summary { margin-bottom: 16px; }

@media (max-width: 767px) {
	:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content p { font-size: 18px; }
	:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content ul, :is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content ol { font-size: 17px; }
	:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content > .elementor-widget-container > p:first-child,
	:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content > p:first-child { font-size: 20px; }
	:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .cta-box { padding: 24px 22px; }
	:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .kf-author-box { padding: 22px; }
	:is(.article-body, .page-body:not(:has(> .elementor-widget-theme-post-content > .elementor))) > .elementor-widget-theme-post-content .kf-author-box img { max-width: 120px; }
}

/* ---------- Share buttons (V3 share-buttons, class "share-links") ---------- */
.elementor .share-links .elementor-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.elementor .share-links .elementor-grid-item { margin: 0 !important; }
.elementor .share-links .elementor-share-btn {
	height: auto !important; min-height: 36px; padding: 0 14px; border: 1px solid var(--gray-300) !important; border-radius: 999px;
	background: var(--color-white) !important; color: var(--gray-900) !important; transition: border-color .15s, color .15s;
}
.elementor .share-links .elementor-share-btn__icon { display: none !important; }
.elementor .share-links .elementor-share-btn__title { padding: 0 !important; font-family: var(--font-sans); font-size: 14px; font-weight: 600; text-transform: none; }
.elementor .share-links .elementor-share-btn:hover { border-color: var(--color-brand) !important; color: var(--color-brand) !important; }
@media (max-width: 767px) { .elementor .share-links .elementor-share-btn { min-height: 40px; } }

/* ---------- Blog grid: Fokus banner placed inside the loop's grid ----------
   The loop wrapper + layout become "display: contents", so loop items and the banner share one CSS grid.
   The banner sits in row 3 (desktop/mobile) or row 4 (tablet, 2 columns) = always after the 6th card. */
.elementor .post-grid--with-focus > .e-collection-loop-base,
.elementor .post-grid--with-focus > .e-collection-loop-base > .e-collection-loop-layout-base { display: contents !important; }
.elementor .post-grid--with-focus > :not(.e-collection-loop-base) { grid-column: 1 / -1; grid-row: 3; }
@media (max-width: 1180px) { .elementor .post-grid--with-focus > :not(.e-collection-loop-base) { grid-row: 4; } }
@media (max-width: 767px) { .elementor .post-grid--with-focus > :not(.e-collection-loop-base) { grid-row: 3; } }
/* Fokus banner promotes "Kampagnen": shown on the blog overview + the Kampagnen category only */
body.category:not(.category-kampagnen) .post-grid--with-focus > :not(.e-collection-loop-base),
body.tag .post-grid--with-focus > :not(.e-collection-loop-base) { display: none; }

/* ---------- Forms on dark/red background ---------- */
.newsletter-band .e-form-checkbox-base { border-color: var(--color-white); }
.newsletter-band .e-form-checkbox-base:checked { background-color: var(--color-white); color: var(--color-brand); }
.elementor .newsletter-band .text-fineprint a { color: var(--color-white); text-decoration: underline; text-underline-offset: 3px; }
.form-input--on-dark::placeholder { color: rgba(255, 255, 255, .75); }

/* Partner logos: linked logos are wrapped in <a>; let the link fill the cell so max-height:100% applies */
.elementor .partner-cell { overflow: hidden; }
.elementor .partner-cell > a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }

/* Card images that link: the link wrapper shrinks to the image's natural width, so an image smaller than the card
   (e.g. a 400 px case image in a 548 px column) stayed narrow; the wrapper spans the card like the image does */
.elementor .e-image-link-base:has(> .post-card__image) { width: 100%; }

/* A post without a featured image renders an <img> without src (an empty framed box): no article hero, and a plain
   grey area of the card's image size instead (k4-post-images gives every kampagenda.ch post an image; this is the net) */
.elementor .article-hero-image:not([src]) { display: none; }
.elementor .post-card__image:not([src]) { visibility: hidden; }
.elementor .e-image-link-base:has(> .post-card__image:not([src])) { background: var(--gray-100); }

/* ---------- Teaser images: hover feedback on linked images (team/partner grayscale lives in their classes) ---------- */
.e-image-link-base > :is(.post-lead__image, .post-feature__image, .post-card__image, .post-row__image, .focus-banner__image) { transition: filter .2s ease; }
.e-image-link-base:is(:hover, :focus-visible) > :is(.post-lead__image, .post-feature__image, .post-card__image, .post-row__image, .focus-banner__image) { filter: brightness(.9) saturate(1.1); }
@media (prefers-reduced-motion: reduce) {
	.e-image-link-base > img { transition: none; }
}

/* ---------- Pro forms (V3 form widget in the "Newsletter Form" / "Kontakt Form" templates, class kf-form) ---------- */
.elementor .kf-form .elementor-form-fields-wrapper { margin: 0 -7px -14px; }
.elementor .kf-form .elementor-field-group { padding: 0 7px; margin-bottom: 14px; }
.elementor .kf-form .elementor-field-label { margin-bottom: 6px; font-family: var(--font-sans); font-size: 13px; font-weight: 600; color: var(--color-ink); }
.elementor .kf-form .elementor-field-textual,
.elementor .kf-form .elementor-select-wrapper select {
	min-height: 50px; padding: 0 14px; border: 1px solid var(--gray-300); border-radius: 2px;
	background: var(--color-white); color: var(--color-ink); font-family: var(--font-sans); font-size: 16px;
}
.elementor .kf-form textarea.elementor-field-textual { padding: 12px 14px; line-height: 1.5; }
.elementor .kf-form .elementor-field-textual:focus { border-color: var(--color-ink); outline: 2px solid transparent; box-shadow: 0 0 0 1px var(--color-ink); }
.elementor .kf-form .elementor-field-subgroup { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.elementor .kf-form .elementor-field-subgroup .elementor-field-option { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 14px; }
.elementor .kf-form input[type=checkbox] { width: 18px; height: 18px; margin: 0; accent-color: var(--color-brand); }
.elementor .kf-form .elementor-field-type-acceptance .elementor-field-option { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.5; color: var(--gray-700); }
.elementor .kf-form .elementor-field-type-acceptance a { color: inherit; text-decoration: underline; }
.elementor .kf-form .elementor-button {
	min-height: 50px; padding: 0 24px; border-radius: 2px; background: var(--color-brand); color: var(--color-white);
	font-family: var(--font-sans); font-size: 15px; font-weight: 700; transition: background-color .15s;
}
.elementor .kf-form .elementor-button:hover { background: var(--color-brand-dark); color: var(--color-white); }
.elementor .kf-form .elementor-message { margin-top: 12px; font-family: var(--font-sans); font-size: 15px; }
/* on the red newsletter band (prototype .nl-band .formular) */
.elementor .kf-form--on-dark .elementor-field-label,
.elementor .kf-form--on-dark .elementor-field-subgroup .elementor-field-option,
.elementor .kf-form--on-dark .elementor-field-type-acceptance .elementor-field-option,
.elementor .kf-form--on-dark .elementor-message { color: var(--color-white); }
.elementor .kf-form--on-dark .elementor-field-textual { border-color: rgba(255,255,255,.7); background: transparent; color: var(--color-white); }
.elementor .kf-form--on-dark .elementor-field-textual:focus { border-color: var(--color-white); box-shadow: 0 0 0 1px var(--color-white); }
.elementor .kf-form--on-dark input[type=checkbox] { accent-color: var(--color-white); }
.elementor .kf-form--on-dark .elementor-button { background: var(--color-white); color: var(--color-ink); }
.elementor .kf-form--on-dark .elementor-button:hover { background: var(--gray-100); color: var(--color-ink); }
@media (max-width: 767px) {
	.elementor .kf-form .elementor-field-group.elementor-col-50 { width: 100%; }
}
.kf-newsletter-box { margin: 40px 0; padding: 40px; background: var(--color-brand); }
@media (max-width: 767px) { .kf-newsletter-box { padding: 28px 22px; } }

/* Optional link buttons bound to a dynamic URL (event registration): without a URL Elementor renders a
   <button> with nothing to do, so it is hidden. */
.elementor button.event-register { display: none; } /* specificity above .elementor .btn (inline-flex) */

/* Case cards: KPI slots stay empty when a case has fewer than two KPIs */
.kpi:has(.kpi__value:empty) { display: none; }

/* Collection-loop pagination: the disabled "previous" link on page 1 (and "next" on the last page) is hidden
   instead of shown as a dead button. */
.elementor .pagination-link.e--disabled { display: none; }
/* Case study sidebar: a key figure without a value (the case has fewer than three) is not shown. */
.detail-item:has(> .kpi__value:empty) { display: none; }
/* Badges filled by a dynamic tag (Politikradar topic) disappear when the tag has no value. */
.elementor .badge:empty { display: none; }

/* Numbered process as a list (Step components inside .steps--list, e.g. "Ablauf eines Public-Affairs-Mandats"):
   number column + title and text, rows divided by rules instead of stacked cards. */
.elementor .steps--list > .step { display: grid; grid-template-columns: 88px minmax(0, 1fr); column-gap: 24px; row-gap: 8px; align-items: start; padding: 28px 0; background: transparent; border: 0; border-top: 1px solid var(--gray-300); }
.elementor .steps--list > .step:first-child { border-top: 3px solid var(--color-ink); }
.elementor .steps--list > .step:last-child { border-bottom: 1px solid var(--gray-300); }
.elementor .steps--list > .step > .step__number { grid-row: 1 / span 2; font-size: 40px; letter-spacing: -0.02em; line-height: 1; }
.elementor .steps--list > .step > :not(.step__number) { grid-column: 2; }
@media (max-width: 767px) {
	.elementor .steps--list > .step { grid-template-columns: 48px minmax(0, 1fr); column-gap: 16px; padding: 22px 0; }
	.elementor .steps--list > .step > .step__number { font-size: 26px; }
}

/* Images that open in the lightbox (kf-lightbox.php): cover image and images in article / event text. */
.elementor a.kf-lightbox { display: block; cursor: zoom-in; }
.elementor a.kf-lightbox:focus-visible { outline: 3px solid var(--color-brand); outline-offset: 3px; }
/* Elementor lightbox: near-opaque ink backdrop (the default lets the page show through), white controls. */
body .elementor-lightbox { background-color: rgba(5, 5, 30, 0.96); --lightbox-ui-color: #fff; --lightbox-ui-color-hover: var(--color-brand-light); --lightbox-text-color: #fff; }
body .elementor-lightbox .elementor-slideshow__title { font-family: var(--font-sans); font-size: 15px; }

/* A section with a single case study (e.g. Geschäftsstellen): the case card as a wide feature, image left
   across all rows (the image is wrapped in its link), text right; stacked below the tablet breakpoint. */
.elementor .case-feature > :first-child { grid-column: 1; grid-row: 1 / span 6; align-self: stretch; }
.elementor .case-feature > :first-child .post-card__image { height: 100%; min-height: 320px; aspect-ratio: auto; margin: 0; }
.elementor .case-feature > :not(:first-child) { grid-column: 2; justify-self: start; }
.elementor .case-feature > .post-card__title { font-size: 30px; }
@media (max-width: 1180px) {
	.elementor .case-feature > :first-child { grid-row: auto; }
	.elementor .case-feature > :first-child .post-card__image { height: auto; min-height: 0; aspect-ratio: 16 / 9; margin-bottom: 8px; }
	.elementor .case-feature > :not(:first-child) { grid-column: 1; }
	.elementor .case-feature > .post-card__title { font-size: 24px; }
}

/* Article / case / event sidebar on desktop: the column runs the full height of the text and its last box (the
   newsletter sign-up, the case key figures, the Kampagenda box) stays in view below the sticky header (89 px). */
@media (min-width: 1181px) {
	.elementor .article-layout > .article-sidebar { align-self: stretch; }
	.elementor .article-layout > .article-sidebar > :last-child { position: sticky; top: 120px; }
}/* End custom CSS */