/* ----VARS----- */
:root {
    --font-family-display: 'Averia Sans Libre';
    --category-construction: var(--global-palette12);
    --category-mobility: var(--global-palette13);
    --category-logistics: var(--global-palette11);
    --category-industry: var(--global-palette14);
    --space-sm: .5rem;
    --space-md: 1rem;
    --space-lg: 2rem;
    --kb-form-border-radius: var(--space-md);
}
body {
    font-feature-settings: 'ss01' on;
}
/* ----HEADER----- */
.header-sponsor-grid {
    display: grid;
    gap: 1rem;
    grid-auto-flow: column;
    align-items: center;
}
.blend-multiply {
    mix-blend-mode: multiply;
}
.site-main-header-wrap .site-main-header-inner-wrap {
    gap: var(--space-sm);
}
/* ---Mobile menu---*/
#mobile-toggle {
    border-radius: var(--space-sm) !important;
}
#mobile-drawer .drawer-header {
    padding-block: 20px;
    padding-inline: var(--global-content-edge-padding);
}
.drawer-toggle .toggle-close-bar {
    height: .16em !important;
}
@media (max-width: 767px) {
    #mobile-drawer .drawer-header {
        padding-block: 10px;
    }
}
#mobile-drawer .drawer-header .drawer-toggle {
    padding: 10px;
    font-size: 20px;
    border-radius: var(--space-sm);
}
/* Logo injected by inc/drawer-logo.php */
#mobile-drawer .drawer-header {
    justify-content: space-between;
    align-items: center;
    gap: var(--space-md);
}
#mobile-drawer .drawer-header .site-header-item {
    margin-right: 0;
}
/*drawer content*/
.popup-drawer .drawer-inner .drawer-content {
    padding: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex: 1;
}
.drawer-content .site-header-item:first-child {
    margin-block-end: auto !important;
}
.drawer-content .site-header-item {
    margin-bottom: 0 !important;
}
#mobile-site-navigation {
    padding: 6rem 10%;
}
@media (max-width: 767px) {
    #mobile-site-navigation {
        padding: 3rem 2rem;
    }
}
#mobile-site-navigation li a {
    border-radius: var(--space-sm);
    text-align: center;
}
#mobile-site-navigation li:not(:last-child) a {
    margin-bottom: 2rem;
}
/*Accessibility menu*/
.tertiary-navigation .tertiary-menu-container > ul > li.menu-item > a {
    text-decoration: underline;
}
#mobile-secondary-site-navigation {
  padding: 2rem;
  background: var(--global-palette8);
}
.drawer-content .header-mobile-social-wrap {
    padding: 2rem;
}
/*social header*/
.header-social-wrap .header-social-inner-wrap .social-button {
    text-decoration: underline;
    text-underline-offset: .1em;
}
.header-social-wrap .header-social-inner-wrap .social-button:hover,
.header-social-wrap .header-social-inner-wrap .social-button:focus-visible {
    text-underline-offset: .25em;
}
/* ---Primary Menu--- */
#primary-menu {
    gap: .5rem;
}
#primary-menu li a {
    background-color: var(--global-palette-btn-bg);
    border-radius: .5rem;
}
#primary-menu li a:hover, #primary-menu .current-menu-item a{
    background-color: var(--global-palette-btn-bg-hover);
}
/*---Type---*/
/* Archive and search titles (Kadence theme) use .display-1 as well. */
.display-1, .display-2, .page-title:is(.archive-title, .search-title) {
    font-family: var(--font-family-display);
    font-weight: 700;
    text-transform: uppercase;
}
.display-1, .page-title:is(.archive-title, .search-title) {
    font-size: 4.375rem;
}
@media (max-width: 1024px) {
    .display-1, .page-title:is(.archive-title, .search-title) {
        font-size: 3.25rem;
    }
}
@media (max-width: 767px) {
    .display-1, .page-title:is(.archive-title, .search-title) {
        font-size: 2.5rem;
    }
}
.display-2 {
    font-size: 1.875rem;
}
@media (max-width: 1024px) {
    .display-2 {
        font-size: 1.5rem;
    }
}
@media (max-width: 767px) {
    .display-2 {
        font-size: 1.25rem;
    }
}
/*Category colors (Kadence dynamic lists and the category links of the Kadence theme templates)*/
/* Text color per category for at least 4.5:1: light text on construction and mobility, dark text on industry and
   logistics (light text there: about 2:1). Hover mixes the background towards the opposite of the text color,
   so the contrast rises instead of falling. */
