/**
 * Gemeinsame Mobile-Optimierung für Paket-Demos und Jinja-Templates (templates/*.html).
 * Nach demo-site-nav-index.css einbinden.
 */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  /* Sticky Demo-Leiste + Site-Nav: Ankerziele nicht unter der Chrome verstecken */
  scroll-padding-top: min(168px, max(96px, 24vw));
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  overflow-x: clip;
}

/* Demo-Leiste + client demo-site-nav gemeinsam oben haften lassen */
.bd-demo-stack {
  position: sticky;
  top: 0;
  z-index: 9999;
  align-self: flex-start;
}

main section[id] {
  scroll-margin-top: min(168px, max(96px, 24vw));
}

/* Safe Area (Notch, Home-Indicator) */
.bd-demo-inner {
  padding-left: max(10px, env(safe-area-inset-left, 0px));
  padding-right: max(10px, env(safe-area-inset-right, 0px));
}

.demo-site-nav-inner {
  padding-left: max(12px, env(safe-area-inset-left, 0px));
  padding-right: max(12px, env(safe-area-inset-right, 0px));
}

/* Demo-Leiste: kein Überlauf auf schmalen Geräten */
@media (max-width: 639px) {
  .bd-demo-inner {
    flex-wrap: wrap;
    row-gap: 8px;
    align-items: center;
  }

  .bd-demo-right {
    flex-wrap: wrap;
    justify-content: flex-end;
    row-gap: 8px;
    min-width: 0;
  }

  .bd-demo-toggle-btn {
    min-height: 40px;
    padding: 8px 12px;
    touch-action: manipulation;
  }

  .bd-demo-left {
    row-gap: 6px;
  }
}

/* Preis- und Menüzeilen: Zeilenumbruch statt horizontaler Scroll */
@media (max-width: 420px) {
  .price-list li,
  .preise-card li,
  .menu-list li {
    flex-wrap: wrap;
    align-items: flex-start;
    row-gap: 4px;
  }

  .price-list .amt,
  .preise-card .amt {
    width: 100%;
    text-align: right;
    margin-left: 0;
  }

  .menu-list li {
    justify-content: flex-start;
  }

  .menu-list .price {
    margin-left: auto;
  }

  .dish-card .meta {
    flex-wrap: wrap;
    align-items: flex-start;
  }
}

/* Lange Rufnummern */
.hours-strip .phone {
  overflow-wrap: anywhere;
}

/* Café: Hero-Bild nicht übermäßig hoch auf kurzen Viewports */
/* Restaurant: Hero-Innenabstand + H1 auf schmalen Screens */
@media (max-width: 639px) {
  .cf-hero-feature {
    max-height: min(280px, 46vh);
    max-height: min(280px, 46dvh);
  }

  section#hero.rt-hero .rt-hero-inner {
    padding: clamp(36px, 10vw, 56px) 16px max(
      env(safe-area-inset-bottom, 0px),
      clamp(44px, 11vh, 88px)
    );
  }

  .rt-hero h1 {
    font-size: clamp(30px, 9vw, 80px);
  }
}
