/* Center labels and arrows in pills. */
.chip,.pill-btn{align-items:center;justify-content:center;line-height:1}
.chip.sort{gap:4px}
.chip,.pill-btn{padding-top:0}
/* Keep faces at the top of event and artist card crops, including hover zoom. */
.card .ph img{object-position:center top;transform-origin:center top}
/* Requested page width; shrink to the viewport on smaller screens. */
body > .page{width:100%;max-width:1450px}
/* Halfway between the top crop and the original centred hero crop. */
.hero .pic img,.hero .blur{object-position:center 25%}
.hero .shade,.hero .blur{pointer-events:none}

/* One breadcrumb position for every public page, before page-specific content. */
.site-breadcrumbs{margin:0;padding-top:14px;padding-bottom:0;line-height:20px;align-items:flex-start;flex-wrap:nowrap;white-space:nowrap;overflow-x:auto;max-width:100%;min-width:0;scrollbar-width:none}
.site-breadcrumbs>*{flex:none}
.site-breadcrumbs::-webkit-scrollbar{display:none}

/* The original seating-plan column now contains the venue map. */
.ticket-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:380px){.tickets .grid{grid-template-columns:minmax(0,1fr)}}

.ticket-location{min-width:0}
.ticket-location .venue-location-info{display:block;padding:0 0 16px}
.ticket-location .venue-location-info .lk{margin-top:10px}
/* Ticket variants supplied by the user: purchase controls align with the map bottom. */
.tickets:has(.ticket-buy){background:var(--card)}
.ticket-buy{align-self:stretch}
.ticket-badges{display:flex;gap:8px;flex-wrap:wrap}
.promo-badge{background:var(--ink);color:#fff}
.ticket-date{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-radius:12px}
.ticket-date>div{display:flex;flex-direction:column;gap:6px;padding:14px}
.ticket-date>div+div{border-left:1px solid var(--line)}
.ticket-date span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em}
.ticket-date b{font-size:14px;font-weight:500}
.ticket-purchase{margin-top:auto;padding-top:24px;display:flex;flex-direction:column;gap:12px}
.ticket-price-box{border:1px solid var(--ink);border-radius:12px;overflow:hidden}
.ticket-price{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px}
.ticket-price>div{display:flex;flex-direction:column;gap:5px}
.ticket-price b{font-size:14px;font-weight:600}
.ticket-price span,.ticket-promo span:not(.eyebrow){font-size:12px;color:var(--muted)}
.ticket-amount{text-align:right;flex-shrink:0}
.ticket-amount strong{font-size:22px;letter-spacing:-.02em}
.ticket-amount del{font-size:12px;color:var(--muted)}
.ticket-promo{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 18px;background:color-mix(in srgb,var(--accent) 12%,white);border-top:1px dashed var(--accent)}
.ticket-promo b{font-size:18px;letter-spacing:.06em}
.ticket-promo button{cursor:pointer}
.promo-status:empty{display:none}
.promo-status{flex-basis:100%}
@media(max-width:420px){.ticket-price{flex-wrap:wrap}.ticket-amount{text-align:left}}
/* Keep both ticket variants compact: the map follows the content height. */
.ticket-purchase{margin-top:0;padding-top:0}
.ticket-location{display:flex;flex-direction:column}
.ticket-location .ticket-map{aspect-ratio:auto;min-height:220px;flex:1}
.ticket-buy{gap:14px}

.event-description-rest:not([hidden]){display:flex;flex-direction:column;gap:10px}
.description-toggle{align-self:flex-start;cursor:pointer}
/* Mobile: purchase first, venue map second; keep copy action on the right. */
.ticket-promo>button{margin-left:auto}
@media(max-width:700px){
  .tickets .grid{grid-template-columns:minmax(0,1fr)}
  .tickets .ticket-buy{order:1}
  .tickets .ticket-location{order:2}
}

