/* Albums photo et vidéo : cartes (page des événements, page d'un événement) et page d'un album. */
.albums { display: grid; gap: 1.2rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .albums { grid-template-columns: 1fr 1fr; } }
@media (min-width: 960px) { .albums { grid-template-columns: repeat(3, 1fr); } }
.album { display: block; background: var(--blanc); color: inherit; text-decoration: none; border-radius: var(--radius); box-shadow: var(--shadow-card); overflow: hidden; transition: var(--transition); }
.album:hover { box-shadow: var(--shadow-card-hover); transform: translateY(-3px); }
.album__couverture { position: relative; }
.album__mosaique { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 3px; aspect-ratio: 16/10; }
.album__mosaique img, .album__mosaique video { width: 100%; height: 100%; object-fit: cover; background: var(--gris-10); }
.album__mosaique > :first-child { grid-row: 1 / 3; }
.album__mosaique > :only-child { grid-column: 1 / 3; }
.album__mosaique > :nth-child(2):last-child { grid-row: 1 / 3; }
.album__badge { position: absolute; top: .7rem; right: .7rem; display: inline-flex; align-items: center; gap: .4rem; background: rgba(0,0,0,.75); color: var(--blanc); border-radius: 999px; padding: .3rem .7rem; font-size: .75rem; font-weight: 700; }
.album__badge i { color: var(--or); }
.album__txt { padding: .95rem 1.1rem 1.1rem; }
.album__txt small { font-size: .75rem; font-weight: 700; color: var(--rouge); text-transform: uppercase; letter-spacing: .05em; }
.album__txt strong { display: block; font-size: 1.02rem; margin-top: .2rem; }
.album__txt span { display: flex; align-items: center; gap: .4rem; font-size: .82rem; color: var(--gris-60); margin-top: .35rem; }

/* Page d'un album */
.ev-hero .album-hero__label { color: var(--or); font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 .3rem; }
.videos { display: grid; gap: 1.2rem; grid-template-columns: 1fr; }
@media (min-width: 760px) { .videos { grid-template-columns: 1fr 1fr; } }
.videos video { width: 100%; aspect-ratio: 16/9; background: var(--noir-pur); border-radius: var(--radius); box-shadow: var(--shadow-card); }
.galerie { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); }
@media (min-width: 600px) { .galerie { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); } }
.galerie a { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 6px; background: var(--gris-10); }
.galerie img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition); }
.galerie a:hover img, .galerie a:focus-visible img { transform: scale(1.05); }

/* Visionneuse */
.lb { position: fixed; inset: 0; z-index: 200; background: rgba(0,0,0,.92); display: none; align-items: center; justify-content: center; flex-direction: column; padding: 1rem; }
.lb.ouvert { display: flex; }
.lb img { max-width: min(1100px, 100%); max-height: 78vh; border-radius: 6px; object-fit: contain; }
.lb__legende { color: var(--blanc); font-size: .9rem; margin-top: .8rem; text-align: center; }
.lb__legende b { color: var(--or); }
.lb button { position: absolute; background: rgba(255,255,255,.12); color: var(--blanc); width: 3rem; height: 3rem; border-radius: 50%; font-size: 1.2rem; transition: var(--transition); }
.lb button:hover { background: var(--rouge); }
.lb__fermer { top: 1rem; right: 1rem; }
.lb__prec { left: 1rem; top: 50%; transform: translateY(-50%); }
.lb__suiv { right: 1rem; top: 50%; transform: translateY(-50%); }
@media (max-width: 599px) { .lb__prec, .lb__suiv { top: auto; bottom: 1rem; transform: none; } }
