.programm-score {
  padding: 1.2rem 1.6rem;
}

.programm-score,
.programm-score * {
  box-sizing: border-box;
}

.programm-score-shell {
  max-width: 1180px;
  margin: 0 auto;
}

.programm-score-brand {
  text-align: center;
  margin: 0 0 1rem;
  color: var(--navy);
  font-family: var(--font-title), Georgia, serif;
  font-size: clamp(1.55rem, 3.1vw, 2.2rem);
  line-height: 1.08;
  text-decoration: underline;
  text-decoration-color: var(--amber);
  text-decoration-thickness: 3px;
  text-underline-offset: .22em;
}

.programm-score-card {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  background: linear-gradient(180deg, #fff 0%, #fffaf7 100%);
  border: 1px solid #dfd7cc;
  border-radius: 24px;
  box-shadow: 0 18px 44px rgba(31, 36, 51, .08);
  overflow: hidden;
}

.programm-score-screen {
  animation: programm-score-in 240ms cubic-bezier(.4, 0, .2, 1) both;
}

.programm-score-screen.slide-out-left {
  animation: programm-score-out-left 180ms cubic-bezier(.4, 0, .2, 1) both;
}

.programm-score-screen.slide-in-right {
  animation: programm-score-in-right 240ms cubic-bezier(.4, 0, .2, 1) both;
}

.programm-score-screen.slide-out-right {
  animation: programm-score-out-right 180ms cubic-bezier(.4, 0, .2, 1) both;
}

.programm-score-screen.slide-in-left {
  animation: programm-score-in-left 240ms cubic-bezier(.4, 0, .2, 1) both;
}

.programm-score-intro {
  display: flex;
  align-items: stretch;
  gap: 28px;
  padding: 30px;
}

.programm-score-intro-copy {
  flex: 1 1 56%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 190px;
  padding: 10px 0;
  text-align: center;
  gap: 18px;
}

.programm-score-title {
  margin: 0;
  color: var(--navy);
  font-family: var(--font-title), Georgia, serif;
  font-size: clamp(1.9rem, 4vw, 2.7rem);
  line-height: 1.08;
  letter-spacing: -.01em;
  text-wrap: balance;
}

.programm-score-title span {
  display: inline-block;
}

.programm-score-start {
  margin-top: 2px;
}

.programm-score-intro {
  padding-top: 34px;
  padding-bottom: 34px;
}

.programm-score-start {
  border: none;
  border-radius: 14px;
  padding: 14px 28px;
  background: var(--navy);
  color: #fff;
  font-family: var(--font-body);
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .01em;
  cursor: pointer;
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.programm-score-start:hover {
  background: var(--navy-deep);
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(27, 48, 84, .18);
}

.programm-score-aside {
  flex: 0 0 300px;
  display: grid;
  gap: 14px;
  align-content: stretch;
}

.programm-score-aside-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 145px;
  padding: 22px 22px 20px;
  border-radius: 20px;
  background: linear-gradient(180deg, #202633 0%, #2d3444 100%);
  color: #fff;
}

.programm-score-aside-card.muted {
  background: linear-gradient(180deg, #f6f1ea 0%, #efe6da 100%);
  color: var(--navy);
}

.programm-score-aside-label {
  margin-bottom: .55rem;
  color: rgba(255, 255, 255, .58);
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.programm-score-aside-card.muted .programm-score-aside-label {
  color: rgba(31, 36, 51, .55);
}

.programm-score-aside-card strong {
  display: block;
  margin-bottom: .45rem;
  font-family: var(--font-title), Georgia, serif;
  font-size: 1.2rem;
  line-height: 1.1;
  letter-spacing: -.01em;
}

.programm-score-aside-card p {
  margin: 0;
  font-size: .88rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, .72);
}

.programm-score-aside-card.muted p {
  color: rgba(31, 36, 51, .66);
}

.programm-score-progress {
  height: 4px;
  background: #efe7de;
  position: relative;
}

.programm-score-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--teal) 0%, var(--royal) 100%);
  border-radius: 0 999px 999px 0;
}

.programm-score-question {
  padding: 28px 30px 30px;
  max-width: 760px;
  margin: 0 auto;
}

.programm-score-step {
  margin: 0 0 .8rem;
  color: #8a6a59;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.programm-score-question-title {
  margin: 0 0 .55rem;
  color: var(--navy);
  font-family: var(--font-title), Georgia, serif;
  font-size: clamp(1.5rem, 2.8vw, 1.95rem);
  line-height: 1.16;
  letter-spacing: -.01em;
}

