.photo-hub h2 { margin-bottom: .25em; }
.photo-hub .lead { max-width: 60ch; }
.photo-categories {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
  margin-top: 1.6rem;
}
.photo-category {
  display: block;
  overflow: hidden;
  border-radius: 16px;
  background: #fff;
  color: var(--navy);
  box-shadow: var(--shadow-sm);
  transition: transform .16s ease, box-shadow .16s ease;
}
.photo-category:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); text-decoration: none; }
.photo-category img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.photo-category span { display: grid; gap: 2px; padding: .85rem 1rem 1rem; line-height: 1.25; }
.photo-category strong { font-size: .98rem; }
.photo-category small { color: var(--muted); font-size: .8rem; }
.gallery-section { scroll-margin-top: 5rem; }
.gallery-section.is-collapsible:not(.is-expanded) .gal__item:nth-child(n+9) { display: none; }
.photo-more { margin-top: 1.5rem; }
.photo-more[hidden] { display: none; }
.photo-more__open { display: none; }
.photo-more[aria-expanded="true"] .photo-more__closed { display: none; }
.photo-more[aria-expanded="true"] .photo-more__open { display: inline; }
.section--navy .lead a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 900px) {
  .photo-categories { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .photo-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .photo-category span { padding: .7rem .8rem .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .photo-category { transition: none; }
  .photo-category:hover { transform: none; }
}
