.pk {
  --pk-font: "Inter Variable", "Inter", "Noto Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --pk-font-arabic: "Noto Sans Arabic", "Noto Sans", Arial, sans-serif;

  --pk-card: #ffffff;
  --pk-card-bd: rgba(16, 41, 31, 0.09);
  --pk-card-shadow: 0 14px 40px rgba(16, 41, 31, 0.10);
  --pk-title: #10291f;
  --pk-sub: #0f6b50;
  --pk-text: #40564d;
  --pk-muted: #5b6b63;
  --pk-accent: #0f6b50;
  --pk-icon-bg: #dff6ea;
  --pk-tile: #f4fbf7;
  --pk-tile-bd: rgba(16, 41, 31, 0.08);
  --pk-tile-hover: #e8f7ef;
  --pk-chip: #ffffff;
  --pk-chip-bd: rgba(16, 41, 31, 0.12);
  --pk-main-bg: #e8faf0;
  --pk-main-bd: rgba(31, 138, 91, 0.25);
  --pk-amber-bg: #fff4e7;
  --pk-amber-bd: rgba(232, 135, 30, 0.25);
  --pk-amber-text: #7a4310;
  --pk-amber-strong: #e8871e;
  --pk-kicker: #cf7415;
  --pk-red-bg: #fff1f0;
  --pk-red-bd: rgba(198, 40, 40, 0.22);
  --pk-red-text: #7a1c1c;
  --pk-red-strong: #b42318;
  --pk-blue-bg: #eef3ff;
  --pk-blue-bd: rgba(40, 80, 180, 0.2);
  --pk-blue-text: #1e3a8a;
  --pk-blue-icon: #dbe6ff;
  --pk-button: #1f8a5b;
  --pk-button-hover: #187a4f;
  --pk-light-btn: #eef5f1;
  --pk-img-bg: #eef5f1;
  --pk-ban-bg: #111827;
  --pk-ban-text: #ffffff;

  width: 100%;
  margin: 24px auto;
  font-family: var(--pk-font);
  color: var(--pk-title);
  text-align: center;
  scroll-margin-top: 110px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Dark Mode */
html.luk-dark .pk {
  --pk-card: #10271f;
  --pk-card-bd: rgba(255, 255, 255, 0.09);
  --pk-card-shadow: 0 14px 40px rgba(0, 0, 0, 0.25);
  --pk-title: #f7fcf9;
  --pk-sub: #9be9bd;
  --pk-text: #cbdad2;
  --pk-muted: #a9bcb2;
  --pk-accent: #6fe0a8;
  --pk-icon-bg: #173027;
  --pk-tile: #15372a;
  --pk-tile-bd: rgba(169, 240, 202, 0.12);
  --pk-tile-hover: #194432;
  --pk-chip: #10271f;
  --pk-chip-bd: rgba(255, 255, 255, 0.12);
  --pk-main-bg: #17402f;
  --pk-main-bd: rgba(111, 224, 168, 0.3);
  --pk-amber-bg: #3d2d19;
  --pk-amber-bd: rgba(255, 199, 125, 0.25);
  --pk-amber-text: #ffe2bd;
  --pk-amber-strong: #ffc77d;
  --pk-kicker: #ffc77d;
  --pk-red-bg: #3a1c20;
  --pk-red-bd: rgba(255, 140, 150, 0.2);
  --pk-red-text: #ffc2c8;
  --pk-red-strong: #ff9aa5;
  --pk-blue-bg: #1b2540;
  --pk-blue-bd: rgba(140, 170, 255, 0.2);
  --pk-blue-text: #c7d6ff;
  --pk-blue-icon: #26345a;
  --pk-button: #23a068;
  --pk-button-hover: #1d8b5a;
  --pk-light-btn: #173027;
  --pk-img-bg: #173027;
  --pk-ban-bg: #f7fcf9;
  --pk-ban-text: #10291f;
}

/* Grundlayout */
.pk,
.pk *,
.pk *::before,
.pk *::after {
  box-sizing: border-box;
}

.pk * {
  font-family: inherit;
  text-align: center;
}

.pk svg {
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pk-card {
  width: calc(100% - 24px);
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(22px, 4vw, 42px);
  border: 1px solid var(--pk-card-bd);
  border-radius: 28px;
  background: var(--pk-card);
  box-shadow: var(--pk-card-shadow);
  color: var(--pk-title);
}

/* Kopf */
.pk-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}

.pk-ico {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 18px;
  background: var(--pk-icon-bg);
  color: var(--pk-accent);
}

.pk-ico svg {
  width: 26px;
  height: 26px;
}

.pk-ico.is-red {
  background: var(--pk-red-bg);
  color: var(--pk-red-strong);
}

.pk-ico.is-flag {
  background: var(--pk-tile);
}

.pk-kicker {
  display: block;
  color: var(--pk-kicker);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.pk h2 {
  margin: 2px 0 0;
  padding: 0;
  color: var(--pk-title) !important;
  font-size: clamp(22px, 3.4vw, 30px);
  font-weight: 850;
  line-height: 1.2;
}

.pk-intro {
  max-width: 480px;
  margin: 6px auto 0;
  color: var(--pk-text) !important;
  font-size: 15px;
  line-height: 1.5;
}

/* Gruppen-Überschrift */
.pk-group {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin: 22px 0 10px;
  color: var(--pk-accent);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.pk-group svg {
  width: 16px;
  height: 16px;
}

.pk-head + .pk-group {
  margin-top: 0;
}

/* Listen */
.pk-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.pk-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 16px;
  border: 1px solid var(--pk-tile-bd);
  border-radius: 18px;
  background: var(--pk-tile);
  color: var(--pk-text);
  font-size: 15px;
  line-height: 1.5;
}

.pk-item-ico {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 13px;
  background: var(--pk-card);
  color: var(--pk-accent);
}

.pk-item-ico svg {
  width: 22px;
  height: 22px;
}

.pk-item strong {
  display: block;
  color: var(--pk-title);
  font-size: 17px;
  font-weight: 850;
  line-height: 1.3;
}

.pk-item p {
  margin: 0;
}

.pk-item b {
  color: var(--pk-title);
  font-weight: 850;
}

.pk-item.pk-main {
  background: var(--pk-main-bg);
  border-color: var(--pk-main-bd);
}

.pk-item.pk-amber {
  background: var(--pk-amber-bg);
  border-color: var(--pk-amber-bd);
  color: var(--pk-amber-text);
}

.pk-item.pk-amber .pk-item-ico {
  color: var(--pk-amber-strong);
}

.pk-item.pk-red {
  background: var(--pk-red-bg);
  border-color: var(--pk-red-bd);
  color: var(--pk-red-text);
}

.pk-item.pk-red strong,
.pk-item.pk-red b,
.pk-item.pk-red .pk-item-ico {
  color: var(--pk-red-strong);
}

.pk-big {
  display: block;
  color: var(--pk-red-strong);
  font-size: 44px;
  font-weight: 900;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

/* Schritt-Nummer (Unfall) */
.pk-step {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--pk-button);
  color: #ffffff;
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
}

.pk-item.pk-red .pk-step {
  background: var(--pk-red-strong);
}

html.luk-dark .pk-item.pk-red .pk-step {
  color: #3a1c20;
}

/* Notrufnummern */
.pk-call,
.pk-call:visited {
  display: inline-block;
  padding: 1px 10px;
  border-radius: 999px;
  background: var(--pk-red-strong);
  color: #ffffff !important;
  font-weight: 900;
  text-decoration: none !important;
}

html.luk-dark .pk-call {
  color: #3a1c20 !important;
}

/* Orts-Karten (Google Maps) */
.pkp,
.pkp:visited {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 16px 14px;
  border: 1px solid var(--pk-tile-bd);
  border-radius: 18px;
  background: var(--pk-tile);
  color: var(--pk-title) !important;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.15s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.pkp:active {
  transform: scale(0.98);
}

.pkp.pkp-main {
  background: var(--pk-main-bg);
  border-color: var(--pk-main-bd);
}

.pkp .pk-item-ico {
  margin-bottom: 4px;
}

.pkp strong {
  font-size: 16px;
  font-weight: 850;
  line-height: 1.3;
}

.pkp-addr {
  color: var(--pk-text);
  font-size: 13px;
  line-height: 1.5;
}

.pkp-km {
  display: inline-block;
  margin-inline-start: 4px;
  padding: 1px 8px;
  border: 1px solid var(--pk-chip-bd);
  border-radius: 999px;
  background: var(--pk-chip);
  color: var(--pk-accent);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.pkp-time {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  color: var(--pk-accent);
  font-size: 13px;
  font-weight: 800;
}

.pkp-time svg {
  width: 14px;
  height: 14px;
}

.pkp-info {
  color: var(--pk-amber-text);
  font-size: 13px;
  font-weight: 700;
}

.pkp-go {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  padding: 6px 12px 6px 14px;
  border-radius: 999px;
  background: var(--pk-button);
  color: #ffffff;
  font-size: 12px;
  font-weight: 800;
}

.pkp-go svg {
  width: 14px;
  height: 14px;
  stroke-width: 2.6;
  transition: transform 0.2s ease;
}

/* Bußgeld-Zeilen */
.pkf {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px;
  border: 1px solid var(--pk-tile-bd);
  border-radius: 16px;
  background: var(--pk-tile);
}

.pkf p {
  margin: 0;
  color: var(--pk-title);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
}

.pkf-tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
}

.pkf-tags span {
  padding: 4px 11px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.pkf-euro {
  border: 1px solid var(--pk-red-bd);
  background: var(--pk-red-bg);
  color: var(--pk-red-strong);
}

.pkf-pkt {
  border: 1px solid var(--pk-chip-bd);
  background: var(--pk-chip);
  color: var(--pk-text);
}

.pkf-ban {
  background: var(--pk-ban-bg);
  color: var(--pk-ban-text);
}

.pkf.is-hard {
  background: var(--pk-red-bg);
  border-color: var(--pk-red-bd);
}

/* Buttons */
.pk-btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 6px;
}

.pk-btn,
.pk-btn:visited {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 44px;
  padding: 10px 16px;
  border-radius: 14px;
  background: var(--pk-button);
  color: #ffffff !important;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.2s ease;
}

.pk-btn svg {
  width: 16px;
  height: 16px;
  stroke-width: 2.4;
}

.pk-btn.pk-light {
  background: var(--pk-light-btn);
  color: var(--pk-title) !important;
}

.pk-note {
  display: block;
  margin-top: 14px;
  color: var(--pk-muted);
  font-size: 13px;
  line-height: 1.5;
}

/* Textlinks */
.pk-link,
.pk-link:visited {
  color: inherit;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

.pk-inline-btn {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  font-weight: 800;
  line-height: inherit;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
}

/* Hero */
.pkh-img {
  position: relative;
  overflow: hidden;
  margin-bottom: 18px;
  border-radius: 22px;
  background: var(--pk-img-bg);
}

.pkh-img img {
  display: block;
  width: 100%;
  height: auto;
}

.pkh-badge {
  position: absolute;
  left: 12px;
  bottom: 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #d42a2a;
  color: #ffffff;
  font-size: 14px;
  font-weight: 900;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}

.pkh-badge svg {
  stroke-width: 2.4;
}

#pk-hero h1 {
  margin: 6px 0 0;
  padding: 0;
  color: var(--pk-title) !important;
  font-size: clamp(30px, 5vw, 46px);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.pkh-sub {
  display: block;
  margin-top: 6px;
  color: var(--pk-sub);
  font-size: clamp(17px, 2.4vw, 22px);
  font-weight: 750;
}

.pkh-park {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  padding: 16px;
  border: 2px solid var(--pk-amber-strong);
  border-radius: 18px;
  background: var(--pk-amber-bg);
  color: var(--pk-amber-text);
  font-size: 14px;
  line-height: 1.5;
}

.pkh-park p {
  margin: 0;
}

.pkh-park strong {
  font-weight: 850;
}

.pkh-park-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--pk-title);
  font-size: 17px;
  font-weight: 900;
}

.pkh-p {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: #1e5fd6;
  color: #ffffff;
  font-size: 18px;
  font-weight: 900;
}

.pkh-ban {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 12px;
  border: 1px solid var(--pk-red-bd);
  border-radius: 12px;
  background: var(--pk-red-bg);
  color: var(--pk-red-strong);
  font-weight: 800;
}

.pkh-police,
.pkh-police:visited {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 12px;
  padding: 12px 16px;
  border: 1px solid var(--pk-blue-bd);
  border-radius: 16px;
  background: var(--pk-blue-bg);
  color: var(--pk-blue-text) !important;
  font-size: 14px;
  line-height: 1.4;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.2s ease;
}

.pkh-police-ico {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: var(--pk-blue-icon);
}

.pkh-police-text strong {
  display: block;
  font-size: 15px;
  font-weight: 850;
}

.pkh-arrow {
  stroke-width: 2.6;
  opacity: 0.8;
  transition: transform 0.2s ease;
}

.pkh-police:active {
  transform: scale(0.98);
}

.pkh-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}

.pkh-nav button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 50px;
  margin: 0;
  padding: 10px;
  border: 1px solid var(--pk-tile-bd);
  border-radius: 15px;
  background: var(--pk-tile);
  color: var(--pk-accent);
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.2s ease, transform 0.2s ease;
}

