/*
Theme Name: Libelle Dark
Theme URI: https://www.libelle.at
Description: Kindtheme von Kadence im Design von ungeniert.org: dunkles Violett, Neon-Akzente, Playfair Display Black + Noto Sans. Trennung von Events und Workshops über die EventON-Kategorie (event_type).
Author: Libelle Wien
Template: kadence
Version: 1.0.0
Text Domain: libelle-dark
*/

/* ==========================================================================
   Schriften (self-hosted, OFL): Playfair Display Black für Überschriften,
   Noto Sans für Fließtext – identisch mit ungeniert.org
   ========================================================================== */
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 900; font-display: swap; src: url('fonts/playfair-display-900.woff2') format('woff2'); }
@font-face { font-family: 'Noto Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('fonts/noto-sans-400.woff2') format('woff2'); }
@font-face { font-family: 'Noto Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url('fonts/noto-sans-500.woff2') format('woff2'); }
@font-face { font-family: 'Noto Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url('fonts/noto-sans-700.woff2') format('woff2'); }

/* ==========================================================================
   Design-Tokens (1:1 aus ungeniert.org) + Kadence-Palette darauf gemappt
   ========================================================================== */
html:root {
  --bg: #07040f;
  --bg-2: #120a26;
  --bg-3: #1b1038;
  --ink: #f4f0ff;
  --ink-2: #c9bde6;
  --ink-3: #8f82b3;
  --neon: #8a5cff;
  --neon-2: #b08cff;
  --glow: rgba(138, 92, 255, 0.45);
  --wing: #d8c4ff;
  --ok: #7ee2b8;
  --warn: #ffb86b;
  --line: rgba(176, 140, 255, 0.22);
  --pink: #ff3d9a;
  --green: #3dff9a;
  --cyan: #3cd7ff;
  --yellow: #ffd84a;
  --orange: #ff7a45;
  --violet: #b08cff;
  --rainbow: linear-gradient(90deg, var(--pink), var(--orange), var(--yellow), var(--green), var(--cyan), var(--neon-2));
  --radius: 14px;
  --max: 1120px;
  --font-head: 'Playfair Display', 'Cooper Black', Georgia, 'Times New Roman', serif;
  --font-body: 'Noto Sans', 'Segoe UI', system-ui, -apple-system, Helvetica, Arial, sans-serif;

  /* Kadence-Globalpalette: 1/2 Primär (Links, Buttons), 3/4 Überschrift/Text, 5/6 gedämpfter Text, 7/8/9 Flächen */
  --global-palette1: var(--pink);
  --global-palette2: #ff5cab;
  --global-palette3: var(--ink);
  --global-palette4: var(--ink);
  --global-palette5: var(--ink-2);
  --global-palette6: var(--ink-3);
  --global-palette7: var(--bg-3);
  --global-palette8: var(--bg-2);
  --global-palette9: var(--bg);
  --global-palette9rgb: 7, 4, 15;
  --global-content-width: var(--max);
  --global-content-narrow-width: 842px;
  --global-content-edge-padding: 1rem;
  --global-heading-font-family: var(--font-head);
  --global-body-font-family: var(--font-body);
  --global-primary-nav-font-family: var(--font-body);
}

/* ==========================================================================
   Grundfläche & Typografie
   ========================================================================== */
html { color-scheme: dark; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body, body.theme-kadence {
  margin: 0;
  background: radial-gradient(1200px 600px at 50% -10%, #2a1457 0%, var(--bg) 55%) fixed, var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 19px;
  font-weight: 400;
  line-height: 1.65;
}
.content-bg, body.content-style-boxed .content-bg, .site-container, #inner-wrap, .content-area, .site, .site-header-row-layout-standard,
.wp-site-blocks, body.content-style-unboxed .content-bg, .post-thumbnail, .entry.single-entry, .loop-entry, .content-wrap {
  background: transparent !important;
}
.entry.single-entry, .loop-entry { box-shadow: none !important; border: 0; }
.content-area { padding-top: 0; }
body.single-ajde_events .content-area { margin-top: 0; }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .wp-block-heading, .entry-title, .site-title {
  font-family: var(--font-head);
  font-weight: 900;
  letter-spacing: 0.01em;
  line-height: 1.1;
  margin: 0 0 0.5em;
  color: var(--ink);
  overflow-wrap: anywhere;
}
h1 { font-size: clamp(2rem, 5vw, 3.2rem); hyphens: auto; }
h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); }
h4 { font-size: 1.2rem; }
p { margin: 0 0 1em; }
/* WordPress begrenzt Blöcke im Inhalt auf die „contentSize“ (ca. 780px) – wir wollen die volle Breite, nur Text bleibt lesbar schmal */
.entry-content.single-content > * { max-width: none; }
.entry-content.single-content > p, .entry-content.single-content > ul:not(.lb-events), .entry-content.single-content > ol, .entry-content.single-content > h1, .entry-content.single-content > h2, .entry-content.single-content > h3, .entry-content.single-content > blockquote, .entry-content.single-content > details, .wp-block-group p, .wp-block-column p { max-width: 72ch; }
a { color: var(--neon-2); text-decoration: none; text-underline-offset: 3px; transition: color 0.15s ease; }
a:hover { color: var(--ink); text-decoration: underline; }
.entry-content a:not(.btn):not(.wp-block-button__link):not(.kb-button) { text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--neon-2) 50%, transparent); }
strong, b { color: var(--ink); font-weight: 700; }
hr, .wp-block-separator { border: 0; border-top: 1px solid var(--line); margin: 2.5rem auto; max-width: 100%; }
blockquote, .wp-block-quote { border-left: 4px solid var(--pink); padding: 0.2rem 0 0.2rem 1.2rem; margin: 1.5rem 0; color: var(--ink-2); font-style: italic; }
blockquote p { font-size: 1.15em; }
code, pre, kbd { background: var(--bg-3); color: var(--wing); border-radius: 6px; padding: 0.1em 0.4em; }
::selection { background: var(--pink); color: #fff; }
img { max-width: 100%; height: auto; }
.wp-block-image img, .wp-block-gallery img, .entry-content img, figure img { border-radius: 12px; }
figcaption, .wp-element-caption { color: var(--ink-3); font-size: 0.9rem; }
table { border-collapse: collapse; width: 100%; }
th, td { border-bottom: 1px solid var(--line); padding: 0.6rem 0.8rem; text-align: left; }
th { color: var(--ink); background: rgba(27, 16, 56, 0.6); }
ul, ol { padding-left: 1.3em; }
li { margin-bottom: 0.3em; }
.lead { font-size: 1.32rem; color: var(--ink-2); max-width: 62ch; }
.muted { color: var(--ink-3); }

/* Akzent-Balken vor Überschriften (wie ungeniert.org .h-accent) */
.h-accent, .lb-section > h2, .lb-section .wp-block-heading.h2, .entry-content > h2 {
  position: relative; padding-left: 1.1em;
}
.h-accent::before, .lb-section > h2::before, .entry-content > h2::before {
  content: ''; position: absolute; left: 0; top: 0.18em; width: 0.42em; height: 0.85em; border-radius: 0.2em;
  background: var(--rainbow); transform: skewX(-18deg); box-shadow: 0 0 14px rgba(255, 61, 154, 0.5);
}
.has-text-align-center.h-accent, .h-accent.center { padding-left: 0; }
.has-text-align-center.h-accent::before, .h-accent.center::before { display: none; }

/* ==========================================================================
   Buttons (Kadence-, Core- und eigene Buttons)
   ========================================================================== */
.btn, .button, .wp-block-button__link, .kb-button, .wp-element-button, button:not(.menu-toggle-open):not(.menu-toggle-close):not(.search-toggle-open):not(.search-toggle-close),
input[type="submit"], input[type="button"], .woocommerce a.button, .woocommerce button.button, .evo_ticket_box_btn, .evotx_tix_btn, .ivyforms-submit-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 0.75rem 1.4rem; border-radius: 999px; border: 1px solid var(--neon-2);
  font-family: var(--font-body); font-weight: 700; font-size: 1rem; line-height: 1.2; letter-spacing: 0.01em;
  color: var(--ink) !important; background: rgba(138, 92, 255, 0.08) !important; cursor: pointer;
  text-decoration: none !important; box-shadow: none; transition: transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.btn:hover, .button:hover, .wp-block-button__link:hover, .kb-button:hover, .wp-element-button:hover, input[type="submit"]:hover, .woocommerce a.button:hover, .woocommerce button.button:hover {
  transform: translateY(-1px); background: rgba(138, 92, 255, 0.18) !important; color: #fff !important;
}
.btn-primary, .is-style-fill .wp-block-button__link, .wp-block-button:not(.is-style-outline) .wp-block-button__link, .kb-button.kb-btn-global-fill, .woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce #respond input#submit.alt, .woocommerce input.button.alt, .single_add_to_cart_button, .checkout-button, .wc-block-components-button, .evotx_tix_btn, .ivyforms-submit-button, .lb-btn-primary {
  background: var(--pink) !important; border-color: var(--pink) !important; color: #fff !important; box-shadow: 0 0 24px rgba(255, 61, 154, 0.45);
}
.btn-primary:hover, .is-style-fill .wp-block-button__link:hover, .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .lb-btn-primary:hover {
  background: #ff5cab !important; border-color: #ff5cab !important;
}
.btn-alt, .lb-btn-alt { border-color: var(--green) !important; }
.btn-alt:hover, .lb-btn-alt:hover { background: rgba(61, 255, 154, 0.12) !important; }
.btn-big { padding: 1rem 1.8rem; font-size: 1.1rem; }

/* ==========================================================================
   Header: dunkel, sticky, Logo links, Menü rechts, Regenbogenlinie
   ========================================================================== */
#masthead, .site-header, #masthead .site-header-wrap, #masthead .site-main-header-wrap, #masthead .site-header-inner-wrap, #masthead .site-header-row, #masthead .site-top-header-wrap, #masthead .site-bottom-header-wrap {
  background: transparent !important; box-shadow: none !important; border: 0 !important;
}
#masthead { position: sticky; top: 0; z-index: 50; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); background: rgba(7, 4, 15, 0.75) !important; border-bottom: 1px solid var(--line) !important; }
body.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) { body.admin-bar #masthead { top: 46px; } }
#masthead::after { content: ''; display: block; height: 2px; background: var(--rainbow); opacity: 0.85; }
#masthead .site-header-row { min-height: 104px; }
#masthead .site-container { max-width: var(--max); padding: 0 1rem; margin: 0 auto; }
.site-branding a.brand img, .site-branding .custom-logo, #masthead .custom-logo-link img { max-height: 88px; width: auto; filter: drop-shadow(0 0 10px rgba(176, 140, 255, 0.35)); transition: filter 0.25s ease; }
@media (max-width: 1024px) { .site-branding a.brand img, .site-branding .custom-logo, #masthead .custom-logo-link img { max-height: 64px; } #masthead .site-header-row { min-height: 84px; } }
.site-branding a.brand:hover img { filter: drop-shadow(0 0 16px rgba(176, 140, 255, 0.7)); }
.site-branding .site-title, .site-branding .site-description { display: none !important; }
#masthead .header-navigation .primary-menu-container > ul > li.menu-item > a,
#masthead .header-navigation ul li a, #primary-menu > li > a {
  font-family: var(--font-body); font-weight: 500; font-size: 1.05rem; letter-spacing: 0; text-transform: none;
  color: var(--ink-2) !important; padding: 0.4rem 0.6rem; background: transparent !important;
}
#masthead .header-navigation .primary-menu-container > ul > li.menu-item > a::first-letter { text-transform: uppercase; }
#masthead .header-navigation .primary-menu-container > ul { flex-wrap: nowrap; }
@media (min-width: 1025px) and (max-width: 1200px) { #masthead .header-navigation .primary-menu-container > ul > li.menu-item > a { font-size: 0.98rem; padding: 0.4rem 0.45rem; } .site-branding a.brand img { max-height: 70px; } }
#masthead .header-navigation .primary-menu-container > ul > li.menu-item > a:hover { color: var(--ink) !important; }
#masthead .header-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a,
#masthead .header-navigation .primary-menu-container > ul > li.menu-item.current-menu-ancestor > a { color: var(--ink) !important; box-shadow: inset 0 -2px 0 var(--pink); }
#masthead .dropdown-nav-toggle, #masthead .dropdown-nav-special-toggle { background: transparent !important; color: var(--ink-3); border: 0; }
/* Untermenü („Über die Libelle“) */
#masthead .header-navigation ul ul.sub-menu { background: rgba(18, 10, 38, 0.98) !important; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); padding: 0.4rem; min-width: 240px; overflow: hidden; }
#masthead .header-navigation ul ul.sub-menu li { width: 100%; border: 0 !important; }
#masthead .header-navigation ul ul.sub-menu li a { display: block; width: 100%; box-sizing: border-box; color: var(--ink-2) !important; background: transparent !important; padding: 0.55rem 0.9rem; font-size: 1.02rem; border: 0 !important; border-radius: 8px; box-shadow: none !important; }
#masthead .header-navigation ul ul.sub-menu li a:hover, #masthead .header-navigation ul ul.sub-menu li.current-menu-item > a { color: var(--ink) !important; background: rgba(138, 92, 255, 0.15) !important; }
/* Instagram/Telegram (Font-Awesome-Icons aus Menu Image) in den Markenfarben der Anbieter */
#masthead li.menu-item a .fab, #mobile-drawer li.menu-item a .fab { display: inline-block; width: auto !important; height: auto !important; font-size: 1.7em; line-height: 1.25; padding: 0 0.08em; vertical-align: middle; transition: transform 0.15s ease; }
#masthead li.menu-item a:hover .fab { transform: scale(1.1); }
#masthead li.menu-item a .fa-instagram, #mobile-drawer li.menu-item a .fa-instagram { background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); -webkit-background-clip: text; background-clip: text; color: transparent !important; }
#masthead li.menu-item a .fa-telegram, #mobile-drawer li.menu-item a .fa-telegram { color: #26A5E4 !important; }
/* Sprachumschalter DE | EN (GTranslate gt-link-Shortcodes im Menüpunkt „Sprache“) */
#masthead li.lb-lang, #mobile-drawer li.lb-lang { display: inline-flex; align-items: center; gap: 0; margin-left: 0.6rem; border: 1px solid var(--line); border-radius: 999px; padding: 0.15rem; }
#masthead li.lb-lang a, #mobile-drawer li.lb-lang a { font-size: 0.85rem !important; font-weight: 700; letter-spacing: 0.08em; padding: 0.3rem 0.65rem !important; border-radius: 999px; color: var(--ink-3) !important; border: 0 !important; box-shadow: none !important; }
#masthead li.lb-lang a:hover, #mobile-drawer li.lb-lang a:hover { color: var(--ink) !important; text-decoration: none; }
#masthead .header-navigation .primary-menu-container > ul > li.lb-lang > a.gt-current-lang, #mobile-drawer li.lb-lang a.gt-current-lang,
#masthead .header-navigation .primary-menu-container > ul > li.lb-lang:not(:has(.gt-current-lang)) > a[data-gt-lang="de"], #mobile-drawer li.lb-lang:not(:has(.gt-current-lang)) a[data-gt-lang="de"] { background: var(--pink) !important; color: #fff !important; }
/* „Libelle“ im Menü ist als notranslate markiert; Google entfernt das Leerzeichen davor → Abstand per CSS */
#masthead li.menu-item-1180 span.notranslate, #mobile-drawer li.menu-item-1180 span.notranslate { margin-left: 0.3em; }
#mobile-drawer li.lb-lang { margin: 1rem 0 0; width: max-content; }
/* Google-Translate-Leiste (onfly) niemals anzeigen */
.skiptranslate, #goog-gt-tt, .goog-te-banner-frame { display: none !important; }
body { top: 0 !important; }
/* Mobil: Hamburger + Drawer */
#masthead .menu-toggle-open, #mobile-header .menu-toggle-open { color: var(--ink) !important; border: 1px solid var(--line); border-radius: 10px; padding: 0.45rem 0.6rem; background: transparent !important; }
#masthead .menu-toggle-open:hover { color: var(--pink) !important; }
#mobile-drawer .drawer-inner, .popup-drawer .drawer-inner { background: rgba(7, 4, 15, 0.98) !important; color: var(--ink); border-left: 1px solid var(--line); }
#mobile-drawer .drawer-header { border-bottom: 1px solid var(--line); }
#mobile-drawer .menu-toggle-close { color: var(--ink) !important; }
#mobile-drawer .mobile-navigation ul li a, #mobile-drawer .mobile-navigation ul li .drawer-nav-drop-wrap a { color: var(--ink-2) !important; font-size: 1.15rem; padding: 0.7rem 0; border-bottom: 1px solid var(--line); background: transparent !important; }
#mobile-drawer .mobile-navigation ul li a:hover, #mobile-drawer .mobile-navigation ul li.current-menu-item > .drawer-nav-drop-wrap > a, #mobile-drawer .mobile-navigation ul li.current-menu-item > a { color: var(--ink) !important; }
#mobile-drawer .mobile-navigation ul ul li a { padding-left: 1rem; font-size: 1.02rem; }
#mobile-drawer .drawer-sub-toggle { color: var(--ink-2) !important; }
#mobile-drawer .mobile-navigation ul li.menu-item-has-children .drawer-nav-drop-wrap { border-bottom: 1px solid var(--line); }
#mobile-drawer .mobile-navigation ul li.menu-item-has-children .drawer-nav-drop-wrap a { border-bottom: 0; }
.popup-drawer .drawer-overlay { background: rgba(7, 4, 15, 0.6); }

/* ==========================================================================
   Footer
   ========================================================================== */
#colophon, .site-footer, #colophon .site-footer-wrap, #colophon .site-middle-footer-wrap, #colophon .site-bottom-footer-wrap, #colophon .site-top-footer-wrap { background: transparent !important; color: var(--ink-2); }
#colophon { border-top: 1px solid var(--line); margin-top: clamp(3rem, 8vw, 6rem); padding: clamp(2.5rem, 6vw, 4rem) 0 2.5rem; font-size: 1.12rem; }
#colophon .footer-widget-area, #colophon .widget, #colophon p, #colophon li, #colophon .footer-html { font-size: 1.12rem !important; line-height: 1.6; }
#colophon .footer-widget-area-inner { font-size: 1.12rem; }
#colophon li.lb-lang-footer a, #colophon a.glink { font-size: 1rem; }
#colophon .site-container { max-width: var(--max); padding: 0 1rem; margin: 0 auto; }
#colophon .site-middle-footer-inner-wrap, #colophon .site-bottom-footer-inner-wrap { border: 0 !important; padding: 0; }
#colophon .site-middle-footer-inner-wrap { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
#colophon .widget-title, #colophon h2, #colophon h3, #colophon h4 { font-family: var(--font-head); font-size: 1.45rem !important; color: var(--ink); margin-bottom: 0.8rem; }
#colophon a { color: var(--ink-2); }
#colophon a:hover { color: var(--ink); }
#colophon ul { list-style: none; padding: 0; margin: 0; }
#colophon li { margin-bottom: 0.35rem; }
#colophon .site-bottom-footer-inner-wrap { margin-top: 2rem; padding-top: 1.2rem !important; border-top: 1px solid var(--line) !important; color: var(--ink-3); font-size: 1rem; }
#colophon .footer-html, #colophon .footer-html p { color: var(--ink-3); font-size: 1rem !important; }
#colophon input, #colophon select { background: var(--bg-2); color: var(--ink); border: 1px solid var(--line); }
/* GTranslate-Widget */
.gtranslate_wrapper, .gt_container-xqpj, .gt_switcher, .gtranslate_wrapper select { color: var(--ink) !important; }
.gt_switcher, .gt_switcher .gt_selected, .gt_switcher .gt_selected a, .gt_switcher .gt_option { background: var(--bg-2) !important; color: var(--ink) !important; border-color: var(--line) !important; }

/* ==========================================================================
   Formulare (Core, Kadence Form, IvyForms, Kommentare)
   ========================================================================== */
input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]), textarea, select, .kb-field, .ivyforms-field input, .ivyforms-field textarea, .ivyforms-field select {
  background: var(--bg-2) !important; color: var(--ink) !important; border: 1px solid var(--line) !important; border-radius: 10px !important;
  padding: 0.7rem 0.9rem; font-family: var(--font-body); font-size: 1rem; width: 100%; box-shadow: none !important;
}
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--neon-2) !important; box-shadow: 0 0 0 3px rgba(138, 92, 255, 0.25) !important; }
::placeholder { color: var(--ink-3); opacity: 1; }
label, .kb-form-label, .ivyforms-field label { color: var(--ink-2); font-weight: 500; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--pink); width: auto; }
.kb-form .kb-field-wrap { margin-bottom: 1rem; }

