/* ---------- Mobile Drawer (Sibling von header, NICHT verschachtelt) ---------- */
.mobile-drawer {
  position: fixed;
  top: 0; right: 0;
  width: min(360px, 86vw);
  height: 100vh;
  background: var(--white);
  box-shadow: -12px 0 32px oklch(20% 0.02 235 / 0.18);
  transform: translateX(100%);
  transition: transform var(--transition-med);
  z-index: 900;
  padding: 6.5rem 2rem 2rem;
  overflow-y: auto;
  display: none;
}
.mobile-drawer.is-open { transform: translateX(0); }

.mobile-drawer ul {
  display: contents; /* echte Höhe statt items_wrap ohne <ul> */
}
.mobile-drawer .menu,
.mobile-drawer .menu .sub-menu {
  list-style: none;
  margin: 0 0 2rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.mobile-drawer li { list-style: none; }
.mobile-drawer .menu a {
  display: block;
  padding: 0.9rem 0.25rem;
  font-size: var(--step-1);
  font-weight: 500;
  color: var(--primary);
  text-decoration: none;
  border-bottom: 1px solid var(--border);
}
.mobile-drawer .menu .sub-menu {
  margin-bottom: 0;
  padding-left: 1rem;
}
.mobile-drawer .menu .sub-menu a { font-size: var(--step-0); color: var(--text-muted); }
.mobile-drawer .drawer-contact { display: flex; flex-direction: column; gap: 0.9rem; }

.drawer-overlay {
  position: fixed;
  inset: 0;
  background: oklch(20% 0.02 235 / 0.35);
  z-index: 850;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-med);
}
.drawer-overlay.is-open { opacity: 1; pointer-events: auto; }

@media (max-width: 900px) {
  .primary-nav > ul, .header-cta { display: none; }
  .burger { display: block; }
  .mobile-drawer, .drawer-overlay { display: block; }

  .section-head, .section-head--right { grid-column: 1 / -1; }
  .hero__inner { max-width: none; }

  .service-row, .service-row:nth-child(even) {
    grid-template-columns: 1fr;
  }
  .service-row__figure, .service-row:nth-child(even) .service-row__figure,
  .service-row__body, .service-row:nth-child(even) .service-row__body {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .card-list { grid-template-columns: repeat(2, 1fr); }

  .band { grid-template-columns: 1fr; text-align: left; }
  .band__text, .band__action { grid-column: 1 / -1; }
  .band__action { justify-content: flex-start; margin-top: 1rem; }

  .contact-teaser__info, .contact-teaser__map { grid-column: 1 / -1; }

  .page-content { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  .card-list { grid-template-columns: 1fr; }
  .slide { flex-basis: 92vw; }
  .slide:nth-child(even) { margin-top: 0; }
  .footer-brand, .footer-col { grid-column: 1 / -1; }
  h1 { font-size: clamp(2rem, 9vw, 2.6rem); }
}

/* Overflow-Schutz: geschlossene, transform-verschobene Drawer darf scrollWidth nicht vergrößern */
html, body { overflow-x: hidden; max-width: 100vw; }
