Files
msos/css/components/_lightbox.css
T
popovskikandClaude Opus 4.8 0a1971efad
Deploy to Production on Develop Push / deploy (push) Successful in 22s
style(brand): unify orange to #FA7850 + yellow token; fix tablet header gap
- Brand orange is now the official #FA7850 everywhere: folded the stray
  oranges (#F2762E, #E8833A, #ff6b2c) into it and kept a single darker shade
  (#E85D2A) for gradient depth + button hover. Added the official brand
  --yellow (#FFE16E) token.
- Tablet header gap (769-1024px): the fixed header shrinks 80->60px there but
  first-section paddings kept their 80px clearance; pull the first section up
  by the 20px delta in that range only (phones untouched). Verified on
  interior pages and the full-bleed homepage hero — gap now matches desktop,
  no overlap.
- Re-stamped cache-bust (v=f95de694).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-27 20:48:50 +02:00

106 lines
4.5 KiB
CSS

/* ==========================================================================
Reusable photo gallery block ("Photos from the event") + lightbox
Drop a .event-gallery-grid.js-lightbox anywhere; main.js wires the viewer.
========================================================================== */
.event-gallery { margin: 48px 0 8px; }
.event-gallery-title {
font-size: 22px; font-weight: 700; color: #101828; margin: 0 0 16px;
}
.event-gallery-grid {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 8px;
}
.eg-thumb {
padding: 0; border: none; background: #EEF2F4;
border-radius: 8px; overflow: hidden; cursor: pointer;
aspect-ratio: 1; position: relative; display: block;
}
.eg-thumb img {
width: 100%; height: 100%; object-fit: cover; display: block;
transition: transform 0.4s ease;
}
.eg-thumb:hover img { transform: scale(1.06); }
.eg-thumb:focus-visible { outline: 2px solid #2D738C; outline-offset: 2px; }
.eg-thumb.is-hidden { display: none; }
.eg-more {
position: absolute; inset: 0; z-index: 2;
display: flex; align-items: center; justify-content: center;
background: rgba(9, 18, 26, 0.55);
color: #FFFFFF; font-size: 18px; font-weight: 700;
pointer-events: none;
}
/* ---------- Full-screen lightbox (injected once by main.js) ---------- */
.lightbox {
position: fixed; inset: 0; z-index: 2000;
display: none; align-items: center; justify-content: center;
background: rgba(9, 18, 26, 0.93); padding: 24px;
}
.lightbox.is-open { display: flex; }
.lightbox-img {
max-width: 92vw; max-height: 82vh; object-fit: contain;
border-radius: 8px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
user-select: none; -webkit-user-drag: none;
}
.lightbox-close, .lightbox-prev, .lightbox-next {
position: absolute; background: rgba(255, 255, 255, 0.12);
color: #FFFFFF; border: none; cursor: pointer; border-radius: 50%;
width: 48px; height: 48px; font-size: 24px; line-height: 1;
display: flex; align-items: center; justify-content: center;
transition: background 0.15s ease;
}
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover { background: rgba(255, 255, 255, 0.25); }
.lightbox-close { top: 20px; right: 20px; font-size: 28px; }
.lightbox-prev { left: 20px; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 20px; top: 50%; transform: translateY(-50%); }
.lightbox-caption {
position: absolute; bottom: 18px; left: 0; right: 0;
text-align: center; color: rgba(255, 255, 255, 0.85);
font-size: 14px; padding: 0 24px;
}
/* "Go to project" button (only shown for gallery-page albums) */
.lightbox-project {
position: absolute; bottom: 46px; left: 50%; transform: translateX(-50%);
display: inline-flex; align-items: center;
padding: 9px 18px; border-radius: 999px;
background: #FA7850; color: #FFFFFF;
font-size: 14px; font-weight: 600; text-decoration: none;
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
transition: background 0.15s ease, transform 0.15s ease;
}
.lightbox-project::after { content: "\00a0\2192"; }
.lightbox-project:hover { background: #D9752E; transform: translateX(-50%) translateY(-1px); }
.lightbox-project[hidden] { display: none; }
/* While the viewer is open, hide the floating "Ask MSOS" pill so it can't
overlap the caption / "Read the story" button. */
body.lightbox-open .msa-root { display: none !important; }
@media (max-width: 700px) {
.event-gallery { margin: 36px 0 8px; }
.event-gallery-title { font-size: 19px; margin: 0 0 12px; }
.event-gallery-grid { grid-template-columns: repeat(3, 1fr); gap: 6px; }
}
@media (max-width: 600px) {
/* Stack image -> "Read the story" -> caption in a centred column so the
button and caption sit directly under the photo instead of pinned to the
screen bottom (where they were cramped and clashed with the pill). The
reduced image height guarantees room below even for tall/portrait photos. */
.lightbox { padding: 12px; flex-direction: column; justify-content: center; gap: 14px; }
.lightbox-img { max-width: 96vw; max-height: 62vh; }
.lightbox-prev { left: 8px; }
.lightbox-next { right: 8px; }
.lightbox-close { top: 12px; right: 12px; }
.lightbox-project {
position: static; transform: none; left: auto; bottom: auto;
margin: 0; flex: 0 0 auto;
}
.lightbox-project:hover { transform: none; }
.lightbox-caption {
position: static; left: auto; right: auto; bottom: auto;
flex: 0 0 auto; max-width: 92vw; margin: 0 auto;
font-size: 12.5px;
}
}