/* Native course facts; shared by component pages, including pages with their own stylesheet. */
.campus-text {
    white-space: pre-line;
}

.campus-kursdetails {
    grid-column: 1 / -1;
    min-width: 0;
    margin-block: 0 2rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
    gap: 2rem;
}

.campus-kurswahl + .campus-kurswahl {
    margin-block-start: 0;
}

.campus-kurswahl h3,
.campus-lehrprofil h3 {
    margin-block: 0 .75rem;
    font-size: var(--grad-xl);
    line-height: var(--zeile-knapp);
    overflow-wrap: anywhere;
}

.campus-termine {
    padding-inline-start: 1.25rem;
    line-height: var(--zeile-knapp);
}

.campus-termine li + li {
    margin-block-start: .75rem;
}

.campus-preise,
.campus-lehrteam {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    gap: 1rem;
}

.campus-preis {
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--linie);
    background: var(--flaeche);
    color: var(--text-stark);
    font-size: var(--grad-s);
    line-height: var(--zeile-knapp);
    overflow-wrap: anywhere;
}

.campus-preis dl,
.campus-preis dd {
    margin: 0;
}

.campus-preis dl > div + div {
    margin-block-start: .65rem;
}

.campus-preis dd {
    font-weight: var(--stark-halb);
}

.campus-preis p {
    margin-block: .75rem 0;
    font-size: inherit;
    line-height: inherit;
}

/* PB-P15: full payment plans remain readable in narrow content columns. */
.campus-preisplan {
    max-width: 44rem;
    margin-block: 1.5rem;
    font-size: var(--grad-s, .875rem);
    line-height: var(--zeile-knapp, 1.45);
}

.campus-preisplan p { font-size: inherit; line-height: inherit; }
/* PB-P17d: compare native payment plans without stacked desktop cards. */
.campus-angebotsplaene {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 21rem), 1fr));
    align-items: start;
    gap: 1.5rem;
}
.campus-angebotsplaene > .campus-preisplan { max-width: none; margin-block: 0; min-width: 0; }
.campus-ausbildungsangebot + .campus-ausbildungsangebot { margin-block-start: 2rem; }
.campus-ausbildungsangebot > h3,
.kachel .campus-ausbildungsangebot > h3 {
    text-transform: none;
    font-size: var(--grad-l, 1.25rem);
    line-height: var(--zeile-knapp, 1.45);
}
.campus-ausbildungsangebot > .campus-preis > div + div { margin-block-start: 1rem; }
.campus-ausbildungsangebot .campus-preis dd { font-weight: 400; }
.campus-preisplan-titel { margin-block-end: .75rem; }
.campus-preisplan .campus-preis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
    gap: .75rem 1.5rem;
    margin-block: .75rem;
}

.campus-zahlungsplan {
    width: 100%;
    table-layout: fixed;
    font-size: inherit;
    line-height: inherit;
    overflow-wrap: anywhere;
}

.campus-zahlungsplan th,
.campus-zahlungsplan td {
    padding: .5rem .35rem;
    vertical-align: top;
    text-align: left;
}

.campus-zahlungsplan caption { text-align: left; }
.campus-zahlungsplan th:first-child { width: 4.75rem; }
.campus-zahlungsplan th:nth-child(2) { width: 37%; }
.campus-zahlungsplan td:last-child,
.campus-zahlungsplan th:last-child { text-align: right; }

.campus-lehrprofil {
    min-width: 0;
    overflow-wrap: anywhere;
}

.campus-lehrprofil img {
    width: 120px;
    height: 120px;
    max-width: 100%;
    object-fit: cover;
    margin-block-end: .75rem;
}

.campus-pilot-portraet {
    display: block;
    width: 100%;
    height: auto;
}

/* Spec: dev/spezifikation/change-coaching-terminintegration.md T03/T06. */
.campus-kursinfo {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
    gap: 1rem;
    padding-block: 2rem;
    align-items: start;
}
.campus-kursinfo > .kachel { margin: 0; }
.campus-kurswahl, .campus-kursplan { min-width: 0; }
.campus-kursplan + .campus-kursplan { margin-block-start: 2rem; }