.kb-dynamic-list .kb-dynamic-list-item-category-industry,     .category-link-industry     { --category-color: var(--category-industry); }
.kb-dynamic-list .kb-dynamic-list-item-category-mobility,     .category-link-mobility     { --category-color: var(--category-mobility); }
.kb-dynamic-list .kb-dynamic-list-item-category-logistics,    .category-link-logistics    { --category-color: var(--category-logistics); }
.kb-dynamic-list .kb-dynamic-list-item-category-construction, .category-link-construction { --category-color: var(--category-construction); }
.kb-dynamic-list [class*="-category-"], .entry-taxonomies .category-links {
    --category-text: var(--global-palette7);
    --category-hover-mix: var(--global-palette3);
}
.kb-dynamic-list .kb-dynamic-list-item-category-industry,     .category-link-industry,
.kb-dynamic-list .kb-dynamic-list-item-category-logistics,    .category-link-logistics {
    --category-text: var(--global-palette3);
    --category-hover-mix: var(--global-palette7);
}

.kb-dynamic-list.kb-dynamic-list-style-pill {
    gap: var(--space-sm);
}
/* The pill is drawn on the link, so the whole pill is clickable (in query cards the padding
   would otherwise belong to the card link overlay) and hover/focus cover the whole pill. */
.kb-dynamic-list.kb-dynamic-list-style-pill .kb-dynamic-list-item[class*="-category-"] {
    padding: 0;
    background: none;
    margin-inline-end: 0;
}
.kb-dynamic-list.kb-dynamic-list-style-pill .kb-dynamic-list-item[class*="-category-"] .kb-dynamic-list-item-link {
    display: block;
    background: var(--category-color);
    color: var(--category-text);
    border-radius: var(--space-sm);
    padding-block: var(--space-sm);
    padding-inline: var(--space-md);
}
@media (max-width: 767px) {
    .kb-dynamic-list.kb-dynamic-list-style-pill .kb-dynamic-list-item[class*="-category-"] .kb-dynamic-list-item-link {
        border-radius: calc(var(--space-sm) / 2);
        padding-block: calc(var(--space-sm) / 2);
        padding-inline: calc(var(--space-md) / 2);
    }
}

/* Hover and focus for all category pills (dynamic lists and Kadence theme templates). */
.kb-dynamic-list.kb-dynamic-list-style-pill .kb-dynamic-list-item[class*="-category-"] .kb-dynamic-list-item-link,
body .entry .entry-taxonomies .category-links.category-style-pill a {
    transition: background-color .2s ease-in-out;
}
.kb-dynamic-list.kb-dynamic-list-style-pill .kb-dynamic-list-item[class*="-category-"] .kb-dynamic-list-item-link:hover,
body .entry .entry-taxonomies .category-links.category-style-pill a:hover {
    background-color: color-mix(in srgb, var(--category-color, var(--global-palette1)) 70%, var(--category-hover-mix));
    color: var(--category-text);
}
/* Overrides the hover colors set in the dynamic list block (text and item background). */
body .kb-dynamic-list.kb-dynamic-list-style-pill .kb-dynamic-list-item[class*="-category-"]:hover {
    background: none;
}
.kb-dynamic-list.kb-dynamic-list-style-pill .kb-dynamic-list-item[class*="-category-"] .kb-dynamic-list-item-link:focus-visible,
body .entry .entry-taxonomies .category-links.category-style-pill a:focus-visible {
    outline: 2px solid var(--category-color, var(--global-palette1));
    outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
    .kb-dynamic-list.kb-dynamic-list-style-pill .kb-dynamic-list-item[class*="-category-"] .kb-dynamic-list-item-link,
    body .entry .entry-taxonomies .category-links.category-style-pill a {
        transition: none;
    }
}
/*---Query Slider (inc/query-slider.php)---*/
.wp-block-kadence-query-card.kb-query-slider {
    --kb-qs-columns: var(--kb-qs-columns-desktop);
    --kb-qs-gap: var(--kb-qs-gap-desktop);
    --kb-qs-width: var(--kb-qs-width-desktop);
    --kb-qs-arrows-height: 3.5rem;
    --kb-qs-arrows-width: 3.5rem;
    --kb-qs-arrows-spacing: var(--space-lg);
    /* Palette 1 (dark blue) on palette 10: 6.3:1, red had 2.4:1. */
    --splide-nav-color: var(--global-palette1);
    --splide-nav-background: var(--global-palette10);
}
/* Below 1280px at most two columns (as in assets/js/query-slider.js). The desktop grid is Kadence's own
   (the slider is only active on phones), so its column count (inline variable) is overridden as well. */
