/* Ticket-first route: compact, chronological, server-rendered and usable without JS. */
.tickets-page{background:var(--bg);color:var(--ink)}
.tickets-container{padding-block:clamp(24px,3vw,48px) 48px}
.tickets-page a{text-decoration:none}
.tickets-page a:focus-visible{outline:3px solid var(--brand);outline-offset:4px}
.tickets-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}
.tickets-heading h1{margin:0 0 8px;font-size:clamp(2.6rem,4.5vw,4.5rem);letter-spacing:-.03em;line-height:1.05}
.tickets-heading p{margin:0;font-size:1rem;color:var(--mut)}
.tickets-calendar{display:inline-flex;align-items:center;gap:16px;min-height:44px;font-size:.85rem;font-weight:700;flex-shrink:0}
.tickets-cities{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.tickets-cities a{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:8px 16px;border:1px solid var(--line);border-radius:24px;font-size:.85rem;line-height:1.3;color:var(--brand-text)}
.tickets-cities span{font-size:.75rem;opacity:.85}
.tickets-cities a:hover{border-color:var(--brand)}
.tickets-cities a[aria-current]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.tickets-list{display:grid;gap:16px;scroll-margin-top:120px}
.ticket-entry{display:grid;grid-template-columns:220px minmax(0,1fr) 205px;grid-template-areas:"image copy actions" "image venue actions";column-gap:28px;row-gap:6px;align-items:center;min-width:0;padding:18px 24px 18px 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:border-color .2s,box-shadow .2s}
.ticket-entry:hover{border-color:#8C6A3D80;box-shadow:0 5px 20px #25282D0A}
.ticket-artwork{grid-area:image;display:flex;align-items:center;justify-content:center;align-self:center;aspect-ratio:16/10;border-radius:6px;background:var(--bg);overflow:hidden}
.ticket-artwork img{display:block;width:100%;height:100%;max-height:100%;object-fit:contain}
.ticket-artwork-fallback{font-size:2rem;color:var(--brand-text);font-weight:700}
.ticket-copy{grid-area:copy;min-width:0;align-self:end}
.ticket-date{display:flex;flex-wrap:wrap;gap:2px 12px;margin:0 0 8px;font-size:.8rem;line-height:1.35;color:var(--brand-text);font-weight:650}
.ticket-date>span{padding-left:12px;border-left:1px solid var(--line)}
.ticket-entry h2{font-size:clamp(1.35rem,2vw,1.8rem);font-weight:750;line-height:1.15;letter-spacing:-.02em;margin:0 0 8px;overflow-wrap:anywhere}
.ticket-entry h2 a{color:var(--ink)}
.ticket-entry h2 a:hover{color:var(--brand-text)}
.ticket-city{font-size:.85rem;font-weight:650;line-height:1.4;margin:0}
.ticket-venue{grid-area:venue;align-self:start;min-width:0;font-size:.82rem;line-height:1.45;color:var(--mut);margin:0;overflow-wrap:anywhere}
.ticket-actions{grid-area:actions;display:flex;flex-direction:column;justify-content:center;align-self:stretch;gap:8px;border-left:1px dashed #8C6A3D66;padding-left:24px}
.tickets-page .ticket-buy{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 15px;border-radius:6px;background:var(--brand);color:#fff;font-size:.82rem;font-weight:700;line-height:1.3}
.ticket-buy small{display:block;font-size:.73rem;font-weight:400;margin-top:4px}
.ticket-status{margin:0;padding:12px 0;color:var(--mut);font-size:.85rem;font-weight:700;line-height:1.4}
.tickets-page .ticket-buy:hover{background:var(--brand-deep);color:#fff}
.ticket-details{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:.78rem;color:var(--brand-text)}
.ticket-details:hover{text-decoration:underline;text-underline-offset:4px}
.tickets-note{font-size:.8rem;line-height:1.5;color:var(--mut);margin:22px 0 0}
.tickets-empty{padding:32px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.tickets-empty h2{font-size:1.75rem;line-height:1.2;margin:0 0 12px}
.tickets-empty p{max-width:38rem;margin:0 0 12px}
.tickets-empty a{display:inline-flex;align-items:center;min-height:44px;gap:12px;font-weight:650}
@media(max-width:1000px){.ticket-entry{grid-template-columns:160px minmax(0,1fr) 180px;column-gap:18px;padding:16px}.ticket-actions{padding-left:16px}.tickets-page .ticket-buy{font-size:.8rem;padding-inline:12px}}
@media(max-width:700px){.tickets-heading{align-items:flex-start;flex-direction:column;gap:6px;margin-bottom:16px}.tickets-heading p{font-size:.9rem}.ticket-entry{grid-template-columns:140px minmax(0,1fr);grid-template-areas:"image copy" "venue venue" "actions actions";gap:14px}.ticket-copy{align-self:center}.ticket-actions{flex-direction:row;align-items:center;justify-content:space-between;border-left:0;border-top:1px dashed #8C6A3D66;padding:14px 0 0;flex-wrap:wrap}.ticket-buy{flex:1;min-width:150px}.ticket-details{padding-inline:8px}.ticket-venue{font-size:.82rem}.tickets-list{gap:14px}.tickets-cities{gap:6px;margin-bottom:18px}.tickets-cities a{padding-inline:12px;font-size:.78rem}}
@media(max-width:420px){.ticket-entry{grid-template-columns:100px minmax(0,1fr);padding:14px;column-gap:12px}.ticket-entry h2{font-size:1.18rem;line-height:1.2}.ticket-date{font-size:.72rem;gap:4px 8px}.ticket-date>span{padding-left:8px}.ticket-city{font-size:.78rem}.ticket-details{font-size:.74rem;padding-inline:0}.ticket-actions{gap:10px}.ticket-buy{min-width:135px}.tickets-empty{padding:24px}}
@media(prefers-reduced-motion:reduce){.ticket-entry{transition:none}}
