/* Neutral functional fallback. The active theme may skin the canonical roles. */
:where(.panda-photo-library) { scroll-margin-top: 120px; color: inherit; font: inherit; }
:where(.panda-photo-filters) { display: flex; align-items: end; flex-wrap: wrap; gap: 1rem; margin-block: 1.5rem; }
:where(.panda-photo-filters > div) { flex: 1 1 170px; min-width: 0; }
:where(.panda-photo-filters > .panda-photo-submit) { flex: 0 0 auto; }
:where(.panda-photo-filters label) { display: block; margin-bottom: .5rem; }
:where(.panda-photo-filters select) { box-sizing: border-box; width: 100%; min-height: 44px; padding: .5rem; font: inherit; color: inherit; background: var(--wp--preset--color--base, Canvas); border: 1px solid currentColor; }
:where(.panda-photo-filters button) { min-height: 44px; font: inherit; white-space: normal; cursor: pointer; }
:where(.panda-photo-reset) { padding-block: .75rem; }
:where(.panda-photo-count, .panda-photo-notice) { margin-block: 1.25rem; }
:where(.panda-photo-album-description) { max-width: 65ch; margin-block: 1.25rem 1.75rem; }
:where(.panda-photo-albums) { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1.5rem; margin-block: 2rem; padding: 0; list-style: none; }
:where(.panda-photo-albums > li) { min-width: 0; }
:where(.panda-photo-album-card) { display: block; height: 100%; color: inherit; text-decoration: none; }
:where(.panda-photo-album-card .pillar-card-image) { margin: 0; }
:where(.panda-photo-album-card img) { display: block; max-width: 100%; height: auto; }
:where(.panda-photo-album-card .pillar-card-body) { padding-block: 1rem; }
:where(.panda-photo-album-card h3, .panda-photo-album-intro h3) { overflow-wrap: anywhere; }
:where(.panda-photo-all) { margin-top: 1.75rem; }
:where(.panda-photo-archive) { margin-top: 2.5rem; padding-block: 1.25rem; border-block: 1px solid currentColor; }
:where(.panda-photo-archive summary) { cursor: pointer; }
:where(.panda-photo-archive ol) { padding-left: 1.5rem; }
:where(.panda-photo-archive li) { margin-block: 1.25rem; }
/* Matches the native block-gap attribute, including REST previews. No grid replacement. */
:where(.panda-photo-grid.wp-block-gallery) { --wp--style--unstable-gallery-gap: 28px; }
:where(.panda-photo-pagination) { margin-top: 2rem; }
:where(.panda-photo-pagination ul) { display: flex; flex-wrap: wrap; gap: .75rem; list-style: none; padding: 0; }
:where(.panda-photo-pagination .page-numbers:not(ul)) { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: .5rem; }
:where(.panda-photo-pagination .page-numbers.current) { font-weight: bold; }
@media (max-width: 640px) {
  :where(.panda-photo-filters > div, .panda-photo-filters > .panda-photo-submit) { flex-basis: 100%; }
  :where(.panda-photo-filters button) { width: 100%; }
}