@media (min-width: 1025px) and (max-width: 1279px) {
    .wp-block-kadence-query-card.kb-query-slider {
        --kb-qs-columns: min(var(--kb-qs-columns-desktop), 2);
    }
    body .wp-block-kadence-query-card.kb-query-slider:is([style*="--kb-qs-columns-desktop:3"], [style*="--kb-qs-columns-desktop:4"]) .kb-query-grid-wrap.kb-query-grid-wrap {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 1024px) {
    .wp-block-kadence-query-card.kb-query-slider {
        --kb-qs-columns: var(--kb-qs-columns-tablet);
        --kb-qs-gap: var(--kb-qs-gap-tablet);
        --kb-qs-width: var(--kb-qs-width-tablet);
    }
}
@media (max-width: 767px) {
    .wp-block-kadence-query-card.kb-query-slider {
        --kb-qs-columns: var(--kb-qs-columns-mobile);
        --kb-qs-gap: var(--kb-qs-gap-mobile);
        --kb-qs-width: var(--kb-qs-width-mobile);
        --kb-qs-arrows-height: 2.5rem;
        --kb-qs-arrows-width: 2.5rem;
    }
}
/* Slider-only layout. kb-query-slider-mobile keeps the Kadence grid from 768px on,
   so these rules are repeated for it in the mobile media query below. */
.wp-block-kadence-query-card.kb-query-slider:not(.kb-query-slider-mobile) {
    max-width: none; /* The card max width is used as slide width instead. */
    overflow: visible;
}
/* Horizontal margins break Splide's slide positioning; spacing comes from the column gap. */
.wp-block-kadence-query-card.kb-query-slider:not(.kb-query-slider-mobile) .kb-query-grid-wrap .kb-query-item.kb-query-block-post {
    margin-left: 0;
    margin-right: 0;
}
.wp-block-kadence-query-card.kb-query-slider:not(.kb-query-slider-mobile)[data-slider-dots="true"] {
    margin-bottom: 30px;
}
.wp-block-kadence-query-card.kb-query-slider .kb-query-grid-wrap.kb-query-grid-wrap.splide__list {
    display: flex;
    gap: 0;
}

/* Arrows: side by side, top left above the slides */
.kb-splide.kb-query-slider .splide__arrows {
    display: flex;
    gap: var(--space-sm);
    margin-bottom: var(--kb-qs-arrows-spacing);
}
.news.kb-splide.kb-query-slider .splide__arrows {
    justify-content: space-between;
}
.kb-splide.kb-query-slider .splide__arrow {
    position: static;
    transform: none;
    height: var(--kb-qs-arrows-height);
    width: var(--kb-qs-arrows-width);
    border-radius: var(--space-md);
}
@media (max-width: 767px) {
    .kb-splide.kb-query-slider .splide__arrow {
        border-radius: var(--space-sm);
    }
}
.kb-splide.kb-query-slider .splide__arrow svg {
    display: none;
}
/* Mask instead of <img> so the arrow takes the nav color (--splide-nav-color). */
.kb-splide.kb-query-slider .splide__arrow::before {
    content: "";
    width: 1.5em;
    height: 1em;
    background-color: currentColor;
    mask: url("../images/arrow.svg") center / contain no-repeat;
}
@media (max-width: 767px) {
    .kb-splide.kb-query-slider .splide__arrow::before {
        content: "";
        width: 1em;
        height: .75em;
    }
}
.kb-splide.kb-query-slider .splide__arrow--prev::before {
    transform: scaleX(-1);
}

/* Pre-mount layout matching the slider. Uses :not(.splide) instead of :not(.is-initialized)
   so these rules are gone before Splide measures the slides. */
.wp-block-kadence-query-card.kb-query-slider:not(.kb-query-slider-mobile)[data-slider-arrows="true"]:not(.splide) {
    padding-top: calc(var(--kb-qs-arrows-height) + var(--kb-qs-arrows-spacing));
}
.wp-block-kadence-query-card.kb-query-slider:not(.kb-query-slider-mobile):not(.splide) .kb-query-grid-wrap.kb-query-grid-wrap {
    display: flex;
    gap: var(--kb-qs-gap);
    overflow: hidden;
}
.wp-block-kadence-query-card.kb-query-slider:not(.kb-query-slider-mobile):not(.splide) .kb-query-grid-wrap > .kb-query-item {
    flex: 0 0 var(--kb-qs-width, calc((100% - (var(--kb-qs-columns) - 1) * var(--kb-qs-gap)) / var(--kb-qs-columns)));
}

/* kb-query-slider-mobile: same slider-only rules as above, below 768px only */
@media (max-width: 767px) {
    .wp-block-kadence-query-card.kb-query-slider-mobile {
        max-width: none;
        overflow: visible;
    }
    .wp-block-kadence-query-card.kb-query-slider-mobile .kb-query-grid-wrap .kb-query-item.kb-query-block-post {
        margin-left: 0;
        margin-right: 0;
    }
    .wp-block-kadence-query-card.kb-query-slider-mobile[data-slider-dots="true"] {
        margin-bottom: 30px;
    }
    .wp-block-kadence-query-card.kb-query-slider-mobile[data-slider-arrows="true"]:not(.splide) {
        padding-top: calc(var(--kb-qs-arrows-height) + var(--kb-qs-arrows-spacing));
    }
    .wp-block-kadence-query-card.kb-query-slider-mobile:not(.splide) .kb-query-grid-wrap.kb-query-grid-wrap {
        display: flex;
        gap: var(--kb-qs-gap);
        overflow: hidden;
    }
    .wp-block-kadence-query-card.kb-query-slider-mobile:not(.splide) .kb-query-grid-wrap > .kb-query-item {
        flex: 0 0 var(--kb-qs-width, calc((100% - (var(--kb-qs-columns) - 1) * var(--kb-qs-gap)) / var(--kb-qs-columns)));
    }
}

/* .news (homepage "Recent news"): arrows below the slides on mobile. The space reserved
   for the arrows before Splide mounts moves to the bottom as well, so nothing jumps. */
@media (max-width: 767px) {
    .news.kb-splide.kb-query-slider {
        display: flex;
        flex-direction: column;
    }
    .news.kb-splide.kb-query-slider .splide__arrows {
        order: 1;
        margin-top: var(--kb-qs-arrows-spacing);
        margin-bottom: 0;
    }
    .wp-block-kadence-query-card.news.kb-query-slider-mobile[data-slider-arrows="true"]:not(.splide) {
        padding-top: 0;
        padding-bottom: calc(var(--kb-qs-arrows-height) + var(--kb-qs-arrows-spacing));
    }
}

/* Overflow: Kadence's #wrapper clips at the viewport, so no horizontal scrollbar. */
.kb-query-slider.kb-query-slider-overflow .splide__track,
.wp-block-kadence-query-card.kb-query-slider-overflow:not(.splide) .kb-query-grid-wrap.kb-query-grid-wrap {
    overflow: visible;
}


/*---Posts & events: single and archive (Kadence theme templates, see inc/entry-design.php)---*/
/* Categories: pills like the dynamic lists on the homepage. The badge for external events (inc/events.php)
   has no category color and falls back to palette 1. "body .entry" beats Kadence's
   ".loop-entry.type-post .entry-taxonomies .category-style-pill a" (content.min.css loads later). */
.entry-taxonomies .category-links.category-style-pill {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
}
body .entry .entry-taxonomies .category-links.category-style-pill :is(a, .entry-badge) {
    margin: 0;
    padding: var(--space-sm) var(--space-md);
    border-radius: var(--space-sm);
    background: var(--category-color, var(--global-palette1));
    color: var(--category-text, var(--global-palette7));
    font-family: var(--font-family-display);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: normal;
    text-transform: uppercase;
}
@media (max-width: 767px) {
    body .entry .entry-taxonomies .category-links.category-style-pill :is(a, .entry-badge) {
        font-size: .875rem;
        padding: calc(var(--space-sm) / 2) calc(var(--space-md) / 2);
        border-radius: calc(var(--space-sm) / 2);
    }
}

/* Meta. "body" beats Kadence's ".entry-meta { font-size: 80% }" (content.min.css loads later). */
body .entry-meta {
    font-family: 'Google Sans Code', var(--global-fallback-font);
    font-size: 1rem;
}
@media (max-width: 767px) {
    body .entry-meta {
        font-size: .875rem;
    }
}

.entry-header .entry-taxonomies {
    margin-bottom: 2em;
}

/* Events: "Where:" and "When:" (inc/events.php) on separate lines, without the dot divider. */
.entry-meta.event-meta {
    display: block;
}
.entry-meta.event-meta > * {
    display: block;
    margin: 0;
    margin-block-end: .5em;
}
.entry-meta.event-meta > *::after {
    display: none;
}
/* Beats Kadence's ".entry-meta .meta-label { margin-right: .2rem }" (content.min.css loads later). */
.entry-meta.event-meta .meta-label, .meta-label {
    margin-right: 1ch;
    width: 6ch;
    display: inline-block;
}
/* Events: apply link under the meta line (single only). */
.event-apply {
    margin: var(--space-md) 0 0;
}

/* Post navigation: arrow boxes like the query slider navigation. */
.post-navigation {
    --nav-arrow-box: 3.5rem;
    --nav-arrow-radius: var(--space-md);
    --nav-arrow-width: 1.5em;
    --nav-arrow-height: 1em;
}
@media (max-width: 767px) {
    .post-navigation {
        --nav-arrow-box: 2.5rem;
        --nav-arrow-radius: var(--space-sm);
        --nav-arrow-width: 1em;
        --nav-arrow-height: .75em;
    }
}
.post-navigation .kadence-svg-iconset,
.post-navigation .nav-previous::after {
    display: none;
}
.post-navigation .nav-links a {
    position: relative;
    display: grid;
    align-items: center;
    column-gap: var(--space-md);
}
.post-navigation .nav-previous a {
    grid-template-columns: auto 1fr;
}
.post-navigation .nav-next a {
    grid-template-columns: 1fr auto;
}
.post-navigation .post-navigation-sub {
    align-self: end;
}
/* Box: ::before for previous, ::after for next; the other pseudo element draws the arrow on top. */
.post-navigation .nav-previous a::before,
.post-navigation .nav-next a::after {
    content: "";
    grid-row: 1 / span 2;
    width: var(--nav-arrow-box);
    height: var(--nav-arrow-box);
    border-radius: var(--nav-arrow-radius);
    background: var(--global-palette10);
    opacity: .75;
}
.post-navigation .nav-next a::after {
    grid-column: 2;
}
.post-navigation .nav-previous a::after,
.post-navigation .nav-next a::before {
    content: "";
    position: absolute;
    top: 50%;
    width: var(--nav-arrow-width);
    height: var(--nav-arrow-height);
    margin-top: calc(var(--nav-arrow-height) / -2);
    background-color: var(--global-palette1);
    mask: url("../images/arrow.svg") center / contain no-repeat;
    opacity: .75;
    z-index: 1; /* Above the box, which (with its opacity) would otherwise paint over it for "next". */
}
.post-navigation .nav-previous a::after {
    left: calc((var(--nav-arrow-box) - var(--nav-arrow-width)) / 2);
    transform: scaleX(-1);
}
.post-navigation .nav-next a::before {
    right: calc((var(--nav-arrow-box) - var(--nav-arrow-width)) / 2);
}
.post-navigation .nav-links a:is(:hover, :focus-visible)::before,
.post-navigation .nav-links a:is(:hover, :focus-visible)::after {
    opacity: 1;
}
/* Below 768px only the arrows and "Previous" / "Next" are shown; the title stays readable for screen readers. */
@media (max-width: 767px) {
    .post-navigation .post-navigation-title {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
    .post-navigation .post-navigation-sub {
        align-self: center;
        margin-bottom: 0;
    }
    /* Only one row left: box and label side by side, centered. */
    .post-navigation .nav-previous a::before,
    .post-navigation .nav-next a::after {
        grid-row: 1;
    }
}

/* Boxed content: cards like the query cards on the homepage. */
.content-style-boxed {
    --global-content-boxed-padding: var(--space-lg);
}
@media (max-width: 767px) {
    .content-style-boxed {
        --global-content-boxed-padding: var(--space-md);
    }
}
.content-style-boxed .entry.content-bg {
    overflow: hidden;
    border-radius: var(--space-lg);
    background: var(--global-palette8);
    box-shadow: none;
}
.content-style-boxed .loop-entry .entry-content-wrap {
    padding: var(--global-content-boxed-padding);
}
.content-style-boxed .kadence-posts-list.grid-cols {
    gap: var(--space-lg);
}
@media (max-width: 767px) {
    .content-style-boxed .entry.content-bg {
        border-radius: var(--space-md);
    }
    .content-style-boxed .kadence-posts-list.grid-cols {
        gap: var(--space-md);
    }
}

/*---Accordion---*/
.kt-blocks-accordion-icon-trigger {
    height: 3.5rem;
    width: 3.5rem;
    min-height: 3.5rem;
    background-color: var(--global-palette10);
    color: var(--global-palette1);
    border-radius: var(--space-md);
    flex-shrink: 0;
}

@media (max-width: 767px) {
    .kt-blocks-accordion-icon-trigger {
        height: 2.5rem;
        width: 2.5rem;
        min-height: 2.5rem;
        border-radius: var(--space-sm);
    }
}
body .kt-accordion-wrap:not(.kt-accodion-icon-style-basiccircle):not(.kt-accodion-icon-style-xclosecircle):not(.kt-accodion-icon-style-arrowcircle) > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger::after, body .kt-accordion-wrap:not(.kt-accodion-icon-style-basiccircle):not(.kt-accodion-icon-style-xclosecircle):not(.kt-accodion-icon-style-arrowcircle) > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger::before {
    display: block;
    background-color: var(--global-palette1);
    border-radius: 100vmax;
    width: 1.5rem;
}
@media (max-width: 767px) {
    body .kt-accordion-wrap:not(.kt-accodion-icon-style-basiccircle):not(.kt-accodion-icon-style-xclosecircle):not(.kt-accodion-icon-style-arrowcircle) > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger::after, body .kt-accordion-wrap:not(.kt-accodion-icon-style-basiccircle):not(.kt-accodion-icon-style-xclosecircle):not(.kt-accodion-icon-style-arrowcircle) > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger::before {
        width: 1.125rem;
    }
}
body .kt-accordion-wrap:not(.kt-accodion-icon-style-basiccircle):not(.kt-accodion-icon-style-xclosecircle):not(.kt-accodion-icon-style-arrowcircle) > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger::after, body .kt-accordion-wrap:not(.kt-accodion-icon-style-basiccircle):not(.kt-accodion-icon-style-xclosecircle):not(.kt-accodion-icon-style-arrowcircle) > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger::before {
    background-color: var(--global-palette1);
}

body .kt-accodion-icon-style-xclose .kt-blocks-accordion-icon-trigger::after, body .kt-accodion-icon-style-xclose .kt-blocks-accordion-icon-trigger::before, body .kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-icon-trigger::after, body .kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-icon-trigger::before {
    left: 1rem;
    top: 1.625rem;
}
@media (max-width: 767px) {
    body .kt-accodion-icon-style-xclose .kt-blocks-accordion-icon-trigger::after, body .kt-accodion-icon-style-xclose .kt-blocks-accordion-icon-trigger::before, body .kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-icon-trigger::after, body .kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-icon-trigger::before {
        left: 0.6875rem;
        top: 1.125rem;
    }
}
body .kt-accodion-icon-style-xclose .kt-blocks-accordion-icon-trigger::before, body .kt-accodion-icon-style-xclosecircle .kt-blocks-accordion-icon-trigger::before {
    transform: rotate(90deg);
}

.kt-accordion-wrap:not(.kt-accodion-icon-style-basiccircle):not(.kt-accodion-icon-style-xclosecircle):not(.kt-accodion-icon-style-arrowcircle) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger::after, 
.kt-accordion-wrap:not(.kt-accodion-icon-style-basiccircle):not(.kt-accodion-icon-style-xclosecircle):not(.kt-accodion-icon-style-arrowcircle) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger::before, body:not(.hide-focus-outline) .kt-accordion-wrap:not(.kt-accodion-icon-style-basiccircle):not(.kt-accodion-icon-style-xclosecircle):not(.kt-accodion-icon-style-arrowcircle) .kt-blocks-accordion--visible .kt-blocks-accordion-icon-trigger::after, 
body:not(.hide-focus-outline) .kt-accordion-wrap:not(.kt-accodion-icon-style-basiccircle):not(.kt-accodion-icon-style-xclosecircle):not(.kt-accodion-icon-style-arrowcircle) .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger::before {
    background: var(--global-palette1) !important;
}

/* Forms */
body .wp-block-kadence-advanced-form .kb-advanced-form input[type="text"], body .wp-block-kadence-advanced-form .kb-advanced-form input[type="tel"], body .wp-block-kadence-advanced-form .kb-advanced-form input[type="number"], body .wp-block-kadence-advanced-form .kb-advanced-form input[type="date"], body .wp-block-kadence-advanced-form .kb-advanced-form input[type="time"], body .wp-block-kadence-advanced-form .kb-advanced-form input[type="email"], body .wp-block-kadence-advanced-form .kb-advanced-form input[type="file"], body .wp-block-kadence-advanced-form .kb-advanced-form select, body .wp-block-kadence-advanced-form .kb-advanced-form textarea {
    border-radius: var(--kb-form-border-radius);
}
@media (max-width: 767px) {
    body .wp-block-kadence-advanced-form .kb-advanced-form input[type="text"], body .wp-block-kadence-advanced-form .kb-advanced-form input[type="tel"], body .wp-block-kadence-advanced-form .kb-advanced-form input[type="number"], body .wp-block-kadence-advanced-form .kb-advanced-form input[type="date"], body .wp-block-kadence-advanced-form .kb-advanced-form input[type="time"], body .wp-block-kadence-advanced-form .kb-advanced-form input[type="email"], body .wp-block-kadence-advanced-form .kb-advanced-form input[type="file"], body .wp-block-kadence-advanced-form .kb-advanced-form select, body .wp-block-kadence-advanced-form .kb-advanced-form textarea {
        border-radius: calc(var(--kb-form-border-radius) / 2);
    }
}
body .kb-form-basic-style input[type="radio"], body .kb-form-basic-style input[type="checkbox"] {
    font-size: 2rem;
    height: 1em;
    width: 1em;
    min-width: 1em;
}
body .kb-form-basic-style input[type="checkbox"] {
    border-radius: calc(var(--kb-form-border-radius) / 2);
}
@media (max-width: 767px) {
    body .kb-form-basic-style input[type="radio"], body .kb-form-basic-style input[type="checkbox"] {
        font-size: 1.5rem;
    }
    body .kb-form-basic-style input[type="checkbox"] {
        border-radius: calc(var(--kb-form-border-radius) / 4);
    }
}
body .kb-form-basic-style .kb-radio-check-item {
    align-items: flex-start;
    gap: var(--space-md);
}
.kb-adv-form-field-errors a {
    color: var(--kb-form-error-color);
}
/* Newsletter form in the footer: arrow in palette 1 instead of red (block setting palette 2, 2.4:1 on palette 10). */
body .h2b-site-footer .kb-submit-field .kb-adv-form-submit-button.kb-button {
    color: var(--global-palette1);
}
.kb-adv-form-message {
    border-radius: var(--space-md);
    margin-top: 3px;
}
@media (max-width: 767px) {
    .kb-adv-form-message {
        border-radius: calc(var(--space-md) / 2);
        padding: var(--space-sm) !important;
    }
}

/* ---Language switcher (inc/multilingual.php): [h2b_language_switcher] and the Polylang menu item---
   Small buttons with both languages, the current one active. "li.lang-item.lang-item" beats the
   Kadence menu link styles (e.g. the underlined links of the accessibility menu). */
.h2b-language-switcher ul {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    margin: 0;
    padding: 0;
    list-style: none;
}
.lang-item {
    padding-inline-end: .5rem;
}
.h2b-language-switcher a,
body .menu li.lang-item.lang-item.menu-item > a,
#mobile-secondary-site-navigation li.lang-item.menu-item > a {
    display: inline-block;
    margin: 0;
    padding: .375em .75em;
    border-radius: var(--space-sm);
    background: var(--global-palette-btn-bg);
    color: var(--global-palette-btn);
    font-family: var(--font-family-display);
    font-size: .875rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
    text-transform: uppercase;
    transition: background-color .2s ease-in-out, color .2s ease-in-out;
}
/* On palette 8 surfaces (accessibility bar, drawer) the inactive button needs a lighter background. */
body .tertiary-navigation li.lang-item.lang-item.menu-item > a,
#mobile-secondary-site-navigation li.lang-item.menu-item > a {
    background: var(--global-palette7);
}
.h2b-language-switcher a:is(:hover, :focus-visible, [aria-current]),
body .menu li.lang-item.lang-item.menu-item > a:is(:hover, :focus-visible, [aria-current]),
#mobile-secondary-site-navigation li.lang-item.menu-item > a:is(:hover, :focus-visible, [aria-current]) {
    background: var(--global-palette-btn-bg-hover);
    color: var(--global-palette-btn-hover);
}
/* Both language buttons side by side in the mobile drawer menu. */
#mobile-secondary-site-navigation li.lang-item {
    display: inline-block;
    margin-right: var(--space-sm);
}
#mobile-secondary-site-navigation li.lang-item > a {
    margin-bottom: 0;
    border: none;
}

