/* From the Lab – Photo Slider */
.gallery { padding-top: 0; }
.gallery .inner { max-width: var(--maxw); margin: 0 auto; padding: 0 1rem 2rem; }
.gallery-head { display: grid; justify-items: center; gap: 0.5rem; padding: 0.75rem 0 0.75rem; text-align: center; }
.gallery-head h2 { font-size: 1.3rem; font-weight: 700; letter-spacing: 0.01em; }
.gallery-note { color: var(--muted); font-size: 0.95rem; }

.photo-slider { position: relative; border-radius: 12px; overflow: hidden; border: 1px solid var(--border); background: var(--card); width: 100%; aspect-ratio: 21 / 9; max-height: 360px; }
@media (max-width: 768px) { .photo-slider { aspect-ratio: 3 / 2; max-height: 240px; } }
.photo-slider, .photo-slider .slide { margin: 0; }
.photo-slider .slide { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; visibility: hidden; transition: opacity 800ms ease, visibility 0s linear 800ms; will-change: opacity; }
.photo-slider .slide.is-active { opacity: 1; visibility: visible; z-index: 1; transition: opacity 800ms ease; }
.photo-slider img { width: 100%; height: 100%; object-fit: contain; display: block; backface-visibility: hidden; }
.photo-slider .slide.is-active img { transform: none; }
.photo-slider figcaption { position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, rgba(0,0,0,0.0), rgba(0,0,0,0.68)); color: #fff; padding: 0.7rem 0.9rem; font-size: 0.95rem; text-shadow: 0 1px 2px rgba(0,0,0,0.5); }

.gallery-arrow { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0,0,0,0.45); color: #fff; border: 0; width: 38px; height: 38px; border-radius: 999px; display: grid; place-items: center; cursor: pointer; }
.gallery-arrow.left { left: 8px; }
.gallery-arrow.right { right: 8px; }
.gallery-arrow:hover { background: rgba(0,0,0,0.58); }
.gallery-dots { position: absolute; bottom: 8px; left: 0; right: 0; display: flex; justify-content: center; gap: 6px; }
.gallery-dots button { width: 8px; height: 8px; border-radius: 999px; border: 1px solid var(--border); background: rgba(255,255,255,0.8); cursor: pointer; }
.gallery-dots button[aria-selected="true"] { background: var(--accent); border-color: var(--accent); }

@media (prefers-reduced-motion: reduce) {
  .photo-slider .slide { transition: none; }
}
