/* CMH 2026 modules: event switch, flat agenda, sponsors, PDF grids, gallery */

.event-switch { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-bottom: 1.25rem; }
.event-switch-btn { display: flex; align-items: center; justify-content: center; width: min(100%, 17rem); height: 5.5rem; padding: .6rem 1rem; border-radius: 1rem; background: #fff; border: 1.5px solid var(--brand-100); transition: all .25s ease; }
.event-switch-btn img { max-width: 100%; max-height: 100%; object-fit: contain; }
.event-switch-btn:hover { border-color: var(--brand-300); }
.event-switch-btn.active { border-color: var(--brand-700); box-shadow: var(--brand-shadow); background: var(--brand-50); }
.agenda-rooms { padding-bottom: 0; }
.agenda-nav-tabs a.agenda-tab { text-decoration: none; }

/* Agenda: flat lines */
.agenda-timeline > .agenda-row { margin-block: .25rem; }
.is-seance::before { top: 1.2rem; width: 13px; height: 13px; margin-left: -6.5px; background: var(--brand-700); border: 2px solid #fff; box-shadow: 0 0 0 2px var(--brand-700); }
.is-seance .agenda-session-head { background: var(--brand-700); }
.is-seance .agenda-time, .is-session .agenda-time { padding-top: .95rem; }
.agenda-lab { margin: .35rem 0 0; font-size: .85rem; font-weight: 600; color: var(--brand-800); }
.agenda-row.is-symposium .agenda-symposium-theme { margin-left: 0; }
.agenda-row.is-symposium .agenda-speakers { margin-left: 0; }
.agenda-row.is-break .agenda-body { flex-direction: column; align-items: flex-start; justify-content: center; }
.agenda-moderators { margin: .3rem 0 0; font-size: .875rem; }
.agenda-moderators span { margin-right: .3rem; padding: 0 .55rem; border-radius: 999px; background: var(--brand-gold); color: var(--brand-ink); font-size: .75rem; font-weight: 600; }
.autre--pause-cafe .agenda-body, .autre--pause-dejeuner .agenda-body { background: var(--brand-50); }
.autre--pause-dejeuner .agenda-body { border-style: dashed; }
.autre--discussion .agenda-body { background: #fff; color: var(--brand-700); font-weight: 600; }
.autre--ceremonie .agenda-body { background: var(--brand-700); color: #fff; font-weight: 600; border-color: var(--brand-700); }
.autre--e-posters-visit .agenda-body { background: var(--brand-gold-soft); color: var(--brand-ink); border-color: var(--brand-gold); font-weight: 600; }
.autre--autre .agenda-body { background: #fff; }

/* Remerciement */
.thanks { text-align: center; }
.thanks-logos { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 2rem; margin-bottom: 1.5rem; }
.thanks-logos img { height: 6rem; max-width: 100%; object-fit: contain; }
.thanks-text { max-width: 62rem; margin: 0 auto 2rem; font-size: 1.05rem; line-height: 1.7; color: var(--brand-900); }
.sponsor-tier { margin-top: 2rem; }
.sponsor-tier-title { display: flex; align-items: center; gap: 1rem; margin: 0 0 1.25rem; font-size: 1.25rem; font-weight: 700; color: var(--brand-900); }
.sponsor-tier-title::before, .sponsor-tier-title::after { content: ""; flex: 1; height: 1px; background: var(--brand-100); }
.sponsor-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; }
.sponsor-card { display: flex; align-items: center; justify-content: center; aspect-ratio: 3 / 2; padding: .9rem; background: #fff; border: 1px solid var(--brand-100); border-radius: 1rem; box-shadow: 0 10px 24px -20px rgb(3 23 91 / 30%); }
.sponsor-card img { max-width: 100%; max-height: 100%; object-fit: contain; }
@media (max-width: 1199px) { .sponsor-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) { .sponsor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* E-Posters / Attestations */
.pdf-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.pdf-card a { display: flex; align-items: center; gap: .9rem; height: 100%; padding: 1rem 1.1rem; background: #fff; border: 1px solid var(--brand-100); border-radius: 1rem; color: var(--brand-900); font-weight: 500; line-height: 1.35; text-decoration: none; word-break: break-word; box-shadow: 0 10px 24px -20px rgb(3 23 91 / 30%); transition: all .2s ease; }
.pdf-card a:hover { border-color: var(--brand-300); transform: translateY(-2px); }
.pdf-card i { flex: none; font-size: 2rem; color: var(--brand-700); }
@media (max-width: 991px) { .pdf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .pdf-grid { grid-template-columns: 1fr; } }

/* Galerie */
.gallery-video { border-radius: 1rem; overflow: hidden; }
.photo-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.photo-thumb { display: block; width: 100%; aspect-ratio: 4 / 3; padding: 0; border: 0; border-radius: .75rem; overflow: hidden; background: var(--brand-50); cursor: zoom-in; }
.photo-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.photo-thumb:hover img { transform: scale(1.04); }
.gallery-pager { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1.5rem; }
@media (max-width: 575px) { .photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.lightbox { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; background: rgb(2 8 36 / 92%); }
.lightbox[hidden] { display: none; }
.lightbox img { max-width: 88vw; max-height: 82vh; object-fit: contain; border-radius: .5rem; }
.lb-btn { position: absolute; width: 3rem; height: 3rem; border: 0; border-radius: 50%; background: rgb(255 255 255 / 16%); color: #fff; font-size: 2rem; line-height: 1; }
.lb-btn:hover { background: rgb(255 255 255 / 30%); }
.lb-close { top: 1rem; right: 1rem; }
.lb-prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.lb-next { right: 1rem; top: 50%; transform: translateY(-50%); }
.lb-download { position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%); }
.lb-count { position: absolute; bottom: 1.3rem; left: 1rem; color: #fff; font-size: .9rem; }