/* ---Footer--- */
/* Footer element (Kadence element "replace footer", synced pattern "Footer Menu"): one <footer> with the menus
   and the copyright line, which replaces the footer builder's bottom row. */
.h2b-footer-copyright {
    padding: 30px var(--global-content-edge-padding);
    background: var(--global-palette3);
    color: var(--global-palette7);
    font-family: 'Google Sans Code', var(--global-fallback-font);
    font-weight: 400;
}
.h2b-footer-copyright > * {
    max-width: var(--global-content-width);
    margin: 0 auto;
}
.h2b-footer-copyright a {
    color: inherit;
}
/* Kadence gives every row with a navigation block z-index 49 (for dropdowns), which lifts the footer menu row
   above the sticky header (#masthead, z-index 11) when it slides in. 10 keeps dropdowns above the following
   content but below the header. Rows inside the header keep Kadence's value. */
.kb-row-layout-wrap:has(.wp-block-kadence-navigation):not(header .kb-row-layout-wrap) {
    z-index: 10;
}
/* 2 x 2 columns up to 1279px (body: beats Kadence's row CSS, which is printed later). */
@media (min-width: 768px) and (max-width: 1279px) {
  body .footer-content-row > .kt-row-column-wrap {
    column-gap: var(--global-kb-gap-md, 2rem);
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

footer nav .kb-navigation a {
    text-decoration: underline !important;
    text-underline-offset: 0.1em;
}
footer nav .kb-navigation a:hover,
footer nav .kb-navigation a:focus-visible {
    text-underline-offset: 0.25em;
}
/* ----RECAPTCHA NOTICE (Kadence forms, badge hidden): required by Google, kept small----- */
/* Kadence prints the notice with inline styles (11px, grey box). */
.kt-recaptcha-branding-string {
    font-size: 12px !important;
    line-height: 1.4 !important;
    color: inherit !important;
    background: none !important;
    padding: 0 !important;
}
.kt-recaptcha-branding-string a {
    color: inherit;
    text-decoration: underline;
}

/* ----BORLABS COOKIE: button "Open privacy settings" ([borlabs-cookie type="btn-consent-preferences"]) in the website button style----- */
body .borlabs-cookie-open-dialog-preferences .brlbs-cmpnt-btn {
    padding: 0.75rem 1.5rem;
    border-radius: 0.75rem;
    background: var(--global-palette-btn-bg);
    color: var(--global-palette-btn);
    font-family: 'Averia Sans Libre', var(--global-fallback-font);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    text-transform: uppercase;
    transition: background-color .2s ease-in-out, color .2s ease-in-out;
}
body .borlabs-cookie-open-dialog-preferences .brlbs-cmpnt-btn:is(:hover, :focus-visible) {
    background: var(--global-palette-btn-bg-hover);
    color: var(--global-palette-btn-hover);
}
body .borlabs-cookie-open-dialog-preferences .brlbs-cmpnt-btn:focus-visible {
    outline: 2px solid var(--global-palette3);
    outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
    body .borlabs-cookie-open-dialog-preferences .brlbs-cmpnt-btn {
        transition: none;
    }
}

/* ----EVENT ARCHIVE: past events below the current ones (inc/events.php)----- */
.h2b-past-events {
    margin-top: var(--space-xl, 4rem);
}
.h2b-past-events__title {
    margin-bottom: var(--space-md, 1.5rem);
}

/* ----CARDS (archives, homepage)----- */
/* Three columns only from 1280px, below the cards get too narrow. */
@media (min-width: 1025px) and (max-width: 1279px) {
    .grid-cols.grid-lg-col-3,
    .grid-cols.grid-lg-col-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* Card titles in archives like the cards on the homepage (h3 sizes). */
body .loop-entry h2.entry-title {
    font-size: 1.875rem;
    line-height: 1.03;
}
@media (max-width: 1024px) {
    body .loop-entry h2.entry-title {
        font-size: 1.75rem;
    }
}
@media (max-width: 767px) {
    body .loop-entry h2.entry-title {
        font-size: 1.5rem;
    }
}
/* Category pills on cards: smaller from tablet up (phones keep the smaller pill from above). */
@media (min-width: 768px) {
    body .entry.loop-entry .entry-taxonomies .category-links.category-style-pill :is(a, .entry-badge),
    .kb-query-item .kb-dynamic-list.kb-dynamic-list-style-pill .kb-dynamic-list-item[class*="-category-"] .kb-dynamic-list-item-link {
        font-size: 1rem;
        padding-block: calc(var(--space-sm) / 2);
        padding-inline: calc(var(--space-md) / 2);
        border-radius: calc(var(--space-sm) / 2);
    }
}

/* ----SINGLE NEWS & EVENTS: larger article text and meta on desktop----- */
@media (min-width: 1025px) {
    body:is(.single-post, .single-event) .entry-content,
    body:is(.single-post, .single-event) .entry-header .entry-meta,
    body.single-event .entry-header :is(.event-where, .event-when) {
        font-size: 1.25rem;
    }
}
.h2b-past-events__more {
    margin-top: var(--space-lg, 2rem);
    text-align: center;
}

/* ----QUOTE BLOCK: display font in caps with guillemets (»…« in German, «…» in English)----- */
.entry-content .wp-block-quote {
    margin-block: var(--space-lg);
    padding: 0;
    border: 0;
    font-family: var(--font-family-display), var(--global-fallback-font);
    font-size: 1.3em;
    font-weight: 700;
    line-height: 1.3;
    text-transform: uppercase;
    quotes: "«" "»";
}
:lang(de) .entry-content .wp-block-quote {
    quotes: "»" "«";
}
.entry-content .wp-block-quote > p:first-of-type::before {
    content: open-quote;
}
.entry-content .wp-block-quote > p:last-of-type::after {
    content: close-quote;
}
.entry-content .wp-block-quote > p {
    font-size: inherit;
}
.entry-content .wp-block-quote cite {
    display: block;
    margin-top: var(--space-md);
    font-family: var(--global-body-font-family);
    font-size: 1rem;
    font-weight: 400;
    font-style: normal;
    text-transform: none;
}

/* ----IMAGE CREDIT at the end of news and events (paragraph class "h2b-image-credit")----- */
.entry-content .h2b-image-credit {
    margin-top: var(--space-lg);
    font-size: 0.875rem;
    opacity: 0.75;
}

/* ----SITEMAP ([h2b_sitemap], inc/accessibility.php)----- */
.h2b-sitemap__list {
    margin: 0 0 var(--space-lg);
    padding-inline-start: 1.25em;
}
.h2b-sitemap__list > li {
    margin-block: var(--space-sm);
}
.h2b-sitemap__list ul {
    margin-block: var(--space-sm);
    padding-inline-start: 1.25em;
}
.h2b-sitemap__list ul li {
    margin-block: .25em;
}