/* Promo purchase layout matches the supplied reference. */
.tickets-with-promo .grid{grid-template-columns:1.15fr 1fr;gap:28px;padding:22px}
.tickets-with-promo .ticket-purchase{padding-top:16px}
.tickets-with-promo .ticket-location .ticket-map{min-height:260px}
.tickets-with-promo .venue-location-info .ad{display:inline}
.tickets-with-promo .venue-location-info .ad p{display:inline}
.tickets-with-promo .venue-location-info .lk{display:inline-block;margin:6px 0 0 12px}
.ticket-promo{display:flex;flex-direction:column;align-items:stretch;gap:10px}
.ticket-promo .promo-heading{display:flex;flex-direction:row;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.ticket-promo .eyebrow{color:var(--ink);font:600 14px/1.4 var(--sans);letter-spacing:normal}
.ticket-promo .promo-terms{margin-left:auto;text-align:right;line-height:1.5;max-width:78%}
.ticket-promo .promo-code-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:5px 6px 5px 16px;background:var(--card);border:1px dashed var(--accent);border-radius:12px}
.promo-code-row>b{overflow-wrap:anywhere;min-width:0}
.promo-code-row>button{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;margin-left:auto;padding:11px 13px;border:0;border-radius:10px;background:color-mix(in srgb,var(--accent) 28%,white);color:var(--ink);font:500 12px var(--sans)}
.ticket-promo .promo-code-row button span{color:inherit}
@media(max-width:700px){.tickets-with-promo .grid{grid-template-columns:minmax(0,1fr);gap:24px;padding:16px}.tickets-with-promo .ticket-purchase{padding-top:6px}.ticket-promo .promo-terms{max-width:100%}.ticket-promo .promo-code-row{gap:8px;padding-left:10px}.promo-code-row>button{padding:11px 9px}}

/* Description and event facts share one card. */
.event-details{gap:18px}
.event-details .event-description{display:flex;flex-direction:column;gap:10px}
.event-details .facts{max-width:none;margin:0}

