/*
 * BOPAXX – Basis-Styles (Konzept C „Signal")
 * Nur Struktur und Details, die Elementor nicht als Einstellung anbietet.
 * Farben, Schriftgrößen und Abstände stehen in den Widgets bzw. in den Website-Einstellungen
 * und werden hier über die globalen Variablen (--e-global-color-*) referenziert.
 */
:root {
	--bx-orange: var(--e-global-color-orange, #d88615);
	--bx-black: var(--e-global-color-black, #000);
	--bx-grey-200: var(--e-global-color-grey-200, #e9e7e3);
	--bx-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
}
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
/* Schriftglättung wie im Klickdummy (Hello Elementor setzt „antialiased“ → Schrift wirkt dünner) */
body { overflow-x: hidden; -webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
/* Links in Texten übernehmen die Textfarbe (wichtig auf Schwarz/Orange); Hover = Orange */
.elementor .elementor-widget-text-editor a { color: inherit; }
.elementor .elementor-widget-text-editor a:hover { color: var(--bx-orange); }
.bx-zsm .elementor-widget-text-editor a:hover, .bx-hero__left .elementor-widget-text-editor a:hover { color: inherit; opacity: .8; }
.elementor-widget-heading .elementor-heading-title { margin: 0; }

/* Oranges Akzentwort in Überschriften · Text-Links im Fließtext */
.bx-o { color: var(--bx-orange); }
a.bx-lnk { color: inherit; text-decoration: underline; text-decoration-color: var(--bx-orange); text-decoration-thickness: 2px; text-underline-offset: 3px; }
a.bx-lnk:hover { color: var(--bx-orange); }
.elementor-heading-title a.bx-lnk { text-decoration-thickness: 3px; text-underline-offset: 5px; }
.bx-lead em { font-style: normal; background: var(--bx-orange); padding: 0 6px; }
.bx-p14 p { margin-bottom: 14px; }
.bx-mw50 p { max-width: 50ch; }
.bx-mw52 p { max-width: 52ch; }
.bx-mw55 p { max-width: 55ch; }
.bx-mw60 p { max-width: 60ch; }
.bx-mw70 p { max-width: 70ch; }

/* ---------- Header ---------- */
.elementor-location-header { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; }
@media (max-width: 600px) { .elementor-location-header { top: 0; } }
.bx-logo a, .bx-logo img, .bx-footer-logo a, .bx-footer-logo img { display: block; }
.bx-header .bx-nav-wrap { width: auto; }
.bx-desktop-nav, .bx-desktop-nav > .elementor-widget-container, .bx-desktop-nav .elementor-nav-menu--main, .bx-desktop-nav .elementor-nav-menu { height: 100%; }
.bx-desktop-nav .elementor-nav-menu > li { display: flex; border-left: 1px solid var(--bx-grey-200); }
.bx-desktop-nav .elementor-nav-menu > li > .elementor-item { height: 100%; min-height: 70px; padding-top: 0; padding-bottom: 0; display: flex; align-items: center; transition: background-color .15s, color .15s; }
.bx-desktop-nav .elementor-nav-menu > li.bx-nav-cta > .elementor-item { background: var(--bx-orange); color: var(--bx-black); font-weight: 700; }
.bx-desktop-nav .elementor-nav-menu > li.bx-nav-cta > .elementor-item:hover { background: var(--bx-black); color: var(--bx-orange); }
.bx-desktop-nav .elementor-nav-menu > li.bx-nav-cta > .elementor-item::before,
.bx-desktop-nav .elementor-nav-menu > li.bx-nav-cta > .elementor-item::after { display: none; }
.bx-desktop-nav .elementor-nav-menu--dropdown { border-top: 3px solid var(--bx-black); box-shadow: 0 12px 24px rgba(0, 0, 0, .12); min-width: 300px; }
.bx-desktop-nav .elementor-nav-menu--dropdown .elementor-sub-item { border-bottom: 1px solid var(--bx-grey-200); }
.bx-mobile-nav-wrap { display: none; align-self: center; }

/* Mobiles Menü: Burger + vollbreites oranges Panel unter dem Header */
.bx-mnav .bx-mnav__toggle { width: 46px; height: 46px; display: inline-flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px; padding: 0; background: transparent; border: 0; border-radius: 0; cursor: pointer; }
.bx-mnav .bx-mnav__toggle:hover, .bx-mnav .bx-mnav__toggle:focus { background: transparent; border: 0; }
.bx-mnav__toggle:focus-visible { outline: 3px solid var(--bx-orange); outline-offset: 2px; }
.bx-mnav__toggle span { display: block; width: 26px; height: 3px; background: var(--bx-black); transition: transform .25s ease, opacity .2s ease; }
.bx-mnav__toggle.is-open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.bx-mnav__toggle.is-open span:nth-child(2) { opacity: 0; }
.bx-mnav__toggle.is-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
.bx-mnav__panel { position: fixed; left: 0; right: 0; top: 72px; width: 100%; background: var(--bx-orange); padding: 8px 24px 28px; overflow-y: auto; z-index: 49;
	opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .2s ease, transform .2s ease, visibility .2s; }
.bx-mnav.is-open .bx-mnav__panel { opacity: 1; visibility: visible; transform: translateY(0); }
.bx-mnav__list, .bx-mnav__list .sub-menu { list-style: none; margin: 0; padding: 0; }
.bx-mnav__list a { display: block; font-family: var(--bx-display); font-weight: 700; font-size: 30px; line-height: 1.1; text-transform: uppercase; color: var(--bx-black); padding: 12px 0; border-bottom: 2px solid rgba(0, 0, 0, .25); text-decoration: none; }
.bx-mnav__list .sub-menu a { font-size: 19px; font-weight: 600; letter-spacing: .04em; padding: 10px 0 10px 18px; border-bottom-width: 1px; }
.bx-mnav__list a:hover, .bx-mnav__list a:focus-visible { background: var(--bx-black); color: var(--bx-orange); padding-left: 12px; outline: 0; }
.bx-mnav__list .sub-menu a:hover, .bx-mnav__list .sub-menu a:focus-visible { padding-left: 24px; }
body.bx-mnav-lock { overflow: hidden; }
@media (max-width: 1024px) {
	.bx-desktop-nav { display: none !important; }
	.bx-mobile-nav-wrap { display: block; }
}

/* ---------- Seiten-Hero ---------- */
.bx-page-hero .bx-crumb a { color: rgba(255, 255, 255, .75); }
.bx-page-hero .bx-crumb a:hover { color: var(--bx-orange); }

/* ---------- Startseiten-Hero ---------- */
.bx-hero__left { position: relative; overflow: hidden; }
.bx-hero__left::after { content: "BOPAXX"; position: absolute; bottom: -.18em; left: -8px; font-family: var(--bx-display); font-weight: 700; font-size: clamp(120px, 16vw, 240px); line-height: 1; color: rgba(0, 0, 0, .07); letter-spacing: -.02em; pointer-events: none; white-space: nowrap; }
.bx-hero__left > .elementor-element { position: relative; z-index: 1; }
.bx-invert { background: var(--bx-black); color: var(--bx-orange); padding: 0 12px; display: inline-block; }
.bx-hero__tag .elementor-heading-title { border: 2px solid var(--bx-black); display: inline-block; padding: 8px 16px; }
.bx-hero__right { position: relative; }
.bx-hero__badge-box { width: auto; align-self: flex-start; }
.bx-hero__badge b, .bx-hero__badge strong { color: var(--bx-orange); font-size: 30px; display: block; font-weight: 600; }

/* ---------- Laufband ---------- */
.bx-band { overflow: hidden; }
.bx-band .elementor-icon-list-items { display: flex; flex-wrap: nowrap; width: max-content; margin: 0; animation: bx-roll 28s linear infinite; }
.bx-band .elementor-icon-list-item { white-space: nowrap; margin: 0; padding: 0 24px; }
.bx-band .elementor-icon-list-item::after { display: none; }
.bx-band .elementor-icon-list-item > *, .bx-band .elementor-icon-list-item { display: flex; align-items: center; }
.bx-band .elementor-icon-list-icon { order: 2; margin-left: 48px; transform: rotate(45deg); }
.bx-band .elementor-icon-list-text { padding: 0; }
@keyframes bx-roll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .bx-band .elementor-icon-list-items { animation: none; } }

/* ---------- Listen ----------
   Maße aus dem Klickdummy: Zeile = 2 × Innenabstand + Textzeile (durch den Pfeil 33 bzw. 32 px hoch) + 1,5 px Linie. */
.bx-list .elementor-icon-list-items { margin: 0; padding: 0; }
.bx-list .elementor-icon-list-item { align-items: flex-start; margin: 0; border-bottom: 1.5px solid var(--bx-grey-200); }
.bx-list .elementor-icon-list-item::after { display: none; }
.bx-list .elementor-icon-list-text { font-weight: 600; }
.bx-list .elementor-icon-list-text b { font-weight: 700; }
.bx-list .elementor-icon-list-text:has(b) { font-weight: 500; }
.bx-list--kern .elementor-icon-list-item { padding: 16px 0; }
.bx-list--kern .elementor-icon-list-text { padding-block: 2.95px; }
.bx-list--kern .elementor-icon-list-icon { padding-top: 3px; }
.bx-list--fakten .elementor-icon-list-item { padding: 14px 18px; }
.bx-list--fakten .elementor-icon-list-item:last-child { border-bottom: 0; }
.bx-list--fakten .elementor-icon-list-text { padding-block: 3.2px; }
.bx-list--fakten .elementor-icon-list-icon { padding-top: 3px; }
.bx-fakten .elementor-icon-list-text a { color: inherit; }
.bx-fakten .elementor-icon-list-text a:hover { color: var(--bx-orange); }

/* ---------- Bilder ---------- */
.bx-bild { overflow: hidden; width: 100%; }
.bx-bild img { display: block; width: 100%; object-fit: cover; transition: filter .25s, transform .25s; }
.bx-bild--43 img { aspect-ratio: 4 / 3; }
.bx-bild--169 img { aspect-ratio: 16 / 9; }
.bx-bild--kern img { height: 380px; }
.bx-bild--about img { aspect-ratio: 4 / 3.4; }
.bx-bild--zoom:hover img, .bx-lcard:hover .bx-bild--zoom img { transform: scale(1.04); filter: none !important; }
@media (min-width: 1025px) { .bx-tm--rev > .bx-tm__bild, .bx-tm--rev > .e-con-inner > .bx-tm__bild { order: 2; } }

/* ---------- Karten ---------- */
.bx-lcard { text-decoration: none; outline: 3px solid transparent; transition: outline-color .15s; height: 100%; }
.bx-lcard:hover { outline-color: var(--bx-orange); }
.bx-lcard__bild { position: relative; overflow: hidden; }
.bx-lcard__bild .bx-tag { position: absolute; left: 0; bottom: 0; width: auto; z-index: 1; }
.bx-lcard__bild .bx-tag .elementor-heading-title { background: var(--bx-orange); padding: 6px 14px; font-size: 13px; letter-spacing: .18em; }
.bx-lcard__body { flex: 1; }
.bx-lcard__title .elementor-heading-title { transition: color .15s; }
.bx-lcard:hover .bx-lcard__title .elementor-heading-title { color: var(--bx-orange); }
.bx-lcard__body > .elementor-widget-text-editor { flex: 1; }
.bx-zsm-card { text-decoration: none; transition: background-color .15s; height: 100%; }
.bx-zsm-card .elementor-heading-title, .bx-zsm-card .bx-zsm__text { transition: color .15s; }
a.bx-zsm-card:hover { background-color: var(--e-global-color-white, #fff) !important; }
a.bx-zsm-card:hover .bx-zsm__title .elementor-heading-title, a.bx-zsm-card:hover .bx-zsm__text { color: var(--bx-black); }
.bx-pz, .bx-usp-row { height: 100%; }
/* Zeitleiste: eine Zeile, auf schmalen Bildschirmen seitlich wischbar */
.bx-jl { overflow-x: auto; }
.bx-jl > .e-con { flex: 1 1 0; min-width: 150px; }
.bx-standort strong { font-weight: 600; color: var(--e-global-color-ink, #141210); }

/* ---------- Kontakt-Box (Startseite) ---------- */
.bx-cta-box .bx-zeile:last-of-type { border-bottom: 0; }

/* ---------- FAQ (Toggle) ---------- */
.bx-faq .elementor-toggle { border-top: 3px solid var(--bx-orange); }
.bx-faq .elementor-toggle-item { border-bottom: 1.5px solid var(--bx-grey-200); }
.bx-faq .elementor-tab-title { display: flex; justify-content: space-between; align-items: center; gap: 24px; cursor: pointer; margin: 0; border: 0; }
.bx-faq .elementor-tab-title .elementor-toggle-icon { order: 2; float: none; width: auto; font-size: 20px; height: 32px; line-height: 32px; flex-shrink: 0; }
.bx-faq .elementor-tab-title .elementor-toggle-title { text-decoration: none; display: flex; align-items: center; min-height: 32px; flex: 1; }
.bx-faq .elementor-tab-title:hover .elementor-toggle-title { color: var(--bx-orange); }
.bx-faq .elementor-tab-content { border: 0; max-width: 75ch; }

/* ---------- Formular ---------- */
.bx-form .elementor-field-group > label { margin-top: 0; }
.bx-form .elementor-field-textual:focus { outline: 3px solid var(--bx-orange); outline-offset: 0; box-shadow: none; }
.bx-form .elementor-field-textual { border-bottom-color: var(--bx-black) !important; padding: 12px 14px; min-height: 0; height: auto; }
.bx-form .elementor-field-type-acceptance { font-size: 14.5px; }
.bx-form .elementor-field-type-acceptance a { text-decoration: underline; text-decoration-color: var(--bx-orange); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.bx-form .elementor-button { margin-top: 6px; }

/* ---------- Footer ---------- */
.bx-footer .bx-legal a { color: inherit; }
.bx-footer .bx-legal a:hover { color: var(--bx-orange); }
.bx-footer-nav .elementor-icon-list-item::after { display: none; }
.bx-footer-nav .elementor-icon-list-items { row-gap: 26px; }

/* ---------- Rechtstexte (Impressum, Datenschutz) ---------- */
.bx-legal-text h2 { font-size: clamp(24px, 4vw, 32px); margin: 40px 0 12px; overflow-wrap: anywhere; hyphens: auto; }
.bx-legal-text h2:first-child { margin-top: 0; }
.bx-legal-text h3 { margin: 28px 0 8px; }
.bx-legal-text p, .bx-legal-text li { max-width: 80ch; }
.bx-legal-text ul { margin: 0 0 12px 20px; list-style: disc; }
.bx-legal-text a { text-decoration: underline; text-decoration-color: var(--bx-orange); text-decoration-thickness: 2px; text-underline-offset: 3px; word-break: break-word; }

@media (max-width: 767px) {
	.bx-cta-band .elementor-widget-button, .bx-cta-band .elementor-button { width: 100%; }
}
