/* Vollständig lesbare Texte auf schmalen Bildschirmen. */
@media (max-width: 900px) {
  body main,
  body main :is(section, article, div, figure, blockquote, ul, ol),
  body :is(header, footer, nav, dialog) > * {
    min-width: 0;
  }

  body :is(h1, h2, h3, h4, p, li, label, summary, figcaption, blockquote, a, button) {
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }
  body :is(h1, h2, h3, h4, p, li, label, summary, figcaption, blockquote) {
    hyphens: auto;
  }
  body :is(h1, h2, h3, h4, p, li, label, summary, figcaption, blockquote),
  body .no-word-break,
  body .event-intro .keep-together {
    white-space: normal !important;
  }

  /* Die erste Zeile bleibt auch auf kleinen Handys vollständig sichtbar. */
  body .hero .eyebrow {
    max-width: 100%;
    font-size: clamp(.9rem, 3.7vw, 1.25rem) !important;
    line-height: 1.3 !important;
    letter-spacing: .02em !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
  body .hero .eyebrow > span {
    flex: 0 0 18px;
    width: 18px;
  }
  body .hero h1 {
    max-width: 100%;
    font-size: clamp(1.9rem, 8.5vw, 2.8rem);
    line-height: 1.08;
  }

  /* Abschnittslabels dürfen bei langen deutschen Wörtern umbrechen. */
  body .kicker,
  body.about-page .kicker,
  body .wedding-kicker,
  body .event-kicker,
  body .privacy-eyebrow {
    max-width: 100%;
    font-size: clamp(1.15rem, 4.5vw, 1.45rem) !important;
    line-height: 1.25 !important;
    letter-spacing: .03em !important;
  }

  /* Alle vier Leistungen bleiben sichtbar, ohne seitliches Scrollen. */
  body .promise-track {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 20px;
    white-space: normal;
    overflow: visible;
  }
  body .promise-track > span {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: normal;
    line-height: 1.5;
  }
  body .promise-track > i { display: none; }

  body :is(.occasion-card, .wedding-card, .event-card) {
    min-width: 0;
    height: auto;
  }
  body :is(.occasion-card, .wedding-card, .event-card) h3 {
    max-width: 100%;
    overflow-wrap: anywhere;
  }
  body .event-card h3 { font-size: clamp(1.2rem, 4.8vw, 1.65rem); }
  body :is(.button, .mobile-cta a) {
    max-width: 100%;
    white-space: normal;
    text-align: center;
    padding-block: 12px;
    line-height: 1.4;
  }
  body :is(input, select, textarea) { min-width: 0; max-width: 100%; }
  body .faq-list summary { min-width: 0; }
  body .faq-list summary > span { flex-shrink: 0; }
  body :is(.footer-bottom, .wedding-footer-bottom, .event-footer-bottom) {
    flex-wrap: wrap;
    height: auto;
  }
  body :is(.footer-bottom, .wedding-footer-bottom, .event-footer-bottom) > * {
    min-width: 0;
    max-width: 100%;
  }
  body .privacy-header-inner { flex-wrap: wrap; }
  body .box { min-width: 0; max-width: 100%; }
}

@media (max-width: 380px) {
  body .promise-track { grid-template-columns: minmax(0, 1fr); }
}
