.program-text {
    padding: 80px 0;
    background: var(--color-white);
}
.program-text--bg-grey { background: var(--color-grey-light-1); }

.program-text--divider-top { border-top: 1px solid var(--color-grey-light-2, #e5e5e5); }
.program-text__content-divider {
    width: 100%;
    height: 1px;
    margin: 32px 0 24px;
    border: 0;
    background: var(--color-grey-light-2, #e5e5e5);
}
.program-text--bg-blue { background: var(--color-blue); color: var(--color-white); }
.program-text--bg-blue .program-text__title,
.program-text--bg-blue .program-text__title-main,
.program-text--bg-blue .program-text__title-accent,
.program-text--bg-blue .program-text__body,
.program-text--bg-blue .program-text__block-heading,
.program-text--bg-blue .program-text__block-body,
.program-text--bg-blue .program-text__list-item { color: var(--color-white); }
.program-text--bg-blue .program-text__title-accent { color: var(--color-green); }
.program-text--bg-blue .program-text__list-icon { color: var(--color-green); }

.program-text__title {
    font-size: 44px;
    line-height: 58px;
    font-weight: 600;
    color: var(--color-black-soft);
    margin: 0 0 40px;
}
.program-text__title-main { display: block; }
.program-text__title-accent {
    display: block;
    color: var(--color-blue-dark);
}

.program-text__title--inline .program-text__title-main,
.program-text__title--inline .program-text__title-accent {
    display: inline;
}

.program-text__body {
    /* Client 28.07 (Startseite 2): Fliesstext auf 18px, damit die Abschnitte
       konsistent zu Akkordeon/Studienmodellen wirken (Desktop). */
    font-size: 18px;
    line-height: 28px;
    color: var(--color-black-soft);
    max-width: 1260px;
}
.program-text__body p { margin: 0 0 20px; }
.program-text__body p:last-child { margin-bottom: 0; }
.program-text__body h2,
.program-text__body h3,
.program-text__body h4 { margin: 36px 0 20px; line-height: 1.25; }
.program-text__body h2:first-child,
.program-text__body h3:first-child,
.program-text__body h4:first-child { margin-top: 0; }

.program-text__block { margin-top: 24px; }
.program-text__block-heading {
    font-size: 28px;
    line-height: 40px;
    font-weight: 600;
    color: var(--color-black);
    margin: 0 0 20px;
}
.program-text__block-body {
    font-size: 18px;
    line-height: 28px;
    color: var(--color-black-soft);
    margin-bottom: 16px;
}
.program-text__block-body p { margin: 0 0 16px; }
.program-text__block-body p:last-child { margin-bottom: 0; }

.program-text__list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}
.program-text__list-item {
    display: flex;
    gap: 6px;
    align-items: center;
    font-size: 18px;
    line-height: 28px;
    font-weight: 500;
    color: var(--color-black);
}
.program-text__list-icon {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    color: var(--color-blue);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.program-text__cta {
    margin-top: 40px;
}

@media (max-width: 767px) {
    .program-text { padding: 48px 0; }
    .program-text__title { font-size: 28px; line-height: 36px; margin-bottom: 24px; }
    .program-text__body { font-size: 16px; line-height: 26px; }
    .program-text__block-heading { font-size: 22px; line-height: 30px; margin-bottom: 12px; }
    .program-text__block-body { font-size: 16px; line-height: 26px; }
    .program-text__list-item { font-size: 16px; line-height: 24px; align-items: flex-start; }
    .program-text__cta { margin-top: 28px; }
    .page-template-overview-master .program-text__title-main,
    .page-template-overview-master .program-text__title-accent { display: inline; color: inherit; }
    .page-template-overview-master .program-text__list-icon svg { display: none; }
    .page-template-overview-master .program-text__list-icon::before { content: ''; width: 9px; height: 9px; border-right: 2px solid currentColor; border-top: 2px solid currentColor; transform: rotate(45deg); }
}

/* WYSIWYG content lists: restore visible bullets (global reset removes them) - Keppler #7 */
.program-text__body ul { list-style: disc; padding-left: 1.4em; margin: 0 0 16px; }
.program-text__body ol { list-style: decimal; padding-left: 1.4em; margin: 0 0 16px; }
.program-text__body li { margin: 6px 0; }
.program-text__body ul li::marker { content: "›  "; color: var(--color-blue); font-weight: 700; font-size: 1.15em; }
.program-text__body ol li::marker { color: var(--color-blue); }

.stud-cta{margin:20px 0}
.stud-bild img{max-width:100%;height:auto;border-radius:12px;margin:8px 0}
.stud-akk-title{font-size:20px;margin:20px 0 8px;color:var(--color-black)}


/* Full-width separator image band (Figma specialization page) */
.stud-separator { position: relative; line-height: 0; }
.stud-separator img { width: 100%; height: 340px; object-fit: cover; display: block; }
.stud-separator::after { content: ''; position: absolute; inset: 0; background: rgba(28, 49, 143, 0.45); }
@media (max-width: 767px) { .stud-separator img { height: 200px; } }

.program-text blockquote{margin:24px 0;padding:6px 0 6px 24px;border-left:4px solid #1C318F;font-style:italic;color:#3a3a3a;}
.program-text blockquote p{margin:0;}

/* Modul-Karten der Vertiefungs-/Spezialisierungsseiten (Figma MBA Specialization). */
.program-text .vspec-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 24px 0; }
.program-text .vspec-card { border: 1px solid #e3e6ec; border-radius: 12px; padding: 24px; background: #fff; }
.program-text .vspec-card h3 { font-size: 18px; line-height: 26px; margin: 0 0 12px; }
.program-text .vspec-card ul { margin: 0; }
.program-text .vspec-card li { margin-bottom: 8px; }
@media (max-width: 900px) { .program-text .vspec-cards { grid-template-columns: 1fr; } }

/* Modul-Karten der Vertiefungs-/Spezialisierungsseiten (Figma MBA Specialization). */
.program-text .vspec-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 24px 0; }
.program-text .vspec-card { border: 1px solid #e3e6ec; border-radius: 12px; padding: 24px; background: #fff; }
.program-text .vspec-card h3 { font-size: 18px; line-height: 26px; margin: 0 0 12px; }
.program-text .vspec-card ul { margin: 0; }
.program-text .vspec-card li { margin-bottom: 8px; }
@media (max-width: 900px) { .program-text .vspec-cards { grid-template-columns: 1fr; } }

/* Client 24.07 (MBA 1): keine Linie vor/nach dem Bild.
   Im MBA-Layout liegt das Bild zwischen zwei blauen Sektionen (Events oben, Testimonials unten).
   Statt harter Kanten blendet das Bild oben/unten in das Sektions-Blau (#1c388f) aus, es entsteht
   keine sichtbare Linie mehr. Nur wenn das Bild direkt auf die Events folgt (also genau dieses Layout). */
.events + .stud-separator::after {
    background: linear-gradient(to bottom,
        #1c388f 0%,
        rgba(28, 56, 143, 0.45) 15%,
        rgba(28, 56, 143, 0.45) 85%,
        #1c388f 100%);
}

/* Client 27.07 / 28.07: Fliesstext nutzt auf breiten Ansichten dieselbe
   Containerbreite wie Abbildungen und Karten. Gilt fuer ALLE Textabschnitte
   (nicht nur den Introtext), auf allen Programmseiten. Kleinere Viewports
   bleiben unveraendert. */
@media (min-width: 1280px) {
    .program-text__body { max-width: none; }
}
