/* Five clear plans, one shared quantity and the existing secure checkout. */
#tickets { --tier-accent:#c43830; --tier-pixel-mid:#e7837c; --tier-pixel-on-a:#ffd4cf; --tier-pixel-on-b:#ffaaa0; --tier-soft:#fff3f1; --tier-on:#fff; --tier-ink:var(--tier-accent); padding-block:80px 96px; width:min(1560px,calc(100% - 80px)); }
#tickets[data-ticket-tier="premium"], #tickets [data-tier="premium"] { --tier-accent:#142d60; --tier-pixel-mid:#6689c8; --tier-pixel-on-a:#d5e2ff; --tier-pixel-on-b:#8fafee; --tier-soft:#edf2fa; --tier-on:#fff; --tier-ink:var(--tier-accent); }
#tickets[data-ticket-tier="vip"], #tickets [data-tier="vip"] { --tier-accent:#be923e; --tier-pixel-mid:#dbc07e; --tier-pixel-on-a:#5f4208; --tier-pixel-on-b:#7e5910; --tier-soft:#fbf5e8; --tier-on:#231b0e; --tier-ink:#795714; }
#tickets [data-tier="regular"] { --tier-accent:#c43830; --tier-pixel-mid:#e7837c; --tier-pixel-on-a:#ffd4cf; --tier-pixel-on-b:#ffaaa0; --tier-soft:#fff3f1; --tier-on:#fff; --tier-ink:var(--tier-accent); }
#tickets > h2 { margin:0; text-align:center; color:var(--ink); font-size:clamp(44px,5.3vw,84px); line-height:1; letter-spacing:-.055em; }
/* Keep the real letters and Outfit spacing; only their visible shape changes. */
#tickets-title .ticket-pixel-t { display:inline-block; position:relative; }
#tickets-title .ticket-pixel-t-source { opacity:0; }
#tickets-title .ticket-pixel-t svg {
  position:absolute;
  left:.019em;
  bottom:.13em;
  width:.332em;
  height:.68em;
  fill:currentColor;
  pointer-events:none;
}
#tickets .ticket-offer { padding:0; margin:30px auto 48px; text-align:center; }
#tickets .ticket-deal { display:inline-flex; justify-content:center; align-items:stretch; max-width:100%; margin:0; padding:0 8px; position:relative; background:var(--offer-blue-bright); clip-path:polygon(8px 0,calc(100% - 8px) 0,calc(100% - 8px) 5px,100% 5px,100% calc(100% - 5px),calc(100% - 8px) calc(100% - 5px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 5px),0 calc(100% - 5px),0 5px,8px 5px); }
#tickets .ticket-deal > span { flex:none; padding:9px 16px; background:var(--offer-blue); color:#fff; font-size:13px; line-height:1.25; }
#tickets .ticket-deal .offer-detail { color:#fff; max-width:none!important; margin:0; padding:9px 16px; font-size:13px; line-height:1.25; }
#tickets .ticket-countdown-row { display:flex; justify-content:center; align-items:center; gap:30px; margin-top:18px; }
#tickets .offer-title { text-align:left; font-size:clamp(18px,1.8vw,27px); line-height:1.12; letter-spacing:-.035em; }
#tickets .countdown { display:flex; width:auto; margin:0; gap:10px; align-items:flex-start; }
#tickets .countdown > div { min-width:1.6ch; }
#tickets .countdown span { font-size:clamp(30px,3.1vw,48px); line-height:1; letter-spacing:-.03em; font-weight:500; }
#tickets .countdown small { margin-top:6px; font-size:9px; line-height:1.2; letter-spacing:.04em; color:#676767; }
#tickets .countdown b { font-size:0; flex:0 0 3px; display:flex; flex-direction:column; gap:4px; margin-top:12px; }
#tickets .countdown b::before,#tickets .countdown b::after { content:''; width:3px; height:3px; flex:none; background:var(--brand-teal,#00e5cc); }
#tickets .countdown b::after { background:#e8483f; }
#tickets .ticket-layout { display:grid; grid-template-columns:1.03fr 1fr 1fr; align-items:stretch; gap:0; }
#tickets .ticket-selector { padding-right:12px; display:flex; flex-direction:column; min-width:0; }
#tickets .ticket-tabs { display:grid; grid-template-columns:1fr; border:0; border-radius:0; background:none; width:100%; max-width:none; margin:0; padding:0; gap:8px; }
#tickets .ticket-tabs button[data-plan] { display:flex; flex-direction:row; justify-content:flex-start; align-items:center; text-align:left; min-height:92px; padding:15px 20px 15px 38px; gap:12px; border-radius:0; background:transparent; color:var(--ink); font-weight:400; }
#tickets .ticket-tabs button[data-plan]::after { display:none; }
#tickets .ticket-tabs button[data-plan][aria-selected="true"] { background:var(--tier-soft); color:var(--tier-ink); }
#tickets .ticket-tab-copy { flex:1; min-width:0; transition:transform 180ms cubic-bezier(.23,1,.32,1); }
#tickets .ticket-tab-name { display:block; font-size:clamp(21px,1.6vw,28px); line-height:1.15; letter-spacing:-.025em; }
#tickets .ticket-tabs button[data-plan] small { display:block; margin-top:7px; font-family:Outfit,Arial,sans-serif; font-size:12px; line-height:1.3; color:#575757; }
#tickets .ticket-tab-price { flex:none; text-align:right; white-space:nowrap; font-size:15px; line-height:1.2; color:var(--ink); }
#tickets .ticket-tab-price small { margin-top:4px; font-size:10px; }
#tickets .ticket-tab-arrow { font-size:23px; color:var(--tier-ink); padding-left:6px; }
#tickets .ticket-tab-mark { position:absolute; left:0; top:50%; width:24px; height:64px; transform:translateY(-50%); opacity:0; }
#tickets .ticket-tab-mark i { position:absolute; width:8px; height:8px; background:var(--tier-accent); }
#tickets .ticket-tab-mark i:nth-child(1) { left:0; top:0; box-shadow:0 8px var(--tier-accent),0 16px var(--tier-accent),0 24px var(--tier-accent),0 32px var(--tier-accent),0 40px var(--tier-accent),0 48px var(--tier-accent),0 56px var(--tier-accent); }
#tickets .ticket-tab-mark i:nth-child(2) { left:16px; top:0; background:var(--tier-pixel-mid); }
#tickets .ticket-tab-mark i:nth-child(3) { left:8px; top:16px; background:var(--tier-pixel-mid); }
#tickets .ticket-tab-mark i:nth-child(4) { left:16px; top:32px; }
#tickets .ticket-tab-mark i:nth-child(5) { left:8px; top:48px; background:var(--tier-pixel-mid); }
#tickets .ticket-tab-mark i:nth-child(6) { left:16px; top:56px; }
#tickets .ticket-tabs button[data-plan][aria-selected="true"] .ticket-tab-mark { opacity:1; }
#tickets .quantity-selector { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; padding:20px 20px 0 38px; margin:auto 0 0; gap:8px; }
#tickets .quantity-selector label { font-size:17px; color:var(--ink); }
#tickets .quantity-stepper { padding:0; gap:0; border:1px solid #ddd; border-radius:0; background:#fff; }
#tickets .quantity-stepper button { width:40px; height:40px; border-radius:0; color:var(--tier-ink); background:none; font-size:22px; }
#tickets .quantity-stepper input { width:38px; height:40px; font-size:19px; color:var(--ink); }
#tickets .quantity-selector > p { width:100%; margin:2px 0 0; min-height:2.6em; text-align:left; color:#666; font-size:12px; line-height:1.3; }
#tickets .ticket-panels { background:#fff; border:1px solid #eaeaea; }
#tickets .ticket-panel { display:flex; flex-direction:column; margin:0; padding:36px 32px 32px; min-height:580px; background:#fff; gap:22px; }
#tickets .ticket-summary h3 { font-size:clamp(34px,3vw,52px); font-weight:400; line-height:1.05; letter-spacing:-.045em; margin:0 0 24px; color:var(--tier-ink); }
#tickets .ticket-description { font-size:17px; line-height:1.35; color:var(--ink); }
#tickets .ticket-price { padding:0; display:flex; flex-direction:column; justify-content:flex-start; gap:12px; background:transparent; color:var(--ink); }
#tickets .ticket-price .price { font-size:32px; line-height:1.05; color:var(--ink); font-weight:500; letter-spacing:-.035em; }
#tickets .ticket-price small { margin-top:6px; font-size:11px; line-height:1.3; color:#686868; }
#tickets .ticket-price .regular-price { font-size:11px; line-height:1.3; margin:0 0 5px; color:#777; }
#tickets .ticket-price .quantity-breakdown { font-size:12px; line-height:1.35; margin-top:7px; color:#666; }
#tickets .included-guest { padding:7px 10px; align-self:flex-start; background:var(--tier-soft); color:var(--tier-ink); font-size:11px; line-height:1.25; }
#tickets .ticket-price .buy-ticket { --cut:10px; position:relative; isolation:isolate; display:flex; align-items:center; justify-content:center; gap:14px; min-height:52px; width:100%; border:0; border-radius:0; background:transparent; color:var(--tier-on); box-shadow:none; padding:13px 20px; transform:none; transition:color 180ms ease; }
#tickets .ticket-price .buy-ticket::before,#tickets .ticket-price .buy-ticket::after { content:''; position:absolute; inset:0; z-index:-2; background:var(--tier-accent); clip-path:polygon(var(--cut) 0,calc(100% - var(--cut)) 0,calc(100% - var(--cut)) var(--cut),100% var(--cut),100% calc(100% - var(--cut)),calc(100% - var(--cut)) calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,var(--cut) 100%,var(--cut) calc(100% - var(--cut)),0 calc(100% - var(--cut)),0 var(--cut),var(--cut) var(--cut)); }
#tickets .ticket-price .buy-ticket::after { inset:2px; --cut:9px; z-index:-1; transition:background-color 180ms ease; }
#tickets .ticket-price .buy-ticket [data-checkout-label] { font-size:17px; font-weight:500; }
#tickets .ticket-price .buy-ticket .pixel-cta { width:13px; height:16px; flex:0 0 13px; }
/* Ticket decorations follow their family; two lighter/darker shades keep the
   three pixels visible on both a filled button and its white hover surface. */