.pkh-nav button:active {
  transform: scale(0.98);
}

.pkh-nav button.pkh-red {
  border-color: var(--pk-red-bd);
  background: var(--pk-red-bg);
  color: var(--pk-red-strong);
}

/* Ukraine-Fahne */
.pk .pk-flag rect {
  stroke: none;
}

.pk .pk-flag-top {
  fill: #0057b7;
}

.pk .pk-flag-bottom {
  fill: #ffd700;
}

/* Fokus für Tastatur */
.pk :is(.pkh-nav button, .pkh-police, .pk-btn, .pkp, .pk-link, .pk-inline-btn, .pk-call):focus-visible {
  outline: 3px solid var(--pk-accent);
  outline-offset: 3px;
  border-radius: 6px;
}

/* Hover nur auf Geräten mit Maus */
@media (hover: hover) {
  .pkp:hover {
    background: var(--pk-tile-hover);
    box-shadow: 0 10px 24px rgba(16, 41, 31, 0.10);
  }

  .pkp.pkp-main:hover {
    background: var(--pk-main-bg);
  }

  .pkp:hover .pkp-go svg {
    transform: translateX(3px);
  }

  .pk-btn:hover {
    background: var(--pk-button-hover);
  }

  .pk-btn.pk-light:hover {
    background: var(--pk-tile-hover);
  }

  .pk-link:hover,
  .pk-inline-btn:hover {
    text-decoration-thickness: 3px;
  }

  .pkh-nav button:hover {
    background: var(--pk-tile-hover);
    transform: translateY(-1px);
  }

  .pkh-nav button.pkh-red:hover {
    background: var(--pk-red-bg);
    filter: brightness(0.97);
  }

  .pkh-police:hover .pkh-arrow {
    transform: translateX(3px);
  }
}

