/* Ticket buying takes precedence; original artwork and audience features remain. */
html #showtimes{scroll-margin-top:0}
body header .header-tickets{background:var(--ice);color:#101525;border-color:var(--ice);font-weight:700}
body .hero-details{position:relative;margin:18px 0 20px;font-size:.9rem;line-height:1.65;color:#e3edfa}
body .hero-cta{position:relative;text-decoration:none;font-size:.82rem;letter-spacing:.04em;padding:16px 24px}
body .hero{min-height:760px;padding-bottom:40px}
body .showtimes{padding:38px 16px 48px}
body .showtimes .wrap{max-width:100%}
body .showtimes .run-dates{color:var(--ice);font-size:.85rem;margin:0 0 14px;text-align:center}
body .showtimes h2{font-size:clamp(1.55rem,4vw,2.3rem);letter-spacing:.06em;margin-bottom:16px}
body .ticket-intro{max-width:640px;margin:0 auto 14px;text-align:center;font-family:'Cormorant Garamond',serif;font-size:1.3rem;line-height:1.45}
body .ticket-facts,body .booking-hint{text-align:center;font-size:.85rem;line-height:1.6;color:#d9e5f4}
body .ticket-proof{max-width:620px;margin:18px auto;text-align:center;font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--ice)}
body .ticket-proof cite{display:block;font-family:'Montserrat',sans-serif;font-size:.72rem;font-style:normal;margin-top:4px;color:var(--muted)}
body .ticket-awards{max-width:920px;margin:24px auto;padding:20px 18px;border:1px solid #c8b78466;border-radius:14px;background:linear-gradient(135deg,#241c2533,#c8b7840a);text-align:center}
body .ticket-awards>p{font-size:.76rem;letter-spacing:.06em;color:#e6d4a6;margin-bottom:16px}
body .ticket-awards a{text-underline-offset:4px}
body .award-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
body .award-grid h3{font-family:'Cormorant Garamond',serif;font-size:1.45rem;line-height:1.2;color:#f4e7c8;font-weight:500;margin-bottom:8px}
body .award-grid p{font-size:.78rem;line-height:1.5;color:#d5dcec}
body .award-grid .award-cast{font-size:.7rem;color:var(--muted);margin:8px auto 0;max-width:300px}
@media(max-width:600px){body .award-grid{grid-template-columns:1fr;gap:18px}body .award-grid>div+div{border-top:1px solid #c8b78433;padding-top:18px}}
body .showtimes #dates{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:920px;margin:18px auto}
body .showtimes #dates .date.available-date{width:auto;height:auto;min-height:185px;padding:18px 10px;display:flex;flex-direction:column;gap:5px;justify-content:center;align-items:center;background:linear-gradient(145deg,#273449,#141626);border:1px solid #9cc9e6;border-radius:14px;text-decoration:none;box-shadow:0 3px 18px #8fc4ea15}
body .showtimes #dates .available-date:hover{background:#283d53;transform:translateY(-2px)}
body .date-day{font-size:.82rem;color:#dbeeff;text-transform:uppercase;letter-spacing:.08em}
body .date-label{font-family:'Oswald',sans-serif;font-size:1.8rem;color:white;line-height:1.25}
body .showtimes #dates .available-date .t{font-size:.95rem;color:#e3eafa;margin:0}
body .showtimes #dates .available-date .o{font-size:.75rem;color:var(--ice);margin:0}
body .showtimes #dates .available-date .ticket-cue{display:block;background:var(--ice);color:#101525;font-size:.84rem;font-weight:700;padding:11px 13px;border-radius:8px;margin-top:9px;letter-spacing:0}
body .ticket-help{text-align:center;font-size:.8rem;margin:14px 0;color:var(--muted)}
body .sold-dates,body .booked-calendars{max-width:680px;margin:12px auto;border:1px solid #8fc4ea30;border-radius:10px;padding:0 16px}
body .sold-dates summary,body .booked-calendars>summary{min-height:48px;padding:14px 0;cursor:pointer;font-size:.84rem}
body #soldDates{padding-bottom:12px}body #soldDates p{font-size:.8rem;padding:7px 0;color:var(--muted)}body #soldDates strong{margin-left:8px;font-weight:500}
body #performanceCalendars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:10px 0 20px;font-size:.8rem}
body .showtimes .venue{font-size:.78rem;line-height:1.6;margin-top:24px}
@media(max-width:820px){
 body .hero{min-height:680px;min-height:82svh;padding:290px 18px 28px;justify-content:flex-end}
 body .hero-img{inset:0 0 auto;height:280px;background-position:center 30%;animation:none}
 body .hero .wordmark{font-size:5.3rem}body .hero .sub{font-size:.6rem;letter-spacing:.3em}
 body .hero-tag{font-size:1.1rem;margin-top:14px}body .hero-details{font-size:.8rem;margin:12px 0 16px}
 body .hero-cta{font-size:.78rem;padding:14px 20px}
 body .showtimes{padding-top:16px}
 body .showtimes h2{font-size:1.5rem;letter-spacing:.02em}
 body .showtimes #dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 body .showtimes #dates .date.available-date{min-height:175px;padding:14px 8px}
 body .mobile-shortcuts{grid-template-columns:1.5fr 1fr 1fr}
 body .mobile-shortcuts .shortcut-tickets{background:var(--ice);color:#0c1220}
}
@media(prefers-reduced-motion:reduce){body .showtimes #dates .available-date:hover{transform:none}}
/* Desktop alignment; the existing mobile layout stays independent. */
body .hero-copy{display:contents}
body .hero-story{position:relative;max-width:460px;font-family:'Cormorant Garamond',serif;font-size:1.2rem;line-height:1.4;margin:16px 18px 0}
body .hero-proof{position:relative;font-size:.7rem;line-height:1.6;color:#e6d4a6;margin:16px 18px 0}
body .hero-proof a{text-underline-offset:4px}
body .booking-faq{margin:24px 0;text-align:left}
body .booking-faq details{border-bottom:1px solid #ffffff20;padding:0 4px}
body .booking-faq summary{cursor:pointer;padding:18px 0;font-size:.88rem;line-height:1.5}
body .booking-faq p,body .booking-faq a{font-size:.84rem;line-height:1.7}
body .booking-faq p{color:var(--muted);padding-bottom:14px}
body .booking-faq a{display:inline-block;margin-bottom:16px;color:var(--ice)}
body .review-ticket-cta{display:inline-block;text-decoration:none;letter-spacing:.06em;font-size:.8rem;padding:16px 28px}
body #reviewForm .rating{gap:12px}
body #reviewForm .cube{width:44px;height:52px}
body #reviewForm .hint{font-size:.95rem;margin:12px 0 24px}
body #reviewForm .hint::after{content:none}
@media(min-width:821px){
 body header{padding:16px max(32px,calc((100vw - 1120px)/2));background:rgba(5,3,8,.94);border-bottom:1px solid #ffffff12;backdrop-filter:blur(14px)}
 body header .header-actions{display:flex;align-items:center;gap:12px}
 body header .btn-ghost{font-size:.68rem;letter-spacing:.16em;padding:12px 20px}
 body header .header-tickets:hover{background:#eff8ff;color:#101525}
 body .wrap{width:min(1000px,calc(100% - 64px))}
 body .hero{display:grid;grid-template-columns:1.15fr 1fr;gap:36px;align-items:center;min-height:0;max-width:1200px;margin:auto;padding:116px 32px 40px;background:var(--bg);text-align:left}
 body .hero-img{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:1.3;animation:none;background-position:center;background-size:contain;-webkit-mask-image:none;mask-image:none;border-radius:16px}
 body .hero-copy{display:block;min-width:0}
 body .hero .wordmark{font-size:5.6rem;margin:0}
 body .hero .sub{font-size:.65rem;letter-spacing:.28em;margin-top:10px}
 body .hero-tag{font-size:1.15rem;letter-spacing:.03em;margin-top:20px}
 body .hero-story{font-size:1.2rem;margin:16px 0 0}
 body .hero-proof{margin:16px 0 0}
 body .hero-details{font-size:.8rem;margin:16px 0 20px}
 body .hero-cta{display:inline-block;width:auto;min-width:0;margin-top:0;padding:16px 24px}
 html body #showtimes{scroll-margin-top:86px}
 body .showtimes{padding:40px 0 56px}
 body .showtimes #dates{max-width:none;gap:16px;margin:24px 0}
 body .showtimes #dates .date.available-date{min-height:210px;padding:22px 16px;display:grid;grid-template-rows:20px 40px 24px 20px 44px;gap:4px;justify-content:stretch;align-items:center}
 body .showtimes #dates .available-date .date-day{grid-row:1}
 body .showtimes #dates .available-date .date-label{grid-row:2}
 body .showtimes #dates .available-date .t{grid-row:3}
 body .showtimes #dates .available-date .o{grid-row:4}
 body .showtimes #dates .available-date .ticket-cue{grid-row:5;margin:4px 0 0;width:100%;padding:12px 8px}
 body .ticket-awards{max-width:none;margin:24px 0 28px;padding:24px 28px}
 body .award-grid{gap:28px;align-items:center}
 body .award-grid>div+div{border-left:1px solid #c8b78433;padding-left:28px}
 body .award-grid h3{max-width:360px;margin:0 auto 10px;line-height:1.25}
 body .sold-dates,body .booked-calendars{max-width:none;margin:12px 0}
 body #featured,body #arrival,body #reviews{padding:56px 0;border-top:1px solid #ffffff0d}
 body .feat-head{margin:24px 0 18px}
 body #featGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
 body #featGrid .card{padding:28px 30px}
}

/* Center the remaining performances, including the last row on small screens. */
body .showtimes #dates{display:flex;flex-wrap:wrap;justify-content:center}
body .showtimes #dates .date.available-date{flex:0 1 calc((100% - 48px)/4);min-width:0}
body .showtimes #dates .selling-fast-label{color:#ffe2ac;font-weight:700;font-size:.75rem;letter-spacing:.04em}
@media(max-width:820px){body .showtimes #dates .date.available-date{flex-basis:calc((100% - 12px)/2)}}
