/* =====================================================================
   TubaLasers Design 2026 – „Laserlicht“. Nur Gestaltung, keine Funktionen.
   Alles hängt an body.tuba-neu (mu-plugin tuba-design.php).
   Fotos von Personen bleiben unverändert (keine Effekte auf/um Personen).
   ===================================================================== */

/* ---------- 1. Grundwerte ---------- */
body.tuba-neu {
  --t-ink: #0b1736;
  --t-ink-2: #14254f;
  --t-blue: #1e73be;
  --t-blue-2: #2f80ff;
  --t-violet: #7a5cff;
  --t-rose: #ff5fa8;
  --t-text: #34405a;
  --t-muted: #6b7690;
  --t-line: #e7ebf3;
  --t-soft: #f5f7fc;
  --t-laser: linear-gradient(115deg, #1e73be 0%, #2f80ff 35%, #7a5cff 70%, #ff5fa8 100%);
  --t-laser-btn: linear-gradient(115deg, #1e73be 0%, #3b6dff 55%, #7a5cff 100%);
  --t-shadow: 0 1px 2px rgba(11, 23, 54, .05), 0 10px 30px rgba(11, 23, 54, .08);
  --t-shadow-hov: 0 2px 6px rgba(11, 23, 54, .06), 0 22px 50px rgba(30, 115, 190, .18);
  --t-r: 24px;

  --accent-color: #1e73be;
  color: var(--t-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
html:has(body.tuba-neu) { scroll-behavior: smooth; }
body.tuba-neu ::selection { background: rgba(122, 92, 255, .2); }
@media (prefers-reduced-motion: reduce) {
  html:has(body.tuba-neu) { scroll-behavior: auto; }
  body.tuba-neu *, body.tuba-neu *::before, body.tuba-neu *::after { animation: none !important; transition: none !important; }
}
body.tuba-neu a:focus-visible,
body.tuba-neu button:focus-visible,
body.tuba-neu input:focus-visible,
body.tuba-neu textarea:focus-visible,
body.tuba-neu select:focus-visible {
  outline: 3px solid rgba(122, 92, 255, .45);
  outline-offset: 2px;
  border-radius: 8px;
}

/* Laserlinie ganz oben (läuft ruhig hin und her, nimmt keinen Platz ein) */
body.tuba-neu::before {
  content: "";
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 3px;
  z-index: 100000;
  pointer-events: none;
  background: linear-gradient(90deg, #1e73be, #2f80ff, #7a5cff, #ff5fa8, #7a5cff, #2f80ff, #1e73be);
  background-size: 300% 100%;
  animation: t-laserlauf 9s linear infinite;
}
@keyframes t-laserlauf { from { background-position: 0% 0; } to { background-position: 300% 0; } }
body.tuba-neu.admin-bar::before { top: 32px; }

/* ---------- 2. Überschriften ---------- */
body.tuba-neu h1, body.tuba-neu h2, body.tuba-neu h3, body.tuba-neu h4,
body.tuba-neu .bt_bb_headline_tag {
  color: var(--t-ink);
  letter-spacing: -.02em;
  text-wrap: balance;
}
/* Fett gesetzte Wörter in Überschriften leuchten im Laser-Verlauf */
body.tuba-neu .bt_bb_headline_content b,
body.tuba-neu .bt_bb_headline_content strong {
  background: var(--t-laser);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  animation: t-glanz 8s ease-in-out infinite alternate;
  font-weight: 800;
}
@keyframes t-glanz { from { background-position: 0% 0; } to { background-position: 100% 0; } }

/* Kleine Überzeilen als Kapsel mit leuchtendem Punkt */
body.tuba-neu .bt_bb_headline_superheadline {
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  width: auto;
  padding: 7px 16px 7px 14px;
  margin-bottom: 18px;
  border-radius: 999px;
  background: linear-gradient(115deg, rgba(30, 115, 190, .1), rgba(122, 92, 255, .12));
  box-shadow: inset 0 0 0 1px rgba(30, 115, 190, .16);
  color: var(--t-blue) !important;
  font-family: "Inter", var(--body-font), sans-serif;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: .02em;
  line-height: 1.3;
}
body.tuba-neu .bt_bb_headline .bt_bb_headline_superheadline::after { display: none !important; }
body.tuba-neu .bt_bb_headline .bt_bb_headline_superheadline::before {
  content: "" !important;
  position: static !important;
  display: block !important;
  margin: 0 !important;
  width: 8px !important;
  height: 8px !important;
  flex: none;
  border-radius: 50%;
  background: var(--t-laser) !important;
  box-shadow: 0 0 0 4px rgba(122, 92, 255, .15);
}
/* Alter senkrechter Strich vor der Überzeile entfällt */
body.tuba-neu .bt_bb_headline.bt_bb_dash_top.bt_bb_superheadline .bt_bb_headline_tag::before,
body.tuba-neu .bt_bb_headline.bt_bb_dash_top .bt_bb_headline_superheadline::after { display: none !important; }
body.tuba-neu .bt_bb_headline.bt_bb_dash_top.bt_bb_superheadline .bt_bb_headline_tag { padding-left: 0 !important; border-left: 0 !important; }

body.tuba-neu .bt_bb_headline_subheadline {
  color: var(--t-text);
  font-size: 1.04em;
  line-height: 1.7;
}

/* ---------- 3. Kopfzeile ---------- */
body.tuba-neu #masthead,
body.tuba-neu .site-header {
  background: #fff;
  box-shadow: 0 1px 0 rgba(11, 23, 54, .06);
}
body.tuba-neu #primary-menu > li > a {
  position: relative;
  z-index: 0;
  font-family: "Inter", var(--body-font), sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--t-ink);
  transition: color .25s;
}
body.tuba-neu #primary-menu > li { flex-shrink: 0 !important; min-width: max-content; }
body.tuba-neu #primary-menu > li > a { overflow: visible !important; width: max-content; }
body.tuba-neu #primary-menu > li > a::before {
  content: "" !important;
  position: absolute !important;
  z-index: -1;
  width: auto !important;
  max-width: none !important;
  left: -16px !important;
  right: -16px !important;
  bottom: auto !important;
  opacity: 1 !important;
  transform: none !important;
  top: 50%;
  height: 40px;
  margin-top: -20px;
  border-radius: 999px;
  background: transparent;
  transition: background-color .25s, box-shadow .25s;
}
body.tuba-neu #primary-menu > li:hover > a::before { background: var(--t-soft); }
body.tuba-neu #primary-menu > li.current-menu-item > a,
body.tuba-neu #primary-menu > li.current-menu-ancestor > a,
body.tuba-neu #primary-menu > li.current_page_parent > a { color: #fff !important; }
body.tuba-neu #primary-menu > li.current-menu-item > a::before,
body.tuba-neu #primary-menu > li.current-menu-ancestor > a::before,
body.tuba-neu #primary-menu > li.current_page_parent > a::before {
  background: var(--t-laser-btn);
  box-shadow: 0 8px 20px rgba(59, 109, 255, .35);
}
/* alte Unterstreichung des Themes ausblenden */
body.tuba-neu #primary-menu > li > a::after { opacity: 0 !important; }

/* Untermenü */
body.tuba-neu #primary-menu .sub-menu {
  border-radius: 18px !important;
  overflow: hidden;
  padding: 8px !important;
  background: #fff !important;
  box-shadow: 0 24px 60px rgba(11, 23, 54, .16) !important;
  border: 1px solid var(--t-line);
}
body.tuba-neu #primary-menu .sub-menu li a {
  border-radius: 12px;
  font-family: "Inter", var(--body-font), sans-serif;
  font-weight: 500;
  color: var(--t-ink) !important;
  transition: background-color .2s, color .2s;
}
body.tuba-neu #primary-menu .sub-menu li a:hover { background: var(--t-soft) !important; color: var(--t-blue) !important; }