.programm-score-question-copy {
  margin: 0 0 1.35rem;
  color: #5c6979;
  font-size: .98rem;
  line-height: 1.65;
}

.programm-score-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.programm-score-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
  min-height: 74px;
  padding: 14px 15px;
  border: 1.5px solid #e0d6c9;
  border-radius: 16px;
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease, color .18s ease;
}

.programm-score-option:hover {
  border-color: var(--navy);
  background: #fff7f7;
  box-shadow: 0 8px 20px rgba(31, 36, 51, .08);
  transform: translateY(-1px);
}

.programm-score-option.selected {
  border-color: var(--navy);
  background: #fff3f3;
  box-shadow: 0 0 0 3px rgba(27, 48, 84, .08);
}

.programm-score-option-key {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  background: #f3ebe4;
  color: #8f3c3c;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-top: 1px;
}

.programm-score-option.selected .programm-score-option-key {
  background: var(--navy);
  color: #fff;
}

.programm-score-option-copy {
  flex: 1 1 auto;
}

.programm-score-option-copy strong {
  display: block;
  margin-bottom: .15rem;
  color: var(--navy);
  font-size: .92rem;
  line-height: 1.35;
}

.programm-score-option-copy span {
  display: block;
  color: #657284;
  font-size: .82rem;
  line-height: 1.45;
}

.programm-score-option-points {
  display: none;
}

.programm-score-footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 22px;
}

.programm-score-back,
.programm-score-next {
  border-radius: 14px;
  padding: 12px 20px;
  font-family: var(--font-body);
  font-size: .92rem;
  font-weight: 600;
  letter-spacing: .01em;
  transition: background .18s ease, color .18s ease, opacity .18s ease, transform .18s ease, box-shadow .18s ease;
}

.programm-score-back {
  border: 1px solid #ded7ce;
  background: #fff;
  color: #6f7b89;
}

.programm-score-back:hover:not(:disabled) {
  border-color: #c9bdb1;
  color: var(--navy);
  transform: translateY(-1px);
}

.programm-score-back:disabled {
  opacity: .35;
  cursor: default;
}

.programm-score-next {
  border: none;
  background: var(--navy);
  color: #fff;
  box-shadow: 0 10px 20px rgba(27, 48, 84, .16);
}

.programm-score-next:hover:not(:disabled) {
  background: var(--navy-deep);
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(27, 48, 84, .22);
}

.programm-score-next:disabled {
  opacity: .42;
  cursor: default;
  box-shadow: none;
  transform: none;
}

.programm-score-result-header {
  padding: 30px 30px 26px;
  background: linear-gradient(135deg, #202633 0%, #31384a 100%);
  color: #fff;
}

.programm-score-result-kicker {
  margin: 0 0 .75rem;
  color: rgba(255, 255, 255, .56);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.programm-score-result-title {
  margin: 0 0 .25rem;
  font-family: var(--font-title), Georgia, serif;
  font-size: clamp(1.7rem, 3vw, 2.2rem);
  line-height: 1.12;
  letter-spacing: -.01em;
}

.programm-score-result-subtitle {
  margin: 0;
  color: rgba(255, 255, 255, .7);
  font-size: .92rem;
  line-height: 1.6;
}

.programm-score-result-body {
  padding: 28px 30px 30px;
}

.programm-score-summary {
  margin-bottom: 22px;
  padding: 18px 18px 16px;
  border: 1px solid #e6ddd1;
  border-radius: 20px;
  background: linear-gradient(180deg, #fff 0%, #fffdf9 100%);
}

.programm-score-summary-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
}

.programm-score-number {
  color: var(--navy);
  font-family: var(--font-title), Georgia, serif;
  font-size: clamp(3rem, 6vw, 4.5rem);
  line-height: .95;
  letter-spacing: -.03em;
}

.programm-score-number-label {
  margin-top: .25rem;
  color: #718091;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.programm-score-summary-meta {
  text-align: right;
}

.programm-score-summary-meta span {
  display: block;
  color: #8b98a8;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: .2rem;
}

.programm-score-summary-meta strong {
  color: var(--navy);
  font-family: var(--font-title), Georgia, serif;
  font-size: 1.15rem;
  line-height: 1.1;
}

.programm-score-bar {
  height: 10px;
  margin-top: 14px;
  border-radius: 999px;
  background: #efe7de;
  overflow: hidden;
}

.programm-score-bar span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--navy) 0%, var(--navy-deep) 100%);
  border-radius: 999px;
}

