/**
 * Pflegeadler – Responsive Foundation A2.8
 *
 * Wird mit hoher WordPress-Priorität nach allen Seiten-Styles geladen.
 * Enthält ausschließlich globale Responsive-Grundregeln: sichere Container,
 * harmonisierte mobile Typografie, kontrollierte Wortumbrüche und 320/323px-
 * Robustheit. Die individuellen Seitendesigns bleiben unverändert.
 */

html,
body {
  max-width: 100%;
  overflow-x: clip;
}

img,
video,
iframe,
svg,
canvas {
  max-width: 100%;
  height: auto;
}

/* Flexible Layout-Kinder dürfen auf schmalen Viewports tatsächlich schrumpfen. */
:is(
  .pa-home-page,
  .svc-page,
  .pa-application-page,
  .pa-widerspruch-page,
  .pa-rejected-page,
  .pa-low-page,
  .pa-delay-page
) * {
  min-width: 0;
}

/* Headlines: keine automatischen oder willkürlichen Silbentrennungen. */
:where(h1, h2, h3, h4, h5, h6) {
  word-break: normal;
  overflow-wrap: normal;
  -webkit-hyphens: none;
  hyphens: none;
  text-wrap: balance;
}

/* Fließtext darf nur dann innerhalb sehr langer Wörter umbrechen, wenn es
   erforderlich ist, um horizontalen Overflow zu vermeiden. */
:where(p, li, dd, dt, figcaption, td, th) {
  overflow-wrap: break-word;
}

:where(button, summary, label, nav a, [role="button"]) {
  word-break: normal;
  overflow-wrap: normal;
  -webkit-hyphens: none;
  hyphens: none;
}