/* Logo leicht anheben */
body.tuba-neu .site-branding-logo img { transition: transform .4s cubic-bezier(.2, .8, .2, 1); }
body.tuba-neu .site-branding-logo a:hover img { transform: scale(1.04); }

/* Mitlaufende Kopfzeile: weiß, deckend, mit weichem Schatten */
body.tuba-neu.btStickyHeaderActive #masthead,
body.tuba-neu .site-header.sticky,
body.tuba-neu .site-header.is-sticky {
  background: #fff !important;
  box-shadow: 0 10px 30px rgba(11, 23, 54, .1) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* ---------- 4. Knöpfe ---------- */
body.tuba-neu .bt_bb_button .bt_bb_link,
body.tuba-neu .wpcf7-submit,
body.tuba-neu input[type="submit"],
body.tuba-neu button.tuba-btn,
body.tuba-neu .tuba-btn-primary {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-radius: 999px !important;
  background: var(--t-laser-btn) !important;
  color: #fff !important;
  border: 0 !important;
  font-family: "Inter", var(--button-font), sans-serif;
  font-weight: 700 !important;
  letter-spacing: .01em;
  box-shadow: 0 10px 24px rgba(59, 109, 255, .3), inset 0 1px 0 rgba(255, 255, 255, .25) !important;
  transition: transform .25s cubic-bezier(.2, .8, .2, 1), box-shadow .25s !important;
}
/* Lichtschimmer beim Zeigen */
body.tuba-neu .bt_bb_button .bt_bb_link::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 60%;
  height: 100%;
  background: linear-gradient(100deg, transparent 0%, rgba(255, 255, 255, .45) 50%, transparent 100%);
  transform: translateX(-160%) skewX(-18deg);
  transition: transform .7s cubic-bezier(.2, .8, .2, 1);
  pointer-events: none;
}
@media (hover: hover) {
  body.tuba-neu .bt_bb_button .bt_bb_link:hover::after { transform: translateX(260%) skewX(-18deg); }
  body.tuba-neu .bt_bb_button .bt_bb_link:hover,
  body.tuba-neu .wpcf7-submit:hover,
  body.tuba-neu input[type="submit"]:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(59, 109, 255, .42), inset 0 1px 0 rgba(255, 255, 255, .25) !important;
  }
}
body.tuba-neu .bt_bb_button .bt_bb_link > * { position: relative; z-index: 2; }
body.tuba-neu .bt_bb_button .bt_bb_icon_holder { color: #fff !important; }

/* ---------- 5. Karten „Die Schritte“ (1.–4.) ---------- */
body.tuba-neu .bt_bb_column_content.bt_bb_column_content_background_image {
  position: relative;
  background-image: none !important;
  background-color: #fff !important;
  border-radius: var(--t-r) !important;
  box-shadow: var(--t-shadow);
  overflow: hidden;
  transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s;
}
body.tuba-neu .bt_bb_column_content.bt_bb_column_content_background_image::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 4px;
  background: var(--t-laser);
}
@media (hover: hover) {
  body.tuba-neu .bt_bb_column_content.bt_bb_column_content_background_image:hover {
    transform: translateY(-6px);
    box-shadow: var(--t-shadow-hov);
  }
}
body.tuba-neu .bt_bb_column_content_background_image .bt_bb_icon .bt_bb_icon_holder {
  width: 54px;
  height: 54px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  background: var(--t-laser-btn);
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(59, 109, 255, .3);
}
body.tuba-neu .bt_bb_column_content_background_image .bt_bb_icon .bt_bb_icon_holder::before { color: #fff !important; font-size: 24px; line-height: 1; }
body.tuba-neu .bt_bb_column_content_background_image .bt_bb_headline_content { color: var(--t-ink); }

/* ---------- 6. Bilder, Galerie ---------- */
body.tuba-neu .bt_bb_image:not(.tuba-person) img,
body.tuba-neu .bt_bb_content_slider_item img,
body.tuba-neu .bt_bb_slider_item {
  border-radius: 22px;
}
body.tuba-neu .bt_bb_content_slider_item .bt_bb_image,
body.tuba-neu .bt_bb_content_slider_item a {
  display: block;
  border-radius: 22px;
  overflow: hidden;
}
body.tuba-neu .bt_bb_content_slider_item img { transition: transform .8s cubic-bezier(.2, .8, .2, 1); }
@media (hover: hover) {
  body.tuba-neu .bt_bb_content_slider_item:hover img { transform: scale(1.06); }
}
/* Schieber-Punkte als Kapseln */
body.tuba-neu .slick-dots li button,
body.tuba-neu .slick-dots li { border-radius: 999px !important; }
body.tuba-neu .slick-dots li.slick-active button,
body.tuba-neu .slick-dots li.slick-active { background: var(--t-laser-btn) !important; }

/* ---------- 7. Prozent-Kreise ---------- */
body.tuba-neu .bt_bb_progress_bar_advanced svg path:last-child { stroke: #6a5cff !important; stroke-linecap: round; }
body.tuba-neu .bt_bb_progress_bar_advanced_bar_text span {
  background: var(--t-laser);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 800;
}
body.tuba-neu .bt_bb_progress_bar_advanced p { font-weight: 600; color: var(--t-ink); }

/* ---------- 8. Google-Bewertungen ---------- */
body.tuba-neu .wp-gr .grw-review-inner,
body.tuba-neu .wp-gr .grw-backgnd {
  border-radius: 20px !important;
  background: #fff !important;
  box-shadow: var(--t-shadow) !important;
  border: 0 !important;
  transition: transform .3s, box-shadow .3s;
}
@media (hover: hover) {
  body.tuba-neu .wp-gr .grw-review-inner:hover { transform: translateY(-4px); box-shadow: var(--t-shadow-hov) !important; }
}
body.tuba-neu .wp-gr .wp-google-name a,
body.tuba-neu .wp-gr .wp-google-name { color: var(--t-ink) !important; font-weight: 700; }
body.tuba-neu .wp-gr .wp-star svg path { fill: #ffb400; }
body.tuba-neu .wp-gr a.wp-google-wr,
body.tuba-neu .wp-gr .wp-google-wr a {
  border-radius: 999px !important;
  background: var(--t-laser-btn) !important;
  box-shadow: 0 8px 20px rgba(59, 109, 255, .3);
}

/* ---------- 9. Termin-Assistent (tuba-nextgen-form) ---------- */
body.tuba-neu .tuba-wizard,
body.tuba-neu .tuba-wizard-container,
body.tuba-neu [class*="tuba-wizard"] { border-radius: var(--t-r); }
body.tuba-neu .tuba-topic-card {
  border-radius: 18px !important;
  transition: transform .25s, box-shadow .25s, border-color .25s !important;
}
@media (hover: hover) {
  body.tuba-neu .tuba-topic-card:hover {
    transform: translateY(-3px);
    border-color: rgba(122, 92, 255, .45) !important;
    box-shadow: 0 14px 30px rgba(59, 109, 255, .16) !important;
  }
}
body.tuba-neu .tuba-topic-icon {
  border-radius: 14px !important;
  background: linear-gradient(135deg, rgba(30, 115, 190, .1), rgba(255, 95, 168, .12)) !important;
}

/* ---------- 10. Formulare ---------- */
body.tuba-neu input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="button"]),
body.tuba-neu textarea,
body.tuba-neu select {
  border-radius: 14px !important;
  border: 1px solid var(--t-line) !important;
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
}
body.tuba-neu input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):focus,
body.tuba-neu textarea:focus,
body.tuba-neu select:focus {
  border-color: var(--t-violet) !important;
  box-shadow: 0 0 0 4px rgba(122, 92, 255, .14) !important;
  outline: 0;
}
body.tuba-neu input[type="checkbox"],
body.tuba-neu input[type="radio"] { accent-color: var(--t-violet); }

