/* Elementor Theme Builder: reusable layout around the site's editable widgets. */
.elementor-location-header { position: sticky; top: 0; z-index: 900; transition: transform .3s ease; }
.admin-bar .elementor-location-header { top: 32px; }
.elementor-location-header.is-hidden { transform: translateY(-110%); }
.tfk-builder-header { position: relative; width: 100%; padding: 0; }
.elementor .tfk-builder-header .tfk-header__inner { width: 100%; flex-direction: row; flex-wrap: nowrap; padding: 0 24px; gap: 28px; }
.elementor-location-header.is-compact .tfk-header__inner { min-height: 64px; }
.tfk-builder-brand { flex: 0 0 auto; display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 14px; margin-right: auto; width: auto; }
.elementor .tfk-builder-header .tfk-builder-brand { flex: 1 1 auto; min-width: 0; flex-direction: row; flex-wrap: nowrap; align-items: center; }
.elementor .tfk-builder-header .tfk-builder-brand__text { min-width: 0; width: auto; }
.tfk-builder-logo { flex: 0 0 50px; width: 50px; }
.tfk-builder-brand__text { width: auto; }
.tfk-builder-brand__text p { margin: 0; }
body .elementor .tfk-header .tfk-builder-brand__text a { color: #F6EFE2; text-decoration: none; font: 500 .85rem/1.15 "Oswald", "Arial Narrow", sans-serif; text-transform: uppercase; letter-spacing: .08em; }
.tfk-builder-brand__text strong { display: block; font-size: 1.25rem; color: #E4C77A; letter-spacing: .04em; }
.tfk-builder-header .elementor-widget-tfk-navigation { width: auto; flex: 0 0 auto; }
body .elementor .tfk-header .tfk-nav__list a { color: #F6EFE2; }
body .elementor .tfk-header .tfk-nav__list a:hover, body .elementor .tfk-header .current-menu-item > a { color: #E4C77A; }
.tfk-builder-footer { width: 100%; gap: 0; }
.elementor .tfk-builder-footer .tfk-footer__inner { display: grid; width: 100%; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; padding: 0; }
.elementor .tfk-builder-footer .tfk-footer__col { width: auto; padding: 0; gap: 14px; }
.tfk-builder-footer .tfk-footer__title .elementor-heading-title { color: #E4C77A; font: 600 14px/1.4 "Barlow", "Segoe UI", sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.tfk-builder-footer .tfk-footer__title { margin: 0; }
.tfk-builder-footer p { margin: 0; }
body .elementor .tfk-footer.tfk-builder-footer a:not(.elementor-button) { color: #F6EFE2; }
body .elementor .tfk-builder-footer .elementor-button { color: #1A0E10; }
body .elementor .tfk-footer .elementor-button { text-decoration: none; }
.tfk-builder-footer .tfk-footer__copy { width: 100%; max-width: 1320px; margin: 48px auto 0; }
.tfk-builder-footer .tfk-footer__links { flex-direction: column; gap: 6px; margin: 0; }
.tfk-single { width: 100%; padding: 0; gap: 0; }
.tfk-single-hero { width: 100%; color: #F6EFE2; background: #3D0A12; border-bottom: 3px solid #C9A13B; }
.tfk-single-hero .elementor-heading-title { color: #FFFFFF; }
.tfk-single-hero .tfk-eyebrow .elementor-heading-title { color: #E4C77A; }
.tfk-single-hero .tfk-display .elementor-heading-title { font-size: clamp(2.8rem, 1.5rem + 5vw, 6.25rem); line-height: 1.05; }
.tfk-single-date { color: #E4C77A; text-transform: uppercase; letter-spacing: .12em; }
.tfk-single-date .elementor-icon-list-icon { display: none; }
.tfk-single-date .elementor-icon-list-text { color: #E4C77A; }
.tfk-single-image img { width: 100%; max-height: 620px; object-fit: cover; border-radius: 8px; }
.tfk-single-content { color: #24181A; font-size: 20px; line-height: 1.75; overflow-wrap: anywhere; }
.tfk-single-content h2 { font-size: clamp(2rem, 1.5rem + 2vw, 3rem); margin: 1.4em 0 .5em; }
.tfk-single-content h3 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.tfk-single-content img { max-width: 100%; height: auto; }
.tfk-single-content a { text-decoration: underline; }
.tfk-single-navigation { width: 100%; border-top: 1px solid #C9A13B; padding-top: 24px; }
.tfk-single-navigation .post-navigation__prev--label, .tfk-single-navigation .post-navigation__next--label { color: #574209; }
.tfk-single-navigation .post-navigation__prev--title, .tfk-single-navigation .post-navigation__next--title { color: #8A0B1E; font-weight: 600; }
.elementor .tfk-single .tfk-event-facts { display: grid; width: 100%; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; padding: 24px 0 0; border-top: 1px solid #C9A13B; }
.tfk-event-fact { width: auto; gap: 6px; padding: 0; }
.tfk-event-fact .elementor-heading-title { font-family: "Barlow", "Segoe UI", sans-serif; font-size: 20px; color: #F6EFE2; }
.tfk-event-fact-label .elementor-heading-title { text-transform: uppercase; letter-spacing: .15em; font-size: 13px; color: #E4C77A; }
.tfk-terminfilter { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin-bottom: 40px; }
.tfk-terminfilter label { font-weight: 600; }
.tfk-dark .tfk-terminfilter label, .tfk-dark .elementor-widget-tfk-termine [role="alert"] { color: #F6EFE2; }
.tfk-terminfilter select { flex: 1 1 220px; min-height: 52px; padding: 10px 14px; border: 2px solid #574209; border-radius: 4px; color: #24181A; background: #FFFFFF; }
.tfk-termin__title a { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1100px) {
 .tfk-builder-header .tfk-header__inner, .elementor-location-header.is-compact .tfk-header__inner { min-height: 80px; }
 .tfk-builder-header .tfk-nav { inset: 80px 0 0; }
 .tfk-builder-brand__text strong { font-size: 1.05rem; }
 body .elementor .tfk-header .tfk-builder-brand__text a { font-size: .72rem; }
 .tfk-builder-logo { flex-basis: 42px; width: 42px; }
 .tfk-menu-open { overflow: hidden; }
 .elementor .tfk-builder-footer .tfk-footer__inner { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 767px) {
 .elementor .tfk-builder-header .tfk-header__inner { padding: 0 20px; gap: 10px; }
 .tfk-builder-brand { gap: 10px; }
 .tfk-builder-header .tfk-nav-toggle { padding: 8px 10px; font-size: 13px; }
 .elementor .tfk-builder-footer .tfk-footer__inner, .elementor .tfk-single .tfk-event-facts { grid-template-columns: minmax(0,1fr); gap: 28px; }
 .tfk-single-content { font-size: 18px; }
 .tfk-terminfilter { align-items: stretch; }
 .tfk-terminfilter label { width: 100%; }
}
@media (max-width: 1100px) {
 .tfk-menu-open .tfk-builder-brand__text { display: none; }
 .elementor .tfk-builder-header .tfk-nav-toggle:focus { background: #1A0E10; color: #E4C77A; }
}
@media (max-width: 360px) {
 .tfk-builder-brand .tfk-brand-kicker, .tfk-builder-brand__text br { display: none; }
 .tfk-builder-brand__text strong { font-size: .9rem; }
 .tfk-builder-logo { flex-basis: 36px; width: 36px; }
}