.programm-score-result-desc {
  margin: 0 0 18px;
  color: #4c5967;
  font-size: .98rem;
  line-height: 1.7;
}

.programm-score-result-reco {
  margin: 0 0 20px;
  padding: 16px 18px 16px;
  border-left: 3px solid var(--navy);
  border-radius: 0 14px 14px 0;
  background: #fff7f6;
}

.programm-score-result-reco strong {
  display: block;
  margin-bottom: .55rem;
  color: var(--navy);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.programm-score-result-reco ul {
  margin: 0 0 .8rem;
  padding-left: 1.1rem;
  color: #3e4a57;
  font-size: .92rem;
  line-height: 1.6;
}

.programm-score-result-reco p {
  margin: 0;
  color: #4c5967;
  font-size: .9rem;
  line-height: 1.65;
}

.programm-score-breakdown {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 22px;
}

.programm-score-breakdown-item {
  padding: 12px 14px;
  border: 1px solid #e6ddd1;
  border-radius: 14px;
  background: #fff;
}

.programm-score-breakdown-item span {
  display: block;
  margin-bottom: .35rem;
  color: #7a8694;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.programm-score-breakdown-item strong {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
  color: var(--navy);
  font-size: .92rem;
  line-height: 1.45;
}

.programm-score-breakdown-item strong em {
  font-style: normal;
  color: #9a3f3f;
}

.programm-score-breakdown-item strong small {
  color: #6f7b89;
  font-size: .78rem;
  font-weight: 500;
}

.programm-score-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.programm-score-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border-radius: 14px;
  font-size: .92rem;
  font-weight: 600;
  letter-spacing: .01em;
  transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.programm-score-cta-primary {
  border: 1px solid var(--navy);
  background: var(--navy);
  color: #fff;
  box-shadow: 0 10px 20px rgba(27, 48, 84, .16);
}

.programm-score-cta-primary:hover {
  background: var(--navy-deep);
  box-shadow: 0 12px 24px rgba(27, 48, 84, .22);
  transform: translateY(-1px);
}

.programm-score-cta-secondary {
  border: 1px solid #d7d0c5;
  background: #fff;
  color: #334155;
}

.programm-score-cta-secondary:hover {
  border-color: #c7b8a7;
  color: var(--navy);
  transform: translateY(-1px);
}

.programm-score-divider {
  height: 1px;
  background: #ece2d7;
}

.programm-score-restart-wrap {
  padding: 14px 30px 18px;
  text-align: center;
}

.programm-score-restart {
  border: none;
  background: none;
  color: #7b8796;
  font-size: .8rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.programm-score-restart:hover {
  color: var(--navy);
}

@media (max-width: 860px) {
  .programm-score {
    padding: 1rem 0;
  }

  .programm-score-brand {
    padding: 0 1.25rem;
  }

  .programm-score-intro,
  .programm-score-question,
  .programm-score-result-body,
  .programm-score-result-header,
  .programm-score-restart-wrap {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }

  .programm-score-intro {
    flex-direction: column;
    align-items: stretch;
    padding-top: 24px;
    padding-bottom: 24px;
  }

  .programm-score-intro-copy {
    min-height: 92px;
  }

  .programm-score-aside {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    flex: 1 1 auto;
  }

  .programm-score-aside-card {
    min-height: 0;
  }

  .programm-score-options,
  .programm-score-breakdown {
    grid-template-columns: 1fr;
  }

  .programm-fahrplan {
    padding: 2rem 0 1.2rem;
  }
  .programm-fahrplan-intro {
    padding: 0 1.25rem;
  }
  .programm-journey {
    padding: 2rem 0 .2rem;
  }
  .programm-journey-track,
  .programm-journey-fill,
  .programm-journey-arrow {
    left: 28px;
  }
  .programm-stop {
    min-height: auto;
    align-items: flex-start;
    padding: 1.2rem 1rem 1.2rem 0;
  }
  .programm-stop-left {
    display: none;
  }
  .programm-stop-dot {
    width: 56px;
    padding-top: .25rem;
  }
  .programm-stop-right {
    width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .programm-step-card.left,
  .programm-step-card.right {
    max-width: 100%;
    transform: translateX(20px);
  }
  .programm-step-card.left::after {
    display: none;
  }

  .programm-score-summary-row {
    align-items: flex-start;
  }

  .programm-score-summary-meta {
    text-align: left;
  }
}

@media (max-width: 560px) {
  .programm-score-intro {
    padding: 22px 18px 20px;
  }

  .programm-score-question,
  .programm-score-result-body,
  .programm-score-result-header,
  .programm-score-restart-wrap {
    padding-left: 18px;
    padding-right: 18px;
  }

  .programm-score-aside {
    grid-template-columns: 1fr;
  }

  .programm-score-meta {
    gap: 8px;
  }

  .programm-score-meta-item {
    width: 100%;
    justify-content: flex-start;
  }

  .programm-score-footer,
  .programm-score-cta-row {
    flex-direction: column;
  }

  .programm-score-back,
  .programm-score-next,
  .programm-score-cta {
    width: 100%;
  }
}

@keyframes programm-score-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes programm-score-out-left {
  from {
    opacity: 1;
    transform: translateX(0);
  }
  to {
    opacity: 0;
    transform: translateX(-24px);
  }
}

@keyframes programm-score-in-right {
  from {
    opacity: 0;
    transform: translateX(24px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes programm-score-out-right {
  from {
    opacity: 1;
    transform: translateX(0);
  }
  to {
    opacity: 0;
    transform: translateX(24px);
  }
}

@keyframes programm-score-in-left {
  from {
    opacity: 0;
    transform: translateX(-24px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Ärzte programme page ---------------------------------------------------- */
.aerzte-skip-link {
  position: fixed;
  top: -100px;
  left: 20px;
  z-index: 1000;
  padding: 11px 16px;
  border-radius: 8px;
  background: var(--navy);
  color: #fff;
  font-size: 14px;
  text-decoration: none;
}

.aerzte-skip-link:focus {
  top: 12px;
}

.aerzte-page {
  --aerzte-body: #43536a;
  --aerzte-line: #d9e1e8;
  --aerzte-warm-line: #ded8cf;
  --aerzte-ivory: #fbfaf7;
  --aerzte-shadow: 0 18px 50px rgba(15, 30, 56, 0.08);
  color: var(--navy);
  background: #fff;
}

.aerzte-page a {
  -webkit-tap-highlight-color: transparent;
}

.aerzte-container {
  width: min(calc(100% - 64px), 1230px);
  margin: 0 auto;
}

.aerzte-section,
.aerzte-journey-section {
  padding: 92px 0;
}

.aerzte-section-white {
  background: #fff;
}

.aerzte-section-tint {
  background: var(--aerzte-ivory);
}

.aerzte-eyebrow {
  margin: 0 0 14px;
  color: var(--teal);
  font-size: 13px !important;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.12em;
}

.aerzte-eyebrow-light {
  color: var(--mint);
}

.aerzte-page h1,
.aerzte-page h2,
.aerzte-page h3 {
  margin: 0;
}

.aerzte-page h1 {
  max-width: 960px;
  font-size: clamp(50px, 6vw, 83px);
  line-height: 0.98;
  letter-spacing: -0.025em;
}

.aerzte-page h2 {
  font-size: clamp(38px, 4.2vw, 62px);
  line-height: 1.04;
  letter-spacing: -0.025em;
}

.aerzte-page h3 {
  font-size: 22px;
  line-height: 1.25;
}

.aerzte-lead {
  max-width: 800px;
  margin: 22px 0 0;
  color: var(--aerzte-body);
  font-size: clamp(18px, 1.5vw, 22px) !important;
  line-height: 1.55;
}

.aerzte-hero {
  position: relative;
  min-height: calc(100vh - 66px);
  min-height: calc(100svh - 66px);
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--navy) url("../../images/Germany.png") center / cover no-repeat;
}

.aerzte-hero-video {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 15%;
}

.aerzte-hero::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: rgba(12, 31, 57, 0.58);
}

.aerzte-hero-inner {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 64px), 960px);
  padding: 96px 0 110px;
  text-align: center;
}

.aerzte-hero h1 {
  margin-inline: auto;
  color: #fff;
}

.aerzte-hero h1 span {
  display: block;
}

.aerzte-hero h1 span:last-child {
  font-size: clamp(22px, 6vw, 83px);
  white-space: nowrap;
}

.aerzte-hero-copy {
  max-width: 900px;
  margin: 28px auto 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(18px, 1.7vw, 23px) !important;
  line-height: 1.55;
}

.aerzte-hero-actions {
  margin-top: 34px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 22px;
}

.aerzte-btn {
  min-height: 52px;
  padding: 13px 23px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.aerzte-btn:hover {
  transform: translateY(-2px);
}

.aerzte-btn-outline-light {
  border-color: rgba(255, 255, 255, 0.62);
  color: #fff;
}

.aerzte-btn-outline-light:hover {
  background: rgba(255, 255, 255, 0.08);
}

.aerzte-text-link {
  color: #fff;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
}

.aerzte-section-heading {
  max-width: 990px;
  margin: 0 auto 38px;
  text-align: center;
}

.aerzte-section-heading .aerzte-lead {
  margin-inline: auto;
}

.aerzte-fine-print {
  margin: 14px 0 0;
  color: #6f7b8e;
  font-size: 14px !important;
}

.aerzte-page .programm-score {
  padding: 0;
}

.aerzte-page .programm-score-card {
  border-color: var(--aerzte-warm-line);
  background: #fff;
  box-shadow: var(--aerzte-shadow);
}

.aerzte-page .programm-score-aside-card {
  background: #202633;
}

.aerzte-page .programm-score-aside-card.muted {
  background: #f6f1ea;
}

.aerzte-program-overview {
  padding-top: 36px;
  padding-bottom: 82px;
  background: var(--navy) url("../../images/Background.png") center / cover no-repeat;
  color: #fff;
}

.aerzte-program-overview .aerzte-eyebrow {
  color: var(--mint);
}

.aerzte-program-overview h2 {
  color: #fff;
}

.aerzte-overview-lead {
  max-width: none;
  color: rgba(255, 255, 255, 0.76);
  white-space: nowrap;
  font-size: clamp(0.78rem, 1.1vw, 1rem) !important;
}

@media (max-width: 900px) {
  .aerzte-overview-lead {
    white-space: normal;
    font-size: clamp(16px, 1.5vw, 18px) !important;
  }
}

.aerzte-station-nav {
  position: static;
  height: auto;
  margin-top: 38px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.aerzte-station-nav a {
  min-height: 92px;
  padding: 13px 16px 15px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 8px;
  border: 1px solid rgba(15, 30, 56, 0.08);
  border-radius: 12px;
  background: #fff;
  color: var(--navy);
  text-decoration: none;
  box-shadow: 0 5px 16px rgba(9, 22, 43, 0.16);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.aerzte-station-nav a:hover {
  transform: translateY(-3px);
  box-shadow: 0 9px 22px rgba(9, 22, 43, 0.22);
}

.aerzte-station-number {
  align-self: flex-start;
  color: #63738a;
  font-family: var(--font-title);
  font-size: 24px;
  line-height: 1;
}

.aerzte-station-label {
  align-self: stretch;
  color: var(--navy);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
}

.aerzte-journey-section {
  scroll-margin-top: 66px;
}

.aerzte-journey-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr);
  gap: clamp(55px, 7vw, 100px);
  align-items: center;
}

.aerzte-journey-grid-reverse {
  grid-template-columns: minmax(360px, 0.85fr) minmax(0, 1.15fr);
}

.aerzte-journey-copy,
.aerzte-media-placeholder {
  min-width: 0;
}

.aerzte-journey-copy h2 {
  max-width: 780px;
}

.aerzte-station-kicker {
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  color: #2e7565;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.12em;
  overflow-wrap: anywhere;
}

.aerzte-station-kicker span {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  font-family: var(--font-title);
  font-size: 16px;
  letter-spacing: 0;
}

.aerzte-journey-columns {
  margin-top: 36px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.72fr);
  gap: 28px;
}

.aerzte-check-list {
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.aerzte-check-list li {
  position: relative;
  margin: 10px 0;
  padding-left: 25px;
  color: #374960;
  font-size: 16px !important;
  line-height: 1.55;
}

.aerzte-check-list li::before {
  content: "";
  position: absolute;
  top: 0.64em;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--amber);
}

.aerzte-check-list-compact li {
  margin: 7px 0;
}

.aerzte-result-box {
  align-self: start;
  padding: 25px;
  border: 1px solid #cdd9d5;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.75);
}

.aerzte-result-box > span {
  display: block;
  margin-bottom: 10px;
  color: #2e7565;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.11em;
}

.aerzte-result-box p {
  margin: 0;
  color: var(--navy);
  font-family: var(--font-title);
  font-size: 21px !important;
  line-height: 1.35;
}

.aerzte-inline-cta {
  margin-top: 27px;
  display: inline-block;
  border-bottom: 1px solid rgba(27, 48, 84, 0.25);
  color: var(--navy);
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
}

.aerzte-inline-cta:hover {
  border-color: var(--teal);
  color: var(--teal);
}

.aerzte-media-placeholder {
  margin: 0;
}

.aerzte-placeholder-frame {
  position: relative;
  aspect-ratio: 4 / 3;
  padding: clamp(28px, 4vw, 46px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  border: 1px dashed #a9b8c7;
  border-radius: 26px;
  background: #f1f6f4;
}

.aerzte-placeholder-frame::before {
  content: "";
  position: absolute;
  inset: 18px;
  border: 1px solid rgba(27, 48, 84, 0.11);
  border-radius: 18px;
}

.aerzte-placeholder-label,
.aerzte-placeholder-frame strong,
.aerzte-placeholder-frame small {
  position: relative;
  z-index: 1;
}

.aerzte-placeholder-label {
  margin-bottom: auto;
  color: #2e7565;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.aerzte-placeholder-frame strong {
  max-width: 320px;
  color: var(--navy);
  font-family: var(--font-title);
  font-size: 35px;
  line-height: 1.08;
}

.aerzte-placeholder-frame small {
  max-width: 360px;
  margin-top: 13px;
  color: #65758a;
  font-size: 13px;
  line-height: 1.45;
}

.aerzte-media-placeholder figcaption {
  margin-top: 12px;
  color: #758194;
  font-size: 13px;
  line-height: 1.5;
}

/* Schritt 1 (Regionen card deck, reused as-is) has no heading on this page,
   so drop the top padding that normally clears space for it. */
.aerzte-page .rgn-section--step1 {
  padding-top: clamp(20px, 2.4vw, 32px);
}

/* "Bedarfsanalyse vor Ort" card: full-bleed photo, no text box below —
   keeps the card's original overall footprint even though the paragraph
   that used to determine it is gone. */
.aerzte-fullbleed-card {
  min-height: 550px;
  scroll-margin-top: 66px;
}
.aerzte-fullbleed-card .rgn-sticky-card-media {
  position: absolute;
  inset: 0;
  aspect-ratio: auto;
  height: 100%;
}
.aerzte-fullbleed-card .rgn-sticky-card-body {
  position: relative;
  z-index: 2;
}
@media (max-width: 980px) {
  .aerzte-fullbleed-card {
    min-height: 366px;
  }
}
@media (max-width: 640px) {
  .aerzte-fullbleed-card {
    min-height: 394px;
  }
}

/* Card 1 gets the full lead/list copy from the matching Programmschritte
   station, sitting between the title overlay and the bottom result line.
   The card keeps the same normal footprint as the other cards, so the
   copy is pushed well down to sit low, just above the result line. */
.aerzte-pathway-copy {
  position: relative;
  z-index: 2;
  max-width: 640px;
  padding-top: clamp(55px, 8vw, 90px);
}
@media (min-width: 641px) {
  /* Desktop text below is doubled in size, so the card (which auto-grows
     with the copy's normal-flow height) needs reserved space at the
     bottom for the absolutely positioned result line to land in without
     overlapping the list. */
  .aerzte-pathway-copy {
    padding-bottom: clamp(80px, 8vw, 130px);
  }
}
.aerzte-pathway-copy p {
  margin: 0 0 4px;
  color: rgba(255, 255, 255, 0.92) !important;
  font-family: var(--font-body);
  font-size: clamp(1.2rem, 1.9vw, 1.6rem) !important;
  line-height: 1.32;
  max-width: none !important;
  min-height: 0 !important;
  text-shadow: 0 2px 10px rgba(6, 12, 24, 0.35);
}
.aerzte-pathway-copy .aerzte-pathway-lead {
  font-weight: 700;
  color: #fff !important;
  white-space: nowrap;
}
.aerzte-pathway-copy ul {
  margin: 2px 0 0;
  padding: 0 0 0 1.1em;
  list-style: none;
}
.aerzte-pathway-copy li {
  position: relative;
  margin: 1px 0;
  color: rgba(255, 255, 255, 0.9);
  font-family: var(--font-body);
  font-size: clamp(1.2rem, 1.9vw, 1.6rem);
  line-height: 1.32;
  text-shadow: 0 2px 10px rgba(6, 12, 24, 0.35);
}
.aerzte-pathway-copy li::before {
  content: "-";
  position: absolute;
  left: -1em;
  color: rgba(255, 255, 255, 0.6);
}
@media (max-width: 640px) {
  .aerzte-pathway-copy {
    padding-top: 130px;
    /* Text below now matches the result line's size, so it needs more
       room than the card's normal footprint provides; let the card grow
       and reserve space at the bottom for the result line. */
    padding-bottom: 170px;
  }
  .aerzte-pathway-copy p {
    font-size: 1.1rem !important;
  }
  .aerzte-pathway-copy li {
    font-size: 1.1rem;
  }
  .aerzte-pathway-copy .aerzte-pathway-lead {
    white-space: normal;
  }
  /* Card 5's own lead/list content already runs long, so it needs less
     reserved bottom space than the other cards to match their height. */
  #station-5 .aerzte-pathway-copy {
    padding-bottom: 75px;
  }
  /* Card 6's result line is the longest (wraps to 2 lines), which made the
     whole card taller than the rest; its title has plenty of spare
     clearance above, so trim the top padding to bring it back down to
     match card 5's height. */
  #station-6 .aerzte-pathway-copy {
    padding-top: 58px;
  }
}

/* Titles on this page's Schritt 1 cards are a touch larger than Regionen's
   default card title size (regionen.css only, so scope + specificity must
   match its :has() selector to win). */
.rgn-sticky-card.aerzte-fullbleed-card .rgn-sticky-card-body .rgn-h3 {
  font-size: clamp(1.65rem, 2.85vw, 2.5rem);
}

/* Step number to the left of each card's title — same size as the title
   itself. */
.aerzte-card-num {
  margin-right: 0.35em;
  font-family: var(--font-title);
  font-weight: 700;
  font-size: clamp(1.65rem, 2.85vw, 2.5rem);
  color: #fff;
}

/* Same flat dark veil used over the hero video (.aerzte-hero::before). */
.aerzte-fullbleed-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(12, 31, 57, 0.58);
  pointer-events: none;
}

/* Card 1 ("Orientierung & persönlicher Fahrplan") gets a result line at the
   bottom, with the same arrow-in-a-circle used on the homepage's
   "...mit internationalen Ärzten" section (.pg-doctors-link). */
.aerzte-card-with-result::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(0deg, rgba(6, 12, 24, 0.72) 0%, rgba(6, 12, 24, 0.32) 30%, rgba(6, 12, 24, 0) 58%);
  pointer-events: none;
}
.aerzte-card-result {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: clamp(20px, 2.6vw, 32px) clamp(24px, 3.4vw, 48px);
}
.aerzte-card-result-arrow {
  flex: 0 0 auto;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 2px solid rgba(255, 255, 255, 0.84);
  border-radius: 50%;
  background: rgba(15, 30, 56, 0.2);
  color: #fff;
  box-shadow: 0 6px 18px rgba(15, 30, 56, 0.22);
}
.aerzte-card-result-arrow > span {
  width: 10px;
  height: 10px;
  margin-left: -3px;
  transform: rotate(45deg);
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
}
.aerzte-card-result p {
  margin: 0;
  color: #fff;
  font-family: var(--font-body);
  font-size: clamp(1.2rem, 1.9vw, 1.6rem);
  font-weight: 600;
  line-height: 1.32;
  text-shadow: 0 2px 12px rgba(6, 12, 24, 0.4);
}
@media (max-width: 640px) {
  .aerzte-card-result-arrow {
    width: 36px;
    height: 36px;
  }
  .aerzte-card-result p {
    font-size: 1.1rem;
  }
}

/* Regionen's CSS only assigns a stacking z-index up to the 5th deck item
   (its own Schritt 1 never has more than 4 cards); this page's Schritt 1
   now has 6, so give the 6th its own layer on top in the desktop deck mode. */
@media (min-width: 981px) and (min-height: 481px) {
  .aerzte-page .rgn-section--step1 .rgn-sticky-item:nth-child(6) {
    z-index: 6;
  }
}

#site > .aerzte-join-section {
  position: relative;
  z-index: 7;
  padding: 100px 0 92px;
  background: #fff;
  scroll-margin-top: 100px;
}

.aerzte-page > footer {
  position: relative;
  z-index: 7;
}

.aerzte-join-card {
  padding: clamp(36px, 5vw, 60px) clamp(24px, 6vw, 72px);
  background: var(--teal);
  border: 2px solid #000;
  border-radius: 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
  text-align: center;
}

.aerzte-join-heading {
  max-width: 720px;
}

.aerzte-join-heading h2 {
  color: #fff;
}

.aerzte-join-heading .aerzte-lead {
  margin-top: 18px;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  color: rgba(255, 255, 255, 0.92);
}

.aerzte-join-form {
  width: 100%;
  max-width: 640px;
  display: grid;
  gap: 14px;
  text-align: left;
}

.aerzte-join-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.aerzte-join-field {
  display: grid;
  gap: 6px;
}

.aerzte-join-field label {
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

.aerzte-join-field input,
.aerzte-join-field select,
.aerzte-join-field textarea {
  width: 100%;
  padding: 11px 13px;
  border: 1.5px solid #000;
  border-radius: 10px;
  background: #fff;
  color: var(--navy);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.35;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.aerzte-join-field input::placeholder,
.aerzte-join-field textarea::placeholder {
  color: #767676;
}

.aerzte-join-field input,
.aerzte-join-field select {
  min-height: 48px;
}

.aerzte-join-field textarea {
  min-height: 116px;
  resize: vertical;
}

.aerzte-join-field input:focus,
.aerzte-join-field select:focus,
.aerzte-join-field textarea:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(58, 139, 122, 0.13);
}

.aerzte-join-field input.is-invalid,
.aerzte-join-field select.is-invalid,
.aerzte-join-field textarea.is-invalid {
  border-color: #fff;
  box-shadow: 0 0 0 2px #C0392B;
}

.aerzte-join-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  line-height: 1.45;
}

.aerzte-join-checkbox input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 2px;
}