#tickets .buy-ticket { --ticket-pixel-a:var(--tier-pixel-on-a); --ticket-pixel-b:var(--tier-pixel-on-b); }
#tickets .buy-ticket .pixel-glyph .pixel-cell { fill:var(--ticket-pixel-a)!important; }
#tickets .buy-ticket .pixel-glyph .pixel-cell:nth-child(even) { fill:var(--ticket-pixel-b)!important; }
#tickets .checkout-trust { display:flex; justify-content:center; align-items:center; gap:6px; margin:0; color:#626262; font-size:10px; line-height:1.3; }
#tickets .checkout-trust > svg { flex:none; }
#tickets .checkout-trust img { display:block; flex:none; width:39px; height:auto; filter:brightness(0); }
#tickets .ticket-benefits { padding:0; margin-top:auto; min-width:0; }
#tickets .ticket-inclusions > summary { list-style:none; font-size:12px; line-height:1.3; font-weight:500; margin:0 0 14px; pointer-events:none; }
#tickets .ticket-inclusions > summary::-webkit-details-marker { display:none; }
#tickets .ticket-inclusions > summary span { display:none; }
#tickets .ticket-benefits ul { display:grid; padding:0; margin:0; list-style:none; gap:12px; }
#tickets .ticket-benefits li { padding-left:17px; font-size:12px; line-height:1.45; }
#tickets .ticket-benefits li::before { color:var(--tier-ink); }
/* Each scene has its own proportional crop. The fixed portrait slot previously
   magnified the panel's audience foreground and cut people off at the sides. */
