/* ─────────────────────────────────────────────────────────────────────────
   PRAIME Models — globale Responsive-Regeln

   Die Seiten sind mit Inline-Styles gebaut; darum greifen die Regeln hier
   per Attribut-Selektor auf genau die Style-Werte zu, die im Markup
   vorkommen, und überschreiben sie mit `!important`.

   Ordnung ist wichtig: Alle Selektoren haben dieselbe Spezifität, also
   gewinnt die zuletzt notierte Regel. Deshalb sind die Padding-Regeln nach
   Länge sortiert — `padding:56px` steht vor `padding:56px 56px 80px`, damit
   der längere (genauere) Wert den kürzeren (Teilstring-)Treffer überschreibt.
   Seiteneigene <style>-Blöcke im <helmet> stehen nach diesem Stylesheet und
   gewinnen daher gegen die Regeln hier (z. B. Praime-Kontakt).

   Breakpoints:
     ≤1100px  Tablet — dreispaltige Raster werden zweispaltig
     ≤860px   Smartphone — alles einspaltig, schmalere Ränder, kleinere Typo
   ───────────────────────────────────────────────────────────────────────── */

/* ── Tablet ─────────────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(3, 1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ── Smartphone ─────────────────────────────────────────────────────────── */
@media (max-width: 860px) {

  /* Raster einspaltig. Ausgenommen: die Datentabelle der Sedcards
     (max-width:440px), die als zwei Spalten Label/Wert lesbar bleibt. */
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(3, 1fr)"],
  [style*="grid-template-columns:repeat(2,1fr)"],
  [style*="grid-template-columns:repeat(2, 1fr)"],
  [style*="grid-template-columns:1fr 1fr"]:not([style*="max-width:440px"]),
  [style*="grid-template-columns:0.9fr 1.1fr"] {
    grid-template-columns: 1fr !important;
  }

  /* Große Abstände zwischen Spalten/Zeilen zusammenziehen */
  [style*="gap:64px"] { gap: 32px !important; }
  [style*="gap:48px"] { gap: 28px !important; }

  /* Flex-Zeilen umbrechen lassen (ohne !important — ein explizit gesetztes
     flex-wrap im Inline-Style behält Vorrang) */
  [style*="display:flex"]:not([style*="flex-direction:column"]) { flex-wrap: wrap; }

  img { max-width: 100%; }

  /* ── Ränder: 56px Seitenrand → 20px, vertikale Abstände reduziert ────── */
  [style*="padding:48px"]              { padding: 28px 22px !important; }
  [style*="padding:56px"]              { padding: 36px 20px !important; }
  [style*="padding:0 40px"]            { padding: 0 !important; }
  [style*="padding:8px 32px"]          { padding: 8px 16px !important; }
  [style*="padding:24px 56px"]         { padding: 20px 20px !important; }
  [style*="padding:48px 56px"]         { padding: 32px 20px !important; }
  [style*="padding:72px 56px"]         { padding: 48px 20px !important; }
  [style*="padding:80px 56px"]         { padding: 52px 20px !important; }
  [style*="padding:88px 56px"]         { padding: 56px 20px !important; }
  [style*="padding:96px 56px"]         { padding: 60px 20px !important; }
  [style*="padding:120px 56px"]        { padding: 64px 20px !important; }
  [style*="padding:0 56px 24px"]       { padding: 0 20px 20px !important; }
  [style*="padding:0 56px 40px"]       { padding: 0 20px 28px !important; }
  [style*="padding:0 56px 80px"]       { padding: 0 20px 52px !important; }
  [style*="padding:0 56px 88px"]       { padding: 0 20px 56px !important; }
  [style*="padding:0 56px 96px"]       { padding: 0 20px 60px !important; }
  [style*="padding:14px 56px 0"]       { padding: 14px 20px 0 !important; }
  [style*="padding:24px 56px 0"]       { padding: 20px 20px 0 !important; }
  [style*="padding:40px 56px 0"]       { padding: 28px 20px 0 !important; }
  [style*="padding:48px 56px 0"]       { padding: 32px 20px 0 !important; }
  [style*="padding:56px 56px 0"]       { padding: 36px 20px 0 !important; }
  [style*="padding:64px 56px 0"]       { padding: 40px 20px 0 !important; }
  [style*="padding:88px 56px 0"]       { padding: 56px 20px 0 !important; }
  [style*="padding:40px 56px 88px"]    { padding: 28px 20px 56px !important; }
  [style*="padding:48px 56px 88px"]    { padding: 32px 20px 56px !important; }
  [style*="padding:56px 56px 80px"]    { padding: 36px 20px 52px !important; }
  [style*="padding:64px 56px 40px"]    { padding: 40px 20px 28px !important; }
  [style*="padding:64px 56px 56px"]    { padding: 40px 20px 36px !important; }
  [style*="padding:64px 56px 88px"]    { padding: 40px 20px 56px !important; }
  [style*="padding:72px 56px 96px"]    { padding: 48px 20px 60px !important; }
  [style*="padding:88px 56px 56px"]    { padding: 56px 20px 36px !important; }
  [style*="padding:96px 56px 64px"]    { padding: 60px 20px 40px !important; }

  /* Spaltentrenner (Startseite): senkrechte Linie wird zur Trennlinie
     zwischen den gestapelten Karten */
  [style*="border-right:1px solid rgba(43,38,32,0.1)"] {
    border-right: 0 !important;
    border-bottom: 1px solid rgba(43,38,32,0.1) !important;
    padding: 0 0 24px !important;
  }

  /* ── Typografie: Display-Größen herunterskalieren ────────────────────── */
  [style*="font-size:88px"] { font-size: 40px !important; }
  [style*="font-size:72px"] { font-size: 36px !important; }
  [style*="font-size:64px"] { font-size: 34px !important; }
  [style*="font-size:56px"] { font-size: 32px !important; }
  [style*="font-size:52px"] { font-size: 30px !important; }
  [style*="font-size:48px"] { font-size: 30px !important; }
  [style*="font-size:45px"] { font-size: 28px !important; }
  [style*="font-size:44px"] { font-size: 28px !important; }
  [style*="font-size:40px"] { font-size: 28px !important; }
  [style*="font-size:38px"] { font-size: 26px !important; }
  [style*="font-size:36px"] { font-size: 26px !important; }
  [style*="font-size:34px"] { font-size: 25px !important; }
  [style*="font-size:32px"] { font-size: 24px !important; }
  [style*="font-size:30px"] { font-size: 23px !important; }
  [style*="font-size:28px"] { font-size: 22px !important; }
  [style*="font-size:27px"] { font-size: 21px !important; }
  [style*="font-size:26px"] { font-size: 21px !important; }
  [style*="font-size:24px"] { font-size: 20px !important; }
  [style*="font-size:22px"] { font-size: 19px !important; }

  /* Buttons/CTAs auf schmalen Displays nicht überstehen lassen */
  [style*="padding:15px 32px"],
  [style*="padding:15px 36px"] { padding: 14px 24px !important; }
}

/* ── Sehr schmale Displays ──────────────────────────────────────────────── */
@media (max-width: 400px) {
  [style*="letter-spacing:4px"] { letter-spacing: 2.5px !important; }
  [style*="white-space:nowrap"]:not(a[style*="font-size:17px"]) { white-space: normal !important; }
}
