.ce_programm {
    color: var(--color-surface-petrol-black);
    font-family: var(--font-family-base);
    font-weight: var(--font-weight-regular);
}
.ce_programm__header,
.ce_programm__heading-copy { display: grid; gap: var(--spacing-md); min-width: 0; }
.ce_programm__header { margin-bottom: 52px; }
.ce_programm p,
.ce_programm__heading,
.ce_programm__title { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.ce_programm__label {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ce_programm__label::before { content: ''; flex: 0 0 var(--spacing-md); height: 2px; background: currentColor; }
.ce_programm__label > span { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ce_programm__heading {
    letter-spacing: -.04em;
    white-space: pre-line;
}
.ce_programm__intro {
    white-space: pre-line;
}
.ce_programm__grid {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 100%;
    gap: 16px;
    min-width: 0;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}
.ce_programm__grid::-webkit-scrollbar { display: none; }
.ce_programm__card { scroll-snap-align: start; }
.ce_programm__card {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-width: 0;
    min-height: 330px;
    padding: var(--spacing-md);
    border: 1px solid var(--color-border-petrol-subtle);
    border-radius: var(--radius-card-compact);
    background: var(--color-surface-card);
}
.ce_programm__category { color: var(--color-primary); font-size: var(--font-size-meta); letter-spacing: .1em; text-transform: uppercase; }
.ce_programm__artwork {
    position: relative;
    flex: 0 0 auto;
    width: 100%;
    aspect-ratio: 1;
}
.ce_programm__image {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.ce_programm__copy { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; gap: 14px; }
.ce_programm__title {
    white-space: pre-line;
}
.ce_programm__description {
    color: var(--color-text-muted-teal); white-space: pre-line; }
.ce_programm__link { color: var(--color-primary); font-size: var(--font-size-caption); line-height: var(--line-height-list); text-decoration: underline; text-underline-offset: .15em; align-self: flex-start; margin-top: auto; overflow-wrap: anywhere; max-width: 100%; }
.ce_programm__link:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 4px; }
@media (min-width: 701px) {
    .ce_programm__grid { grid-auto-columns: calc((100% - 16px) / 2); }
}
@media (min-width: 834px) {
    .ce_programm__grid { grid-auto-columns: calc((100% - 32px) / 3); }
}
@media (min-width: 1024px) {
    .ce_programm__header { grid-template-columns: minmax(0, 900px) minmax(0, 320px); justify-content: space-between; align-items: end; gap: 0; }
    .ce_programm__heading-copy { gap: 18px; }
    .ce_programm__intro { grid-column: 2; }
    .ce_programm__grid { grid-auto-columns: calc((100% - 48px) / 4); }
}

/* Reuse the portfolio slider's native scroll and control pattern, scoped to programs. */
.ce_programm__slider { display: grid; min-width: 0; gap: 16px; }
.ce_programm__navigation { display: flex; justify-content: flex-end; gap: var(--spacing-xs); }
.ce_programm__navigation[hidden] { display: none; }
.ce_programm__control {
    display: inline-flex;
    flex: 0 0 var(--spacing-xl);
    align-items: center;
    justify-content: center;
    width: var(--spacing-xl);
    height: var(--spacing-xl);
    padding: 0;
    border: 1px solid var(--color-text-dark);
    border-radius: var(--radius-pill);
    background: transparent;
    cursor: pointer;
}
.ce_programm__control--next { background: var(--color-text-dark); }
.ce_programm__control img { display: block; }
.ce_programm__control:disabled { opacity: .5; cursor: default; }
.ce_programm__control:focus-visible,
.ce_programm__grid:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 3px; }