/* ==========================================================================
   Layout-Helfer (für Seiteninhalte im Block-Editor)
   .lb-section: Abschnitt mit Abstand; .lb-grid: Kartenraster; .lb-card: Karte
   ========================================================================== */
.lb-section { padding: clamp(2.5rem, 6vw, 4.5rem) 0; }
.lb-section + .lb-section { border-top: 1px solid var(--line); }
.lb-section > h2, .lb-section .lb-section-head h2 { margin-bottom: 1.2rem; }
.lb-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.lb-section-head p { color: var(--ink-2); margin: 0; }
.lb-grid, .wp-block-columns.lb-grid { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.lb-card, .wp-block-group.lb-card, .wp-block-column.lb-card, .feature {
  padding: 1.4rem; border: 1px solid var(--line); border-radius: var(--radius);
  background: linear-gradient(160deg, rgba(27, 16, 56, 0.9), rgba(18, 10, 38, 0.9)); color: var(--ink);
}
.lb-card h3, .feature h3 { font-size: 1.3rem; margin-bottom: 0.4rem; }
.lb-card p, .feature p { color: var(--ink-2); }
.lb-card p:last-child { margin-bottom: 0; }
.lb-card.c-pink, .feature.c-pink { --c: var(--pink); } .lb-card.c-green, .feature.c-green { --c: var(--green); } .lb-card.c-cyan, .feature.c-cyan { --c: var(--cyan); }
.lb-card.c-yellow, .feature.c-yellow { --c: var(--yellow); } .lb-card.c-orange, .feature.c-orange { --c: var(--orange); } .lb-card.c-violet, .feature.c-violet { --c: var(--violet); }
.lb-card[class*="c-"], .feature[class*="c-"] { border-top: 3px solid var(--c); }
/* Box mit Flügel-Hintergrund (Telegram) */
.lb-telegram, .wp-block-group.lb-telegram {
  position: relative; overflow: hidden; padding: 2.2rem; border-radius: var(--radius); border: 1px solid var(--neon-2);
  background: linear-gradient(100deg, rgba(18, 10, 38, 0.96) 35%, rgba(18, 10, 38, 0.65)), var(--bg-2);
}
.lb-telegram h2, .lb-telegram h3 { margin-bottom: 0.4rem; }
.lb-telegram p { color: var(--ink-2); max-width: 60ch; }
/* Hero */
.lb-hero { position: relative; padding: clamp(2rem, 4.5vw, 3.4rem) 0 clamp(1rem, 2.5vw, 1.6rem); }
body.home .lb-hero + .lb-section { padding-top: clamp(1.5rem, 3.5vw, 2.5rem); }
body.home .content-area, body.page-template-default.home .content-area { margin-top: 0 !important; }
.lb-hero .lb-kicker { display: inline-block; font-size: 0.85rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--pink); margin-bottom: 1.1rem; }
.lb-hero h1 { font-size: clamp(2.4rem, 6vw, 4.4rem); line-height: 1.04; margin-top: 0.2rem !important; margin-bottom: 0.9rem; }
.lb-hero h1 em, .lb-hero .lb-rainbow-text { font-style: normal; background: var(--rainbow); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lb-hero .lead { margin-bottom: 1.4rem; }
.lb-hero .wp-block-buttons { gap: 0.8rem; }
/* Hero-Foto weich in den Hintergrund auslaufen lassen (wie das Key Visual auf ungeniert.org) */
.lb-hero .lb-hero-visual img { border-radius: 0; width: 100%; height: auto; box-shadow: none;
  -webkit-mask-image: radial-gradient(ellipse 72% 70% at 50% 50%, #000 38%, rgba(0, 0, 0, 0.55) 62%, transparent 92%);
  mask-image: radial-gradient(ellipse 72% 70% at 50% 50%, #000 38%, rgba(0, 0, 0, 0.55) 62%, transparent 92%); }
.lb-hero .lb-hero-visual figure { margin: 0; }
.lb-hero .wp-block-columns { align-items: center; gap: clamp(1.5rem, 4vw, 3.5rem); }
@media (max-width: 781px) { .lb-hero .lb-hero-visual { order: -1; } .lb-hero .lb-hero-visual img { max-width: 420px; margin-inline: auto; display: block; } }
/* Kacheln für „Was dich erwartet“ etc. */
.lb-pill { display: inline-block; padding: 0.3rem 0.8rem; border-radius: 999px; border: 1px solid var(--line); font-size: 0.85rem; color: var(--ink-2); background: rgba(27, 16, 56, 0.6); }
/* Kadence-Spalten/Gruppen: keine weißen Flächen */
.wp-block-group.has-background:not(.lb-card):not(.lb-telegram) { background: var(--bg-2) !important; border-radius: var(--radius); }
.has-white-background-color, .has-background[style*="background-color:#fff"], .has-background[style*="background-color:#ffffff"] { background-color: var(--bg-2) !important; }
.has-text-color[style*="color:#000"], .has-text-color[style*="color:#220528"], [style*="color:#000000"], [style*="color:#220528"] { color: var(--ink) !important; }
.wp-block-group.telegram-box { background: var(--bg-2) !important; border: 1px solid var(--neon-2); border-radius: var(--radius); }
/* Kadence/WordPress zentrieren Blöcke in „constrained“-Gruppen auf 780px – wir bleiben linksbündig in voller Breite */
.entry-content .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { margin-left: 0 !important; margin-right: 0 !important; max-width: none; }
.entry-content .is-layout-constrained > p, .entry-content .is-layout-constrained > ul:not(.lb-events), .entry-content .is-layout-constrained > ol, .entry-content .is-layout-constrained > h1, .entry-content .is-layout-constrained > h2, .entry-content .is-layout-constrained > h3 { max-width: 72ch; }
.entry-content .has-text-align-center { margin-left: auto !important; margin-right: auto !important; }
/* Kadence Posts-Block (People-Seite) */
.loop-entry, .kb-post-list .entry, .wp-block-kadence-posts article { border: 1px solid var(--line) !important; border-radius: var(--radius); overflow: hidden; background: linear-gradient(160deg, rgba(27, 16, 56, 0.9), rgba(18, 10, 38, 0.9)) !important; }
.loop-entry .entry-title, .loop-entry .entry-title a, .kb-post-list .entry-title a { color: var(--ink) !important; font-family: var(--font-head); font-size: 1.25rem; text-decoration: none; overflow-wrap: anywhere; }
.loop-entry .entry-title a:hover { color: var(--neon-2) !important; }
.loop-entry .entry-summary, .loop-entry .entry-summary p { color: var(--ink-2); font-size: 1rem; }
.loop-entry .entry-content-wrap { padding: 1rem 1.1rem 1.2rem; }
.loop-entry .post-thumbnail img { border-radius: 0; }
.wp-block-kadence-posts .loop-entry, .kb-posts .entry { background: linear-gradient(160deg, rgba(27, 16, 56, 0.9), rgba(18, 10, 38, 0.9)) !important; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.wp-block-kadence-posts .entry-title a, .kb-posts .entry-title a { color: var(--ink); }
.wp-block-kadence-posts .entry-summary, .kb-posts .entry-summary, .entry-meta { color: var(--ink-2); }
/* Details/Akkordeon (Unsere Werte) */
details { border-top: 1px solid var(--line); padding: 0.9rem 0; }
details:last-of-type { border-bottom: 1px solid var(--line); }
summary { cursor: pointer; font-weight: 700; color: var(--ink); font-size: 1.15rem; list-style: none; position: relative; padding-right: 2rem; }
summary::-webkit-details-marker { display: none; }
summary::after { content: '+'; position: absolute; right: 0.2rem; top: 0; color: var(--pink); font-size: 1.4rem; line-height: 1; }
details[open] summary::after { content: '−'; }
details > *:not(summary) { color: var(--ink-2); }
/* Galerien */
.wp-block-gallery .wp-block-image img { border-radius: 12px; border: 1px solid var(--line); }
/* Strong Testimonials */
.strong-view, .testimonial, .strong-view .testimonial-inner, .strong-view .testimonial-content { background: transparent !important; color: var(--ink-2) !important; }
.strong-view .testimonial-content p, .strong-view .testimonial-content { font-family: var(--font-head); font-weight: 900; font-size: clamp(1.3rem, 2.2vw, 1.8rem); line-height: 1.3; color: var(--wing) !important; }
.strong-view .testimonial-name, .strong-view .testimonial-client { color: var(--ink-3) !important; font-family: var(--font-body); font-weight: 500; font-size: 1rem; }
/* GS Logo Slider (Partner) */
/* Partnerlogos sind für helle Flächen gemacht (teils JPEG ohne Transparenz) → weiße Kacheln */
.gs_logo_container, .gs_logo_area { background: transparent !important; }
.gs_logo_single { background: #fff; border-radius: 12px; padding: 0.7rem; margin: 0.4rem; display: flex; align-items: center; justify-content: center; min-height: 110px; box-sizing: border-box; transition: transform 0.15s ease, box-shadow 0.15s ease; }
.gs_logo_single:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4); }
.gs_logo_single img, .gs_logo_area img { filter: none; opacity: 1; max-height: 90px; width: auto; max-width: 100%; object-fit: contain; }
.gs_logo_single--wrapper { display: flex; align-items: center; justify-content: center; }
/* Suche / 404 */
.search-form input[type="search"] { width: auto; }
/* Pagination */
.pagination .page-numbers { color: var(--ink-2); border: 1px solid var(--line); border-radius: 999px; padding: 0.3rem 0.8rem; }
.pagination .page-numbers.current { background: var(--pink); color: #fff; border-color: var(--pink); }
/* Seitentitel (Kadence Title-Bereich) */
.entry-hero, .entry-hero-container-inner, .kadence-breadcrumbs { background: transparent !important; color: var(--ink-2); }
.entry-hero .entry-title { color: var(--ink); }
.breadcrumbs a { color: var(--ink-3); }

/* ==========================================================================
   Event-Karten (Shortcode [libelle_events]) – Design wie ungeniert.org
   ========================================================================== */
.lb-events { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); margin: 0 0 1rem; padding: 0; list-style: none; }
.lb-events.lb-events-list { grid-template-columns: 1fr; gap: 0.8rem; }
.lb-event { position: relative; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden;
  background: linear-gradient(160deg, rgba(27, 16, 56, 0.9), rgba(18, 10, 38, 0.9)); color: var(--ink); transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; }
.lb-event:hover { transform: translateY(-3px); border-color: var(--neon-2); box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45); }
.lb-event > a.lb-event-link { position: absolute; inset: 0; z-index: 2; }
.lb-event-img { aspect-ratio: 16 / 10; background: var(--bg-3) center / cover no-repeat; position: relative; }
.lb-event-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(18, 10, 38, 0.95)); }
.lb-event-img.lb-noimg { background: radial-gradient(circle at 30% 20%, rgba(138, 92, 255, 0.35), transparent 60%), var(--bg-3); }
.lb-event-img.lb-noimg::before { content: ''; position: absolute; inset: 0; background: url('images/logo-white-371.png') center / 55% no-repeat; opacity: 0.25; }
.lb-event-body { display: flex; flex-direction: column; gap: 0.45rem; padding: 1.1rem 1.3rem 1.3rem; flex: 1; }
.lb-event-date { display: flex; align-items: baseline; gap: 0.6rem; color: var(--neon-2); font-size: 0.92rem; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 700; }
.lb-event-date .lb-day { font-family: var(--font-head); font-weight: 900; font-size: 1.9rem; letter-spacing: 0; line-height: 1; color: var(--ink); text-transform: none; white-space: nowrap; }
.lb-event-date .lb-when { white-space: nowrap; }
.lb-event h3 { margin: 0; font-size: 1.35rem; line-height: 1.15; }
.lb-event-sub { color: var(--ink-2); font-size: 0.98rem; margin: 0; }
.lb-event-meta { display: flex; gap: 0.5rem 0.9rem; flex-wrap: wrap; color: var(--ink-3); font-size: 0.9rem; margin-top: auto; padding-top: 0.5rem; }
.lb-event-meta span { display: inline-flex; align-items: center; gap: 0.3rem; }
.lb-badge { position: absolute; top: 0.8rem; left: 0.8rem; z-index: 1; padding: 0.25rem 0.7rem; border-radius: 999px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #fff; background: rgba(7, 4, 15, 0.75); border: 1px solid var(--line); backdrop-filter: blur(6px); }
.lb-badge.lb-badge-events { color: var(--pink); border-color: rgba(255, 61, 154, 0.6); }
.lb-badge.lb-badge-workshops { color: var(--cyan); border-color: rgba(60, 215, 255, 0.6); }
.lb-badge.lb-badge-soldout { left: auto; right: 0.8rem; color: var(--warn); border-color: var(--warn); }
.lb-badge.lb-badge-tickets { left: auto; right: 0.8rem; color: var(--green); border-color: rgba(61, 255, 154, 0.6); }
.lb-event.lb-past { opacity: 0.7; }
.lb-event.lb-past:hover { opacity: 1; }
.lb-events-empty { padding: 1.5rem; border: 1px dashed var(--line); border-radius: var(--radius); color: var(--ink-2); }
/* Listen-Layout (kompakt, z. B. im Archiv) */
.lb-events-list .lb-event { flex-direction: row; align-items: center; gap: 1rem; padding: 0.9rem 1.1rem; }
.lb-events-list .lb-event-img { display: none; }
.lb-events-list .lb-event-body { padding: 0; flex-direction: row; align-items: center; gap: 1.2rem; flex-wrap: wrap; }
.lb-events-list .lb-event-date { min-width: 120px; }
.lb-events-list .lb-event-meta { margin: 0; padding: 0; margin-left: auto; }
.lb-events-list .lb-badge { position: static; }
/* Monats-Trenner */
.lb-events-month { grid-column: 1 / -1; margin: 1rem 0 0; font-family: var(--font-body); font-size: 0.85rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-3); }
.lb-events-month:first-child { margin-top: 0; }
.lb-events-more { text-align: center; margin: 1.5rem 0 0; }

/* ==========================================================================
   People-Karten ([libelle_people]), Raum-Karten (Vermietung), Regeln (Werte), Listen
   ========================================================================== */
.lb-people { display: grid; gap: 1.4rem; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); list-style: none; padding: 0; margin: 1.5rem 0 0; max-width: none !important; }
.lb-person { display: flex; flex-direction: column; border: 1px solid var(--line); border-top: 3px solid var(--c, var(--line)); border-radius: var(--radius); overflow: hidden; background: linear-gradient(160deg, rgba(27, 16, 56, 0.9), rgba(18, 10, 38, 0.9)); transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; }
.lb-person:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45); }
.lb-person.c-pink { --c: var(--pink); } .lb-person.c-cyan { --c: var(--cyan); } .lb-person.c-green { --c: var(--green); } .lb-person.c-yellow { --c: var(--yellow); } .lb-person.c-orange { --c: var(--orange); } .lb-person.c-violet { --c: var(--violet); }
.lb-person-img { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--bg-3); }
.lb-person-img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; border-radius: 0; transition: transform 0.4s ease; }
.lb-person:hover .lb-person-img img { transform: scale(1.04); }
.lb-person-body { padding: 1.1rem 1.3rem 1.3rem; display: flex; flex-direction: column; gap: 0.5rem; flex: 1; }
.lb-person-body h3 { margin: 0; font-size: 1.35rem; }
.entry-content .lb-person-body h3 a, .lb-person-body h3 a { color: var(--ink); text-decoration: none !important; }
.lb-person-body h3 a:hover { color: var(--c, var(--neon-2)); }
.lb-person-body p { margin: 0; color: var(--ink-2); font-size: 1rem; line-height: 1.55; }
.lb-person-more { margin-top: auto; padding-top: 0.4rem; font-weight: 700; font-size: 0.95rem; color: var(--c, var(--neon-2)); text-decoration: none; }
.lb-person-more:hover { color: var(--ink); }
/* Bilder in Karten (Vermietung) */
.lb-card .lb-card-img { margin: -1.4rem -1.4rem 1rem; border-radius: 0; }
.lb-card[class*="c-"] .lb-card-img { margin-top: calc(-1.4rem - 3px); }
.lb-card .lb-card-img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; display: block; }
.lb-rooms.lb-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.lb-card h3 .lb-pill { font-family: var(--font-body); font-weight: 600; font-size: 0.75rem; vertical-align: middle; margin-left: 0.4rem; }
/* Regel-Karten mit großer Nummer */
.lb-rule { position: relative; padding-top: 1.2rem; }
.lb-rule .lb-rule-num { font-family: var(--font-head); font-weight: 900; font-size: 3rem; line-height: 1; color: var(--c, var(--neon-2)); margin: 0 0 0.3rem; opacity: 0.9; }
.lb-rule h3 { font-size: 1.3rem; }
/* Listen mit Stern-Bullets */
ul.lb-list { list-style: none; padding: 0; margin: 0 0 1rem; max-width: 60ch; }
ul.lb-list li { position: relative; padding-left: 1.5em; margin-bottom: 0.6em; color: var(--ink-2); }
ul.lb-list li strong { color: var(--ink); }
ul.lb-list li::before { content: '✦'; position: absolute; left: 0; top: 0.05em; color: var(--pink); font-size: 0.9em; }
/* Zwei-Spalten-Grid mit längeren Texten */
.lb-grid-2.lb-grid { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.lb-grid-2 .lb-card p { font-size: 1.05rem; }
/* Hero auf Unterseiten (Vermietung, Safer Space): etwas kompakter als auf der Startseite */
.page:not(.home) .lb-hero h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); }
/* Kicker auf Unterseiten ohne Hero-Gruppe */
.entry-content > .lb-kicker { display: inline-block; font-size: 0.85rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: var(--pink); margin-bottom: 0.6rem; }
.entry-content > .lb-kicker + h1 { margin-top: 0 !important; }
/* Rotierende Gästestimmen ([libelle_quotes]) */
.lb-quotes { position: relative; display: grid; min-height: 220px; }
.lb-quote { grid-area: 1 / 1; margin: 0; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity 0.7s ease, transform 0.7s ease, visibility 0s linear 0.7s; pointer-events: none; }
.lb-quote.is-active { opacity: 1; visibility: visible; transform: none; pointer-events: auto; transition-delay: 0s; }
.lb-quote blockquote { border: 0; padding: 0; margin: 0 0 0.8rem; font-style: normal; }
.lb-quote blockquote p { font-family: var(--font-head); font-weight: 900; font-size: clamp(1.3rem, 2.2vw, 1.8rem); line-height: 1.3; color: var(--wing); margin: 0; max-width: none; }
.lb-quote blockquote p::before { content: '„'; color: var(--pink); margin-right: 0.1em; }
.lb-quote blockquote p::after { content: '“'; color: var(--pink); margin-left: 0.1em; }
.lb-quote figcaption { color: var(--ink-3); font-size: 1rem; font-weight: 500; }
.lb-quote figcaption::before { content: '— '; }
/* Galerien (Location): 3 Spalten, 4:3-Kacheln, Lightbox vom Core */
.wp-block-gallery.lb-gallery { display: grid !important; gap: 0.9rem !important; grid-template-columns: repeat(3, 1fr); margin: 1.2rem 0 0; max-width: none !important; }
.wp-block-gallery.lb-gallery > .wp-block-image { margin: 0 !important; width: auto !important; }
.wp-block-gallery.lb-gallery .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; border: 1px solid var(--line); transition: transform 0.25s ease, box-shadow 0.25s ease; display: block; }
.wp-block-gallery.lb-gallery .wp-block-image:hover img { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5); }
.wp-block-gallery.lb-gallery .wp-block-image:first-child { grid-column: span 2; grid-row: span 2; }
.wp-block-gallery.lb-gallery .wp-block-image:first-child img { aspect-ratio: 4 / 3; height: 100%; }
.wp-block-gallery.lb-gallery { grid-auto-rows: 1fr; }
@media (max-width: 700px) { .wp-block-gallery.lb-gallery { grid-template-columns: 1fr 1fr; gap: 0.6rem !important; } .wp-block-gallery.lb-gallery .wp-block-image:first-child { grid-column: span 2; grid-row: auto; } .wp-block-gallery.lb-gallery .wp-block-image:first-child img { aspect-ratio: 16 / 9; height: auto; } }
.lb-credits { font-size: 0.9rem; margin-top: 1rem; }
.wp-lightbox-overlay { background: rgba(7, 4, 15, 0.92) !important; }
.wp-lightbox-overlay .close-button { color: var(--ink) !important; }
/* Details-Blöcke (Werte) als Karten */
.wp-block-details { border: 1px solid var(--line) !important; border-radius: var(--radius); padding: 0.9rem 1.3rem !important; margin: 0 0 0.8rem; background: rgba(27, 16, 56, 0.5); }
.wp-block-details[open] { background: linear-gradient(160deg, rgba(27, 16, 56, 0.9), rgba(18, 10, 38, 0.9)); }
.wp-block-details summary { font-family: var(--font-head); font-weight: 900; font-size: 1.25rem; }
.wp-block-details > p { max-width: 70ch; }