/* ---------- 11. Unterseiten-Kopf ---------- */
body.tuba-neu .page-header h1,
body.tuba-neu .page-header .bt_bb_headline_tag { color: var(--t-ink); }

/* ---------- 12. Fußzeile: dunkel und edel ---------- */
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 {
  background:
    radial-gradient(700px 360px at 12% 30%, rgba(47, 128, 255, .22), transparent 70%),
    radial-gradient(600px 320px at 92% 70%, rgba(255, 95, 168, .16), transparent 70%),
    linear-gradient(180deg, #0f1e45 0%, #0b1736 60%, #070f26 100%) !important;
  --section-primary-color: #fff !important;
  color: rgba(255, 255, 255, .78);
}
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 > .bt_bb_background_image_holder_wrapper { opacity: 0; }
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 h1,
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 h2,
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 h3,
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 h4,
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 .bt_bb_headline_content,
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 strong,
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 b { color: #fff !important; -webkit-text-fill-color: #fff; }
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 p,
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 li,
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 span,
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 .bt_bb_headline_subheadline { color: rgba(255, 255, 255, .78); }
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 a { color: rgba(255, 255, 255, .82) !important; transition: color .2s; }
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 a:hover { color: #fff !important; }
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 .bt_bb_icon_holder { color: #9fc3ff; }
/* Logo in der Fußzeile weiß */
body.tuba-neu .site-footer .bt_bb_section.bt_bb_color_scheme_22 .bt_bb_image img { filter: brightness(0) invert(1); border-radius: 0 !important; }
/* Runde Symbole (Facebook, Instagram …): Farben über die Theme-Variablen */
body.tuba-neu .site-footer .bt_bb_icon.bt_bb_text_empty.bt_bb_shape_circle {
  --primary-color: #ffffff !important;
  --secondary-color: rgba(255, 255, 255, .1) !important;
}
body.tuba-neu .site-footer .bt_bb_icon.bt_bb_text_empty.bt_bb_shape_circle .bt_bb_icon_holder { transition: transform .25s; }
body.tuba-neu .site-footer .bt_bb_icon.bt_bb_text_empty.bt_bb_shape_circle:hover .bt_bb_icon_holder { transform: translateY(-2px); }
body.tuba-neu .site-footer .bt_bb_icon.bt_bb_text_empty.bt_bb_shape_circle:hover { --secondary-color: #3b6dff !important; }
/* Symbole mit Text (Mail, Adresse, Telefon) */
body.tuba-neu .site-footer .bt_bb_icon:not(.bt_bb_text_empty) { --primary-color: #9fc3ff !important; --secondary-color: transparent !important; }
body.tuba-neu .site-footer .bt_bb_icon:not(.bt_bb_text_empty) .bt_bb_icon_holder > span { color: rgba(255, 255, 255, .85) !important; }
/* Leiste ganz unten ebenfalls dunkel */
body.tuba-neu .site-footer > *:not(.site-footer-page),
body.tuba-neu .site-footer .site-footer-bottom,
body.tuba-neu .site-footer .footer-bottom { background: #070f26 !important; color: rgba(255, 255, 255, .6); }
body.tuba-neu .site-footer > *:not(.site-footer-page) a { color: rgba(255, 255, 255, .8) !important; }

/* ---------- 13. Cookie-Fenster ---------- */
body.tuba-neu .cmplz-cookiebanner {
  border-radius: 24px !important;
  box-shadow: 0 30px 80px rgba(11, 23, 54, .25) !important;
  border: 1px solid var(--t-line) !important;
}
body.tuba-neu .cmplz-cookiebanner .cmplz-btn { border-radius: 999px !important; font-weight: 600 !important; }
body.tuba-neu .cmplz-cookiebanner .cmplz-btn.cmplz-accept {
  background: var(--t-laser-btn) !important;
  border: 0 !important;
  box-shadow: 0 8px 20px rgba(59, 109, 255, .3);
}

/* ---------- 14. Einblenden beim Scrollen (per Skript, nur Deckkraft/Verschiebung) ---------- */
body.tuba-neu.t-js .t-auf { opacity: 0; transform: translateY(26px); transition: opacity .8s cubic-bezier(.2, .8, .2, 1), transform .8s cubic-bezier(.2, .8, .2, 1); }
body.tuba-neu.t-js .t-auf.t-da { opacity: 1; transform: none; }

/* ---------- 15. Handy ---------- */
@media (max-width: 991px) {
  body.tuba-neu { --t-r: 20px; }
  body.tuba-neu .bt_bb_headline_superheadline { font-size: 12px !important; padding: 6px 13px 6px 11px; }
  body.tuba-neu .bt_bb_button .bt_bb_link { min-height: 48px; display: inline-flex !important; align-items: center; }
}

/* Unterste Leiste: deckend dunkel (Theme setzt sie halb durchsichtig → wirkte grau) */
body.tuba-neu .site-footer .site-powered-by,
body.tuba-neu .site-footer .site-realized-by { opacity: 1 !important; color: rgba(255, 255, 255, .55) !important; }
body.tuba-neu .site-footer .site-powered-by *,
body.tuba-neu .site-footer .site-realized-by * { color: rgba(255, 255, 255, .62); }
