.agenda-carrousel {
    position: relative;
    padding: 0 2.75rem;
}

.agenda-carrousel-viewport {
    overflow-x: auto;
    overflow-y: hidden;
    padding: 4px 2px 14px;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
}

.agenda-carrousel-viewport::-webkit-scrollbar { display: none; }

.agenda-carrousel-piste {
    display: flex;
    align-items: stretch;
    gap: 1rem;
}

.agenda-carrousel-piste > .agenda-carrousel-carte {
    flex: 0 0 calc((100% - 2rem) / 3);
    min-width: 0;
}

.agenda-carrousel-bouton {
    position: absolute;
    z-index: 2;
    top: 50%;
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    transform: translateY(-50%);
    border: 1px solid var(--color-border, var(--color-border-strong));
    border-radius: 50%;
    background: var(--color-surface);
    color: var(--color-primary-dark, var(--color-primary, var(--color-primary-dark)));
    box-shadow: 0 2px 8px color-mix(in srgb, var(--color-primary, var(--color-primary-dark)) 15%, transparent);
    font: inherit;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}

.agenda-carrousel-bouton:focus-visible {
    outline: 3px solid var(--color-primary, var(--color-primary-dark));
    outline-offset: 3px;
}

.agenda-carrousel-bouton[hidden] { display: none; }
.agenda-carrousel-precedent { left: 0; }
.agenda-carrousel-suivant { right: 0; }
.agenda-carrousel-bouton:disabled { opacity: .4; cursor: default; }

@media (max-width: 700px) {
    .agenda-carrousel-piste > .agenda-carrousel-carte {
        flex-basis: calc((100% - 1rem) / 2);
    }
}

@media (max-width: 460px) {
    .agenda-carrousel { padding-inline: 2.25rem; }
    .agenda-carrousel-piste > .agenda-carrousel-carte { flex-basis: 100%; }
    .agenda-carrousel-bouton { width: 2rem; height: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
    .agenda-carrousel-viewport { scroll-behavior: auto; }
}
