/* -----------------------------------------------------------------------
   Einheitliches mobiles Burger-Menue fuer die Gutenberg-Nachbau-Seiten.
   Bei der Migration von Lovable (React) ging die Menue-Interaktivitaet
   verloren. Statt jede Seite einzeln zu flicken, baut sw-mobilenav.js EIN
   konsistentes Burger-Menue aus den vorhandenen Anker-Links der Navbar.
   Greift nur auf Mobil (< 1024px); Desktop bleibt unveraendert.

   Scope: der Gutenberg-Nachbau wrappt seinen Inhalt in .sw-page-<slug>
   (slug variiert pro Seite) -> Selektor [class*="sw-page-"] trifft jeden.
   ----------------------------------------------------------------------- */
.sw-burger{display:none;}

/* Logo-Markenname: im Gutenberg-Nachbau wird das Branding aufgeteilt in
   core/image (Icon) + core/paragraph (Markenname). Der Markenname war im
   Original ein inline-<span> (einzeilig); als <p>-Block im Flex-Logo wuerde er
   schrumpfen und umbrechen. nowrap + margin:0 halten ihn einzeilig und buendig
   zum Icon. Auf den Portal-Wrapper gescopt, damit fremde Header unberuehrt bleiben. */
[class*="sw-page-"] header p{white-space:nowrap;margin:0;}

@media (max-width:1023px){
  /* alte, migrationsbedingt kaputte mobile Menue-Elemente ausblenden. Markiert
     wird ausschliesslich von sw-mobilenav.js (data-sw-orig-mobile), daher ist
     der breite Selektor sicher. */
  [class*="sw-page-"] [data-sw-orig-mobile]{display:none !important;}
  /* Desktop-Varianten (lg:*) im Header auf Mobil/Tablet ausblenden — unser
     Burger ersetzt sie. Begrenzt auf <header>, damit Inhalt (hidden md:*)
     unberuehrt bleibt. */
  [class*="sw-page-"] :is(header,nav) [class*="lg:flex"],
  [class*="sw-page-"] :is(header,nav) [class*="lg:inline-flex"],
  [class*="sw-page-"] :is(header,nav) [class*="lg:block"]{display:none !important;}
  /* eigener Burger */
  .sw-burger{display:flex;flex-direction:column;justify-content:center;gap:5px;
    position:absolute;right:16px;top:50%;transform:translateY(-50%);
    width:44px;height:44px;padding:9px;background:transparent;border:0;cursor:pointer;z-index:60;}
  .sw-burger span{display:block;height:2px;width:100%;background:#1f2937;border-radius:2px;
    transition:transform .2s ease,opacity .2s ease;}
  .sw-menu-open .sw-burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .sw-menu-open .sw-burger span:nth-child(2){opacity:0;}
  .sw-menu-open .sw-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .sw-mobile-menu{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;
    border-top:1px solid #e5e7eb;box-shadow:0 10px 30px rgba(0,0,0,.10);z-index:55;}
  .sw-menu-open .sw-mobile-menu{display:block;}
  .sw-mobile-menu ul{list-style:none;margin:0;padding:10px 20px 18px;display:flex;flex-direction:column;}
  .sw-mobile-menu li{border-bottom:1px solid #f1f1f1;}
  .sw-mobile-menu li:last-child{border-bottom:0;}
  .sw-mobile-menu a{display:block;padding:14px 2px;color:#1f2937;text-decoration:none;
    font-size:16px;font-weight:500;}
  .sw-mobile-menu a:hover{opacity:.7;}
}
@media (min-width:1024px){ .sw-burger,.sw-mobile-menu{display:none !important;} }

/* Mobiler Horizontal-Overflow: einzelne migrierte Karten/Grid-Elemente ragen
   wenige Pixel ueber den Rand. min-width:0 erlaubt das Umbrechen; overflow-x:clip
   ist das Sicherheitsnetz (bricht — anders als overflow:hidden — keine
   sticky-Header). Nur auf Mobil; Desktop bleibt unveraendert. */
@media (max-width:1023px){
  [class*="sw-page-"] [class*="grid"] > *,
  [class*="sw-page-"] [class*="flex"] > *{min-width:0;}
  [class*="sw-page-"] img{max-width:100%;height:auto;}
  /* Sicherheitsnetz gegen horizontalen Rest-Overflow. overflow-x:clip kappt
     den Ueberhang OHNE Scroll-Container -> position:sticky/fixed bleiben
     funktionsfaehig (anders als overflow:hidden). */
  html, [class*="sw-page-"]{overflow-x:clip;}
}
@media (max-width:767px){
  /* Handy: Grids einspaltig + schrumpfbar -> verhindert, dass eine implizite
     "auto"-Spalte die max-content-Breite einer Karte annimmt (Horizontal-Scroll). */
  [class*="sw-page-"] [class*="grid"]{grid-template-columns:minmax(0,1fr) !important;}
}
