.programmes { padding: 80px 0; }
.programmes__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.programme-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 478px;
    padding: 30px;
    border-radius: var(--radius-lg);
    color: var(--color-white);
    background-color: var(--color-blue);
    background-position: center;
    background-size: cover;
    overflow: hidden;
    isolation: isolate;
}

/* Default (no hover): strong blue highlight */
.programme-card__overlay {
    position: absolute; inset: 0;
    z-index: -1;
    background: linear-gradient(to bottom, rgba(28, 56, 143, 0) 25%, rgba(28, 56, 143, 0.9) 80%);
    transition: background .35s ease;
}

/* Hover/focus: lighter blue veil */
.programme-card:hover .programme-card__overlay,
.programme-card:focus-within .programme-card__overlay {
    background:
        linear-gradient(to bottom, rgba(28, 56, 143, 0) 45%, var(--color-blue-dark) 100%),
        rgba(28, 56, 143, 0.5);
}

.programme-card__title {
    font-size: 32px; line-height: 42px; font-weight: 600;
    color: var(--color-white);
}

.programme-card__reveal {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    max-height: 0;
    margin-top: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height .4s ease, margin-top .4s ease, opacity .3s ease;
}
.programme-card:hover .programme-card__reveal,
.programme-card:focus-within .programme-card__reveal {
    max-height: 280px;
    margin-top: 16px;
    opacity: 1;
}

.programme-card__text { font-size: 18px; line-height: 28px; margin: 0; }
.programme-card .btn { margin-top: 20px; align-self: flex-start; }

@media (max-width: 1199px) {
    .programmes__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
    .programmes { padding: 48px 0; }
    .programmes__grid { grid-template-columns: 1fr; gap: 16px; }
    .programme-card { min-height: 400px; padding: 24px; }
    .programme-card__title { font-size: 28px; line-height: 36px; }
}