pre,
code {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

table {
  max-width: 100%;
}

@media (max-width: 767px) {
  /* Legacy-Container erhalten dieselbe optische Außenkante wie die neuen Seiten. */
  .container,
  .container-narrow,
  .container-medium,
  .container-wide,
  .header-inner {
    width: 100%;
    max-width: 100%;
    padding-right: calc(var(--pa-page-gutter-total) / 2);
    padding-left: calc(var(--pa-page-gutter-total) / 2);
  }

  /* Neue Pflegeadler-Seiten: 16px Rand je Seite bei Standard-Mobilbreiten. */
  .pa-home-page .pa-home-container,
  .svc-page .svc-container,
  .pa-application-page .pa-app-container,
  .pa-widerspruch-page .pa-container,
  .pa-rejected-page .pa-rj-container,
  .pa-delay-page .pa-delay-container {
    width: min(1180px, calc(100% - var(--pa-page-gutter-total)));
    max-width: 1180px;
    margin-right: auto;
    margin-left: auto;
    padding-right: 0;
    padding-left: 0;
  }

  /* Seitensections steuern ihre Innenabstände selbst; keine globale
     Section-Überschreibung mehr. */
  .pa-widerspruch-page > section,
  .pa-rejected-page > .pa-rj-page-shell > section,
  .pa-delay-page > section {
    padding-right: 0;
    padding-left: 0;
  }

  /* Einheitliche, fluide Hero-H1 zwischen 32 und 42px. */
  .pa-home-page .pa-home-hero h1,
  .svc-page .svc-hero h1,
  .pa-application-page .pa-app-hero h1,
  .pa-widerspruch-page .pa-hero h1,
  .pa-rejected-page .pa-rj-hero h1,
  .pa-low-page .pa-low-hero h1,
  .pa-delay-page .pa-delay-hero h1 {
    font-size: var(--pa-type-hero-mobile);
    line-height: 1.08;
    letter-spacing: -0.032em;
  }

  /* Abschnittsüberschriften mit ID bilden die gemeinsame H2-Hierarchie.
     Kleine Karten-/Hero-H2 ohne ID behalten ihre spezifische Größe. */
  :is(
    .pa-home-page,
    .svc-page,
    .pa-application-page,
    .pa-widerspruch-page,
    .pa-rejected-page,
    .pa-low-page,
    .pa-delay-page
  ) h2[id] {
    font-size: var(--pa-type-h2-mobile);
    line-height: 1.12;
    letter-spacing: -0.026em;
  }

  /* Kartenüberschriften bleiben klar unterhalb der H2-Ebene. */
  :is(
    .pa-home-page,
    .svc-page,
    .pa-application-page,
    .pa-widerspruch-page,
    .pa-rejected-page,
    .pa-low-page,
    .pa-delay-page
  ) h3:not([data-pa-preserve-size]) {
    font-size: var(--pa-type-h3-mobile);
    line-height: 1.24;
    letter-spacing: -0.015em;
  }

  /* Sonderfälle innerhalb von Hero-Karten sind bewusst kleiner als Section-H2. */
  .pa-low-page .pa-low-hero-intro > h2 {
    font-size: clamp(1.25rem, 5.9vw, 1.55rem);
    line-height: 1.24;
  }

  .pa-low-page .pa-low-hero-path h2,
  .svc-page .svc-hero-card h2,
  .pa-rejected-page .pa-rj-hero-visual h2,
  .pa-widerspruch-page .pa-lawyer-card h2,
  .pa-widerspruch-page .pa-hero-lawyer h2 {
    font-size: clamp(1.25rem, 5.6vw, 1.5rem);
    line-height: 1.2;
  }

  /* Hauptbuttons dürfen bei langen deutschen CTA-Texten an Leerzeichen
     umbrechen, niemals mitten im Wort. */
  .pa-home-page .pa-home-button,
  .svc-page .svc-btn,
  .pa-application-page .pa-app-button,
  .pa-widerspruch-page .pa-btn,
  .pa-rejected-page .pa-rj-button,
  .pa-delay-page .pa-delay-button,
  .btn,
  .btn-primary,
  .btn-secondary,
  .btn-login {
    max-width: 100%;
    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
    -webkit-hyphens: none;
    hyphens: none;
    text-align: center;
    text-wrap: balance;
  }

  .action-row,
  .flex.flex-col,
  .flex.flex-col.sm\:flex-row {
    flex-direction: column;
    align-items: center;
  }

  /* Alte Utility-Grids bleiben auf Mobilgeräten sicher einspaltig. */
  .grid.sm\:grid-cols-2,
  .grid.md\:grid-cols-2,
  .grid.md\:grid-cols-3,
  .grid.md\:grid-cols-4,
  .landing-hero-grid,
  .landing-content-grid,
  .info-grid,
  .scenario-grid,
  .trust-grid,
  .lawyer-grid,
  .split,
  .benefit-strip {
    grid-template-columns: minmax(0, 1fr);
  }

  /* Header/Artikel-Fallbacks aus der früheren Mobile-Schicht. */
  .header-actions .btn-primary {
    display: none;
  }

  .single-post-body > aside,
  .toc-box {
    display: none;
  }

  .single-post-body {
    gap: 0;
  }

  [aria-label="Vertrauensmerkmale"] {
    display: none;
  }

  .pill,
  .eyebrow {
    white-space: normal;
  }

  .table-wrap,
  .wp-block-table,
  table {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 640px) {
  /* Einheitlicher vertikaler Rhythmus der mobilen Hero-Familien. */
  .pa-home-page .pa-home-hero {
    padding: 44px 0 72px;
  }

  .svc-page .svc-hero {
    padding: 50px 0 82px;
  }

  .pa-application-page .pa-app-hero {
    padding: 44px 0 54px;
  }

  .pa-widerspruch-page .pa-hero,
  .pa-rejected-page .pa-rj-hero:not(.pa-low-hero) {
    padding: 48px 0 46px;
  }

  .pa-low-page .pa-low-hero {
    padding: 50px 0 52px;
  }

  .pa-delay-page .pa-delay-hero {
    padding: 50px 0 76px;
  }
}

/* 320/323px-Härtung: 14px Außenrand je Seite, kompaktere Headline-Skala und
   etwas ruhigere Innenabstände, ohne Wörter künstlich zu trennen. */
@media (max-width: 340px) {
  :root {
    /* 323 px: ca. 31 px; 340 px: ca. 32,6 px. Der Übergang zu 341 px
       bleibt dadurch nahezu sprunghaft-frei. */
    --pa-type-hero-mobile: clamp(1.9375rem, 9.6vw, 2.046875rem);
    --pa-type-h2-mobile: 1.75rem;
    --pa-type-h3-mobile: 1.125rem;
  }

  .container,
  .container-narrow,
  .container-medium,
  .container-wide,
  .header-inner {
    padding-right: calc(var(--pa-page-gutter-total-compact) / 2);
    padding-left: calc(var(--pa-page-gutter-total-compact) / 2);
  }

  .pa-home-page .pa-home-container,
  .svc-page .svc-container,
  .pa-application-page .pa-app-container,
  .pa-widerspruch-page .pa-container,
  .pa-rejected-page .pa-rj-container,
  .pa-delay-page .pa-delay-container {
    width: min(1180px, calc(100% - var(--pa-page-gutter-total-compact)));
  }

  .pa-home-page :is(.pa-home-situation-card, .pa-home-process-card, .pa-home-tool-card, .pa-home-final-card),
  .svc-page :is(.svc-service-card, .svc-tool-card, .svc-final-card, .svc-route-panel),
  .pa-application-page :is(.pa-app-info-card, .pa-app-focus-card, .pa-app-route-card, .pa-app-module-card, .pa-app-checklist-card, .pa-app-process-step, .pa-app-final-box),
  .pa-widerspruch-page :is(.pa-process-card, .timeline-step, .pa-compare-card, .cost-band-card, .pa-info-card, .pa-final-cta),
  .pa-rejected-page :is(.pa-rj-process-step, .pa-rj-step-card, .pa-rj-alternative-card, .pa-rj-cost-band-card, .pa-rj-final-cta-inner),
  .pa-delay-page :is(.pa-delay-situation-card, .pa-delay-guidance-card, .pa-delay-effect-card, .pa-delay-deadline-card, .pa-delay-final-card) {
    padding-right: 16px;
    padding-left: 16px;
  }

  .pa-home-page .pa-home-button,
  .svc-page .svc-btn,
  .pa-application-page .pa-app-button,
  .pa-widerspruch-page .pa-btn,
  .pa-rejected-page .pa-rj-button,
  .pa-delay-page .pa-delay-button {
    padding-right: 16px;
    padding-left: 16px;
  }

  .pa-home-page .pa-home-hero,
  .pa-application-page .pa-app-hero,
  .pa-widerspruch-page .pa-hero,
  .pa-rejected-page .pa-rj-hero:not(.pa-low-hero) {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .svc-page .svc-hero {
    padding-top: 44px;
    padding-bottom: 72px;
  }

  .pa-low-page .pa-low-hero {
    padding-top: 44px;
    padding-bottom: 46px;
  }

  .pa-delay-page .pa-delay-hero {
    padding-top: 44px;
    padding-bottom: 68px;
  }

  .pa-rejected-page .pa-rj-problem-visual {
    min-height: 350px;
    border-radius: 22px;
  }

  .pa-rejected-page .pa-rj-problem-image {
    height: 350px;
  }

  .pa-delay-page .pa-delay-status-panel {
    padding: 17px;
    border-radius: 21px;
  }

  .pa-delay-page .pa-delay-status-row {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 10px;
    padding: 11px;
  }

  .pa-delay-page .pa-delay-status-icon {
    width: 40px;
    height: 40px;
  }
}

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