.aerzte-join-checkbox a {
  color: #fff;
  text-decoration: underline;
}

.aerzte-join-hint {
  font-size: 13px;
  line-height: 1.35;
}

.aerzte-join-hint:not(:empty) {
  display: inline-block;
  margin-top: 4px;
  padding: 3px 10px;
  border-radius: 999px;
  background: #fff;
  color: #C0392B;
  font-weight: 700;
}

.aerzte-join-hint:empty {
  display: none;
}

.aerzte-join-submit {
  width: 100%;
  max-width: 240px;
  margin: 2px auto 0;
  background: var(--navy);
  border-color: var(--navy);
  border-radius: 12px;
}

.aerzte-join-submit:hover {
  background: #16294a;
  border-color: #16294a;
}

.aerzte-join-submit:disabled {
  cursor: wait;
  opacity: 0.65;
}

.aerzte-join-status {
  display: none;
  margin: 0;
  padding: 11px 14px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1.45;
}

.aerzte-join-status.is-visible {
  display: block;
}

.aerzte-join-status.is-success {
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  font-weight: 600;
}

.aerzte-join-status.is-error {
  background: #fff;
  color: #C0392B;
  font-weight: 600;
}

@media (max-width: 1100px) {
  .aerzte-station-nav {
    grid-template-columns: repeat(3, 1fr);
  }

  .aerzte-journey-grid,
  .aerzte-journey-grid-reverse {
    grid-template-columns: 1fr;
  }

  .aerzte-journey-grid-reverse .aerzte-media-placeholder {
    order: 2;
  }

  .aerzte-journey-grid-reverse .aerzte-journey-copy {
    order: 1;
  }

  .aerzte-media-placeholder {
    width: min(100%, 720px);
  }
}

