/*
Theme Name: MeiseCargo Theme
Theme URI: https://meisecargo.example
Author: Alexander Meise Transport & Logistik
Author URI: https://meisecargo.example
Description: Neutrales, responsives Theme für Spedition & Logistik mit Lightbox-Galerie, Hero-Slideshow, Consent, CF7-Integration und rechtssicheren Seiten.
Version: 1.5.7-step3
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: meisecargo
Tags: light, responsive, custom-logo, accessibility-ready
*/
:root{ --mc-bg:#ffffff; --mc-text:#222222; --mc-accent:#dddddd; --mc-link:#0077B6; --mc-muted:#f5f5f7; }
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:"Open Sans", Arial, sans-serif;margin:0;color:var(--mc-text);background:var(--mc-bg);}
a{color:var(--mc-link);text-decoration:none;} a:hover{text-decoration:underline;}
img{max-width:100%;height:auto;display:block;}
button{font:inherit;}

/* Header / Nav */
.site-header{ position:sticky; top:0; z-index:999; background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(250,250,252,0.94) 100%);
  border-bottom:1px solid #eee; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:12px 16px 6px; backdrop-filter:saturate(1.2) blur(4px); }
.mobile-toggle{display:none; position:absolute; right:12px; top:12px; border:1px solid #ddd; background:#fff; padding:8px 10px; border-radius:10px; cursor:pointer;}
.mobile-toggle:focus{outline:2px solid var(--mc-link);}
.site-branding{display:flex; align-items:center; gap:12px;}
.site-branding img{max-height:56px; width:auto;}
.site-title{font-family:'Montserrat',sans-serif;font-size:24px;letter-spacing:0.5px;margin-top:4px;}

/* Navigation with Icons */
.site-nav{width:100%; display:flex; justify-content:center; margin-top:8px;}
.site-nav .menu{list-style:none; padding:0; margin:0; display:flex; gap:22px; position:relative;}
.site-nav .menu > li{position:relative;}
.site-nav .menu a{display:block; padding:10px 6px; font-weight:600; color:#333; position:relative; padding-left:26px;}
.site-nav .menu li:hover > a{color:var(--mc-link);}
.site-nav .menu li ul{ position:absolute; left:0; top:100%; min-width:200px; background:#fff; border:1px solid #eee; border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,.06); display:none; padding:8px 0; z-index:9999; }
.site-nav .menu li:hover > ul{display:block;}
.site-nav .menu li ul li a{padding:8px 12px; white-space:nowrap;}
.site-nav .menu a::before{content:""; position:absolute; left:6px; top:50%; transform:translateY(-50%); width:14px; height:14px; opacity:.85; background-repeat:no-repeat; background-size:contain;}
.site-nav .menu a[href*="/fuhrpark"]::before{ background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'><path d='M3 7h12v8H3z'/><path d='M15 10h3l3 3v2h-6z'/><circle cx='7' cy='17' r='2'/><circle cx='17' cy='17' r='2'/></svg>"); }
.site-nav .menu a[href*="/galerie"]::before{ background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'><rect x='3' y='3' width='7' height='7'/><rect x='14' y='3' width='7' height='7'/><rect x='3' y='14' width='7' height='7'/><rect x='14' y='14' width='7' height='7'/></svg>"); }
.site-nav .menu a[href*="/leistungen"]::before{ background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'><path d='M14.7 6.3a4 4 0 1 0 3 3l4-4-3-3-4 4z'/><path d='M2 22l7-7'/></svg>"); }
.site-nav .menu a[href*='/ueber-uns']::before, .site-nav .menu a[href*='/über-uns']::before{ background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'><circle cx='12' cy='7' r='3'/><path d='M5 21c0-4 3-7 7-7s7 3 7 7'/></svg>"); }
.site-nav .menu a[href*="/kontakt"]::before{ background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'><path d='M4 4h16v16H4z'/><path d='M4 6l8 7 8-7'/></svg>"); }
.site-nav .menu li:hover > a::before{ filter:brightness(0.2); }

/* Sections & cards */
.section{padding:40px 20px; max-width:1100px; margin:0 auto;}
.card-grid{display:flex; gap:18px; flex-wrap:wrap;}
.card{flex:1; min-width:260px; background:#fff; border:1px solid #eee; padding:18px; border-radius:12px; box-shadow:0 2px 8px rgba(0,0,0,0.04);}
.cta{background:#f5f5f5; color:#111; border:1px solid #e0e0e0; box-shadow:0 2px 4px rgba(0,0,0,0.08); display:inline-block; padding:12px 18px; border-radius:10px; margin-top:12px; font-weight:700; transition:all .2s ease-in-out; text-decoration:none;}
.cta:hover{background:#e9e9e9; box-shadow:0 3px 8px rgba(0,0,0,0.10);}

/* Hero */
.hero{position:relative; color:#fff; min-height:460px; display:flex; align-items:center;}
.hero .overlay{background: linear-gradient(90deg, rgba(34,34,34,0.65), rgba(34,34,34,0.35)); position:absolute; inset:0;}
.hero .content{position:relative; padding:40px; max-width:1100px; margin:0 auto;}
.content h1{font-family:'Montserrat',sans-serif;font-size:40px; line-height:1.2; margin:0 0 12px;}

/* Hero rotator */
.mc-hero-rotator{position:absolute; inset:0; z-index:0;}
.mc-hero-rotator img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity 2500ms ease-in-out;}
.mc-hero-rotator img.active{opacity:1;}
.hero .overlay, .hero .content{position:relative; z-index:1;}
.mc-dots{position:absolute; left:0; right:0; bottom:18px; z-index:2; display:flex; gap:8px; justify-content:center; align-items:center;}
.mc-dot{width:10px; height:10px; border-radius:50%; border:1px solid rgba(255,255,255,.8); background:rgba(255,255,255,.35); cursor:pointer;}
.mc-dot.active{background:#fff;}
@media (max-width:640px){ .mc-dot{width:8px; height:8px;} }

/* Footer */
.site-footer{background:#111;color:#ddd;padding:24px 20px;text-align:center;}
.site-footer a{color:#ddd;}

/* Forms */
.contact-form input, .contact-form textarea{width:100%; padding:12px; margin:10px 0; border:1px solid #ddd; border-radius:10px;}
.newsletter{display:flex; gap:8px; max-width:520px;}
.newsletter input{flex:1;}

/* Gallery slider */
.mc-slider{position:relative; overflow:hidden; border-radius:12px; border:1px solid #eee; box-shadow:0 4px 16px rgba(0,0,0,.05); min-height:280px;}
.mc-slide{position:absolute; inset:0; opacity:0; transition:opacity 2500ms ease-in-out;}
.mc-slide.active{opacity:1;}
.mc-slider .mc-slide:first-child{opacity:1}
.mc-slider .mc-prev, .mc-slider .mc-next{ position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.95); border:1px solid #ddd; padding:10px 14px; border-radius:12px; cursor:pointer; user-select:none; }
.mc-prev{left:10px;} .mc-next{ right:10px;}
.mc-slider img{width:100%; height:100%; object-fit:cover;}
.mc-thumbs{display:flex; gap:8px; margin-top:10px; flex-wrap:wrap;}
.mc-thumbs img{height:64px; width:auto; border:2px solid transparent; border-radius:10px; cursor:pointer;}
.mc-thumbs img.active{border-color:var(--mc-link);}

/* Lightbox */
.mc-lightbox{position:fixed; inset:0; background:rgba(0,0,0,.92); display:none; align-items:center; justify-content:center; z-index:10000;}
.mc-lightbox.open{display:flex;}
.mc-lightbox img{max-width:92vw; max-height:88vh; border-radius:8px; box-shadow:0 10px 40px rgba(0,0,0,.5);}
.mc-lightbox .mc-close, .mc-lightbox .mc-lprev, .mc-lightbox .mc-lnext{
  position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.3);
  color:#fff; padding:12px 14px; border-radius:12px; cursor:pointer; user-select:none;
}
.mc-lightbox .mc-close{ top:24px; right:24px; transform:none; }
.mc-lightbox .mc-lprev{ left:24px; }
.mc-lightbox .mc-lnext{ right:24px; }
.mc-lightbox .mc-counter{ position:absolute; bottom:18px; left:50%; transform:translateX(-50%); color:#fff; background:rgba(0,0,0,.35); padding:6px 10px; border-radius:999px; font-size:13px;}

/* CF7 acceptance/checkbox – dezent */
.wpcf7-form .wpcf7-acceptance, .wpcf7-form .wpcf7-checkbox { margin: 10px 0 6px; }
.wpcf7-form .wpcf7-acceptance label, .wpcf7-form .wpcf7-list-item-label { display:flex; align-items:flex-start; gap:10px; line-height:1.4; }
.wpcf7-form input[type="checkbox"]{ width:18px; height:18px; border:1px solid #ccc; border-radius:4px; appearance:auto; }
.wpcf7-response-output{ margin-top:12px; padding:10px 12px; border-radius:10px; border:1px solid #e6e6e6; background:#f9fafb; }

/* Spec cards */
.card.spec{position:relative; overflow:hidden; border:1px solid #e8e8ec; background:#fff; border-radius:14px; box-shadow:0 8px 24px rgba(0,0,0,.04);}
.card.spec::before{content:""; position:absolute; top:0; left:0; right:0; height:6px; background:var(--mc-accent);}
.card.spec .spec-head{display:flex; align-items:center; gap:12px; margin-top:6px; margin-bottom:8px;}
.card.spec .spec-icon{width:42px; height:42px; border-radius:12px; border:1px solid #eee; background:linear-gradient(180deg,#fff,#f7f7fb); display:flex; align-items:center; justify-content:center;}
.card.spec .spec-icon svg{width:22px; height:22px; opacity:.9;}
.card.spec h3{margin:6px 0 2px; font-size:18px;}
.card.spec .badge{display:inline-block; font-size:12px; padding:4px 8px; border-radius:999px; border:1px solid #eee; background:#fafbff; color:#333;}

/* Spec table */
.spec-table{width:100%; border-collapse:separate; border-spacing:0; margin-top:8px; overflow:hidden; border:1px solid #eee; border-radius:12px;}
.spec-table thead th{background:#f6f7fb; text-align:left; font-weight:700; padding:10px 12px; border-bottom:1px solid #eee; font-size:14px;}
.spec-table tbody td{padding:10px 12px; border-top:1px solid #f2f2f4; font-size:14px;}
.spec-table tbody tr:nth-child(even){background:#fafbfe;}
.spec-note{font-size:12px; color:#666; margin-top:8px;}

/* Breakpoints */
@media (max-width:700px){
  .spec-table thead{display:none;}
  .spec-table, .spec-table tbody, .spec-table tr, .spec-table td{display:block; width:100%;}
  .spec-table tr{border-bottom:1px solid #eee; padding:6px 0;}
  .spec-table td{border:none; padding:8px 10px;}
  .spec-table td[data-label]::before{content:attr(data-label) ": "; font-weight:700; margin-right:6px; color:#333;}
}
@media (max-width:1024px){
  .content h1{font-size:34px;}
  .card{min-width:220px;}
}
@media (max-width:900px){
  .mobile-toggle{display:block;}
  .site-nav{justify-content:stretch;}
  .site-nav .menu{flex-direction:column; gap:0; background:#fff; border:1px solid #eee; border-radius:12px; padding:6px; margin:8px 12px; display:none;}
  .site-nav.open .menu{display:block;}
  .site-nav .menu a{padding:12px 10px;}
  .site-nav .menu li ul{position:static; display:none; box-shadow:none; border:none; padding-left:8px; margin:0 0 6px 8px;}
  .site-nav .menu li.open > ul{display:block;}
}
@media (max-width:640px){
  .site-branding img{max-height:44px;}
  .hero{min-height:360px;}
  .content h1{font-size:28px;}
  .section{padding:28px 16px;}
  .newsletter{flex-direction:column;}
}

/* Impressum icon in main nav */
.site-nav .menu a[href*="/impressum"]::before{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'><rect x='5' y='3' width='14' height='18'/><path d='M8 7h8M8 11h8M8 15h5'/></svg>");
}

/* Chevron indicator for items that have a submenu */
.site-nav .menu > li.menu-item-has-children > a{
  padding-right:22px; /* space for chevron */
}
.site-nav .menu > li.menu-item-has-children > a::after{
  content:"";
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%) rotate(0deg);
  width:10px;
  height:10px;
  opacity:.7;
  background-repeat:no-repeat;
  background-size:contain;
  transition:transform .2s ease, opacity .2s ease;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");
}
/* Rotate on hover (desktop) */
.site-nav .menu > li.menu-item-has-children:hover > a::after{
  transform:translateY(-50%) rotate(180deg);
  opacity:.9;
}
/* Mobile: rotate when opened */
@media (max-width:900px){
  .site-nav .menu > li.menu-item-has-children.open > a::after{
    transform:translateY(-50%) rotate(180deg);
  }
}


/* v1.3.33 — Dropdown visual, overlap & polish + hover delay support */
@keyframes mcDropdownFade { 
  from { opacity: 0; transform: translateY(4px); } 
  to   { opacity: 1; transform: translateY(0); } 
}

/* Stacking context on menu parents */
.site-nav .menu > li,
.main-navigation .menu > li { position: relative; }

/* Submenu container */
.site-nav .menu li ul,
.main-navigation ul ul {
  background: rgba(255,255,255,0.92);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  border-radius: 10px;
  box-shadow: 0 8px 22px rgba(0,0,0,0.10);
  padding: 8px 0;
  margin-top: 6px;
  z-index: 9999;
  position: absolute;
  top: calc(100% + 2px);
  animation: mcDropdownFade .18s ease;
}

/* Items */
.site-nav .menu li ul li,
.main-navigation ul ul li {
  padding: 6px 20px;
  min-width: 180px;
  display: block;
}

/* Links */
.site-nav .menu li ul li > a,
.main-navigation ul ul li > a {
  color: #222;
  text-decoration: none;
  display: block;
  font-weight: 500;
  line-height: 1.25;
  border-radius: 6px;
  transition: background .2s ease, color .2s ease, transform .12s ease;
  padding: 8px 10px;
}

/* Hover: subtle blue gradient */
.site-nav .menu li ul li > a:hover,
.main-navigation ul ul li > a:hover {
  color: #0a5cc3;
  background: linear-gradient(180deg, rgba(240,246,255,0.9), rgba(232,242,255,0.9));
  transform: translateY(-1px);
}

/* Chevron/icon must not overlay submenu */
.site-nav .menu > li.menu-item-has-children > a::after,
.main-navigation .menu-item-has-children > a::after {
  z-index: 1;
  position: relative;
}

/* Hover-delay support: ensure .hover-open acts like :hover */
.site-nav .menu > li.hover-open > ul,
.main-navigation .menu > li.hover-open > ul {
  display: block;
  visibility: visible;
  opacity: 1;
}


/* v1.3.34 — Dropdown icon overlay fix + Mobile nav polish */

/* --- Dropdown: endgültig keine Überlagerung --- */
.site-nav .menu li ul,
.main-navigation ul ul {
  overflow: hidden; /* clippt Eltern-Icons/Pseudoelemente */
}

/* Icons/Pseudoelemente im Submenü ausblenden */
.site-nav .menu li ul li > a::before,
.main-navigation ul ul li > a::before {
  content: none !important;
  display: none !important;
}
.site-nav .menu li ul svg,
.main-navigation ul ul svg,
.site-nav .menu li ul img.icon,
.main-navigation ul ul img.icon {
  display: none !important;
}

/* etwas mehr linkes Padding für schöne Ausrichtung */
.site-nav .menu li ul li > a,
.main-navigation ul ul li > a {
  padding-left: 14px;
}

/* --- Mobile Menü Polish (Burger) --- */
@media (max-width: 980px) {
  .mobile-nav-open .site-nav,
  .mobile-nav-open .main-navigation {
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
  }

  .mobile-menu,
  .main-navigation .menu {
    background: rgba(255,255,255,0.96);
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(0,0,0,0.12);
    padding: 10px 8px;
  }

  .mobile-menu li > a,
  .main-navigation .menu > li > a {
    padding: 14px 14px;
    border-radius: 8px;
  }

  .mobile-menu li + li > a,
  .main-navigation .menu > li + li > a {
    border-top: 1px solid rgba(0,0,0,0.06);
  }

  .mobile-menu,
  .main-navigation .menu {
    transform: translateY(6px);
    opacity: 0;
    transition: transform .18s ease, opacity .18s ease;
  }
  .mobile-nav-open .mobile-menu,
  .mobile-nav-open .main-navigation .menu {
    transform: translateY(0);
    opacity: 1;
  }
}


/* v1.3.35 — Dropdown stability & icons in submenu */
/* 1) Remove gap to prevent premature close */
.site-nav .menu li ul,
.main-navigation ul ul {
  margin-top: 0 !important;
  top: 100% !important;
}

/* 2) Restore icons in submenu & align nicely */
.site-nav .menu li ul li > a::before,
.main-navigation ul ul li > a::before {
  content: inherit !important;
  display: inline-block !important;
  margin-right: 8px;
  position: relative;
  top: 1px;
}
.site-nav .menu li ul svg,
.main-navigation ul ul svg {
  display: inline-block !important;
  width: 1em; height: 1em;
  margin-right: 8px;
  vertical-align: -0.15em;
}
.site-nav .menu li ul li > a .icon,
.main-navigation ul ul li > a .icon {
  display: inline-block !important;
}

/* 3) Slightly tighter padding after icon restore */
.site-nav .menu li ul li > a,
.main-navigation ul ul li > a {
  padding-left: 12px !important;
}


/* v1.3.39 — Dropdown harmonization (desktop & mobile), darker hover color, chevron rotation */

/* Variables */
:root {
  --mc-dd-bg: #fff;
  --mc-dd-radius: 12px;
  --mc-dd-border: 1px solid rgba(0,0,0,.06);
  --mc-dd-shadow: 0 12px 28px rgba(0,0,0,.14);
  --mc-dd-hover: #0a58b5;
}

/* Desktop dropdown */
.main-navigation .menu > li { position: relative; }
.main-navigation ul ul {
  position: absolute;
  left: 0;
  top: calc(100% + 6px);
  background: var(--mc-dd-bg);
  border: var(--mc-dd-border);
  border-radius: var(--mc-dd-radius);
  box-shadow: var(--mc-dd-shadow);
  padding: 6px;
  min-width: 220px;
  z-index: 9999;
}
.main-navigation ul ul li > a {
  display: block;
  font-size: 16px;
  line-height: 1.35;
  padding: 10px 14px 10px 18px;
  border-radius: 8px;
  transition: background .18s ease, color .18s ease;
}
.main-navigation ul ul li > a:hover {
  color: var(--mc-dd-hover);
  background: linear-gradient(180deg, rgba(240,246,255,.9), rgba(232,242,255,.9));
}

/* Icons consistent in main & sub menus */
.main-navigation .menu a .icon { 
  width: 1.05em; height: 1.05em; 
  margin-right: 10px; vertical-align: -0.18em; 
  fill: currentColor; flex: 0 0 auto; display: inline-block;
}
.main-navigation ul ul li > a .icon { 
  width: 1em; height: 1em; margin-right: 10px; vertical-align: -0.18em;
}

/* Mobile: submenu as part of panel */
@media (max-width: 980px) {
  body.mobile-nav-open { overflow: hidden; }

  .main-navigation .menu li ul {
    position: static !important;
    background: #fff !important;
    box-shadow: none !important;
    border: var(--mc-dd-border) !important;
    border-radius: 10px !important;
    padding: 0 !important;
    margin: 6px 6px 0 6px !important;
    overflow: hidden;
  }
  .main-navigation .menu li ul li > a {
    font-size: 17px;
    padding: 12px 14px 12px 42px;
    border-radius: 0;
  }

  .main-navigation .menu > li > a {
    font-size: 18px;
    padding: 14px 14px;
    border-radius: 10px;
  }
  .main-navigation .menu > li + li > a {
    border-top: 1px solid rgba(0,0,0,.06);
  }
}

/* Chevron arrow */
.main-navigation .menu > li.menu-item-has-children > a::after {
  content: '';
  display: inline-block;
  width: .55em; height: .55em;
  margin-left: .55em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  transition: transform .18s ease;
  vertical-align: .1em;
}
.main-navigation .menu > li.menu-item-has-children.hover-open > a::after,
.main-navigation .menu > li.menu-item-has-children.submenu-open > a::after {
  transform: rotate(135deg);
}

/* Slightly darker hover/active color */
.main-navigation .menu a:hover,
.main-navigation .menu .current-menu-item > a {
  color: var(--mc-dd-hover);
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  .main-navigation ul ul li > a { transition: none; }
}

/* v1.3.40 — Customizer option for rounded CF7 fields (default ON) */


/* v1.3.41 — Galerie-Icon + harmonisiertes Dropdown */

/* Desktop dropdown */
.main-navigation .menu > li { position: relative; }
.main-navigation ul ul {
  position: absolute;
  left: 0;
  top: calc(100% + 8px);
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 12px;
  box-shadow: 0 14px 32px rgba(0,0,0,.14);
  padding: 8px;
  min-width: 220px;
  z-index: 9999;
  animation: mcFadeY .18s ease;
}
@keyframes mcFadeY{
  from{opacity:0; transform:translateY(4px)}
  to{opacity:1; transform:translateY(0)}
}

/* Submenu links */
.main-navigation ul ul li > a{
  display: block;
  font-size: 16px;
  line-height: 1.35;
  padding: 10px 14px 10px 34px; /* room for icon */
  border-radius: 8px;
  transition: background .18s ease, color .18s ease, transform .12s ease;
}
.main-navigation ul ul li > a:hover{
  color:#0a58b5;
  background:linear-gradient(180deg, rgba(240,246,255,.9), rgba(232,242,255,.9));
  transform: translateY(-1px);
}

/* CSS-only Gallery icon (matches /galerie in href) */
.main-navigation ul ul li > a[href*="/galerie"]::before,
.main-navigation ul ul li > a[href*="?galerie"]::before,
.main-navigation ul ul li > a[href$="/galerie/"]::before{
  content:"";
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  width:16px; height:16px; opacity:.9; background: currentColor;
  -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 4h7v7H4V4zm9 0h7v7h-7V4zM4 13h7v7H4v-7zm9 7v-7h7v7h-7z"/></svg>') no-repeat center/contain;
          mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 4h7v7H4V4zm9 0h7v7h-7V4zM4 13h7v7H4v-7zm9 7v-7h7v7h-7z"/></svg>') no-repeat center/contain;
}

/* Mobile: dropdown integrated into panel */
@media (max-width: 980px){
  .main-navigation .menu li ul{
    position: static !important;
    background:#fff !important;
    box-shadow:none !important;
    border:1px solid rgba(0,0,0,.06) !important;
    border-radius:10px !important;
    padding:0 !important;
    margin:6px 6px 0 6px !important;
    overflow:hidden;
  }
  .main-navigation .menu li ul li > a{
    font-size:17px;
    padding:12px 14px 12px 42px;
    border-radius:0;
  }
  .main-navigation .menu li ul li > a[href*="/galerie"]::before,
  .main-navigation .menu li ul li > a[href*="?galerie"]::before,
  .main-navigation .menu li ul li > a[href$="/galerie/"]::before{
    width:18px; height:18px; left:16px;
  }
}


/* v1.3.42 — Unified navigation fixes */

/* Icons always visible and aligned */
.main-navigation .menu a .icon,
.site-nav .menu a .icon {
  display: inline-block !important;
  width: 1.05em; height: 1.05em;
  margin-right: 10px;
  vertical-align: -0.18em;
  fill: currentColor;
}
@media (max-width:980px){
  .main-navigation .menu a .icon,
  .site-nav .menu a .icon { width: 1.15em; height: 1.15em; margin-right: 12px; }
}

/* Desktop dropdown polish & zero-gap */
.main-navigation .menu > li { position: relative; }
.main-navigation ul ul {
  position: absolute; left: 0; top: 100%;
  margin-top: 8px; /* visual space but no pointer gap (we keep it contiguous via JS class) */
  background:#fff; border:1px solid rgba(0,0,0,.06);
  border-radius:12px; box-shadow:0 14px 32px rgba(0,0,0,.14);
  padding:8px; min-width:220px; z-index:9999;
  animation: mcFadeY .18s ease;
}
.main-navigation ul ul li > a {
  display:block; font-size:16px; line-height:1.35;
  padding:10px 14px 10px 34px; border-radius:8px;
  transition: background .18s ease, color .18s ease, transform .12s ease;
}
.main-navigation ul ul li > a:hover {
  color:#0a58b5;
  background:linear-gradient(180deg, rgba(240,246,255,.9), rgba(232,242,255,.9));
  transform: translateY(-1px);
}
@keyframes mcFadeY{ from{opacity:0; transform:translateY(4px)} to{opacity:1; transform:translateY(0)} }

/* Chevron arrow on parents */
.main-navigation .menu > li.menu-item-has-children > a::after {
  content: ''; display:inline-block; width:.55em; height:.55em; margin-left:.55em;
  border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform: rotate(-45deg); transition: transform .18s ease; vertical-align:.1em;
}
.main-navigation .menu > li.menu-item-has-children.hover-open > a::after,
.main-navigation .menu > li.menu-item-has-children.submenu-open > a::after {
  transform: rotate(135deg);
}

/* Gallery icon (CSS mask) */
.main-navigation ul ul li > a[href*="/galerie"]::before,
.main-navigation ul ul li > a[href*="?galerie"]::before,
.main-navigation ul ul li > a[href$="/galerie/"]::before{
  content:""; position:absolute; left:12px; top:50%; transform:translateY(-50%);
  width:16px; height:16px; opacity:.9; background: currentColor;
  -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 4h7v7H4V4zm9 0h7v7h-7V4zM4 13h7v7H4v-7zm9 7v-7h7v7h-7z"/></svg>') no-repeat center/contain;
          mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 4h7v7H4V4zm9 0h7v7h-7V4zM4 13h7v7H4v-7zm9 7v-7h7v7h-7z"/></svg>') no-repeat center/contain;
}

/* Mobile panel & integrated submenu */
@media (max-width:980px){
  body.mobile-nav-open{ overflow:hidden; }
  .main-navigation, .site-nav { position: relative; }
  .main-navigation .menu, .site-nav .menu {
    position:absolute; top: calc(100% + 10px); right:12px;
    width:min(86vw, 340px); border-radius:14px; background:#fff;
    box-shadow:0 16px 38px rgba(0,0,0,.16); padding:10px 6px; z-index:9999; overflow:hidden;
    transform: translateY(6px); opacity:0; transition: transform .18s ease, opacity .18s ease;
  }
  body.mobile-nav-open .main-navigation .menu,
  body.mobile-nav-open .site-nav .menu { transform: none; opacity:1; }
  .main-navigation .menu > li > a, .site-nav .menu > li > a {
    padding:14px 14px; font-size:18px; line-height:1.35; border-radius:10px;
  }
  .main-navigation .menu > li + li > a { border-top:1px solid rgba(0,0,0,.06); }
  .main-navigation .menu li ul {
    position: static !important; background:#fff !important; box-shadow:none !important;
    border:1px solid rgba(0,0,0,.06) !important; border-radius:10px !important;
    padding:0 !important; margin:6px 6px 0 6px !important; overflow:hidden;
  }
  .main-navigation .menu li ul li > a { font-size:17px; padding:12px 14px 12px 42px; border-radius:0; }
  .main-navigation .menu li ul li > a[href*="/galerie"]::before { width:18px; height:18px; left:16px; }
}

/* v1.3.43 — ensure menu shows when nav has .is-open (extra safety) */
@media (max-width:980px){
  .main-navigation .menu, .site-nav .menu {
    pointer-events: none;
  }
  body.mobile-nav-open .main-navigation .menu,
  body.mobile-nav-open .site-nav .menu,
  .main-navigation.is-open .menu,
  .site-nav.is-open .menu {
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto;
  }
}


/* v1.3.44 — Mobile menu visual polish */

@media (max-width:980px){
  /* Backdrop overlay shown when nav open */
  #mc-nav-overlay{
    position: fixed; inset: 0; background: rgba(0,0,0,.25);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0; pointer-events: none; transition: opacity .18s ease;
    z-index: 9997;
  }
  body.mobile-nav-open #mc-nav-overlay{ opacity: 1; pointer-events: auto; }

  /* Panel aligned to burger (right), tidy spacing */
  .main-navigation, .site-nav { position: relative; }
  .main-navigation .menu, .site-nav .menu{
    position: absolute; right: 12px; top: calc(100% + 10px);
    width: min(86vw, 360px);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 20px 44px rgba(0,0,0,.18);
    padding: 8px;
    z-index: 9998;
  }

  /* Items */
  .main-navigation .menu > li > a, .site-nav .menu > li > a{
    display: flex; align-items: center; gap: 12px;
    padding: 14px 14px;
    font-size: 18px; line-height: 1.35;
    border-radius: 12px;
  }
  .main-navigation .menu > li + li > a{ border-top: 1px solid rgba(0,0,0,.06); }
  .main-navigation .menu a .icon, .site-nav .menu a .icon{ margin-right: 0; }

  /* Hover/active */
  .main-navigation .menu > li > a:active{ transform: translateY(1px); }
  .main-navigation .menu > li.current-menu-item > a{ background: rgba(10,92,195,.06); }

  /* Submenu as integrated card */
  .main-navigation .menu li ul{
    position: static !important;
    margin: 6px 6px 2px 6px !important;
    border: 1px solid rgba(0,0,0,.06) !important;
    border-radius: 12px !important;
    padding: 0 !important;
    overflow: hidden;
    box-shadow: none !important;
    background: #fff !important;
  }
  .main-navigation .menu li ul li > a{
    padding: 12px 14px 12px 46px;
    font-size: 17px;
    border-radius: 0;
  }

  /* Mobile chevron for parents */
  .main-navigation .menu > li.menu-item-has-children > a::after{
    content: '';
    margin-left: auto;
    width: .65em; height: .65em;
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
    transition: transform .18s ease;
  }
  .main-navigation .menu > li.menu-item-has-children.submenu-open > a::after{
    transform: rotate(135deg);
  }
}

/* Desktop minor: ensure icons baseline */
.main-navigation .menu a .icon{ vertical-align: -0.18em; }


/* v1.3.45 — Mobile overlay/blur & alignment hotfix */
@media (max-width:980px){
  /* Overlay below the menu, never affects panel */
  #mc-nav-overlay{ z-index:10000; }
  .main-navigation .menu, .site-nav .menu{
    z-index:10010; 
    background:#fff !important;
    -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
    isolation:isolate; /* create new stacking context; prevents bleed-through */
    right:12px !important; left:auto !important;
    will-change: transform, opacity;
  }
  /* Enforce icon visibility & spacing */
  .main-navigation .menu a .icon, .site-nav .menu a .icon{
    display:inline-block !important; margin-right:12px; width:1.15em; height:1.15em;
  }
  /* Slightly roomier item layout */
  .main-navigation .menu > li > a, .site-nav .menu > li > a{ padding:15px 16px; }
  .main-navigation .menu li ul li > a{ padding:13px 16px 13px 48px; }
}


/* v1.3.46 — Mobile menu crisp panel + typography polish */
@media (max-width:980px){
  /* Overlay under panel */
  #mc-nav-overlay{
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    z-index: 9990 !important;
    background: rgba(0,0,0,.28) !important;
  }
  /* Panel always on top, fixed under burger */
  .main-navigation{ position: relative; z-index: 10010 !important; }
  .main-navigation .menu, .site-nav .menu{
    position: fixed !important;
    top: 72px !important;         /* JS korrigiert dies bei Bedarf dynamisch */
    right: 12px !important; left: auto !important;
    z-index: 10020 !important;
    background: #fff !important;
    border-radius: 16px !important;
    box-shadow: 0 20px 44px rgba(0,0,0,.18) !important;
    isolation: isolate;
    will-change: transform, opacity;
    padding: 8px;
    min-width: min(86vw, 360px);
  }
  /* Items – readable, roomy, consistent */
  .main-navigation .menu > li > a, .site-nav .menu > li > a{
    display: flex; align-items: center; gap: 12px;
    padding: 15px 16px; border-radius: 12px;
    font-size: 18px; line-height: 1.35;
    letter-spacing: .2px;
  }
  .main-navigation .menu > li + li > a{
    border-top: 1px solid rgba(0,0,0,.06);
  }
  /* Icons stronger and aligned */
  .main-navigation .menu a .icon, .site-nav .menu a .icon{
    width: 1.15em; height: 1.15em; margin-right: 12px; display:inline-block !important;
    vertical-align: -0.16em;
  }
  /* Submenu card inside panel */
  .main-navigation .menu li ul{
    position: static !important; background:#fff !important;
    border: 1px solid rgba(0,0,0,.06) !important;
    border-radius: 12px !important;
    margin: 8px 6px 2px 6px !important;
    padding: 0 !important; overflow:hidden; box-shadow:none !important;
  }
  .main-navigation .menu li ul li > a{
    padding: 13px 16px 13px 48px; border-radius: 0; font-size: 17px;
  }
  /* Mobile chevron rotate when open */
  .main-navigation .menu > li.menu-item-has-children > a::after{
    content:''; margin-left:auto; width:.65em; height:.65em;
    border-right:2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: rotate(-45deg); transition: transform .18s ease;
  }
  .main-navigation .menu > li.menu-item-has-children.submenu-open > a::after{
    transform: rotate(135deg);
  }
}

/* Desktop: subtle typography tune */
.main-navigation .menu > li > a{ letter-spacing: .15px; }

/* v1.3.48 — Full navigation and layout optimization */
@media (max-width:980px){
  #mc-nav-overlay{
    z-index:9000 !important;
    background:rgba(0,0,0,.28)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .main-navigation{ position:relative; z-index:10040!important; }
  .main-navigation .menu, .site-nav .menu{
    position:fixed!important;
    top:72px!important; right:12px!important; left:auto!important;
    z-index:10050!important; background:#fff!important;
    border-radius:16px!important;
    box-shadow:0 20px 44px rgba(0,0,0,.18)!important;
    isolation:isolate; pointer-events:auto!important;
    min-width:min(86vw,360px); padding:8px;
  }
  .main-navigation .menu > li > a{
    display:flex; align-items:center; gap:12px;
    padding:15px 16px; border-radius:12px;
    font-size:18px; line-height:1.35;
  }
  .main-navigation .menu > li + li > a{ border-top:1px solid rgba(0,0,0,.06); }
  .main-navigation .menu a .icon{ width:1.15em; height:1.15em; margin-right:12px; display:inline-block!important; vertical-align:-0.16em; }
  .main-navigation .menu li ul{
    position:static!important; background:#fff!important; border:1px solid rgba(0,0,0,.06)!important;
    border-radius:12px!important; margin:8px 6px 2px 6px!important;
    padding:0!important; overflow:hidden; box-shadow:none!important;
  }
  .main-navigation .menu li ul li > a{
    padding:13px 16px 13px 48px; border-radius:0; font-size:17px;
  }
  .main-navigation .menu > li.menu-item-has-children > a::after{
    content:''; margin-left:auto; width:.65em; height:.65em;
    border-right:2px solid currentColor; border-bottom:2px solid currentColor;
    transform:rotate(-45deg); transition:transform .18s ease;
  }
  .main-navigation .menu > li.menu-item-has-children.submenu-open > a::after{
    transform:rotate(135deg);
  }
}

.main-navigation .menu > li{ position:relative; }
.main-navigation ul ul{
  position:absolute; left:0; top:100%; margin-top:8px; background:#fff;
  border:1px solid rgba(0,0,0,.06); border-radius:12px;
  box-shadow:0 14px 32px rgba(0,0,0,.14); padding:8px;
  min-width:220px; z-index:9999; animation:mcFadeY .18s ease;
}
.main-navigation ul ul li > a{
  display:block; font-size:16px; line-height:1.35;
  padding:10px 14px 10px 34px; border-radius:8px;
  transition:background .18s ease,color .18s ease,transform .12s ease;
}
.main-navigation ul ul li > a:hover{
  color:#0a58b5; background:linear-gradient(180deg,rgba(240,246,255,.9),rgba(232,242,255,.9)); transform:translateY(-1px);
}
@keyframes mcFadeY{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

.main-navigation ul ul li > a[href*="/galerie"]::before,
.main-navigation ul ul li > a[href*="?galerie"]::before,
.main-navigation ul ul li > a[href$="/galerie/"]::before{
  content:""; position:absolute; left:12px; top:50%; transform:translateY(-50%);
  width:16px; height:16px; opacity:.9; background:currentColor;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 4h7v7H4V4zm9 0h7v7h-7V4zM4 13h7v7H4v-7zm9 7v-7h7v7h-7z"/></svg>') no-repeat center/contain;
  mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 4h7v7H4V4zm9 0h7v7h-7V4zM4 13h7v7H4v-7zm9 7v-7h7v7h-7z"/></svg>') no-repeat center/contain;
}


/* v1.3.50 — robust mobile menu visibility */
@media (max-width:980px){
  .main-navigation [data-mc-open="true"],
  nav [data-mc-open="true"]{
    display: block !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
  }
}

/* v1.4.0 — Off‑canvas mobile navigation */
@media (max-width:980px){
  body.mc-offcanvas-open{ overflow:hidden; }
  #mc-nav-overlay{
    position: fixed; inset: 0; background: rgba(0,0,0,.32);
    opacity: 0; visibility: hidden; transition: opacity .18s ease, visibility .18s ease;
    z-index: 9000;
  }
  body.mc-offcanvas-open #mc-nav-overlay{ opacity: 1; visibility: visible; }
  .mc-offcanvas{
    position: fixed; top: 0; right: 0;
    width: min(86vw, 400px); height: 100vh;
    background: #fff; z-index: 10050;
    box-shadow: -18px 0 44px rgba(0,0,0,.18);
    transform: translateX(100%); transition: transform .22s ease;
    display: flex; flex-direction: column; border-top-left-radius: 16px; border-bottom-left-radius: 16px;
  }
  .mc-offcanvas.open{ transform: translateX(0); }
  .mc-offcanvas .mc-nav-inner{ padding: 10px 8px 18px 8px; overflow-y: auto; -webkit-overflow-scrolling: touch; height: 100%; }
  .mc-offcanvas ul{ list-style: none; margin: 0; padding: 0; }
  .mc-offcanvas > .mc-nav-inner > ul > li > a{
    display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 12px;
    font-size: 18px; line-height: 1.35;
  }
  .mc-offcanvas > .mc-nav-inner > ul > li + li > a{ border-top: 1px solid rgba(0,0,0,.06); }
  .mc-offcanvas a .icon{ width: 1.15em; height: 1.15em; margin-right: 12px; display: inline-block; }
  /* Submenu inside offcanvas */
  .mc-offcanvas .submenu-toggle{
    margin-left: auto; border: 0; background: transparent; width: 32px; height: 32px; border-radius: 8px;
  }
  .mc-offcanvas .submenu-toggle::before{
    content:''; display:inline-block; width:.65em; height:.65em; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform: rotate(-45deg);
    transition: transform .18s ease;
  }
  .mc-offcanvas li.expanded > .submenu-toggle::before{ transform: rotate(135deg); }
  .mc-offcanvas li > ul{ display: none; margin: 6px 6px 2px 6px; border: 1px solid rgba(0,0,0,.06); border-radius: 12px; padding: 6px; }
  .mc-offcanvas li.expanded > ul{ display: block; }
  .mc-offcanvas li > ul li > a{ padding: 12px 14px 12px 38px; display:block; border-radius: 8px; font-size: 17px; }
}
