:root{
  --ef-cream:#faf6ef;--ef-cream-2:#f4ede1;--ef-sand:#efe6d6;--ef-sand-deep:#e6d9c3;
  --ef-terracotta:#c0583a;--ef-terracotta-d:#a5482c;--ef-terracotta-dd:#8f3d24;
  --ef-clay:#d98b69;--ef-clay-soft:#f0d8c9;--ef-ink:#2c2622;--ef-ink-soft:#6a5f56;
  --ef-line:#e3d7c4;
  --ef-sh-sm:0 1px 2px rgba(44,38,34,.06),0 2px 6px rgba(44,38,34,.05);
  --ef-sh-md:0 6px 20px rgba(44,38,34,.08),0 2px 6px rgba(44,38,34,.05);
  --ef-sh-lg:0 18px 50px rgba(44,38,34,.14);
  --ef-r-md:14px;--ef-r-lg:22px;
  --ef-ease:cubic-bezier(.22,.61,.36,1);
}

/* Material Symbols icon helper */
.ef-ms{font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-feature-settings:'liga';-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;vertical-align:middle}

/* Eyebrow */
.ef-eyebrow{font-family:'Instrument Sans',sans-serif;text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;font-weight:600;color:var(--ef-terracotta-d);display:inline-flex;align-items:center;gap:.55em;margin:0 0 1rem}
.ef-eyebrow:not(.ef-eyebrow--pill)::before{content:"";width:22px;border-top:2px solid var(--ef-clay)}
.ef-eyebrow--pill{background:rgba(255,255,255,.7);border:1px solid var(--ef-line);padding:.5em .95em;border-radius:999px;box-shadow:var(--ef-sh-sm);letter-spacing:.1em}
.ef-eyebrow--pill .ef-ms{font-size:1.1em;color:var(--ef-terracotta)}

