/* GoPride Chicago calendar v1.00. Extends gpc-site.css and Bootstrap 5.3. */
.gpc_cal .gpc_cal-header { position: relative; }
.gpc_cal .gpc_cal-date-strip { padding: 1rem; background: #f5f5f5; border: .0625rem solid var(--gpc-line); border-radius: var(--gpc-radius-sm); }
.gpc_cal .gpc_date-row { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(5rem,1fr); scrollbar-width: thin; }
.gpc_cal .gpc_date-tile { min-height: 4.75rem; }
.gpc_cal .gpc_cal-layout { grid-template-areas: "results sidebar"; }
.gpc_cal .gpc_cal-results { grid-area: results; min-width: 0; }
.gpc_cal .gpc_cal-sidebar { grid-area: sidebar; position: static; min-width: 0; }
.gpc_cal .gpc_sidebar-module > summary { cursor: pointer; }
.gpc_cal .gpc_sidebar-module > summary::marker { color: var(--gpc-magenta); }
.gpc_cal .gpc_cal-event-card { grid-template-columns: 6rem minmax(9rem,12rem) minmax(0,1fr); align-items: start; }
.gpc_cal .gpc_cal-event-card-no-image { grid-template-columns: 6rem minmax(0,1fr); }
.gpc_cal .gpc_cal-event-image { display: block; aspect-ratio: 8 / 5; overflow: hidden; background: #ddd; border-radius: var(--gpc-radius-sm); }
.gpc_cal .gpc_cal-event-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; transition: transform .2s ease; }
.gpc_cal .gpc_cal-event-image:hover img { transform: scale(1.035); }
.gpc_cal .gpc_cal-event-copy { min-width: 0; }
.gpc_cal .gpc_cal-status { display: inline-flex; margin-bottom: .35rem; color: var(--gpc-muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.gpc_cal .gpc_cal-status.is-now { padding: .18rem .45rem; color: #fff; background: var(--gpc-success); border-radius: 999px; }
.gpc_cal .gpc_cal-status.is-past { color: #747474; }
.gpc_cal .gpc_cal-month { padding: clamp(1rem,3vw,1.5rem); background: #f7f7f7; border: .0625rem solid var(--gpc-line); border-radius: var(--gpc-radius-sm); }
.gpc_cal .gpc_cal-month-nav { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; margin-bottom: 1.25rem; text-align: center; }
.gpc_cal .gpc_cal-month-nav .gpc_section-title::after { margin-inline: auto; }
.gpc_cal .gpc_cal-month-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: .35rem; }
.gpc_cal .gpc_cal-weekday { padding: .35rem; color: var(--gpc-muted); font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-align: center; text-transform: uppercase; }
.gpc_cal .gpc_cal-day { position: relative; display: flex; min-height: 5rem; flex-direction: column; align-items: flex-start; justify-content: space-between; padding: .45rem; color: var(--gpc-ink); background: #fff; border: .0625rem solid var(--gpc-line); border-radius: var(--gpc-radius-sm); text-decoration: none; }
.gpc_cal .gpc_cal-day:hover,.gpc_cal .gpc_cal-day:focus-visible { color: #fff; background: var(--gpc-magenta-dark); border-color: var(--gpc-magenta-dark); }
.gpc_cal .gpc_cal-day.is-outside { opacity: .42; }
.gpc_cal .gpc_cal-day.is-today { border-width: .15rem; border-color: var(--gpc-magenta); }
.gpc_cal .gpc_cal-day.has-events { box-shadow: inset 0 -.25rem 0 var(--gpc-magenta); }
.gpc_cal .gpc_cal-day-number { font-weight: 800; }
.gpc_cal .gpc_cal-day-count { display: inline-flex; min-width: 1.5rem; min-height: 1.5rem; align-items: center; justify-content: center; align-self: flex-end; color: #fff; background: var(--gpc-magenta-dark); border-radius: 999px; font-size: .72rem; font-weight: 800; }
.gpc_cal .gpc_cal-day:hover .gpc_cal-day-count,.gpc_cal .gpc_cal-day:focus-visible .gpc_cal-day-count { color: var(--gpc-magenta-dark); background: #fff; }
.gpc_cal .gpc_cal-description { white-space: pre-line; }
.gpc_cal-detail .gpc_hero-image img { max-height: 42rem; object-position: center 20%; }
.gpc_cal-detail .gpc_sidebar address { font-style: normal; line-height: 1.55; }
.gpc_cal-detail .gpc_gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.gpc_cal-detail .gpc_gallery-button { aspect-ratio: 4 / 3; }
.gpc_cal-detail .gpc_gallery-button img { height: 100%; }

@media (max-width: 991.98px) {
  .gpc_cal .gpc_cal-layout { grid-template-areas: "sidebar" "results"; }
  .gpc_cal .gpc_cal-sidebar { display: grid; grid-template-columns: minmax(0,1fr) minmax(16rem,20rem); gap: 1rem; align-items: start; }
  .gpc_cal .gpc_cal-sidebar .gpc_ad { display: none; }
}
@media (max-width: 767.98px) {
  .gpc_cal .gpc_cal-event-card { grid-template-columns: 5rem minmax(0,1fr); gap: .85rem; }
  .gpc_cal .gpc_cal-event-image { display: none; }
  .gpc_cal .gpc_cal-month { padding: .65rem; }
  .gpc_cal .gpc_cal-day { min-height: 3.8rem; padding: .3rem; }
  .gpc_cal .gpc_cal-month-nav { grid-template-columns: 1fr 1fr; }
  .gpc_cal .gpc_cal-month-nav h2 { grid-column: 1 / -1; grid-row: 1; }
  .gpc_cal .gpc_cal-month-nav a:first-child { grid-column: 1; grid-row: 2; }
  .gpc_cal .gpc_cal-month-nav a:last-child { grid-column: 2; grid-row: 2; }
}
@media (max-width: 575.98px) {
  .gpc_cal .gpc_cal-sidebar { grid-template-columns: 1fr; }
  .gpc_cal .gpc_cal-day-count { min-width: 1.25rem; min-height: 1.25rem; font-size: .65rem; }
  .gpc_cal-detail .gpc_gallery-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .gpc_cal .gpc_cal-event-image img { transition: none; }
  .gpc_cal .gpc_cal-event-image:hover img { transform: none; }
}
@media print {
  .gpc_cal .gpc_filter-bar,.gpc_cal .gpc_cal-date-strip,.gpc_cal .gpc_cal-sidebar,.gpc_cal .gpc_pagination,.gpc_cal-detail .gpc_share-tools { display: none !important; }
  .gpc_cal .gpc_cal-layout,.gpc_cal-detail .gpc_content-grid { display: block; }
}

/* Preserve the centered site shell when it is also a hero figure. */
.gpc_cal-detail .gpc_hero-image.gpc_shell { margin-inline: auto; }