#tickets .ticket-photo { position:relative; margin:0; overflow:hidden; min-width:0; min-height:0; width:100%; aspect-ratio:1000 / 1120; align-self:start; background:#fff; container-type:inline-size; }
#tickets .ticket-photo img { position:absolute; inset:0; display:block; width:100%; height:100%; min-height:0; object-fit:cover; object-position:var(--ticket-photo-position,50% 50%); }
#tickets .ticket-photo[data-ticket-photo=regular] [data-ticket-photo-primary] { object-position:50% 0; }
/* The standalone panel keeps every speaker and stops just below the stage. */
#tickets .ticket-photo[data-ticket-photo=premium] [data-ticket-photo-primary] { object-position:50% 0; }
#tickets .ticket-photo:is([data-ticket-plan=team],[data-ticket-plan=premium-team],[data-ticket-photo=vip]) { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto; aspect-ratio:auto; align-self:start; gap:0; }
#tickets .ticket-photo:is([data-ticket-plan=team],[data-ticket-plan=premium-team],[data-ticket-photo=vip]) img { position:relative; inset:auto; height:auto; grid-column:1; min-width:0; }
#tickets .ticket-photo:is([data-ticket-plan=team],[data-ticket-plan=premium-team]) [data-ticket-photo-primary] { grid-row:2; }
/* Regular Team includes the screen, stage and the first audience rows; Premium
   Team focuses on the full laughing panel rather than the dark foreground. */
#tickets .ticket-photo[data-ticket-plan=team] [data-ticket-photo-primary] { aspect-ratio:1000 / 500; object-position:50% 30%; }
#tickets .ticket-photo[data-ticket-plan=premium-team] [data-ticket-photo-primary] { aspect-ratio:1600 / 480; object-position:50% 35%; }
#tickets .ticket-photo [data-ticket-photo-team] {
  --team-pixel:3.125cqw;
  grid-row:1;
  z-index:1;
  aspect-ratio:1600 / 1068;
  margin-bottom:calc(0px - var(--team-pixel));
  object-position:50% 50%;
  /* One square deep on a 32-column grid, mirrored about the centre. The cuts
     stay in the floor beneath the group and overlap the next scene precisely. */
  clip-path:polygon(0 0,100% 0,100% 100%,96.875% 100%,96.875% calc(100% - var(--team-pixel)),93.75% calc(100% - var(--team-pixel)),93.75% 100%,90.625% 100%,90.625% calc(100% - var(--team-pixel)),87.5% calc(100% - var(--team-pixel)),87.5% 100%,84.375% 100%,84.375% calc(100% - var(--team-pixel)),81.25% calc(100% - var(--team-pixel)),81.25% 100%,78.125% 100%,78.125% calc(100% - var(--team-pixel)),75% calc(100% - var(--team-pixel)),75% 100%,71.875% 100%,71.875% calc(100% - var(--team-pixel)),68.75% calc(100% - var(--team-pixel)),68.75% 100%,65.625% 100%,65.625% calc(100% - var(--team-pixel)),62.5% calc(100% - var(--team-pixel)),62.5% 100%,59.375% 100%,59.375% calc(100% - var(--team-pixel)),56.25% calc(100% - var(--team-pixel)),56.25% 100%,43.75% 100%,43.75% calc(100% - var(--team-pixel)),40.625% calc(100% - var(--team-pixel)),40.625% 100%,37.5% 100%,37.5% calc(100% - var(--team-pixel)),34.375% calc(100% - var(--team-pixel)),34.375% 100%,31.25% 100%,31.25% calc(100% - var(--team-pixel)),28.125% calc(100% - var(--team-pixel)),28.125% 100%,25% 100%,25% calc(100% - var(--team-pixel)),21.875% calc(100% - var(--team-pixel)),21.875% 100%,18.75% 100%,18.75% calc(100% - var(--team-pixel)),15.625% calc(100% - var(--team-pixel)),15.625% 100%,12.5% 100%,12.5% calc(100% - var(--team-pixel)),9.375% calc(100% - var(--team-pixel)),9.375% 100%,6.25% 100%,6.25% calc(100% - var(--team-pixel)),3.125% calc(100% - var(--team-pixel)),3.125% 100%,0 100%);
}
#tickets .ticket-photo[data-ticket-photo=vip] [data-ticket-photo-primary] { grid-row:1; aspect-ratio:1600 / 560; object-position:50% 37%; }
#tickets .ticket-photo[data-ticket-photo=vip] [data-ticket-photo-secondary] { grid-row:2; aspect-ratio:1600 / 1067; object-position:50% 50%; }
/* A complete panel above a complementary view from beside the stage fills the
   standalone Premium column. Team retains its separate group + panel pair. */
