/* ============================================================
   EMPIT · Mobiles Menü (neu) – Fullscreen-Overlay
   Ersetzt mmenu. Aktiv unter 992px Breite.
   Benötigt: Modul „Eigener HTML-Code" mit .mnav + JS in main.js
   ============================================================ */

/* ---------- Burger (Squeeze) ---------- */
.mnav-burger{
  --b-w:28px;        /* Breite der Striche   */
  --b-h:2px;         /* Strichstärke          */
  --b-box:20px;      /* Höhe des Burgers      */
  position:relative;
  z-index:2;
  display:none;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:var(--gelb, #FCE300);
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:color .3s ease;
}

/* Burger im Header rechts positionieren */
@media (max-width:991.98px){
	#header .inside{ position:relative; }
	.mnav{
		position:absolute;
		top:65%;
		right:0px;
		transform:translateY(-55%);
		z-index:5;
	}
}
.mnav-burger:focus-visible{
  outline:2px solid var(--gelb, #FCE300);
  outline-offset:2px;
  border-radius:8px;
}
.mnav-burger__box{
  position:relative;
  display:block;
  width:var(--b-w);
  height:var(--b-box);
}
.mnav-burger__box b{
  position:absolute;
  left:0;
  width:100%;
  height:var(--b-h);
  border-radius:2px;
  background:currentColor;
  /* Schließen: erst zurückdrehen, dann auseinanderfahren */
  transition:top .22s cubic-bezier(.5,0,.5,1) .22s,
             transform .22s cubic-bezier(.5,0,.5,1) 0s,
             opacity 0s linear .22s;
}
.mnav-burger__box b:nth-child(1){ top:0; }
.mnav-burger__box b:nth-child(2){ top:calc(50% - var(--b-h) / 2); }
.mnav-burger__box b:nth-child(3){ top:calc(100% - var(--b-h)); }

/* Offen: erst zusammenfahren (squeeze), dann zum X drehen */
.mnav-burger[aria-expanded="true"] .mnav-burger__box b{
  transition:top .22s cubic-bezier(.5,0,.5,1) 0s,
             transform .22s cubic-bezier(.5,0,.5,1) .22s,
             opacity 0s linear .22s;
}
.mnav-burger[aria-expanded="true"] .mnav-burger__box b:nth-child(1),
.mnav-burger[aria-expanded="true"] .mnav-burger__box b:nth-child(3){
  top:calc(50% - var(--b-h) / 2);
}
.mnav-burger[aria-expanded="true"] .mnav-burger__box b:nth-child(1){ transform:rotate(45deg); }
.mnav-burger[aria-expanded="true"] .mnav-burger__box b:nth-child(2){ opacity:0; }
.mnav-burger[aria-expanded="true"] .mnav-burger__box b:nth-child(3){ transform:rotate(-45deg); }


/* ---------- Overlay ---------- */
.mnav-menu{
  --mnav-top:88px;   /* wird per JS auf die Header-Höhe gesetzt */
  position:fixed;
  inset:0;
  z-index:9000;
  display:flex;
  flex-direction:column;
  box-sizing:border-box;
  padding:calc(var(--mnav-top) + 16px) 28px 40px;
  background:rgba(0,0,0,.35);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scroll-padding-top:calc(var(--mnav-top) + 8px);   /* nichts rutscht unter den Header */
  scroll-padding-bottom:24px;
  opacity:0;
  visibility:hidden;
  transition:opacity .4s ease, visibility 0s linear .4s;
  font-family:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif;
}
html.mnav-open .mnav-menu{
  opacity:1;
  visibility:visible;
  transition:opacity .4s ease, visibility 0s;
}
html.mnav-open,
html.mnav-open body{ overflow:hidden; }

/* Contao-Sprunglink unsichtbar halten */
.mnav-menu .invisible{
  position:absolute !important;
  width:1px; height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}

.mnav-menu ul{ list-style:none; margin:0; padding:0; }

/* ---------- Ebene 1 ---------- */
.mnav-menu .level_1{ counter-reset:mnav; }
.mnav-menu .level_1 > li{
  counter-increment:mnav;
  display:grid;
  grid-template-columns:auto 1fr auto;
  grid-template-rows:auto 0fr;
  column-gap:16px;
  align-items:center;
  border-bottom:1px solid rgba(255,255,255,.08);
  opacity:0;
  transform:translateY(14px);
  transition:opacity .35s ease, transform .35s ease, grid-template-rows .35s ease;
}
/* Nummerierung wie bei den Prozess-Schritten */
.mnav-menu .level_1 > li::before{
  content:counter(mnav, decimal-leading-zero);
  grid-column:1;
  grid-row:1;
  color:var(--gelb, #FCE300);
  font:600 12px/1 "IBM Plex Mono","SFMono-Regular",Consolas,monospace;
  letter-spacing:.05em;
}
.mnav-menu .level_1 > li > a,
.mnav-menu .level_1 > li > strong{
  grid-column:2;
  grid-row:1;
  padding:10px 0;
  color:#fff;
  font-size: var(--h3-size);
  line-height: var(--h3-line-height);
  font-weight:500;
  text-decoration:none;
  transition:color .2s ease;
}

/* Gestaffelter Einlauf beim Öffnen */
html.mnav-open .mnav-menu .level_1 > li{
  opacity:1;
  transform:none;
  transition-delay:calc(.12s + var(--i, 0) * .05s), calc(.12s + var(--i, 0) * .05s), 0s;
}

/* ---------- Ebene 2 (Akkordeon) ---------- */
.mnav-menu .level_1 > li.is-open{ grid-template-rows:auto 1fr; }
.mnav-menu .level_2{
  grid-column:2 / -1;
  grid-row:2;
  align-self:stretch;   /* Höhe = Zeilenhöhe, damit 0fr wirklich zuklappt */
  min-height:0;
  overflow:hidden;
}
.mnav-menu .level_2 > li > a,
.mnav-menu .level_2 > li > strong{
  display:block;
  padding:9px 0;
  color:var(--hellgrau, #c8ccc9);
  font-size:17px;
  font-weight:400;
  text-decoration:none;
  transition:color .2s ease;
}
.mnav-menu .level_2 > li:last-child > a,
.mnav-menu .level_2 > li:last-child > strong{ padding-bottom:20px; }

/* Aktiv + Hover */
.mnav-menu a:hover,
.mnav-menu a:focus-visible,
.mnav-menu strong.active,
.mnav-menu a.active,
.mnav-menu li.trail > a{
  color:var(--gelb, #FCE300);
}
.mnav-menu a:focus-visible{ outline:none; text-decoration:underline; text-underline-offset:4px; }

/* Chevron für Untermenüs, ohne Kreis (wie im Mega-Menü) */
.mnav-sub-toggle{
  grid-column:3;
  grid-row:1;
  position:relative;
  width:40px;                 /* große Tipp-Fläche, der Pfeil selbst bleibt klein */
  height:40px;
  margin:0 -12px 0 0;         /* Pfeil rückt an den rechten Rand der Trennlinie */
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:color .25s ease;
}
.mnav-sub-toggle::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  box-sizing:border-box;
  width:10px;
  height:10px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translate(-50%,-68%) rotate(45deg);
  transition:transform .3s ease;
}
.mnav-sub-toggle:hover,
.mnav-sub-toggle:focus-visible{
  color:var(--gelb, #FCE300);
  outline:none;
}
.mnav-sub-toggle:focus-visible{
  outline:2px solid var(--gelb, #FCE300);
  outline-offset:-4px;
  border-radius:8px;
}
.is-open > .mnav-sub-toggle{ color:var(--gelb, #FCE300); }
.is-open > .mnav-sub-toggle::after{ transform:translate(-50%,-32%) rotate(-135deg); }

/* ---------- Variante ohne Nummerierung ----------
   Klasse mnav-menu--no-num am Overlay (.mnav-menu) im HTML-Modul */
.mnav-menu--no-num .level_1 > li{ grid-template-columns:1fr auto; }
.mnav-menu--no-num .level_1 > li::before{ display:none; }
.mnav-menu--no-num .level_1 > li > a,
.mnav-menu--no-num .level_1 > li > strong{ grid-column:1; }
.mnav-menu--no-num .mnav-sub-toggle{ grid-column:2; }
.mnav-menu--no-num .level_2{ grid-column:1 / -1; }


/* ---------- CTA unten ---------- */
.mnav-cta{
  margin-top:auto;
  padding-top:36px;
  opacity:0;
  transform:translateY(14px);
  transition:opacity .35s ease, transform .35s ease;
}
html.mnav-open .mnav-cta{
  opacity:1;
  transform:none;
  transition-delay:calc(.12s + var(--i, 6) * .05s);
}

/* ---------- Nur mobil ---------- */
@media (max-width:991.98px){
  .mnav-burger{ display:inline-flex; }
}
@media (min-width:992px){
  .mnav-menu{ display:none; }
}

@media (prefers-reduced-motion:reduce){
  .mnav-menu,
  .mnav-menu .level_1 > li,
  .mnav-cta,
  .mnav-burger__box b{ transition:none !important; }
}