/* Event archive and media, using the existing Kita Opera palette. */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
html { scroll-padding-top:calc(var(--header-height, 100px) + 24px); }
.archive-section + .archive-section { border-top:1px solid var(--line); }
.archive-section .section-title { margin-top:0; }
.archive-project { overflow:hidden; }
.archive-preview { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); grid-template-rows:1fr 1fr; gap:8px; aspect-ratio:2.1; background:var(--ink); }
.archive-preview a { display:block; min-width:0; min-height:0; overflow:hidden; }
.archive-preview-main { grid-row:1 / 3; }
.archive-preview img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.archive-preview a:hover img { transform:scale(1.025); }
.archive-preview a:focus-visible { outline:4px solid #7BC9C3; outline-offset:-4px; }
.archive-copy { padding:clamp(24px,4vw,46px); }
.archive-copy h3 { margin:14px 0; font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.8rem,4vw,2.6rem); }
.archive-copy p { max-width:780px; }
.archive-media-count { color:#1F5D63; font-weight:650; }
.event-cities { color:var(--muted); line-height:1.55; }
.ticket-notice, .ticket-sale-notice { color:#1F5D63; font-weight:650; }
.schedule-row, .event-date-row { grid-template-columns:minmax(110px,.5fr) minmax(0,1fr); cursor:default; }
.schedule-row:hover, .event-date-row:hover { transform:none; background:rgba(255,255,255,.80); border-color:rgba(31,93,99,.20); box-shadow:0 10px 28px rgba(21,50,74,.07); }
.ticket-date time { font-weight:700; color:#1F5D63; font-size:.9rem; }
.event-creative-team { margin-top:30px; }
.event-media-section { border-top:1px solid var(--line); }
.event-media-section h2 { color:var(--ink); font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.8rem,4vw,2.7rem); margin:0 0 26px; }
.video-player { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:#102735; }
.video-player iframe { display:block; width:100%; height:100%; border:0; }
.video-cover { position:relative; display:block; width:100%; height:100%; color:white; text-decoration:none; }
.video-cover img { width:100%; height:100%; object-fit:cover; }
.video-cover::after { content:'▶'; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); display:grid; place-items:center; width:76px; height:76px; border:1px solid rgba(255,255,255,.6); border-radius:50%; background:rgba(21,50,74,.9); font-size:28px; padding-left:4px; }
.video-cover > span { position:absolute; bottom:0; left:0; right:0; padding:18px 24px; background:linear-gradient(transparent,rgba(0,0,0,.8)); }
.video-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:20px; }
.video-choice { display:grid; grid-template-columns:minmax(80px,150px) 1fr; gap:16px; align-items:center; text-decoration:none; padding:10px; border:2px solid transparent; background:rgba(255,255,255,.6); }
.video-choice img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.video-choice[aria-current], .video-choice:hover { border-color:#1F5D63; }
.video-choice span { font-weight:650; }
.video-cover:focus-visible, .video-choice:focus-visible, .photo-gallery-item:focus-visible { outline:3px solid #1F5D63; outline-offset:4px; }
.photo-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.photo-gallery-item { display:block; overflow:hidden; background:rgba(21,50,74,.07); cursor:zoom-in; }
.photo-gallery-item img { width:100%; aspect-ratio:3/2; object-fit:cover; transition:transform .25s ease; }
.photo-gallery-item:hover img { transform:scale(1.025); }
.gallery-open { overflow:hidden; }
.media-lightbox { position:fixed; inset:0; width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; padding:70px 76px; border:0; margin:0; background:rgba(10,24,34,.97); color:white; }
.media-lightbox::backdrop { background:rgba(10,24,34,.97); }
.media-lightbox-stage { display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.media-lightbox-image { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
.media-lightbox-control { position:absolute; display:grid; place-items:center; width:48px; height:48px; border:1px solid rgba(255,255,255,.5); border-radius:50%; background:#15324A; color:white; cursor:pointer; font-size:34px; line-height:1; }
.media-lightbox-control:hover, .media-lightbox-control:focus-visible { background:#1F5D63; outline:2px solid #7BC9C3; outline-offset:3px; }
.media-lightbox-close { right:20px; top:16px; }
.media-lightbox-prev { left:14px; top:calc(50% - 24px); }
.media-lightbox-next { right:14px; top:calc(50% - 24px); }
.media-lightbox-count { position:absolute; bottom:15px; left:0; right:0; margin:0; text-align:center; }
/* A modest contrast adjustment within the existing teal colour family. */
.nav > a:not(.lang):hover, .nav > a:not(.lang):focus-visible, .nav > a:not(.lang)[aria-current='page'], .nav > a:not(.lang):active { color:#267378 !important; }
@media(max-width:700px) {
  .archive-preview { aspect-ratio:1.42; grid-template-columns:1.4fr 1fr; gap:5px; }
  .archive-copy { padding:24px 20px; }
  .photo-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .video-choices { gap:10px; }
  .video-choice { grid-template-columns:1fr; gap:8px; padding:6px; font-size:.9rem; }
  .media-lightbox { padding:68px 10px; }
  .media-lightbox-prev, .media-lightbox-next { top:auto; bottom:12px; }
  .media-lightbox-count { bottom:24px; }
  .schedule-row, .event-date-row { grid-template-columns:minmax(100px,.45fr) minmax(0,1fr); gap:12px; }
  .schedule-row .ticket-venue, .event-date-row .ticket-venue { grid-column:2; grid-row:1; }
}
@media(prefers-reduced-motion:reduce) { .archive-preview img, .photo-gallery-item img { transition:none; } }

.video-cover .video-play-icon { display:none; }
.video-fallback { margin:12px 0 0; font-size:.9rem; color:#1F5D63; }
.card h2.event-card-title { margin:0 0 12px; font-size:1.35rem; line-height:1.25; letter-spacing:.02em; }
.archive-back-section { padding-top:0; }

@media(max-width:700px) {
 .archive-preview { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto auto; aspect-ratio:auto; }
 .archive-preview-main { grid-column:1 / -1; grid-row:auto; }
 .archive-preview img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
}