#tickets .ticket-photo[data-ticket-plan=premium] { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(0,1fr); aspect-ratio:auto; min-height:580px; align-self:stretch; }
#tickets .ticket-photo[data-ticket-plan=premium] img { position:relative; inset:auto; grid-column:1; min-width:0; }
#tickets .ticket-photo[data-ticket-plan=premium] [data-ticket-photo-primary] { grid-row:1; height:auto; aspect-ratio:1600 / 728; object-position:50% 0; }
#tickets .ticket-photo[data-ticket-plan=premium] [data-ticket-photo-secondary] { grid-row:2; height:100%; object-position:60% 50%; }

#tickets .ticket-photo img[hidden] { display:none; }
#tickets .ticket-price .price-expired { white-space:normal; font-size:26px; }
#tickets :is(button,a,input):focus-visible { outline:2px solid var(--tier-accent); outline-offset:4px; }
#tickets :is(.ticket-panel,.ticket-tabs,.quantity-selector,.countdown,.quantity-breakdown,.ticket-deal,.included-guest)[hidden] { display:none; }
#tickets .ticket-price .buy-ticket:is([aria-disabled="true"],[aria-busy="true"]) { color:var(--tier-on); background:transparent; }
@media(hover:hover) and (pointer:fine) {
  #tickets .ticket-tabs button[data-plan]:hover { background:var(--tier-soft); color:var(--tier-ink); }
  #tickets .ticket-tabs button[data-plan]:hover .ticket-tab-copy { transform:translateX(4px); }
  #tickets .quantity-stepper button:hover:not(:disabled) { background:var(--tier-soft); }
  #tickets .ticket-price .buy-ticket:hover:not([aria-disabled="true"]):not([aria-busy="true"]) { background:transparent; color:var(--tier-ink); }
  #tickets .buy-ticket:hover:not([aria-disabled="true"]):not([aria-busy="true"]) { --ticket-pixel-a:var(--tier-accent); --ticket-pixel-b:var(--tier-pixel-mid); }
  #tickets .ticket-price .buy-ticket:hover:not([aria-disabled="true"]):not([aria-busy="true"])::after { background:#fff; }
}
@media(max-width:1100px) {
  #tickets { width:calc(100% - 48px); }
  #tickets .ticket-layout { grid-template-columns:.95fr 1.05fr .9fr; }
  #tickets .ticket-panel { padding:28px 22px; }
  #tickets .ticket-tabs button[data-plan] { padding-right:12px; gap:8px; }
  #tickets .ticket-tab-name { font-size:21px; }
  #tickets .ticket-tab-price { font-size:12px; }
  #tickets .ticket-tab-arrow { display:none; }
}
@media(max-width:800px) {
  #tickets { width:calc(100% - 40px); padding-block:60px; }
  #tickets .ticket-layout { grid-template-columns:1fr 1fr; }
  #tickets .ticket-selector { grid-column:1 / -1; padding:0; margin-bottom:20px; }
  #tickets .ticket-tabs { grid-template-columns:repeat(5,minmax(0,1fr)); gap:4px; }
  #tickets .ticket-tabs button[data-plan] { justify-content:center; min-height:54px; padding:9px 5px; text-align:center; border:1px solid #e8e8e8; }
  #tickets .ticket-tab-name { font-size:17px; }
  #tickets .ticket-tabs button[data-plan] small,#tickets .ticket-tab-price,#tickets .ticket-tab-mark { display:none; }
  #tickets .ticket-tabs button[data-plan][aria-selected="true"] { border-color:var(--tier-ink); }
  #tickets .quantity-selector { padding:12px 0 0; justify-content:flex-end; gap:8px 14px; }
  #tickets .quantity-selector > p { width:auto; max-width:44%; min-height:0; margin:0 0 0 6px; }
  #tickets .ticket-panel { min-height:520px; }
  #tickets .ticket-photo { min-height:0; }
  #tickets .ticket-photo[data-ticket-plan=premium] { min-height:520px; }
}
@media(max-width:600px) {
  #tickets { width:calc(100% - 32px); padding-block:26px 40px; }
  #tickets > h2 { font-size:42px; }
  #tickets .ticket-offer { margin:16px auto 20px; }
  #tickets .ticket-deal { width:100%; padding-inline:6px; }
  #tickets .ticket-deal > span { display:flex; align-items:center; padding:7px 9px; font-size:10px; }
  #tickets .ticket-deal .offer-detail { padding:7px 9px; font-size:10px; line-height:1.3; text-align:left; }
  #tickets .ticket-countdown-row { margin-top:12px; gap:18px; }
  #tickets .offer-title { font-size:14px; line-height:1.15; }
  #tickets .offer-title br { display:block; }
  #tickets .countdown { gap:6px; }
  #tickets .countdown span { font-size:29px; }
  #tickets .countdown small { font-size:7px; margin-top:4px; }
  #tickets .countdown b { margin-top:7px; gap:3px; }
  #tickets .ticket-layout { display:block; }
  #tickets .ticket-selector { margin-bottom:10px; }
  #tickets .ticket-tabs { grid-template-columns:repeat(6,minmax(0,1fr)); gap:4px; }
  #tickets .ticket-tabs button[data-plan] { grid-column:span 2; min-height:42px; padding:8px 4px; }
  #tickets .ticket-tabs button[data-plan]:nth-child(n+4) { grid-column:span 3; }
  #tickets .ticket-tab-name { font-size:15px; line-height:1.1; }
  #tickets .quantity-selector { padding-top:10px; gap:8px; justify-content:space-between; }
  #tickets .quantity-selector label { font-size:15px; }
  #tickets .quantity-stepper button { width:36px; height:36px; }
  #tickets .quantity-stepper input { width:30px; height:36px; font-size:17px; }
  #tickets .quantity-selector > p { width:auto; max-width:42%; margin:0; font-size:10px; line-height:1.3; }
  #tickets .ticket-panel { padding:18px 20px 12px; min-height:0; gap:12px; }
  #tickets .ticket-summary { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
  #tickets .ticket-summary h3 { margin:0; font-size:28px; line-height:1.05; }
  #tickets .ticket-description { font-size:12px; line-height:1.35; max-width:52%; }
  #tickets .ticket-price { gap:9px; }
  #tickets .ticket-price .price { font-size:31px; }
  #tickets .ticket-price small { font-size:10px; margin-top:3px; }
  #tickets .ticket-price .quantity-breakdown { font-size:10px; margin-top:4px; }
  #tickets .included-guest { font-size:10px; padding:5px 8px; }
  #tickets .ticket-price .buy-ticket { min-height:46px; padding:11px 18px; }
  #tickets .ticket-price .buy-ticket [data-checkout-label] { font-size:18px; }
  #tickets .checkout-trust { font-size:10px; }
  #tickets .ticket-benefits { margin:0; }
  #tickets .ticket-inclusions > summary { display:flex; align-items:center; justify-content:space-between; min-height:32px; margin:0; pointer-events:auto; cursor:pointer; font-size:12px; }
  #tickets .ticket-inclusions > summary span { display:block; width:7px; height:7px; margin-right:4px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); }
  #tickets .ticket-inclusions[open] > summary span { transform:rotate(225deg); }
  #tickets .ticket-benefits ul { padding:8px 0; gap:9px; }
  #tickets .ticket-benefits li { font-size:12px; }
  #tickets .ticket-photo { display:none; }
  #tickets .price-expired { font-size:24px; }
}
@media(max-width:360px) {
  #tickets { width:calc(100% - 24px); padding-top:20px; }
  #tickets > h2 { font-size:38px; }
  #tickets .ticket-countdown-row { gap:12px; }
  #tickets .countdown span { font-size:25px; }
  #tickets .ticket-panel { padding:15px 16px 10px; }
  #tickets .ticket-summary h3 { font-size:25px; }
  #tickets .ticket-description { font-size:11px; }
  #tickets .quantity-selector > p { max-width:38%; }
}
@media(prefers-reduced-motion:reduce) { #tickets .ticket-tab-copy { transition:none; transform:none!important; } }

#tickets .ticket-tab-price small[hidden] { display:none; }
html:not(.js) #tickets .ticket-selector { display:none; }
html:not(.js) #tickets .ticket-layout { grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; }
html:not(.js) #tickets .ticket-panel { min-height:0; border-bottom:1px solid #eaeaea; }
html:not(.js) #tickets .ticket-benefits { margin-top:20px; }
@media(max-width:600px) {
  #tickets .ticket-tabs button[data-plan] { min-height:44px; }
  #tickets .quantity-stepper button,#tickets .quantity-stepper input { width:44px; height:44px; }
  #tickets .quantity-selector > p { max-width:39%; }
  html:not(.js) #tickets .ticket-layout { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:360px) { #tickets .quantity-selector > p { max-width:34%; font-size:9px; } }
html:not(.js) #tickets .ticket-inclusions > summary { pointer-events:auto; cursor:pointer; }
@media(max-width:600px) {
  #tickets .quantity-selector { display:grid; grid-template-columns:auto auto minmax(0,1fr); gap:8px; }
  #tickets .quantity-selector > p { max-width:none; width:auto; min-width:0; }
}
@media(max-width:360px) {
  #tickets .ticket-description { display:none; }
  #tickets .ticket-summary { display:block; }
  #tickets .ticket-offer { margin-bottom:16px; }
}
#tickets .included-guest { margin:0; }
#tickets .ticket-offer { display:block; }
#tickets .ticket-countdown-row .offer-title { flex:none; }

/* Full-width four-row motif; clamp the cell size, never stretch the squares. */
.ticket-agenda-divider {
  --divider-cell: clamp(10px, 1.515152vw, 24px);
  width: 100%;
  height: calc(var(--divider-cell) * 4);
  margin: 0;
  background: url('./assets/motifs/ticket-agenda-divider.svg') center / calc(var(--divider-cell) * 66) 100% repeat-x;
  pointer-events: none;
}
.ticket-agenda-divider + .agenda { padding-top: 32px; }

.ticket-inclusions-label { font-weight:500; }
/* On phones each plan opens in place: header, photograph, booking, inclusions. */
@media(max-width:600px) {
  #tickets { width:100%; padding:64px 24px 56px; background:#f5f5f5; }
  #tickets > h2 { font-size:clamp(40px,10.7vw,48px); }
  #tickets .ticket-offer { margin:24px auto 72px; }
  #tickets .ticket-deal { display:flex; flex-direction:column; align-items:center; width:min(270px,100%); padding:0; background:none; clip-path:none; }
  #tickets .ticket-deal::before,#tickets .ticket-deal::after { display:none; }
  #tickets .ticket-deal > span { padding:8px 20px; font-size:12px; line-height:1.2; background:var(--offer-blue); clip-path:polygon(10px 0,calc(100% - 10px) 0,calc(100% - 10px) 8px,100% 8px,100% 100%,0 100%,0 8px,10px 8px); }
  #tickets .ticket-deal .offer-detail { padding:10px 16px 14px; background:var(--offer-blue-bright); font-size:12px; line-height:1.3; text-align:center; clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 18px) calc(100% - 10px),calc(100% - 18px) 100%,18px 100%,18px calc(100% - 10px),0 calc(100% - 10px)); }
  #tickets .ticket-countdown-row { flex-direction:column; gap:12px; margin-top:16px; }
  #tickets .offer-title { font-size:14px; text-align:center; }
  #tickets .offer-title br { display:none; }
  #tickets .offer-title br::after { content:' '; }
  #tickets .countdown { justify-content:center; gap:12px; }
  #tickets .countdown span { font-size:clamp(29px,8vw,36px); font-weight:500; }
  #tickets .countdown small { font-size:10px; margin-top:8px; }
  #tickets .countdown b { margin-top:10px; gap:6px; }
  #tickets .ticket-countdown-row .countdown b::before,#tickets .ticket-countdown-row .countdown b::after { background:#111; }
  #tickets .ticket-layout { max-width:440px; margin-inline:auto; }
  #tickets.is-ticket-accordion .ticket-selector { margin:0; }
  #tickets.is-ticket-accordion .ticket-panels { display:none; }
  #tickets.is-ticket-accordion .ticket-tabs { display:flex; flex-direction:column; gap:12px; }
  #tickets.is-ticket-accordion [data-tier=regular] { --tier-accent:#702bdf; --tier-pixel-mid:#a575ef; --tier-ink:#702bdf; --tier-soft:#f3edfc; }
  #tickets.is-ticket-accordion [data-tier=premium] { --tier-accent:#e7a201; --tier-pixel-mid:#f5c75b; --tier-ink:#936600; --tier-soft:#fff7e3; }
  #tickets.is-ticket-accordion [data-tier=vip] { --tier-accent:#e8483f; --tier-pixel-mid:#f58c86; --tier-ink:#c43830; --tier-soft:#fff3f1; }
  #tickets .ticket-option { position:relative; min-width:0; background:#fff; }
  #tickets .ticket-option[data-expanded=true] { border-block:8px solid var(--tier-accent); box-shadow:8px 0 var(--tier-accent),-8px 0 var(--tier-accent); }
  #tickets .ticket-option-heading { margin:0; font-weight:400; line-height:1; }
  #tickets.is-ticket-accordion .ticket-tabs button[data-plan] { display:flex; width:100%; min-height:76px; padding:14px 16px 14px 24px; gap:10px; justify-content:flex-start; text-align:left; border:0; background:#fff; color:#111; }
  #tickets.is-ticket-accordion .ticket-tab-name { font-size:20px; line-height:1.15; }
  #tickets.is-ticket-accordion .ticket-tabs button[data-plan] small { display:block; margin-top:5px; font-size:11px; line-height:1.3; }
  #tickets.is-ticket-accordion .ticket-tab-price { display:block; font-size:13px; font-weight:400; }
  #tickets.is-ticket-accordion .ticket-tab-price small { font-size:9px; color:#888; }
  #tickets.is-ticket-accordion .ticket-tab-arrow { display:block; width:8px; height:8px; margin-left:6px; padding:0; flex:none; font-size:0; border-right:1.5px solid var(--tier-accent); border-bottom:1.5px solid var(--tier-accent); transform:rotate(45deg) translateY(-2px); }
  #tickets.is-ticket-accordion [aria-expanded=true] .ticket-tab-arrow { transform:rotate(225deg) translate(-2px,-1px); }
  #tickets.is-ticket-accordion .ticket-tab-mark { display:block; opacity:1; left:0; width:14px; height:24px; }
  #tickets.is-ticket-accordion .ticket-tab-mark i { width:7px; height:7px; }
  #tickets.is-ticket-accordion .ticket-tab-mark i:nth-child(1) { top:0; left:0; box-shadow:0 17px var(--tier-accent); }
  #tickets.is-ticket-accordion .ticket-tab-mark i:nth-child(2) { left:7px; top:8.5px; }
  #tickets.is-ticket-accordion .ticket-tab-mark i:nth-child(n+3) { display:none; }
  #tickets.is-ticket-accordion .ticket-panel { padding:0; min-height:0; gap:0; }
  #tickets.is-ticket-accordion .ticket-summary { display:block; padding:22px 20px 18px; }
  #tickets.is-ticket-accordion .ticket-summary h3 { margin:0 0 18px; font-size:34px; line-height:1.05; color:#111; }
  #tickets.is-ticket-accordion .ticket-description { display:block; max-width:none; font-size:14px; line-height:1.5; }
  #tickets.is-ticket-accordion .ticket-price { padding:12px 20px 22px; gap:16px; }
  #tickets.is-ticket-accordion .ticket-price .price { font-size:25px; }
  #tickets.is-ticket-accordion .ticket-price small { font-size:10px; }
  #tickets.is-ticket-accordion .included-guest { align-self:stretch; padding:9px 10px; background:var(--offer-blue-bright); color:#fff; text-align:center; font-size:11px; }
  #tickets.is-ticket-accordion .quantity-selector { display:grid; grid-template-columns:1fr auto; gap:6px 12px; margin:0; padding:0; }
  #tickets.is-ticket-accordion .quantity-selector label { font-size:14px; }
  #tickets.is-ticket-accordion .quantity-selector > p { grid-column:1 / -1; width:100%; max-width:none; margin:0; min-height:0; font-size:10px; line-height:1.4; }
  #tickets.is-ticket-accordion .quantity-stepper button { display:block; padding:0; margin:0; font-size:21px; min-height:44px; background:none; border:0; }
  #tickets.is-ticket-accordion .ticket-price .buy-ticket { min-height:56px; color:#fff; --ticket-pixel-a:#fff; --ticket-pixel-b:#bdbdbd; }
  #tickets.is-ticket-accordion .ticket-price .buy-ticket::before,#tickets.is-ticket-accordion .ticket-price .buy-ticket::after { background:#080808; }
  #tickets.is-ticket-accordion .ticket-price .buy-ticket [data-checkout-label] { font-size:15px; }
  #tickets.is-ticket-accordion .checkout-trust { font-size:9px; margin-top:-6px; }
  #tickets.is-ticket-accordion .ticket-inclusions > summary { min-height:60px; padding:16px 20px; margin:0; border-top:1px solid #f3f3f3; font-size:12px; }
  #tickets.is-ticket-accordion .ticket-inclusions > summary .ticket-inclusions-action { display:flex; align-items:center; gap:10px; width:auto; height:auto; margin:0; border:0; transform:none; font-size:11px; font-weight:400; }
  #tickets.is-ticket-accordion .ticket-inclusions-action::before { content:'View'; }
  #tickets.is-ticket-accordion .ticket-inclusions-action::after { content:'+'; font-size:20px; }
  #tickets.is-ticket-accordion .ticket-inclusions[open] .ticket-inclusions-action::before { content:'Close'; }
  #tickets.is-ticket-accordion .ticket-inclusions[open] .ticket-inclusions-action::after { content:'×'; }
  #tickets.is-ticket-accordion .ticket-benefits ul { padding:22px 20px 28px; gap:13px; background:#fafafa; }
  #tickets.is-ticket-accordion .ticket-benefits li { font-size:12px; }
  #tickets.is-ticket-accordion .ticket-photo { display:block; min-height:0; width:100%; height:auto; }
  #tickets.is-ticket-accordion .ticket-photo[data-ticket-photo=regular]:not([data-ticket-plan=team]) { aspect-ratio:1000 / 750; }
  #tickets.is-ticket-accordion .ticket-photo[data-ticket-photo=regular]:not([data-ticket-plan=team]) [data-ticket-photo-primary] { object-position:50% 27%; }
  #tickets.is-ticket-accordion .ticket-photo:is([data-ticket-plan=team],[data-ticket-plan=premium-team],[data-ticket-photo=vip]) { display:grid; }
  #tickets.is-ticket-accordion .ticket-photo[data-ticket-plan=premium] { display:grid; grid-template-rows:auto auto; min-height:0; }
  #tickets.is-ticket-accordion .ticket-photo[data-ticket-plan=premium] [data-ticket-photo-secondary] { height:auto; aspect-ratio:2400 / 1600; }

  #tickets.is-ticket-accordion .ticket-panel[hidden],#tickets.is-ticket-accordion .ticket-photo img[hidden] { display:none; }
}

/* In the desktop grid every photograph reaches the same bottom edge as the
   details panel. Keep source crops in the upper scenes; the final scene fills
   the available row. Size containment lets the details set the row height.
   Phone accordion photographs retain their own proportions. */
@media (min-width:601px) {
  html.js #tickets .ticket-layout > .ticket-photo { align-self:stretch; aspect-ratio:auto; min-height:0; contain:size; }
  html.js #tickets .ticket-layout > .ticket-photo:is([data-ticket-plan=team],[data-ticket-photo=vip]) { grid-template-rows:auto minmax(0,1fr); }
  html.js #tickets .ticket-layout > .ticket-photo[data-ticket-plan=team] [data-ticket-photo-primary],
  html.js #tickets .ticket-layout > .ticket-photo[data-ticket-photo=vip] [data-ticket-photo-secondary] { height:100%; aspect-ratio:auto; }
  /* A third, existing front-seating scene fills Premium Team's remaining space
     without magnifying the dark foreground or cropping the complete group. */
  html.js #tickets .ticket-layout > .ticket-photo[data-ticket-plan=premium-team] { grid-template-rows:auto auto minmax(0,1fr); }
  html.js #tickets .ticket-layout > .ticket-photo[data-ticket-plan=premium-team] [data-ticket-photo-secondary] { grid-row:3; height:100%; aspect-ratio:auto; object-position:60% 60%; }
}
@media (max-width:600px) {
  #tickets.is-ticket-accordion .ticket-photo[data-ticket-plan=premium-team] [data-ticket-photo-secondary] { display:none; }
}

/* The visual Regular summary belongs to its photograph. The original heading
   and description remain in the panel for reading order and accessible naming. */
#tickets .ticket-photo-copy { display:none; position:absolute; inset:auto 0 0; z-index:2; padding:64px 32px 32px; color:#fff; background:linear-gradient(0deg,rgba(0,0,0,.88),rgba(0,0,0,.62) 60%,transparent); pointer-events:none; }
#tickets[data-ticket-plan=regular] .ticket-photo-copy { display:block; }
#tickets .ticket-photo-copy p { margin:0; color:#fff; font-size:17px; line-height:1.4; }
#tickets .ticket-photo-copy .ticket-photo-copy-title { margin:0 0 14px; font-size:clamp(34px,3vw,52px); font-weight:400; line-height:1.05; letter-spacing:-.045em; }
@media(min-width:601px) {
  #tickets #panel-regular .ticket-summary { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
}
@media(max-width:600px) {
  #tickets.is-ticket-accordion #panel-regular .ticket-summary { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  #tickets.is-ticket-accordion .ticket-photo-copy { padding:40px 20px 20px; }
  #tickets.is-ticket-accordion .ticket-photo-copy p { font-size:14px; line-height:1.5; }
  #tickets.is-ticket-accordion .ticket-photo-copy .ticket-photo-copy-title { margin-bottom:8px; font-size:34px; line-height:1.05; }
}
@media(max-width:360px) {
  #tickets { padding-inline:20px; }
  #tickets .countdown { gap:9px; }
  #tickets.is-ticket-accordion .ticket-tab-name { font-size:17px; }
  #tickets.is-ticket-accordion .ticket-tab-price { font-size:12px; }
}

/* One persistent, directly editable quantity beneath the offer/countdown. */
#tickets:has(> .ticket-quantity-global) .ticket-offer { margin-bottom:0; }
#tickets .quantity-selector.ticket-quantity-global {
  display:grid;
  grid-template-columns:auto auto;
  align-items:center;
  justify-content:center;
  gap:8px 18px;
  width:min(100%,480px);
  margin:24px auto 36px;
  padding:0;
}
#tickets .quantity-selector.ticket-quantity-global label { font-size:16px; line-height:1.3; }
#tickets .ticket-quantity-global .quantity-stepper { display:flex; border:1px solid #c9c9c9; border-radius:0; padding:0; gap:0; background:#fff; }
#tickets .ticket-quantity-global .quantity-stepper button { display:block; width:44px; height:44px; min-height:44px; margin:0; padding:0; font-size:23px; }
#tickets .ticket-quantity-global .quantity-stepper input { width:56px; height:44px; min-width:0; padding:0 4px; border-inline:1px solid #e5e5e5; border-radius:0; font-size:18px; line-height:1; }
#tickets .quantity-selector.ticket-quantity-global > p { grid-column:1 / -1; width:100%; max-width:none; min-height:2.6em; margin:0; text-align:center; font-size:12px; line-height:1.4; }
#tickets .ticket-quantity-global .quantity-stepper :focus-visible { outline:2px solid #7752ff; outline-offset:3px; position:relative; z-index:1; }
#tickets .ticket-quantity-global[hidden] { display:none; }
@media(max-width:600px) {
  #tickets .quantity-selector.ticket-quantity-global { grid-template-columns:auto auto; gap:8px 12px; margin:22px auto 28px; }
  #tickets .quantity-selector.ticket-quantity-global label { font-size:14px; }
  #tickets .quantity-selector.ticket-quantity-global > p { max-width:none; width:100%; font-size:11px; }
}

/* The promotion reads the same everywhere; the terms sit under it as plain text. */
#tickets .offer-terms { margin:12px auto 0; max-width:46ch; text-align:center; font-size:14px; line-height:1.5; color:#4b5563; }
@media(max-width:600px){
  #tickets .offer-terms { font-size:12px; margin-top:10px; }
  /* 07 · the card head already names the tier; no copy over the photograph */
  #tickets.is-ticket-accordion .ticket-photo-copy { display:none!important; }
  /* 06 · one photograph per card on a phone */
  #tickets.is-ticket-accordion .ticket-photo [data-ticket-photo-secondary],
  #tickets.is-ticket-accordion .ticket-photo [data-ticket-photo-team] { display:none!important; }
  #tickets.is-ticket-accordion .ticket-photo:is([data-ticket-plan=team],[data-ticket-plan=premium-team],[data-ticket-plan=premium],[data-ticket-photo=vip]) { display:block; aspect-ratio:1000 / 640; min-height:0; }
  #tickets.is-ticket-accordion .ticket-photo:is([data-ticket-plan=team],[data-ticket-plan=premium-team],[data-ticket-plan=premium],[data-ticket-photo=vip]) [data-ticket-photo-primary] { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; object-position:50% 30%; }
}
