/* EMAN GROUP — uniform production layer 2026-07 */
:root{
  --eg-blue:#2f66f6;
  --eg-blue-hover:#2054df;
  --eg-square-radius:6px;
  --eg-mobile-nav-height:62px;
}
html{overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{max-width:100%;overflow-x:hidden}
/* Brand color normalization */
a:not(.btn):not(.eg-ms-brand):not(.eg-mnav-brand):focus-visible,
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--eg-blue)!important}
.ms-impressum a,.privacy-ms-page a,.ms-privacy-page a,.cookies-ms-page a,.ms-cookie-page a,.ms-agb a,.ms-accessibility a{color:var(--eg-blue)!important}
.ms-impressum a:hover,.privacy-ms-page a:hover,.ms-privacy-page a:hover,.cookies-ms-page a:hover,.ms-cookie-page a:hover,.ms-agb a:hover,.ms-accessibility a:hover{color:var(--eg-blue-hover)!important}
/* Prevent floating cookie launcher; settings remain in footer/dialog */
.eg-consent-launcher,[data-consent-launcher],[data-cookie-launcher]{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important}
/* Consistent buttons */
.btn,.eg-footer-action-btn,.eg-newsletter-trigger,.eg-newsletter-mobile-trigger{border-radius:var(--eg-square-radius)!important}
/* Back to top */
.backtotop,[data-backtotop]{border-radius:8px!important}
/* Mobile nav full viewport */
@media(max-width:980px){
  .mobile[data-nav],.eg-ms-mobile{position:fixed!important;inset:0!important;width:100vw!important;max-width:100vw!important;height:100dvh!important;z-index:9998!important;overflow:hidden!important}
  .eg-ms-mobile-overlay,.mobile-overlay{position:fixed!important;inset:0!important;background:rgba(255,255,255,.68)!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important}
  .eg-mnav-panel,.eg-ms-mobile-panel{position:fixed!important;inset:0!important;width:100vw!important;min-width:100vw!important;max-width:100vw!important;height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;margin:0!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;overflow:hidden!important;background:#fff!important;border:0!important;border-radius:0!important;transform:translateX(100%)!important;transition:transform .28s cubic-bezier(.22,1,.36,1)!important}
  [data-nav][data-open="true"] .eg-mnav-panel,[data-nav][data-open="true"] .eg-ms-mobile-panel{transform:translateX(0)!important}
  .eg-mnav-header{min-height:calc(var(--eg-mobile-nav-height) + env(safe-area-inset-top))!important;padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))!important;background:#fff!important;border-bottom:1px solid rgba(11,15,25,.1)!important}
  .eg-mnav-logo{width:clamp(170px,47vw,210px)!important;max-width:calc(100vw - 92px)!important;height:auto!important}
  .eg-mnav-scroll{min-height:0!important;width:100%!important;padding:18px max(14px,env(safe-area-inset-right)) 24px max(14px,env(safe-area-inset-left))!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important}
  .eg-mnav-utility{position:relative!important;inset:auto!important;width:100%!important;min-height:54px!important;padding:14px max(16px,env(safe-area-inset-right)) calc(14px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))!important;background:#fff!important;border-top:1px solid rgba(11,15,25,.1)!important}
  .eg-mnav-product-card,.eg-mnav-grid,.eg-mnav-card,.eg-mnav-accordion,.eg-newsletter-mobile-trigger{width:100%!important;max-width:100%!important;min-width:0!important}
  .eg-mnav-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .eg-mnav-card strong,.eg-mnav-card small,.eg-mnav-product-copy strong,.eg-mnav-product-copy small{overflow-wrap:anywhere!important}
}
@media(max-width:340px){.eg-mnav-grid{grid-template-columns:1fr!important}.eg-mnav-logo{width:158px!important}}
@media(min-width:700px) and (max-width:980px) and (orientation:landscape){.eg-mnav-scroll{padding-inline:clamp(28px,7vw,72px)!important}.eg-mnav-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
/* Mobile CTAs */
@media(max-width:720px){
  .hero-actions{width:calc(100vw - 24px)!important;max-width:none!important;margin-inline:calc(50% - 50vw + 12px)!important;display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .hero-actions>.btn,.eg-footer-action-btn{width:100%!important;max-width:none!important;min-height:48px!important;border-radius:6px!important}
  .backtotop,[data-backtotop]{position:fixed!important;right:max(12px,env(safe-area-inset-right))!important;bottom:calc(82px + env(safe-area-inset-bottom))!important;z-index:2147482000!important;width:46px!important;height:46px!important;background:rgba(255,255,255,.96)!important;border:1px solid rgba(17,24,39,.15)!important;box-shadow:0 8px 24px rgba(15,23,42,.15)!important}
  body:not(.nav-open) .backtotop.is-visible,body:not(.nav-open) [data-backtotop].is-visible{display:flex!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}
  body.nav-open .backtotop,body.nav-open [data-backtotop]{visibility:hidden!important;opacity:0!important;pointer-events:none!important}
}
/* Mobile carousel: one slide only */
@media(max-width:720px){
  .eman-carousel-section{width:100vw!important;max-width:100vw!important;overflow-x:clip!important;contain:paint!important}
  .eman-carousel-inner,.eman-carousel-controls{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;margin-inline:auto!important}
  .eman-carousel-viewport{width:100%!important;max-width:100%!important;overflow-x:clip!important;overflow-y:visible!important;isolation:isolate!important}
  .eman-carousel-track{display:flex!important;width:auto!important;max-width:none!important;gap:0!important;column-gap:0!important;will-change:transform!important}
  .eman-carousel-card{flex:0 0 100%!important;width:100%!important;min-width:100%!important;max-width:100%!important;margin:0!important}
  .eman-carousel-card,.eman-carousel-copy,.eman-carousel-media,.eman-carousel-media img{max-width:100%!important}
}
/* Sticky service tabs */
@media(max-width:720px){
  #leistungen .tablist-wrap,#leistungen .ms-service-tabbar-wrap{top:var(--eg-mobile-nav-height)!important;padding-top:2px!important;overflow:visible!important}
  #leistungen .tablist,#leistungen .ms-service-tabbar{overflow-x:auto!important;overflow-y:visible!important;scrollbar-width:none!important}
  #leistungen .tab[aria-selected="true"]{border-top:2px solid #374151!important;background-image:linear-gradient(to bottom,#111827 0,#111827 3px,transparent 3px)!important}
}
@media(prefers-reduced-motion:reduce){.eg-mnav-panel,.eg-ms-mobile-panel,.eman-carousel-track{transition:none!important}}

.hero-slide-copy .hero-slide-title{margin:14px 0 10px;font-size:clamp(34px,4.1vw,56px);letter-spacing:-1.1px;line-height:1.02;font-weight:750}


/* =========================================================
   Mobile carousel — bfcache and compositor stability
   ========================================================= */

@media (max-width: 720px) {
  .eman-carousel-section {
    contain: none !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
  }

  .eman-carousel-inner {
    contain: none !important;
  }

  .eman-carousel-viewport {
    contain: none !important;
    isolation: auto !important;

    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    overflow-x: clip !important;
    overflow-y: visible !important;
  }

  .eman-carousel-track {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    will-change: auto !important;
    transform-style: flat !important;
    backface-visibility: visible !important;
  }

  .eman-carousel-card {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;

    contain: none !important;
    content-visibility: visible !important;
    isolation: auto !important;
    backface-visibility: visible !important;
  }

  .eman-carousel-copy {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }

  .eman-carousel-media {
    flex: 0 0 250px !important;

    width: 100% !important;
    height: 250px !important;
    min-height: 250px !important;
    max-height: 250px !important;

    contain: none !important;
    isolation: auto !important;
  }

  .eman-carousel-media img {
    width: 100% !important;
    height: 250px !important;
    min-height: 250px !important;
    max-height: 250px !important;

    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;

    object-fit: cover !important;
    transform: none !important;
    backface-visibility: visible !important;
  }
}

@media (max-width: 720px) {
  .eman-carousel-section.is-restoring {
    contain: none !important;
  }

  .eman-carousel-section.is-restoring .eman-carousel-track {
    transition: none !important;
  }
}

/* ==========================================================
   EMAN GROUP — mobile navigation interaction authority
   Fixes a fullscreen overlay intercepting taps above nav links.
   This block must remain at the very end of the file.
   ========================================================== */

@media (max-width: 980px) {
  .mobile[data-nav][hidden],
  .eg-ms-mobile[hidden] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .mobile[data-nav]:not([hidden]),
  .eg-ms-mobile:not([hidden]) {
    position: fixed !important;
    inset: 0 !important;
    z-index: 9998 !important;
    width: 100% !important;
    height: 100vh !important;
    height: 100svh !important;
    overflow: hidden !important;
    pointer-events: auto !important;
  }

  /*
   * The panel occupies the complete screen. The visual backdrop
   * must never sit above it or receive taps.
   */
  .mobile[data-nav] > [data-nav-overlay],
  .mobile[data-nav] > .mobile-overlay,
  .eg-ms-mobile > .eg-ms-mobile-overlay,
  .eg-ms-mobile-overlay,
  .mobile-overlay {
    z-index: 0 !important;
    pointer-events: none !important;
  }

  .mobile[data-nav] .mobile-panel,
  .mobile[data-nav] .eg-mnav-panel,
  .mobile[data-nav] .eg-ms-mobile-panel,
  .eg-ms-mobile .mobile-panel,
  .eg-ms-mobile .eg-mnav-panel,
  .eg-ms-mobile .eg-ms-mobile-panel {
    position: absolute !important;
    inset: 0 !important;
    z-index: 2 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 0 !important;
    max-height: none !important;
    pointer-events: auto !important;
    isolation: isolate !important;
  }

  .eg-mnav-header,
  .eg-mnav-scroll,
  .eg-mnav-utility,
  .eg-mnav-grid,
  .eg-mnav-card,
  .eg-mnav-product-card,
  .eg-mnav-accordion,
  .mnav-item,
  .mobile-panel a,
  .eg-mnav-panel a,
  .eg-ms-mobile-panel a,
  .mobile-panel button,
  .eg-mnav-panel button,
  .eg-ms-mobile-panel button {
    position: relative;
    z-index: 3;
    pointer-events: auto !important;
    touch-action: manipulation;
  }

  .eg-mnav-scroll {
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
  }

  [data-nav][data-open="true"] .mobile-panel,
  [data-nav][data-open="true"] .eg-mnav-panel,
  [data-nav][data-open="true"] .eg-ms-mobile-panel {
    transform: translate3d(0, 0, 0) !important;
  }
}
/* ==========================================================
   SMART KUNDENPORTAL TAB — shared desktop and mobile state
   ========================================================== */
.eg-customer-nav{position:relative;flex:0 0 auto}
a.eg-customer-trigger{
  min-width:220px;height:44px;padding:4px 8px 4px 5px;display:grid;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:9px;
  border:1px solid rgba(15,23,42,.16);border-radius:0!important;background:#fff;color:#111827;text-decoration:none!important;box-shadow:none!important;transition:border-color .18s ease,background .18s ease
}
a.eg-customer-trigger:hover{transform:none!important;border-color:rgba(11,95,255,.48)!important;background:#f8faff!important}
a.eg-customer-trigger[aria-current="page"]{border-color:#0b5fff!important;box-shadow:inset 0 -2px 0 #0b5fff!important}
.eg-customer-trigger__avatar,.eg-customer-mobile-trigger__avatar{
  display:grid;place-items:center;border-radius:50%!important;background:#eef3fb;border:1px solid #d8e0ec;color:#31506f;font-weight:800;letter-spacing:-.02em;line-height:1
}
.eg-customer-trigger__avatar{width:34px;height:34px;font-size:11px}
.eg-customer-trigger__avatar svg{width:17px;height:17px}
a.eg-customer-trigger.is-authenticated .eg-customer-trigger__avatar,a.eg-customer-mobile-trigger.is-authenticated .eg-customer-mobile-trigger__avatar{background:#0b5fff;border-color:#0b5fff;color:#fff}
.eg-customer-trigger__text,.eg-customer-mobile-trigger__text{min-width:0;display:grid;gap:3px;line-height:1.05}
.eg-customer-trigger__text strong{font-size:12px;font-weight:800;color:#111827}
.eg-customer-trigger__text small{font-size:9.7px;font-weight:650;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.eg-customer-trigger.is-authenticated .eg-customer-trigger__text small{color:#0b5fff}
.eg-customer-trigger__arrow,.eg-customer-mobile-trigger__arrow{display:grid;place-items:center;color:#7b8798}
.eg-customer-trigger__arrow svg,.eg-customer-mobile-trigger__arrow svg{width:16px;height:16px}

a.eg-customer-mobile-trigger{
  width:100%;min-width:0;padding:12px;display:grid;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:12px;
  border:1px solid rgba(15,23,42,.15);border-radius:0!important;background:#fff;color:#111827;text-align:left;text-decoration:none!important
}
a.eg-customer-mobile-trigger:hover{background:#f8faff;border-color:rgba(11,95,255,.42)}
.eg-customer-mobile-trigger__avatar{width:42px;height:42px;font-size:12px}
.eg-customer-mobile-trigger__avatar svg{width:19px;height:19px}
.eg-customer-mobile-trigger__text strong{font-size:14px;font-weight:800}
.eg-customer-mobile-trigger__text small{font-size:11px;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.eg-customer-mobile-trigger.is-authenticated .eg-customer-mobile-trigger__text small{color:#0b5fff}

@media(max-width:1180px) and (min-width:981px){
  a.eg-customer-trigger{min-width:184px}.eg-customer-trigger__text small{max-width:110px}
}


/* Keep the desktop customer tab out of the compact mobile header. */
@media (max-width:980px){
  .eg-customer-nav{display:none!important}
}

/* Prevent inactive desktop carousel slides from widening the document. */
@media (min-width:721px){
  .eman-carousel-section{overflow-x:clip!important}
  .eman-carousel-viewport{overflow:hidden!important}
}