/* Breite Bildschirme: Listen in Spalten */
@media (min-width: 700px) {
  .pk-list {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }
}

/* Desktop: Hero mit Bild links */
@media (min-width: 851px) {
  .pkh-grid {
    display: grid;
    grid-template-columns: minmax(260px, 0.9fr) minmax(320px, 1.1fr);
    align-items: center;
    gap: clamp(24px, 4vw, 48px);
  }

  .pkh-img {
    margin-bottom: 0;
  }

  .pkh-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Arabische Schriften & RTL */
html:is([lang="ar"], [lang="fa"], [lang="ps"], [lang="ur"]) .pk {
  font-family: var(--pk-font-arabic);
}

html:is([lang="ar"], [lang="fa"], [lang="ps"], [lang="ur"]) .pk * {
  letter-spacing: 0;
}

html[dir="rtl"] .pk {
  direction: rtl;
}

html[dir="rtl"] .pkh-badge {
  left: auto;
  right: 12px;
}

html[dir="rtl"] .pkh-arrow,
html[dir="rtl"] .pkp-go svg {
  transform: scaleX(-1);
}

@media (hover: hover) {
  html[dir="rtl"] .pkh-police:hover .pkh-arrow,
  html[dir="rtl"] .pkp:hover .pkp-go svg {
    transform: scaleX(-1) translateX(3px);
  }
}

/* Weniger Bewegung */
@media (prefers-reduced-motion: reduce) {
  .pkp,
  .pkp-go svg,
  .pk-btn,
  .pkh-nav button,
  .pkh-police,
  .pkh-arrow {
    transition: none;
  }
}

/* Smartphone */
@media (max-width: 640px) {
  .pk {
    margin: 14px auto;
  }

  .pk-card {
    width: 100%;
    padding: 18px 14px;
    border-radius: 22px;
  }

  .pkh-nav button {
    font-size: 13px;
  }

  .pk-big {
    font-size: 40px;
  }
}