/* Equal title-to-detail spacing in both ticket columns. */
.ticket-location .venue-location-info .nm{margin-bottom:10px}
.ticket-buy .ticket-when{margin-top:-4px;line-height:1.5}
.ticket-location .venue-location-info .ad{display:inline-block;vertical-align:top}
/* User-supplied variant 2a: white panel, dark date stub, pink price and tear-off coupon. */
.tickets-reference-layout .grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;padding:22px}
.ticket-white{padding:0;background:#fff;color:#17171c;gap:14px;min-width:0}
.ticket-white .tag{padding:5px 10px;background:#ffe7f9;font:700 11.5px var(--sans);color:#8f1a6f}
.ticket-white .promo-badge{background:#17171c;color:#fff}
.ticket-event-title{display:flex;flex-direction:column;gap:2px}
.ticket-event-title h3{margin:0;font:800 30px/1.08 var(--sans);letter-spacing:-.035em;color:#17171c;overflow-wrap:anywhere}
.ticket-event-title>span{font:600 14px var(--sans);color:#666674}
.ticket-stub{display:flex;align-items:stretch;border-radius:16px;overflow:hidden;background:#ffb1ee;color:#17171c;--stub:104px;mask:radial-gradient(circle 10px at var(--stub) 0,transparent 98%,#000) top/100% 51% no-repeat,radial-gradient(circle 10px at var(--stub) 100%,transparent 98%,#000) bottom/100% 51% no-repeat}
.ticket-stub-date{flex:none;width:var(--stub);height:var(--stub);align-self:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;background:#17171c;color:#fff}
.ticket-stub-date .month{font:600 10px var(--sans);letter-spacing:.16em;color:#ffb1ee}
.ticket-stub-date strong{font:800 42px/.9 var(--sans);letter-spacing:-.04em}
.ticket-stub-date .weekday{font:600 11px var(--sans);letter-spacing:.04em;color:#d9d9dd}
.ticket-stub-tear{width:0;border-left:2px dashed rgba(23,23,28,.35);margin:14px 0}
.ticket-stub-price{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:16px 18px}
.ticket-stub-price>b{font:700 12.5px var(--sans)}
.ticket-stub-price>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.ticket-stub-price strong{font:800 clamp(22px,2.5vw,36px)/1 var(--sans);letter-spacing:-.04em;white-space:nowrap}
.ticket-stub-price del{font:600 13px var(--sans);color:#57534e;white-space:nowrap}
.ticket-stub-price>span{font:600 12.5px var(--sans)}
.promo-copy{display:flex;align-items:center;gap:14px;width:100%;padding:12px 12px 12px 18px;border:2px dashed #17171c;border-radius:14px;background:#fff;color:#17171c;cursor:pointer;text-align:left;transition:background .15s ease}
.promo-copy:hover{background:#fff0fb}
.promo-copy:focus-visible,.ticket-white .btn-checkout:focus-visible{outline:3px solid #8f1a6f;outline-offset:3px}
.promo-copy-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.promo-copy-label{font:600 12px var(--sans);color:#8f1a6f}
.promo-copy-text>b{font:600 28px/1 var(--sans);letter-spacing:.08em;overflow-wrap:anywhere}
.promo-copy-icon{flex:none;width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#17171c;color:#ffb1ee}
.promo-copy.is-copied{background:#17171c;color:#ffb1ee}
.promo-copy.is-copied .promo-copy-label{color:#ffb1ee}
.promo-copy.is-copied .promo-copy-icon{background:#ffb1ee;color:#17171c}
.promo-valid{display:flex;align-items:center;gap:8px;font:600 12.5px var(--sans);color:#57534e}
.promo-valid:before{content:"";width:7px;height:7px;flex:none;border-radius:50%;background:#ff4fcf}
.ticket-white .btn-checkout{margin-top:auto;min-height:56px;height:auto;padding:12px;border-radius:14px;background:#ffb1ee;color:#17171c;font:800 15.5px var(--sans);text-align:center}
.ticket-white .btn-checkout:hover{background:#ffc7f3;color:#17171c}
.ticket-white .fine{font:500 11.5px/1.5 var(--sans);color:#666674}
.ticket-facts{margin:0;display:flex;flex-direction:column;border-top:1px solid var(--line)}
.ticket-facts>div{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.ticket-facts dt{font:600 11px var(--sans);color:#666674}
.ticket-facts dd{margin:0;text-align:right;font:500 13px var(--sans)}
@media(max-width:700px){.tickets-reference-layout .grid{grid-template-columns:minmax(0,1fr);padding:16px;gap:24px}.ticket-stub{--stub:92px}.ticket-stub-price{padding:10px}.ticket-stub-date .weekday{font-size:9px}.ticket-event-title h3{font-size:26px}.promo-copy-text>b{font-size:24px}}
@media(prefers-reduced-motion:reduce){.promo-copy{transition:none}}

.venue-location-info .nm a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
/* Human-readable sitemap: grouped text links in the existing site typography. */
.sitemap-page{padding-top:24px;padding-bottom:32px}
.sitemap-page section{margin-top:32px;scroll-margin-top:calc(var(--header-height,100px) + 20px)}
.sitemap-page h2{margin-bottom:18px}
.sitemap-page a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--accent);overflow-wrap:anywhere}
.sitemap-page a:hover{text-decoration-color:currentColor}
.sitemap-jumps{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:20px}
.sitemap-links{columns:3;column-gap:32px;list-style:none;padding:0;margin:0}
.sitemap-links li{break-inside:avoid;padding:6px 0;line-height:1.5}
.sitemap-city-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 32px}
.sitemap-city-grid h3{margin:0 0 8px;font-size:17px}
.sitemap-city-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 14px;font-size:14px}
@media(max-width:900px){.sitemap-links{columns:2}.sitemap-city-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.sitemap-links{columns:1}.sitemap-city-grid{grid-template-columns:1fr}.sitemap-jumps{gap:12px 18px}}
