/* my-epk.com/shows: what is on in New York, every way in side by side. Mobile first, app.css tokens. */
.shows { max-width: 760px; margin: 0 auto; padding: 1.5rem 1rem 4rem; }
.shows-head h1 { font-family: var(--font-display); font-size: clamp(2rem, 6vw, 3.2rem); line-height: 1.02; margin: .3rem 0 .6rem; letter-spacing: -.01em; }
.shows-head .lede { margin: 0; }

.shows-filters { display: grid; gap: .5rem; margin: 1.4rem 0 1.2rem; }
.shows-filters .chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.shows-filters .chips::-webkit-scrollbar { display: none; }
.shows-filters .chip { white-space: nowrap; color: var(--ink); text-decoration: none; }
.shows-filters .chip.on { color: var(--paper); }

.shows-featured { display: grid; grid-template-columns: 1fr; gap: .6rem; align-items: center; padding: 1rem 1.1rem;
    border: 1.5px dashed var(--accent); border-radius: var(--radius); background: var(--accent-soft); margin: 0 0 1.6rem; }
.shows-featured p { margin: 0; color: var(--ink-2); }
.shows-featured .btn { justify-self: start; }
.shows-tag { justify-self: start; font-family: var(--font-display); font-size: .7rem; font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: var(--accent); }

.shows-day { margin: 0 0 1.8rem; }
.shows-day h2 { font-family: var(--font-display); font-size: 1.05rem; text-transform: uppercase; letter-spacing: .1em;
    color: var(--ink-3); margin: 0 0 .7rem; position: sticky; top: 0; background: var(--paper); padding: .4rem 0; z-index: 1; }

.show { display: grid; grid-template-columns: 64px 1fr; gap: .9rem; padding: 1rem; background: #fff; border: 1px solid var(--line);
    border-radius: var(--radius); margin-bottom: .8rem; box-shadow: var(--shadow-sm); }
.show-art { width: 64px; height: 64px; border-radius: var(--radius-sm); overflow: hidden; background: var(--ink); color: var(--paper);
    display: grid; place-items: center; font-family: var(--font-brand); font-size: 1.6rem; }
.show-art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.show-body { min-width: 0; }
.show-when { margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; font-size: .8rem; font-weight: 600; color: var(--accent); }
.show-when span + span { color: var(--ink-3); font-weight: 500; }
.show h3 { font-family: var(--font-display); font-size: 1.2rem; line-height: 1.15; margin: .2rem 0 .15rem; overflow-wrap: anywhere; }
.show-venue, .show-lineup, .show-genres { margin: 0 0 .15rem; font-size: .92rem; overflow-wrap: anywhere; }
.show-venue a, .show-lineup a { color: var(--ink); }
.show-genres { color: var(--ink-3); font-size: .82rem; }

.sellers { list-style: none; padding: 0; margin: .7rem 0 0; border-top: 1px solid var(--line); }
.sellers li { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .6rem 0; border-bottom: 1px solid var(--line); }
.sellers li:last-child { border-bottom: 0; padding-bottom: 0; }
.seller-name { display: grid; min-width: 0; }
.seller-name b { font-size: .95rem; }
.seller-name small { color: var(--ink-3); font-size: .76rem; overflow-wrap: anywhere; }
.seller-go { flex: none; display: inline-flex; align-items: baseline; gap: .3rem; padding: .45rem .9rem; border-radius: 999px;
    background: var(--ink); color: var(--paper); font-weight: 600; font-size: .86rem; text-decoration: none; min-height: 36px; align-items: center; }
.seller-go:hover { background: var(--accent); text-decoration: none; }
.seller-go small { opacity: .75; font-weight: 500; }

.shows-empty { padding: 1.4rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper-2); }
.shows-empty p { margin: 0; }
.shows-note { color: var(--ink-3); font-size: .85rem; margin: 1.6rem 0 .6rem; }
.shows-foot { font-size: .95rem; line-height: 1.8; margin: 0; }

.shows-search { display: flex; gap: .5rem; margin: 1.2rem 0 0; }
.shows-search input[type="search"] { flex: 1; min-width: 0; min-height: 44px; padding: .55rem 1rem; border: 1px solid var(--line);
    border-radius: 999px; background: #fff; color: var(--ink); font: inherit; }
.shows-search input[type="search"]:focus { outline: 2px solid var(--accent); outline-offset: 1px; border-color: var(--accent); }
.shows-search .btn { flex: none; }

.show-price { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .45rem 0 0; font-size: .82rem; color: var(--ink-3); }
.show-from { display: inline-flex; align-items: center; padding: .2rem .7rem; border-radius: 999px; background: var(--accent-soft);
    color: var(--accent); font-weight: 700; font-size: .88rem; }
.seller-low { display: inline-block; margin-left: .45rem; padding: .08rem .5rem; border-radius: 999px; background: var(--accent);
    color: var(--paper); font-style: normal; font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    vertical-align: .12em; }

.shows-more { margin: 0 0 .8rem; }
.shows-more summary { display: inline-flex; align-items: center; min-height: 44px; padding: .45rem 1.1rem; border: 1px solid var(--line);
    border-radius: 999px; background: var(--paper-2); color: var(--ink); font-weight: 600; font-size: .9rem; cursor: pointer; list-style: none; }
.shows-more summary::-webkit-details-marker { display: none; }
.shows-more[open] summary { margin-bottom: .8rem; }
.shows-next { margin: 0 0 1.8rem; }
.shows-next a { display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; padding: .55rem 1.2rem; border-radius: 999px;
    background: var(--ink); color: var(--paper); font-weight: 600; text-decoration: none; }
.shows-next a:hover { background: var(--accent); text-decoration: none; }

/* The title opens the show's own page; /shows/{key} is the card full size. */
.show h3 a { color: inherit; text-decoration: none; }
.show h3 a:hover { text-decoration: underline; }
.show-back { margin: 0 0 1rem; font-size: .92rem; }
.show-back a { color: var(--ink-2); text-decoration: none; }
.show-hero { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
    box-shadow: var(--shadow-sm); margin: 0 0 1.8rem; }
.show-hero-art { aspect-ratio: 3 / 1; display: grid; place-items: center; background: var(--ink); color: var(--paper);
    font-family: var(--font-brand); font-size: 3.4rem; }
.show-hero-art.flyer { aspect-ratio: 3 / 2; }
.show-hero-art img { width: 100%; height: 100%; object-fit: contain; display: block; }
.show-hero-body { padding: 1.1rem 1.1rem 1.2rem; }
.show-hero h1 { font-family: var(--font-display); font-size: clamp(1.8rem, 6vw, 2.8rem); line-height: 1.05; margin: .35rem 0 .5rem;
    letter-spacing: -.01em; overflow-wrap: anywhere; }
.show-hero .show-when { font-size: .88rem; }
.show-hero .show-venue, .show-hero .show-lineup { font-size: 1rem; }

@media (min-width: 640px) {
    .shows { padding-top: 2.5rem; }
    .show-hero-body { padding: 1.4rem 1.6rem 1.6rem; }
    .shows-featured { grid-template-columns: auto 1fr auto; gap: 1rem; }
    .show { grid-template-columns: 96px 1fr; gap: 1.1rem; padding: 1.1rem 1.2rem; }
    .show-art { width: 96px; height: 96px; font-size: 2.2rem; }
}