/* ==========================================================================
   Cookie-Banner (CookieYes) & Popups (Popup Maker) im Dunkel-Look
   ========================================================================== */
.cky-consent-container, .cky-consent-bar, .cky-preference-center, .cky-modal, .cky-preference-body-wrapper { background: var(--bg-2) !important; color: var(--ink) !important; border: 1px solid var(--line) !important; border-radius: var(--radius) !important; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6) !important; }
.cky-consent-container .cky-title, .cky-consent-container .cky-notice-des, .cky-consent-container .cky-notice-des p, .cky-preference-center .cky-preference-title, .cky-preference-center p, .cky-preference-center .cky-accordion-header-des { color: var(--ink-2) !important; }
.cky-btn-accept, .cky-btn-customize, .cky-btn-reject, .cky-btn-preferences { border-radius: 999px !important; font-family: var(--font-body) !important; }
.cky-btn-accept { background: var(--pink) !important; border-color: var(--pink) !important; color: #fff !important; }
.cky-btn-customize, .cky-btn-reject, .cky-btn-preferences { background: transparent !important; border-color: var(--neon-2) !important; color: var(--ink) !important; }
.pum-theme-default .pum-container, .pum-container, .pum-content { background: var(--bg-2) !important; color: var(--ink) !important; border: 1px solid var(--line) !important; border-radius: var(--radius) !important; }
.pum-title, .pum-content h2, .pum-content h3 { color: var(--ink) !important; }
.pum-close { background: var(--bg-3) !important; color: var(--ink) !important; border-radius: 999px !important; }

/* ==========================================================================
   Kleinkram
   ========================================================================== */
.screen-reader-text:focus { background: var(--bg-2); color: var(--ink); }
#kt-scroll-up, .kadence-scroll-to-top { background: var(--bg-2); color: var(--ink); border: 1px solid var(--line); }
.wp-block-embed, iframe { border-radius: 12px; }
@media (max-width: 640px) { body, body.theme-kadence { font-size: 17px; } .lb-event-date .lb-day { font-size: 1.7rem; } }
