.directory-shortcuts { display: flex; align-items: center; gap: .65rem; margin: 0 0 1rem; font-size: .78rem; font-weight: 700; }
.directory-shortcuts span { color: var(--color-muted); }
.availability-overview { margin: 0 0 1.35rem; padding: .85rem 1rem; border-left: 4px solid var(--color-ball); background: var(--color-paper-soft); }
.availability-overview__heading { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.availability-overview__heading h2 { margin: 0; font-size: 1rem; }
.availability-overview__filters { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .45rem .7rem; }
.availability-overview__heading label { display: flex; align-items: center; gap: .45rem; font-size: .75rem; font-weight: 700; white-space: nowrap; }
.availability-overview__heading select { min-height: 2.3rem; border: 1px solid #8ca2a9; background: white; padding: .3rem .45rem; color: var(--color-ink); font: inherit; font-size: .8rem; }
.availability-overview__heading select:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 2px; }
.availability-overview__scope, .availability-overview__status { margin: .3rem 0; color: var(--color-muted); font-size: .72rem; line-height: 1.6; }
.availability-overview__status { color: var(--color-accent-strong); font-weight: 700; }
.availability-overview__empty, .availability-overview__noscript { margin: .45rem 0 0; font-size: .78rem; line-height: 1.7; }
.availability-overview__empty a { margin-left: .25rem; }
.availability-overview__day h3 { margin: .5rem 0 .1rem; font-size: .78rem; }
.availability-overview__list { list-style: none; margin: 0; padding: 0; }
.availability-overview__facility { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(12rem, 1.4fr) auto; align-items: center; gap: .25rem .8rem; padding: .55rem 0; border-top: 1px solid var(--color-rule); }
.availability-overview__place { display: grid; gap: .1rem; }
.availability-overview__place--photo { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
.availability-overview__photo { grid-column: 1; min-width: 0; }
.availability-overview__photo > a { display: block; }
.availability-overview__photo img { display: block; width: min(100%, 8rem); max-width: 100%; height: auto; object-fit: contain; background: var(--color-paper); }
.availability-overview__photo-credit { display: block; margin-top: .12rem; font-size: .52rem !important; line-height: 1.35 !important; overflow-wrap: anywhere; }
.availability-overview__place-copy { display: grid; min-width: 0; gap: .1rem; }
.availability-overview__place a { font-size: .8rem; font-weight: 700; }
.availability-overview__place span, .availability-overview__scope-detail { margin: 0; color: var(--color-muted); font-size: .68rem; line-height: 1.5; }
.availability-overview__type { display: inline-block; margin-right: .25rem; padding: .05rem .3rem; border: 1px solid #9aacb0; color: var(--color-ink); font-size: .62rem; font-weight: 700; white-space: nowrap; }
.availability-overview__times { grid-column: 2; grid-row: 1; display: flex; flex-wrap: wrap; gap: .25rem .55rem; list-style: none; margin: 0; padding: 0; }
.availability-overview__times li { display: flex; flex-wrap: wrap; min-width: 0; gap: .25rem; font-size: .72rem; }
.availability-overview__times time { flex: 0 0 auto; white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 700; }
.availability-overview__times li > span { min-width: 0; overflow-wrap: anywhere; }
.availability-overview__more { grid-column: 2; font-size: .7rem; }
.availability-overview__more summary { cursor: pointer; color: var(--color-accent-strong); }
.availability-overview__more ul { display: flex; flex-wrap: wrap; gap: .2rem .55rem; list-style: none; margin: .25rem 0 0; padding: 0; }
.availability-overview__more li { display: flex; flex-wrap: wrap; min-width: 0; gap: .25rem; font-size: .7rem; }
.availability-overview__more time { flex: 0 0 auto; white-space: nowrap; }
.availability-overview__more li > span { min-width: 0; overflow-wrap: anywhere; }
.availability-overview__actions { grid-column: 3; grid-row: 1 / span 2; display: grid; justify-items: end; gap: .1rem; white-space: nowrap; }
.availability-overview__actions a { font-size: .75rem; font-weight: 700; }
.availability-overview__actions span { color: var(--color-muted); font-size: .62rem; }
@media (max-width: 680px) {
  .availability-overview { padding: .75rem; }
  .availability-overview__heading { display: grid; grid-template-columns: minmax(0, 1fr); justify-content: stretch; gap: .45rem; }
  .availability-overview__heading h2 { width: 100%; }
  .availability-overview__filters { display: grid; grid-template-columns: minmax(0, 1fr); gap: .35rem; }
  .availability-overview__heading label { justify-content: space-between; white-space: normal; }
  .availability-overview__heading select { min-width: 55%; min-height: 44px; }
  .availability-overview__facility { display: flex; flex-direction: column; align-items: stretch; gap: .45rem; }
  .availability-overview__place { order: 1; }
  .availability-overview__place--photo { grid-template-columns: minmax(5.5rem, 6rem) minmax(0, 1fr); align-items: center; gap: .1rem .55rem; }
  .availability-overview__photo { grid-column: 1; grid-row: 1 / span 2; }
  .availability-overview__photo img { width: 100%; height: auto; }
  .availability-overview__times { order: 2; }
  .availability-overview__more { order: 3; }
  .availability-overview__scope-detail { order: 4; }
  .availability-overview__scope-detail, .availability-overview__type, .availability-overview__actions span, .availability-overview__photo-credit { font-size: .75rem !important; }
  .availability-overview__more summary { display: inline-flex; align-items: center; min-height: 44px; }
  .availability-overview__actions { order: 5; display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; white-space: normal; }
  .availability-overview__actions a { display: inline-flex; align-items: center; min-height: 44px; padding: .45rem .75rem; border: 1px solid var(--color-accent); font-size: .8rem; }
  .availability-overview__actions span { white-space: normal; text-align: left; }
}