/* Service tiles (cards) */
.ef-tile{position:relative;display:flex;flex-direction:column;gap:.7rem;background:#fff;border:1px solid var(--ef-line);border-radius:var(--ef-r-lg);padding:1.7rem 1.6rem 1.5rem;color:var(--ef-ink)!important;height:100%;transition:transform .22s var(--ef-ease),box-shadow .22s var(--ef-ease),border-color .22s var(--ef-ease);text-decoration:none}
.ef-tile:hover{transform:translateY(-5px);box-shadow:var(--ef-sh-lg);border-color:var(--ef-clay)}
.ef-tile__icon{width:54px;height:54px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:var(--ef-clay-soft);color:var(--ef-terracotta-d)}
.ef-tile__icon .ef-ms{font-size:30px}
.ef-tile h3{margin:.2rem 0 0;font-family:'Newsreader',serif;font-weight:500;font-size:1.4rem;color:var(--ef-ink)}
.ef-tile p{margin:0;color:var(--ef-ink-soft);font-size:.98rem;line-height:1.55}
.ef-tile__more{margin-top:auto;display:inline-flex;align-items:center;gap:.35em;color:var(--ef-terracotta-d);font-weight:600;font-size:.92rem;padding-top:.5rem}
.ef-tile:hover .ef-tile__more .ef-ms{transform:translateX(4px)}
.ef-tile__more .ef-ms{font-size:1.1em;transition:transform .2s var(--ef-ease)}
.ef-tile__tag{position:absolute;top:1.1rem;right:1.1rem;background:var(--ef-terracotta);color:#fff;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.3em .7em;border-radius:999px}

/* Stat blocks */
.ef-stat{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.45rem;background:var(--ef-cream);border:1px solid var(--ef-line);border-radius:var(--ef-r-lg);box-shadow:var(--ef-sh-sm);padding:2.1rem 1.5rem;height:100%;transition:transform .22s var(--ef-ease),box-shadow .22s var(--ef-ease)}
.ef-stat:hover{transform:translateY(-4px);box-shadow:var(--ef-sh-md)}
.ef-stat__icon{width:52px;height:52px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--ef-clay-soft);color:var(--ef-terracotta-d);margin-bottom:.3rem}
.ef-stat__icon .ef-ms{font-size:28px}
.ef-stat__num{font-family:'Newsreader',serif;font-size:2.3rem;font-weight:600;color:var(--ef-terracotta);line-height:1}
.ef-stat__lbl{color:var(--ef-ink-soft);font-size:.95rem}

/* Hero job badge */
.ef-herojob{display:block;background:#fff;border:1px solid var(--ef-line);border-left:4px solid var(--ef-terracotta);border-radius:var(--ef-r-md);box-shadow:var(--ef-sh-md);padding:1rem 1.2rem;text-decoration:none;color:var(--ef-ink);transition:transform .2s var(--ef-ease),box-shadow .2s var(--ef-ease)}
.ef-herojob:hover{transform:translateY(-3px);box-shadow:var(--ef-sh-lg)}
.ef-herojob__badge{display:inline-flex;align-items:center;gap:.45em;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ef-terracotta-d);margin:0 0 .5rem}
.ef-herojob__dot{width:9px;height:9px;border-radius:50%;background:#3aa76d;box-shadow:0 0 0 4px rgba(58,167,109,.18)}
.ef-herojob__perks{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.ef-herojob__perks li{background:var(--ef-sand);border-radius:999px;padding:.25em .7em;font-size:.8rem;font-weight:600;color:var(--ef-ink)}

/* Hero background */
.ef-hero-sec{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 82% -10%,var(--ef-clay-soft) 0%,transparent 46%),radial-gradient(90% 80% at -8% 108%,#f6e7d5 0%,transparent 50%),linear-gradient(180deg,var(--ef-cream) 0%,var(--ef-cream-2) 100%)}
.ef-hero-sec::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(rgba(192,88,58,.06) 1px,transparent 1.4px);background-size:22px 22px;-webkit-mask-image:linear-gradient(120deg,#000 0 38%,transparent 70%);mask-image:linear-gradient(120deg,#000 0 38%,transparent 70%)}
.ef-hero-sec>.e-con-inner,.ef-hero-split{position:relative;z-index:1}

/* Hero image + badge */
.ef-hero-media{position:relative}
.ef-hero-media::before{content:"";position:absolute;z-index:-1;top:-110px;right:-110px;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle at 32% 32%,var(--ef-clay-soft),transparent 68%);filter:blur(2px);pointer-events:none}
.ef-hero-media::after{content:"";position:absolute;z-index:0;top:-16px;right:-16px;width:58%;height:64%;border-radius:var(--ef-r-lg);border:1.5px solid var(--ef-clay);opacity:.55;pointer-events:none}
.ef-hero-media>img,.ef-hero-media .elementor-widget-image img{position:relative;z-index:1;border-radius:var(--ef-r-lg);box-shadow:var(--ef-sh-lg)}
.ef-hero-badge{position:absolute;left:-8px;bottom:24px;z-index:2;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.7);border-radius:var(--ef-r-md);box-shadow:var(--ef-sh-lg);padding:.9rem 1.1rem;display:flex;align-items:center;gap:.7rem;max-width:250px}
.ef-hero-badge .num{font-family:'Newsreader',serif;font-size:2rem;color:var(--ef-terracotta);line-height:1}
.ef-hero-badge .lbl{font-size:.8rem;color:var(--ef-ink-soft);line-height:1.25}

/* Checklist */
.ef-check{list-style:none;margin:0 0 1.4rem;padding:0;display:flex;flex-direction:column;gap:.7rem}
.ef-check li{display:flex;gap:.6em;align-items:flex-start;color:var(--ef-ink)}
.ef-check .ef-ms{color:#3aa76d;font-size:1.3em;flex:none}

/* Partner cards */
.ef-partner{background:#fff;border:1px solid var(--ef-line);border-radius:var(--ef-r-lg);box-shadow:var(--ef-sh-sm);padding:1.6rem;height:100%}
.ef-partner__head{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--ef-line)}
.ef-partner__icon{width:46px;height:46px;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:var(--ef-clay-soft);color:var(--ef-terracotta-d)}
.ef-partner__kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ef-ink-soft);margin:0;font-weight:600}
.ef-partner__head h3{margin:0;font-family:'Newsreader',serif;font-weight:500;font-size:1.3rem}
.ef-partner ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.8rem}
.ef-partner ul strong{color:var(--ef-terracotta-d)}
.ef-partner ul span{display:block;font-size:.88rem;color:var(--ef-ink-soft);line-height:1.4}

/* CTA band */
.ef-cta{background:linear-gradient(120deg,var(--ef-terracotta-d),var(--ef-terracotta) 70%,var(--ef-clay));text-align:center}
.ef-cta h2,.ef-cta .elementor-heading-title{color:#fff!important}
.ef-cta p{color:rgba(255,255,255,.9)!important;max-width:560px;margin-inline:auto}

/* Section head helper */
.ef-sec-head{max-width:720px}
.ef-sec-head.ef-center{margin-inline:auto;text-align:center}

/* Trust line */
.ef-trust{display:flex;flex-direction:column;gap:.3rem;color:var(--ef-ink-soft);font-size:.92rem;margin-top:1.2rem}
.ef-trust b{color:var(--ef-ink)}

/* Layout grids */
.ef-grid{display:grid;gap:1.4rem}
.ef-grid>*{min-width:0}
.ef-grid-2{grid-template-columns:repeat(2,1fr)}
.ef-grid-3{grid-template-columns:repeat(3,1fr)}
.ef-grid-4{grid-template-columns:repeat(4,1fr)}
.ef-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.ef-split--rev .ef-split__media{order:2}
@media(max-width:900px){.ef-grid-3,.ef-grid-4{grid-template-columns:repeat(2,1fr)}.ef-split{grid-template-columns:1fr}.ef-split--rev .ef-split__media{order:0}}
@media(max-width:600px){.ef-grid-2,.ef-grid-3,.ef-grid-4{grid-template-columns:1fr}}
.ef-btn-group{display:flex;flex-wrap:wrap;gap:.8rem}
.ef-center .ef-btn-group{justify-content:center}

/* Header */
/* Sticky: header#masthead ist direktes Kind von #page.site (voller Seitenhoehe) -> sticky-Anker.
   Keine overflow-Falle auf html/body/#page verifiziert. z-index ueber Seiteninhalt. */
/* .ehf-header #masthead (UAE) setzt position:relative;z-index:99 mit Klasse+ID-Spezifitaet;
   hier gleiche Spezifitaet + spaeteres Laden (custom.css @prio20) -> gewinnt ohne !important. */
.ehf-header #masthead{position:sticky;top:0;z-index:999}
#masthead .ef-header{transition:box-shadow .25s var(--ef-ease)}
#masthead.ef-scrolled .ef-header{box-shadow:0 4px 18px rgba(0,0,0,.08)}
.ef-header{background:#fff;border-bottom:1px solid var(--ef-line)}
.ef-brand-claim{font-size:.72rem;font-weight:600;letter-spacing:.04em;color:var(--ef-terracotta-d);text-transform:uppercase;line-height:1}
.ef-navphone{display:inline-flex;align-items:center;gap:.4em;font-weight:600;color:var(--ef-ink);white-space:nowrap}
.ef-navphone:hover{color:var(--ef-terracotta)}
.ef-navphone .ef-ms{color:var(--ef-terracotta);font-size:1.15em}

/* Header mobile: logo left, hamburger right; phone + CTA move into the dropdown (see header-nav.js).
   Breakpoint raised to 1100px so the hamburger appears BEFORE the header row would wrap
   (the "Termin vereinbaren" button dropped to a 2nd line in the ~1025-1088px range). */
@media(max-width:1100px){
  /* Top bar: logo on the left, toggle on the right (children live inside .e-con-inner).
     .ef-header is the positioning anchor for the dropdown so it drops below the FULL header;
     anchoring to the toggle wrapper made the dropdown start mid-header and overlap the logo. */
  .ef-header{position:relative}
  .ef-header>.e-con-inner{flex-wrap:nowrap!important}
  /* navgroup shrinks to just the toggle and moves to the right; the logo keeps its place on the left.
     The nav-menu widget, its container and the horizontal nav-menu wrapper must collapse to the
     toggle width. Otherwise the (absolutely positioned) closed dropdown inflates them to nearly full
     width and the hamburger icon ends up glued to the logo, sitting at the left edge of that box. */
  .ef-header .ef-navgroup{order:1;justify-content:flex-end!important;padding-left:0!important;padding-right:0!important}
  .ef-header .ef-navgroup,
  .ef-header .ef-navgroup .elementor-widget-navigation-menu,
  .ef-header .ef-navgroup .elementor-widget-navigation-menu>.elementor-widget-container,
  /* position:static overrides Elementor's default position:relative on these containers, so the
     absolutely positioned dropdown below anchors to .ef-header (full header) instead of the toggle */
  .ef-header .ef-navgroup .hfe-nav-menu.hfe-layout-horizontal{flex:0 0 auto!important;width:auto!important;max-width:100%!important;position:static!important}
  /* Hamburger pinned to the right edge, with the same optical gap (15px) the logo has on the left */
  .ef-header .ef-navgroup .hfe-nav-menu__toggle{margin:0 15px 0 auto!important;display:inline-flex!important;visibility:visible!important;opacity:1!important;width:auto!important;flex:0 0 auto!important}
  .ef-header .elementor-element-bba828e{order:0;flex:0 0 auto!important}
  /* Hide phone + CTA in the bar (they are relocated into the open dropdown by JS;
     this rule only matches them at their original bar position, before/if not moved) */
  .ef-navgroup>.elementor-widget-html,
  .ef-navgroup>.elementor-widget-button{display:none}
  /* Stack the dropdown vertically so relocated phone + CTA sit BELOW the menu items;
     pin it to the real viewport width (HFE otherwise uses the document width, which a
     pre-existing horizontal overflow inflates, pushing the CTA off-screen) */
  .ef-navgroup nav.hfe-nav-menu__layout-horizontal{position:absolute!important;top:100%!important;right:0!important;left:auto!important;flex-direction:column;align-items:stretch;width:100vw!important;max-width:100vw!important;box-sizing:border-box;padding-left:15px;padding-right:15px}
  /* Item horizontal padding removed so the label sits at the gutter (the nav padding above
     provides the 15px); the item divider then spans only the gutter width, inset on both sides */
  .ef-navgroup nav .hfe-menu-item{padding-left:0!important;padding-right:0!important}
  /* Phone + CTA as they appear inside the opened dropdown */
  .ef-nav-extra{width:100%;background:#fff;display:flex;flex-direction:column;gap:1rem;padding:1.1rem 0 1.3rem;border-top:1px solid var(--ef-line)}
  .ef-nav-extra .ef-navphone{justify-content:center;font-size:1.08rem;padding:.3rem 0}
  .ef-nav-extra .elementor-widget-button{width:100%}
  .ef-nav-extra .elementor-widget-button .elementor-button{display:flex;width:100%;justify-content:center}
}
/* Footer */
.ef-footer{background:var(--ef-ink)}
.ef-footer, .ef-footer p, .ef-footer li, .ef-footer .elementor-heading-title{color:#e8ded2}
.ef-footer a{color:#e8ded2;text-decoration:none}
.ef-footer a:hover{color:#fff}
.ef-footer h3,.ef-footer .elementor-heading-title{color:#fff!important;font-family:'Newsreader',serif;font-weight:500;font-size:1.15rem}
.ef-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.ef-footer-brand p{font-size:.95rem;line-height:1.6;color:#c9bcae}
.ef-kassen{display:inline-flex;align-items:center;gap:.4em;background:rgba(255,255,255,.08);border-radius:999px;padding:.35em .8em;font-size:.85rem;color:#fff;margin-top:.6rem}
.ef-kassen .ef-ms{color:#7ec89b}
.ef-footer-certs{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;border-top:1px solid rgba(255,255,255,.12);padding-top:1.4rem;margin-top:1.6rem}
.ef-footer-certs span{font-size:.78rem;letter-spacing:.08em;color:#c9bcae;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:.3em .8em}
.ef-footer-bar{background:rgba(0,0,0,.25)}
.ef-footer-bar,.ef-footer-bar p,.ef-footer-bar a{color:#c9bcae;font-size:.85rem}
.ef-footer-bar a{margin-left:1.1rem}

/* Typography helpers */
.ef-h-xl .elementor-heading-title{font-size:clamp(2.3rem,5.2vw,4rem);line-height:1.1;letter-spacing:-.01em}
.ef-h-lg .elementor-heading-title{font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1.12;letter-spacing:-.01em}
.ef-em .elementor-heading-title em,.ef-em em{color:var(--ef-terracotta);font-style:italic}
.ef-lead .elementor-widget-container,.ef-lead{font-size:clamp(1.08rem,1.6vw,1.3rem);color:var(--ef-ink-soft);line-height:1.6}
.ef-muted .elementor-widget-container{color:var(--ef-ink-soft)}
.ef-prose .elementor-widget-container>*{margin-bottom:1em}
.ef-prose h3{font-family:'Newsreader',serif;font-weight:500;font-size:1.5rem;margin:1.4em 0 .3em}
.ef-prose a{color:var(--ef-terracotta-d);text-decoration:underline;text-underline-offset:2px}
.ef-prose ul{margin:0 0 1em;padding-left:1.2em}
.ef-prose li{margin-bottom:.4em}

.ef-footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:2rem}
@media(max-width:900px){.ef-footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.ef-footer-grid{grid-template-columns:1fr}}
.ef-footer-brand .elementor-widget-image img{filter:brightness(0) invert(1);opacity:.95}

/* Hero + buttons */
.ef-hero-body{display:flex;flex-direction:column;gap:1.05rem;align-items:flex-start}
.ef-hero-body .ef-btn-group{margin-top:.2rem}
.ef-split.ef-hero-split{align-items:center}
.ef-herojob{width:100%}
.elementor-button{border-radius:100px;font-weight:600;letter-spacing:.01em}
.ef-btn-ghost .elementor-button{background-color:transparent;border:1.5px solid rgba(192,88,58,.5);color:var(--ef-terracotta-d)}
.ef-btn-ghost .elementor-button:hover{background-color:var(--ef-terracotta);color:#fff;border-color:var(--ef-terracotta)}
.ef-btn-light .elementor-button{background-color:#fff;color:var(--ef-terracotta-d)}
.ef-btn-light .elementor-button:hover{background-color:#f4ede1;color:var(--ef-terracotta-dd)}
.ef-cta .ef-btn-ghost .elementor-button{border-color:rgba(255,255,255,.6);color:#fff}
.ef-cta .ef-btn-ghost .elementor-button:hover{background:#fff;color:var(--ef-terracotta-d)}
.ef-cta .ef-btn-group{justify-content:center}
.ef-sec-head .elementor-heading-title{margin:0}

.ef-media-img .elementor-widget-container img{border-radius:var(--ef-r-lg);box-shadow:var(--ef-sh-md)}
.ef-hero-img .elementor-widget-container img{border-radius:var(--ef-r-lg);box-shadow:var(--ef-sh-lg)}
.ef-split__body{display:flex;flex-direction:column;gap:.9rem;align-items:flex-start}
.ef-cta .elementor-widget-container{--ef-x:0}
/* ============================================================
   FAQ – Accordion im Startseiten-Kartenlook
   (bleibt im Elementor-Baukasten als Accordion-Widget editierbar)
   ============================================================ */
/* Das Accordion ist ein direktes Kind der Section (Section-Padding L/R = 0) und
   nicht in einen Container gewickelt, bekommt also nicht den Standard-Container-Gutter
   (10px) wie alle anderen Sections – ohne diese Regel liefe es mobil bis an den Rand. */
.ef-faq{padding-left:10px;padding-right:10px}
.ef-faq .elementor-accordion{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:.85rem}
.ef-faq .elementor-accordion .elementor-accordion-item{background:#fff;border:1px solid var(--ef-line);border-radius:var(--ef-r-md);box-shadow:var(--ef-sh-sm);overflow:hidden;transition:box-shadow .3s var(--ef-ease)}
.ef-faq .elementor-accordion .elementor-accordion-item:hover{box-shadow:var(--ef-sh-md)}
.ef-faq .elementor-accordion .elementor-accordion-item:has(.elementor-tab-title.elementor-active){box-shadow:var(--ef-sh-md)}
/* Frage */
.ef-faq .elementor-accordion .elementor-tab-title{display:flex;align-items:center;gap:1rem;margin:0;padding:1.15rem 1.35rem;border:none;background:transparent;cursor:pointer;font-family:'Instrument Sans',system-ui,sans-serif;font-weight:600;font-size:1.05rem;line-height:1.4;color:var(--ef-ink);transition:color .2s var(--ef-ease)}
.ef-faq .elementor-accordion .elementor-tab-title:hover{color:var(--ef-terracotta)}
.ef-faq .elementor-accordion .elementor-tab-title.elementor-active{color:var(--ef-terracotta-d)}
.ef-faq .elementor-accordion .elementor-accordion-title{flex:1 1 auto;font:inherit;color:inherit}
/* Standard-Plus/Minus-Icon ausblenden, eigenes Plus das sich zu × dreht */
.ef-faq .elementor-accordion-icon{display:none!important}
.ef-faq .elementor-accordion .elementor-tab-title::after{content:"+";flex:none;margin-left:auto;font-family:'Instrument Sans',system-ui,sans-serif;font-weight:400;font-size:1.7rem;line-height:1;color:var(--ef-terracotta);transition:transform .3s var(--ef-ease)}
.ef-faq .elementor-accordion .elementor-tab-title.elementor-active::after{transform:rotate(45deg)}
.ef-faq .elementor-accordion .elementor-tab-title:focus-visible{outline:2px solid var(--ef-terracotta);outline-offset:-3px}
/* Antwort */
.ef-faq .elementor-accordion .elementor-tab-content{padding:0 1.35rem 1.3rem!important;border:none!important;background:transparent;color:var(--ef-ink-soft);line-height:1.7}
.ef-faq .elementor-accordion .elementor-tab-content a{color:var(--ef-terracotta);font-weight:600;text-decoration:none}
.ef-faq .elementor-accordion .elementor-tab-content a:hover{text-decoration:underline}
.ef-faq .elementor-accordion .elementor-tab-content strong{color:var(--ef-ink)}
@media(max-width:600px){
  .ef-faq .elementor-accordion .elementor-tab-title{padding:1rem 1.05rem;font-size:1rem;gap:.7rem}
  .ef-faq .elementor-accordion .elementor-tab-title::after{font-size:1.5rem}
  .ef-faq .elementor-accordion .elementor-tab-content{padding:0 1.05rem 1.1rem!important}
}

/* Info/topic cards */
.ef-infocard{background:#fff;border:1px solid var(--ef-line);border-radius:var(--ef-r-lg);box-shadow:var(--ef-sh-sm);padding:1.6rem 1.6rem 1.7rem;height:100%}
.ef-infocard .ef-icon{width:50px;height:50px;display:inline-flex;align-items:center;justify-content:center;border-radius:14px;background:var(--ef-clay-soft);color:var(--ef-terracotta-d);margin-bottom:.9rem}
.ef-infocard .ef-icon .ef-ms{font-size:28px}
.ef-infocard h3{margin:0 0 .8rem;font-family:'Newsreader',serif;font-weight:500;font-size:1.35rem;color:var(--ef-ink)}
.ef-infocard p{color:var(--ef-ink-soft);margin:0}
/* Contact highlight card */
.ef-contact-card{background:var(--ef-cream);border:1px solid var(--ef-line);border-radius:var(--ef-r-lg);box-shadow:var(--ef-sh-md);padding:1.8rem}
.ef-contact-card h3{margin:0 0 1rem;font-family:'Newsreader',serif;font-weight:500;font-size:1.4rem}
.ef-contact-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}
.ef-contact-card li{display:flex;align-items:center;gap:.6em;color:var(--ef-ink)}
.ef-contact-card .ef-ms{color:var(--ef-terracotta);font-size:1.25em;flex:none}
.ef-contact-card a{color:var(--ef-ink);font-weight:600}
.ef-contact-card a:hover{color:var(--ef-terracotta)}
/* Team cards */
.ef-team-card{background:#fff;border:1px solid var(--ef-line);border-radius:var(--ef-r-lg);box-shadow:var(--ef-sh-sm);overflow:hidden;height:100%;transition:transform .22s var(--ef-ease),box-shadow .22s var(--ef-ease)}
.ef-team-card:hover{transform:translateY(-4px);box-shadow:var(--ef-sh-md)}
.ef-team-card__media{aspect-ratio:4/3;background:var(--ef-sand);overflow:hidden}
.ef-team-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.ef-team-card__body{padding:1.3rem 1.4rem 1.5rem}
.ef-team-card__role{font-size:.74rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ef-terracotta-d);font-weight:700;margin:0 0 .3rem}
.ef-team-card__body h3{margin:0 0 .5rem;font-family:'Newsreader',serif;font-weight:500;font-size:1.35rem}
.ef-team-card__body p{margin:0;color:var(--ef-ink-soft);font-size:.95rem;line-height:1.55}
/* Benefits */
.ef-benefit{background:#fff;border:1px solid var(--ef-line);border-radius:var(--ef-r-lg);box-shadow:var(--ef-sh-sm);padding:1.5rem;text-align:center;height:100%}
.ef-benefit__num{font-family:'Newsreader',serif;font-size:1.9rem;color:var(--ef-terracotta);line-height:1.1;margin-bottom:.3rem}
.ef-benefit__lbl{color:var(--ef-ink-soft);font-size:.95rem}
/* Form + map */
.ef-formwrap .wpforms-container{margin:0}
.ef-map iframe{width:100%;min-height:380px;border:0;border-radius:var(--ef-r-lg);box-shadow:var(--ef-sh-sm);display:block}
.ef-legal .elementor-widget-container{max-width:820px}

/* WPForms brand styling */
.wpforms-container .wpforms-field-label{font-weight:600;color:var(--ef-ink)}
.wpforms-container input.wpforms-field-medium,.wpforms-container textarea.wpforms-field-medium,.wpforms-container input[type=text],.wpforms-container input[type=email],.wpforms-container input[type=tel],.wpforms-container textarea{max-width:100%!important;width:100%!important;border:1px solid var(--ef-line)!important;border-radius:10px!important;background:#fff!important;padding:.7em .9em!important}
.wpforms-container input:focus,.wpforms-container textarea:focus{border-color:var(--ef-terracotta)!important;outline:none!important;box-shadow:0 0 0 3px rgba(192,88,58,.12)!important}
.wpforms-container button.wpforms-submit{background-color:var(--ef-terracotta)!important;border:none!important;color:#fff!important;border-radius:100px!important;font-weight:600!important;font-family:'Instrument Sans',sans-serif!important;padding:.8em 1.8em!important;font-size:1rem!important;transition:background .2s}
.wpforms-container button.wpforms-submit:hover{background-color:var(--ef-terracotta-d)!important}

/* === EF band 1025-1100: HFE tablet nav rules re-emitted so the collapsed menu is styled identically to <=1024 (HFE hard-caps its own mobile CSS at 1024). Generated from HFE frontend.css. === */
@media only screen and (min-width: 1025px) and (max-width: 1100px) {

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal li,
    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu{
        width: 100%;
        margin-right:0px;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-layout-horizontal .hfe-nav-menu__toggle,
    .hfe-nav-menu__breakpoint-tablet .hfe-layout-vertical .hfe-nav-menu__toggle {
        display: block;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
        visibility: hidden;
        opacity: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
        visibility: visible;
        opacity: 1;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal,
    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-vertical {
        visibility: hidden;
        opacity: 0;
        height: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-horizontal,
    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu + .hfe-nav-menu__layout-vertical {
        visibility: visible;
        opacity: 1;
        height: auto;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
        position: relative;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-horizontal,
    .hfe-nav-menu__breakpoint-tablet .hfe-active-menu.hfe-active-menu-full-width + .hfe-nav-menu__layout-vertical {
        position: absolute;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .sub-menu {
        visibility: hidden;
        opacity: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .menu-item-has-children .menu-item-has-children .sub-menu {
        top: 0;
        left: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-layout-horizontal .hfe-nav-menu__toggle,
    .hfe-nav-menu__breakpoint-tablet .hfe-layout-vertical .hfe-nav-menu__toggle
    {
        visibility: visible;
        opacity: 1;
        display: block;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-vertical {
        float: none;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
    .hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu,
    .hfe-nav-menu__breakpoint-none .hfe-nav-menu__layout-horizontal .hfe-nav-menu .menu-item-has-children:hover > .sub-menu {
        visibility: hidden;
        opacity: 0;
        -webkit-transition: none;
        transition: none;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-menu-toggle:hover {
        border:1px dotted;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-menu-toggle {
        border:1px dotted transparent;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .sub-menu {
        position: relative;
        height: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .sub-menu {
        position: relative;
        height: 0;
        top: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .saved-content,
    .hfe-nav-menu__breakpoint-tablet .sub-menu,
    .hfe-nav-menu__breakpoint-tablet .child {
        left: 0 !important;
        width:auto !important;  
    }

    .hfe-nav-menu .sub-menu {
        min-width: auto;
        margin: 0;
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu .sub-arrow {
        padding: 10px;
    }

    .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children ul a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-tablet.hfe-submenu-icon-plus .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: '-'; 
    }

    .hfe-nav-menu__breakpoint-tablet .hfe-nav-menu .sub-menu{
        -webkit-box-shadow: none;
        box-shadow: none;
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before,
    .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before,
    .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a .sub-arrow i:before{
        content: ''
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before,
    .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-arrow .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before{
        content: ''; 
    }

    .hfe-nav-menu__breakpoint-mobile.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before,
    .hfe-nav-menu__breakpoint-none.hfe-submenu-icon-classic .hfe-nav-menu__layout-horizontal .menu-item-has-children .sub-menu-active a.hfe-menu-item .sub-arrow i:before{
        content: ''
    }

    /* Effect 1: Fade in and scale up */
    .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children ul.sub-menu,
    .hfe-submenu-animation-slide_up .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu,
    .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children ul.sub-menu,
    .hfe-submenu-animation-slide_down .hfe-layout-horizontal .menu-item-has-children:hover ul.sub-menu {
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
    }
    
    /*.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu ul.sub-menu ul.sub-menu li a{
        border-left: 16px solid transparent;
    }*/

    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:after,
    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu-layout:not(.hfe-pointer__framed) .menu-item.parent a.hfe-menu-item:before {
         background-color: unset!important; 
    }

    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-pointer__framed .menu-item.parent a.hfe-menu-item:before{
        border: 0px!important;
    }

    .elementor-widget-hfe-nav-menu.hfe-nav-menu__breakpoint-tablet .hfe-pointer__text .menu-item.parent a.hfe-menu-item:hover, .hfe-pointer__text  .menu-item.parent a.hfe-menu-item:focus{
        -webkit-transform: none!important;
        -ms-transform: none!important;
        transform: none!important;
    }

    .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item,
    .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-sub-menu-item,
    .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li.hfe-button-wrapper {
        -webkit-box-pack: justify;
        -webkit-justify-content: space-between;
        -moz-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between; 
    }
}

/* === EF band 1025-1100 dropdown look: HFE strips .hfe-dropdown above 1024px, so re-apply the widget's dropdown styling (opaque white bg + item dividers) to the open menu in the band, matching <=1024. === */
@media only screen and (min-width: 1025px) and (max-width: 1100px) {
  .elementor-element-250dee7 nav.hfe-nav-menu__layout-horizontal,
  .elementor-element-250dee7 nav.hfe-nav-menu__layout-horizontal .menu-item a.hfe-menu-item { background-color: #ffffff; }
  .elementor-element-250dee7 nav.hfe-nav-menu__layout-horizontal li.menu-item:not(:last-child) { border-bottom: 1px solid #c4c4c4; }
}

/* === Fix: HFE frontend.js resize handler pins an inline pixel width on the horizontal <nav> on every desktop resize (width = parent.width(), rounded down ~1px too narrow), wrapping the last menu item ("Kontakt") to a 2nd line until reload. HFE sets it WITHOUT !important, so this stylesheet rule wins and keeps the nav auto-width on true desktop (>1100px). The <=1100px dropdown already overrides width via its own !important rule, so it is unaffected. === */
@media (min-width: 1101px) {
  .ef-navgroup nav.hfe-nav-menu__layout-horizontal { width: auto !important; left: auto !important; }
}

/* ==========================================================================
   Job-Banner (Recruiting - global, ueber dem Header, scrollt weg)
   ========================================================================== */
.ef-jobbar{
  background:linear-gradient(100deg,var(--ef-terracotta-dd),var(--ef-terracotta-d) 55%,var(--ef-terracotta));
  color:#fff;
}
.ef-jobbar a.ef-jobbar__link{
  display:flex;align-items:center;justify-content:center;gap:.8em;
  color:#fff;padding:11px clamp(20px,5vw,56px);font-size:.92rem;
  line-height:1.35;text-align:center;max-width:1400px;margin-inline:auto;
}
.ef-jobbar a.ef-jobbar__link:hover,
.ef-jobbar a.ef-jobbar__link:focus{color:#fff;}
.ef-jobbar .ef-jobbar__text,
.ef-jobbar .ef-jobbar__text strong{color:#fff;}
.ef-jobbar__link:hover .ef-jobbar__cta{transform:translateY(-2px);box-shadow:0 4px 12px rgba(44,38,34,.22);}
.ef-jobbar__pulse{flex:none;width:11px;height:11px;border-radius:50%;background:#fff;position:relative;}
.ef-jobbar__pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:#fff;animation:ef-jobbar-pulse 2.2s var(--ef-ease) infinite;}
@keyframes ef-jobbar-pulse{0%{transform:scale(1);opacity:.7}70%{transform:scale(3.2);opacity:0}100%{transform:scale(3.2);opacity:0}}
@media(prefers-reduced-motion:reduce){.ef-jobbar__pulse::after{animation:none}}
.ef-jobbar__text strong{font-weight:700;}
.ef-jobbar__cta{flex:none;background:#fff;color:var(--ef-terracotta-d);padding:.36em .85em;border-radius:100px;font-weight:700;font-size:.85rem;box-shadow:0 1px 3px rgba(44,38,34,.14);transition:transform .2s var(--ef-ease),box-shadow .2s var(--ef-ease);}
@media(max-width:560px){
  .ef-jobbar__link{gap:.55em;padding-left:16px;padding-right:16px;font-size:.85rem;}
  .ef-jobbar__cta{display:none;}
}
/* ==========================================================================
   Job-Popup (Bewerbungs-Info-Widget) - fixed unten rechts, ausklappbar.
   Global auf allen Seiten, kein Elementor-Widget -> im Baukasten NICHT editierbar.
   ========================================================================== */
.ef-jobpop{position:fixed;right:clamp(12px,3vw,26px);bottom:clamp(12px,3vw,26px);z-index:95;display:flex;flex-direction:column;align-items:flex-end;gap:12px;}
.ef-jobpop__bubble{position:relative;order:2;flex:none;width:60px;height:60px;padding:0;-webkit-appearance:none;appearance:none;border-radius:50%;border:none;cursor:pointer;background:linear-gradient(135deg,var(--ef-terracotta),var(--ef-clay));color:#fff;box-shadow:var(--ef-sh-lg);display:grid;place-items:center;transition:transform .2s var(--ef-ease),box-shadow .2s var(--ef-ease);}
.ef-jobpop__bubble:hover{transform:translateY(-3px) scale(1.04);}
.ef-jobpop__bubble-icon{font-size:28px;}
.ef-jobpop__bubble-ping{position:absolute;top:-2px;right:-2px;width:14px;height:14px;border-radius:50%;background:var(--ef-terracotta-d);border:2px solid var(--ef-cream);}
.ef-jobpop__bubble-ping::after{content:"";position:absolute;inset:-2px;border-radius:50%;background:var(--ef-terracotta-d);animation:ef-jobbar-pulse 2.2s var(--ef-ease) infinite;}
.ef-jobpop.is-open .ef-jobpop__bubble-ping{display:none;}
.ef-jobpop__panel{order:1;width:min(330px,calc(100vw - 32px));background:var(--ef-cream);border:1px solid var(--ef-line);border-radius:var(--ef-r-lg);box-shadow:var(--ef-sh-lg);overflow:hidden;transform-origin:bottom right;opacity:0;transform:translateY(16px) scale(.94);pointer-events:none;transition:opacity .28s var(--ef-ease),transform .28s var(--ef-ease);}
.ef-jobpop.is-open .ef-jobpop__panel{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
.ef-jobpop__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:.8rem .85rem .8rem 1.15rem;background:linear-gradient(100deg,var(--ef-terracotta-d),var(--ef-terracotta) 60%,var(--ef-clay));color:#fff;}
.ef-jobpop__head-title{display:inline-flex;align-items:center;gap:.55em;font-weight:700;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:#fff;}
.ef-jobpop__dot{flex:none;width:9px;height:9px;border-radius:50%;background:#fff;position:relative;}
.ef-jobpop__dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:#fff;animation:ef-jobbar-pulse 2.2s var(--ef-ease) infinite;}
.ef-jobpop__close{flex:none;display:grid;place-items:center;width:30px;height:30px;padding:0;border:none;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;cursor:pointer;line-height:0;transition:background .2s var(--ef-ease);}
.ef-jobpop__close:hover{background:rgba(255,255,255,.32);}
.ef-jobpop__close .ef-ms{font-size:20px;line-height:1;display:block;width:1em;height:1em;text-align:center;vertical-align:middle;}
.ef-jobpop__body{padding:1.1rem 1.15rem 1.25rem;}
.ef-jobpop__lead{margin:0 0 .9rem;font-size:.95rem;line-height:1.5;color:var(--ef-ink);}
.ef-jobpop__lead strong{color:var(--ef-terracotta-d);}
.ef-jobpop__perks{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 1.1rem;padding:0;list-style:none;}
.ef-jobpop__perks li{background:var(--ef-sand);border:1px solid var(--ef-sand-deep);border-radius:100px;padding:.3em .8em;font-size:.8rem;color:var(--ef-ink);}
/* CTA ist ein eigener <a> (kein Elementor-Button). Kit setzt .elementor-kit-7 a{color:#a5482c} (0,1,1);
   daher hoehere Spezifitaet .ef-jobpop a.ef-jobpop__cta (0,2,1) + explizit weiss. */
.ef-jobpop a.ef-jobpop__cta{display:flex;align-items:center;justify-content:center;gap:.5em;width:100%;padding:.7em 1.1em;border-radius:100px;background:linear-gradient(135deg,var(--ef-terracotta),var(--ef-clay));color:#fff;font-weight:700;font-size:.95rem;text-decoration:none;box-shadow:var(--ef-sh-sm);transition:transform .2s var(--ef-ease),box-shadow .2s var(--ef-ease);}
.ef-jobpop a.ef-jobpop__cta:hover,.ef-jobpop a.ef-jobpop__cta:focus{color:#fff;transform:translateY(-2px);box-shadow:var(--ef-sh-md);}
.ef-jobpop__cta .ef-ms{font-size:20px;}
@media(max-width:480px){.ef-jobpop__bubble{width:54px;height:54px;}}
@media(prefers-reduced-motion:reduce){.ef-jobpop__panel{transition:opacity .2s linear;transform:none;}.ef-jobpop.is-open .ef-jobpop__panel{transform:none;}.ef-jobpop__bubble-ping::after,.ef-jobpop__dot::after{animation:none;}}
/* ==========================================================================
   ef-dropdown-modern (15.07.) - Modernes Desktop-Dropdown "Leistungen" (>1100px).
   Restyle des UAE/HFE-Nav-Submenus (Widget .elementor-element-250dee7) zu einer
   schwebenden Karte mit Icon-Zeilen. Icons = selbst-gehostetes Subset
   'Material Symbols Outlined' (identische Glyphen/Codepoints wie das statische
   index.html-Dropdown), via ::before auf #menu-item-{ID} - kein DOM/Elementor/
   Plugin-Edit. Nur Desktop; Hamburger-Dropdown (<=1100) + Band 1025-1100 unberuehrt.
   ========================================================================== */
@media (min-width:1101px){
  /* Schwebendes Panel */
  .elementor-element-250dee7 .hfe-nav-menu__layout-horizontal ul.sub-menu{
    width:274px!important;
    top:calc(100% + 12px)!important;
    left:50%!important;
    padding:8px;
    background:#fff!important;
    border:1px solid var(--ef-line);
    border-radius:16px;
    box-shadow:var(--ef-sh-lg)!important;
    transform:translateX(-50%) translateY(8px);
    transition:opacity .22s var(--ef-ease),transform .22s var(--ef-ease),visibility .22s var(--ef-ease)!important;
  }
  /* Hover-Bruecke ueber die 12px-Luecke, damit der Cursorweg das Panel offen haelt */
  .elementor-element-250dee7 .hfe-nav-menu__layout-horizontal ul.sub-menu::before{
    content:"";position:absolute;left:0;right:0;top:-16px;height:16px;
  }
  /* Zeiger-Pfeil */
  .elementor-element-250dee7 .hfe-nav-menu__layout-horizontal ul.sub-menu::after{
    content:"";position:absolute;top:-6px;left:50%;margin-left:-6px;width:12px;height:12px;
    background:#fff;border-left:1px solid var(--ef-line);border-top:1px solid var(--ef-line);
    border-radius:4px 0 0 0;transform:rotate(45deg);
  }
  .elementor-element-250dee7 .hfe-nav-menu__layout-horizontal .menu-item-has-children:hover>ul.sub-menu,
  .elementor-element-250dee7 .hfe-nav-menu__layout-horizontal .menu-item-has-children:focus-within>ul.sub-menu{
    transform:translateX(-50%) translateY(0);
  }
  /* Zeilen */
  .elementor-element-250dee7 ul.sub-menu li.menu-item{border:0!important;margin:0}
  .elementor-element-250dee7 ul.sub-menu a.hfe-sub-menu-item{
    position:relative;
    display:flex!important;align-items:center;justify-content:flex-start!important;
    padding:.6rem .8rem .6rem 3rem!important;border-radius:10px;
    font-family:'Instrument Sans',sans-serif;font-weight:500;font-size:.98rem;line-height:1.2;
    color:var(--ef-ink)!important;
    transition:background .18s var(--ef-ease),color .18s var(--ef-ease),transform .18s var(--ef-ease);
  }
  /* Icon-Chip - absolut positioniert (eine Plugin-Regel erzwingt ::before{position:absolute};
     Platz wird stattdessen per padding-left am Anker reserviert -> kein Ueberlappen des Textes). */
  .elementor-element-250dee7 ul.sub-menu a.hfe-sub-menu-item::before{
    position:absolute!important;left:.5rem;top:50%;transform:translateY(-50%);
    font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;font-size:20px;
    line-height:1;-webkit-font-smoothing:antialiased;
    display:inline-flex!important;align-items:center;justify-content:center;
    width:34px;height:34px;border-radius:10px;
    background:var(--ef-clay-soft);color:var(--ef-terracotta);
    transition:background .18s var(--ef-ease),color .18s var(--ef-ease);
  }
  .elementor-element-250dee7 #menu-item-68 a.hfe-sub-menu-item::before{content:"\ea78"}
  .elementor-element-250dee7 #menu-item-69 a.hfe-sub-menu-item::before{content:"\e764"}
  .elementor-element-250dee7 #menu-item-70 a.hfe-sub-menu-item::before{content:"\e3f3"}
  .elementor-element-250dee7 #menu-item-71 a.hfe-sub-menu-item::before{content:"\e10e"}
  .elementor-element-250dee7 #menu-item-72 a.hfe-sub-menu-item::before{content:"\eb41"}
  .elementor-element-250dee7 #menu-item-73 a.hfe-sub-menu-item::before{content:"\eb4c"}
  /* Hover / Tastatur-Fokus */
  .elementor-element-250dee7 ul.sub-menu a.hfe-sub-menu-item:hover,
  .elementor-element-250dee7 ul.sub-menu a.hfe-sub-menu-item:focus-visible{
    background:var(--ef-cream);color:var(--ef-terracotta)!important;transform:translateX(3px);
  }
  .elementor-element-250dee7 ul.sub-menu a.hfe-sub-menu-item:hover::before,
  .elementor-element-250dee7 ul.sub-menu a.hfe-sub-menu-item:focus-visible::before{
    background:var(--ef-terracotta);color:#fff;
  }
  /* Aktiver Menuepunkt (aktuelle Seite) - dauerhaft markiert */
  .elementor-element-250dee7 ul.sub-menu li.current-menu-item>a.hfe-sub-menu-item,
  .elementor-element-250dee7 ul.sub-menu a.hfe-sub-menu-item-active{
    background:var(--ef-cream);color:var(--ef-terracotta)!important;font-weight:600;
  }
  .elementor-element-250dee7 ul.sub-menu li.current-menu-item>a.hfe-sub-menu-item::before,
  .elementor-element-250dee7 ul.sub-menu a.hfe-sub-menu-item-active::before{
    background:var(--ef-terracotta);color:#fff;
  }
}
@media (min-width:1101px) and (prefers-reduced-motion:reduce){
  .elementor-element-250dee7 .hfe-nav-menu__layout-horizontal ul.sub-menu{transform:translateX(-50%)!important;transition:opacity .01s!important}
  .elementor-element-250dee7 ul.sub-menu a.hfe-sub-menu-item:hover,
  .elementor-element-250dee7 ul.sub-menu a.hfe-sub-menu-item:focus-visible{transform:none}
}
/* ==========================================================================
   ef-mobile-dropdown-modern (15.07.) - Mobiles Dropdown (<=1100px) im gleichen
   Stil wie das Desktop-Panel: Sheet-Optik, moderne Zeilen-Highlights, Aktiv-
   Markierung, Chevron fuer Leistungen, Icon-Chips (gleiche Material-Symbols-
   Codepoints) an den Submenu-Zeilen. Nur Appearance - Layout/Positionierung
   bleibt der bestehende @media(max-width:1100px)-Block oben.
   ========================================================================== */
@media (max-width:1100px){
  /* Panel als schwebendes Sheet */
  .ef-navgroup nav.hfe-nav-menu__layout-horizontal{
    background:#fff!important;
    border-radius:0 0 18px 18px!important;
    box-shadow:var(--ef-sh-lg)!important;
    padding:8px 8px 6px!important;
  }
  /* Trennlinien raus (Band #c4c4c4 + HFE-Dropdown-Divider) */
  .elementor-element-250dee7 nav.hfe-nav-menu__layout-horizontal li.menu-item,
  .ef-navgroup nav.hfe-nav-menu__layout-horizontal li.menu-item:not(:last-child){
    border:0!important;
  }
  /* Zeilen: Tap-Flaeche + runder Highlight */
  .ef-navgroup nav.hfe-nav-menu__layout-horizontal .menu-item a.hfe-menu-item,
  .ef-navgroup nav.hfe-nav-menu__layout-horizontal .menu-item a.hfe-sub-menu-item{
    border-radius:12px;
    font-family:'Instrument Sans',sans-serif;font-weight:500;
    color:var(--ef-ink);
    padding:.85rem .8rem!important;
    transition:background .18s var(--ef-ease),color .18s var(--ef-ease);
  }
  /* Hover/Tap + aktive Seite (Top-Level) */
  .ef-navgroup nav .menu-item a.hfe-menu-item:hover,
  .ef-navgroup nav .menu-item a.hfe-menu-item:focus-visible,
  .ef-navgroup nav .menu-item.current-menu-item a.hfe-menu-item,
  .ef-navgroup nav .menu-item.current-menu-ancestor a.hfe-menu-item{
    background:var(--ef-cream)!important;color:var(--ef-terracotta)!important;font-weight:600;
  }
  /* Leistungen-Chevron (leeres <i.fa> ersetzen) */
  .ef-navgroup .elementor-element-250dee7 nav .menu-item-has-children .sub-arrow{display:inline-flex!important;position:relative;width:22px;height:22px;flex:0 0 22px;padding:0!important;margin:0!important}
  .ef-navgroup nav .menu-item-has-children .sub-arrow i{display:none!important}
  .ef-navgroup nav .menu-item-has-children .sub-arrow::before{
    content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;
    border-right:2px solid var(--ef-ink-soft);border-bottom:2px solid var(--ef-ink-soft);
    transform:translate(-50%,-70%) rotate(45deg);transition:transform .2s var(--ef-ease);
  }
  .ef-navgroup nav .menu-item.current-menu-ancestor .sub-arrow::before{border-color:var(--ef-terracotta)}
  .ef-navgroup nav .hfe-has-submenu-container.sub-menu-active .sub-arrow::before{
    transform:translate(-50%,-30%) rotate(-135deg);
  }
  /* Submenu: schlichte, eingerueckte Icon-Zeilen */
  .ef-navgroup nav .sub-menu{padding-left:.4rem}
  .ef-navgroup .elementor-element-250dee7 nav.hfe-nav-menu__layout-horizontal .sub-menu a.hfe-sub-menu-item{
    position:relative;
    padding:.72rem .8rem .72rem 3rem!important;
  }
  .ef-navgroup nav .sub-menu a.hfe-sub-menu-item::before{
    position:absolute!important;left:.5rem;top:50%;transform:translateY(-50%);
    font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;font-size:20px;
    line-height:1;-webkit-font-smoothing:antialiased;
    display:inline-flex!important;align-items:center;justify-content:center;
    width:34px;height:34px;border-radius:10px;
    background:var(--ef-clay-soft);color:var(--ef-terracotta);
    transition:background .18s var(--ef-ease),color .18s var(--ef-ease);
  }
  .elementor-element-250dee7 #menu-item-68 a.hfe-sub-menu-item::before{content:"\ea78"}
  .elementor-element-250dee7 #menu-item-69 a.hfe-sub-menu-item::before{content:"\e764"}
  .elementor-element-250dee7 #menu-item-70 a.hfe-sub-menu-item::before{content:"\e3f3"}
  .elementor-element-250dee7 #menu-item-71 a.hfe-sub-menu-item::before{content:"\e10e"}
  .elementor-element-250dee7 #menu-item-72 a.hfe-sub-menu-item::before{content:"\eb41"}
  .elementor-element-250dee7 #menu-item-73 a.hfe-sub-menu-item::before{content:"\eb4c"}
  /* Submenu Hover/Tap + aktiver Unterpunkt */
  .ef-navgroup nav .sub-menu a.hfe-sub-menu-item:hover,
  .ef-navgroup nav .sub-menu a.hfe-sub-menu-item:focus-visible,
  .ef-navgroup nav .sub-menu li.current-menu-item a.hfe-sub-menu-item,
  .ef-navgroup nav .sub-menu a.hfe-sub-menu-item-active{
    background:var(--ef-cream)!important;color:var(--ef-terracotta)!important;font-weight:600;
  }
  .ef-navgroup nav .sub-menu a.hfe-sub-menu-item:hover::before,
  .ef-navgroup nav .sub-menu li.current-menu-item a.hfe-sub-menu-item::before,
  .ef-navgroup nav .sub-menu a.hfe-sub-menu-item-active::before{
    background:var(--ef-terracotta);color:#fff;
  }
  /* Telefon + CTA-Bereich: etwas mehr Luft nach oben */
  .ef-nav-extra{margin-top:.4rem}
}
/* ==========================================================================
   ef-nav-anim (15.07.) - Mobile Navbar-Animationen (<=1100px):
   (1) Hamburger -> X: eigener 3-Linien-Burger (.ef-burger, per header-nav.js in
       den Toggle injiziert; HFE-SVG-Icon .hfe-nav-menu-icon ausgeblendet), obere/
       untere Linie drehen, mittlere blendet aus - gekeyt auf .hfe-active-menu.
   (2) Dropdown faehrt animiert unter der Leiste aus (translateY + Fade).
   ========================================================================== */
@media (max-width:1100px){
  /* HFE-SVG-Icon ausblenden - eigener Burger uebernimmt */
  .ef-navgroup .hfe-nav-menu__toggle .hfe-nav-menu-icon{display:none!important}
  .ef-navgroup .hfe-nav-menu__toggle{display:inline-flex!important;align-items:center;justify-content:center}
  /* Eigener 3-Linien-Burger */
  .ef-navgroup .hfe-nav-menu__toggle .ef-burger{
    position:relative;display:inline-block;width:24px;height:18px;pointer-events:none;
  }
  .ef-navgroup .hfe-nav-menu__toggle .ef-burger i{
    position:absolute;left:0;right:0;height:2px;border-radius:2px;background:var(--ef-ink);
    transition:transform .3s var(--ef-ease),opacity .2s var(--ef-ease);
  }
  .ef-navgroup .hfe-nav-menu__toggle .ef-burger i:nth-child(1){top:0}
  .ef-navgroup .hfe-nav-menu__toggle .ef-burger i:nth-child(2){top:8px}
  .ef-navgroup .hfe-nav-menu__toggle .ef-burger i:nth-child(3){top:16px}
  /* Offen -> X */
  .ef-navgroup .hfe-nav-menu__toggle.hfe-active-menu .ef-burger i:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .ef-navgroup .hfe-nav-menu__toggle.hfe-active-menu .ef-burger i:nth-child(2){opacity:0;transform:scaleX(.2)}
  .ef-navgroup .hfe-nav-menu__toggle.hfe-active-menu .ef-burger i:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

  /* Dropdown faehrt unter der Leiste aus */
  .ef-navgroup nav.hfe-nav-menu__layout-horizontal{
    transform:translateY(-10px);transform-origin:top center;
    transition:opacity .28s var(--ef-ease),transform .28s var(--ef-ease),visibility .28s var(--ef-ease)!important;
  }
  .ef-navgroup nav.hfe-nav-menu__layout-horizontal.menu-is-active{transform:translateY(0)}
}
@media (max-width:1100px) and (prefers-reduced-motion:reduce){
  .ef-navgroup nav.hfe-nav-menu__layout-horizontal{transform:none!important;transition:opacity .01s!important}
  .ef-navgroup .hfe-nav-menu__toggle .ef-burger i{transition:none!important}
}