.period-programmes { margin-block: 1rem; }
.period-programmes details { border: 1px solid #d9e5df; border-radius: 1.25rem; background: #fffdf8; color: #193c35; padding: 1rem 1.25rem; }
.period-programmes summary { cursor: pointer; font-size: 1.05rem; line-height: 1.5; overflow-wrap: anywhere; }
.period-programmes summary span { display: inline-block; margin-inline-start: .5rem; padding: .05rem .55rem; border-radius: 2rem; background: #d9e5df; }
.period-programmes__hint { margin-block: 1rem; line-height: 1.5; }
.period-programmes__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.period-programme { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #d9e5df; border-radius: 1rem; background: #f5f2ea; }
.period-programme__visual { display: block; position: relative; width: 100%; min-height: 0; aspect-ratio: 16 / 9; overflow: hidden; border-bottom: 1px solid #d9e5df; background: #e5e6df; }
.period-programme__visual img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; background: #e5e6df; }
.period-programme__visual.event-cover { display: flex; justify-content: flex-end; padding: 1rem; }
.period-programme__content { min-width: 0; flex: 1; padding: 1rem; }
.period-programme h3 { margin: 0 0 .65rem; font-size: 1.05rem; line-height: 1.45; }
.period-programme p { margin: .4rem 0; line-height: 1.5; font-size: .9rem; }
.period-programme .price { font-size: 1rem; }
.period-programme a, .period-programme p { overflow-wrap: anywhere; }
.period-programme a { color: #193c35; text-underline-offset: .15em; }
.period-programme__visual { text-decoration: none; }
.period-programme__visual.event-cover { color: #fff; }
.period-programmes__all { display: inline-block; margin-top: 1rem; padding: .5rem 0; color: #193c35; font-weight: 700; }
.period-programmes a:focus-visible, .period-programmes summary:focus-visible { outline: 3px solid #315f52; outline-offset: 4px; border-radius: .25rem; }
@media (max-width: 767px) {
    .period-programmes__grid { grid-template-columns: minmax(0, 1fr); }
    .period-programmes details { padding: 1rem; }
    .period-programme { display: grid; grid-template-columns: clamp(96px, 29vw, 128px) minmax(0, 1fr); }
    .period-programme__visual { height: 100%; min-height: 148px; aspect-ratio: auto; border-bottom: 0; border-right: 1px solid #d9e5df; }
    .period-programme__content { padding: .8rem; }
    .period-programme h3 { font-size: 1rem; line-height: 1.35; }
    .period-programme p { font-size: .85rem; }
}
