/* Free NYC Weekend — site layer on top of studio.css + theme.css.
   Event rows read like a timetable: big mono time · serif title · italic place · hairline tags. */

/* ---------- event list ---------- */
.evlist { container-type: inline-size; }
.evs { list-style: none; margin: 0; padding: 0; }
.ev { border-bottom: 1px solid var(--g-rule); }
.ev[hidden] { display: none; }
.ev__row {
  display: grid; grid-template-columns: 4.6rem minmax(0, 1fr); column-gap: var(--space-4); row-gap: var(--space-2);
  padding-block: var(--space-4); color: inherit; text-decoration: none; min-height: var(--tap);
}
.ev__time { display: grid; align-content: start; grid-template-columns: auto 1fr; column-gap: .3rem; font-family: var(--font-data); font-variant-numeric: tabular-nums; }
.ev__hm { font-size: 1.25rem; line-height: 1.15; letter-spacing: -.01em; color: var(--g-text); }
.ev__ap { font-size: var(--text-data-xs); letter-spacing: .06em; color: var(--g-muted); align-self: start; padding-top: .2rem; }
.ev__until { grid-column: 1 / -1; font-size: var(--text-data-xs); letter-spacing: .04em; color: var(--g-muted); margin-top: .2rem; }
.ev__main { display: grid; gap: .3rem; min-width: 0; }
.ev__title { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 1.4375rem; line-height: 1.12; letter-spacing: -.005em; text-wrap: balance; overflow-wrap: anywhere; }
.ev__where { color: var(--g-muted); font-family: var(--font-display); font-style: italic; font-size: 1.0625rem; line-height: 1.3; overflow-wrap: anywhere; }
.ev__tags { display: flex; flex-wrap: wrap; gap: .375rem; align-items: center; margin-top: .3rem; }
.ev__tags .badge { padding: .22rem .45rem; font-size: .625rem; color: var(--g-text); border-color: var(--g-rule); }
.ev__free { font-family: var(--font-data); font-size: var(--text-data-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--accent); padding-right: .25rem; }
.ev__go { display: none; }
a.ev__row:hover .ev__title { font-style: italic; }
a.ev__row:focus-visible { outline-offset: -2px; }

@container (min-width: 44rem) {
  .ev__row { grid-template-columns: 7.5rem minmax(0, 1fr) auto; column-gap: var(--space-6); align-items: baseline; padding-block: var(--space-5); }
  .ev__hm { font-size: 1.75rem; }
  .ev__ap { padding-top: .35rem; }
  .ev__title { font-size: 1.75rem; }
  .ev__go {
    display: inline-flex; align-items: center; gap: .5rem; align-self: center;
    font-family: var(--font-label); font-size: var(--text-label); font-stretch: var(--label-stretch); font-weight: var(--label-weight);
    letter-spacing: var(--label-tracking); text-transform: uppercase; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .55em;
  }
  a.ev__row:hover .ev__go { text-decoration-thickness: 2px; }
}

/* ---------- day groups ---------- */
.day + .day { margin-top: var(--space-7); }
.day[hidden] { display: none; }
.day__head {
  display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4);
  padding: var(--space-3) 0 var(--space-3); border-bottom: 1px solid var(--g-text); background: var(--g-bg);
}
.day__head[data-sticky] { position: sticky; top: 0; z-index: 2; }
.day__title { margin: 0; font-family: var(--font-display); font-weight: var(--display-weight); font-size: var(--text-display-md); line-height: 1.05; letter-spacing: -.012em; }
.day__title em { font-style: italic; color: var(--g-muted); }
.day__count { white-space: nowrap; }
.day__sub { margin: var(--space-4) 0 0; color: var(--g-muted); }
.evlist__none { padding: var(--space-6) 0; color: var(--g-muted); }
.evlist__none .link-label { background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: .4em; color: var(--g-text); min-height: var(--tap); }

/* ---------- filters ---------- */
.filters { display: grid; gap: var(--space-4); margin-bottom: var(--space-6); padding: var(--space-4) 0 var(--space-5); border-top: 1px solid var(--g-text); }
.filters[hidden] { display: none; }
.filters__group { display: grid; gap: var(--space-2); }
.filters__label { margin: 0; color: var(--g-muted); }
.seg { display: flex; flex-wrap: wrap; gap: .5rem; }
.seg__b {
  display: inline-flex; align-items: center; gap: .55rem; min-height: var(--tap); padding: .5rem .9rem;
  border: 1px solid var(--g-rule); background: transparent; color: var(--g-text); cursor: pointer;
  font-family: var(--font-label); font-size: .6875rem; font-stretch: var(--label-stretch); font-weight: var(--label-weight);
  letter-spacing: .12em; text-transform: uppercase; line-height: 1.2;
  transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.seg__b .num { font-family: var(--font-data); font-size: var(--text-data-xs); letter-spacing: .02em; color: var(--g-muted); font-stretch: normal; }
.seg__b:hover { border-color: var(--g-text); }
.seg__b[aria-pressed="true"] { background: var(--g-text); color: var(--g-bg); border-color: var(--g-text); }
.seg__b[aria-pressed="true"] .num { color: color-mix(in srgb, var(--g-bg) 70%, var(--g-text)); }
.filters__status { margin: 0; }
@media (min-width: 64em) {
  .filters { grid-template-columns: auto auto; justify-content: start; column-gap: var(--space-7); align-items: end; }
  .filters__status { grid-column: 1 / -1; }
}

/* ---------- hero receipt, pager, misc ---------- */
.receipt { border-top: 1px solid var(--g-text); padding-top: var(--space-4); }
.receipt .eyebrow { margin-bottom: var(--space-3); }
.receipt .meta { margin-top: var(--space-4); }
.pager { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); margin-top: var(--space-8); border-top: 1px solid var(--g-text); }
.pager__a { display: grid; gap: var(--space-2); padding-top: var(--space-4); color: inherit; text-decoration: none; min-height: var(--tap); }
.pager__a .eyebrow { margin: 0; color: var(--g-muted); }
.pager__a--next { text-align: right; justify-items: end; }
.pager__d { font-family: var(--font-display); font-size: var(--text-display-sm); line-height: 1.15; }
.pager__a:hover .pager__d { font-style: italic; }
.browse__more { display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-6); align-items: center; margin-top: var(--space-6); }
.cal__day { min-width: 0; }
.hero .crumbs { margin-bottom: 0; }