@media (max-width: 900px) {
  .aerzte-join-card {
    grid-template-columns: 1fr;
  }

  .aerzte-join-heading {
    max-width: 720px;
  }
}

@media (max-width: 680px) {
  .aerzte-container,
  .aerzte-hero-inner {
    width: min(calc(100% - 34px), 1230px);
  }

  .aerzte-section,
  .aerzte-journey-section {
    padding: 68px 0;
  }

  .aerzte-hero-inner {
    padding: 80px 0 92px;
  }

  .aerzte-page h1 {
    font-size: clamp(43px, 13vw, 58px);
  }

  .aerzte-page h2 {
    font-size: clamp(35px, 10vw, 48px);
  }

  .aerzte-page .programm-score-intro {
    padding: 24px 20px;
  }

  .aerzte-station-nav {
    grid-template-columns: repeat(2, 1fr);
  }

  .aerzte-station-nav a {
    min-height: 88px;
  }

  .aerzte-journey-columns {
    grid-template-columns: 1fr;
  }

  .aerzte-join-section {
    padding-bottom: 68px;
  }

  .aerzte-join-card {
    padding: 26px 20px;
    border-width: 4px;
    border-radius: 14px;
  }

  .aerzte-join-row {
    grid-template-columns: 1fr;
  }

  .aerzte-placeholder-frame strong {
    font-size: 29px;
  }

}

