/*
Theme Name: Project 21
Theme URI: https://project21.gr
Author: Project 21
Description: Theme for Project 21 - Art & Events, the open-air concert stage in Heraklion, Crete. Events, tickets with QR check-in, speakers, gallery, and WooCommerce + Secure Custom Fields support that switches on when the plugins are active.
Version: 4.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: project21
*/
/* ==========================================================================
   SOUNDFEST — Design System
   To use real photography, set --img on any .scene or .portrait element:
   <div class="scene" style="--img:url('images/hero.jpg')"></div>
   ========================================================================== */

:root{
  --bg:#050505; --bg2:#0B0B0B; --surface:#101013; --surface2:#17171c;
  --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.16);
  --text:#fff; --muted:#a6a6b2; --dim:#6f6f7c;
  --accent:#FC791A; --accent-hi:#ff9a4d; --accent-lo:#e45f00;
  --purple:#9b4dff; --pink:#ff3d9a; --ok:#2ed47a; --danger:#ff5f5f;
  --r:20px; --r-sm:13px;
  --f-display:"Anton","Arial Narrow",Impact,sans-serif;
  --f-head:"Sora",system-ui,sans-serif;
  --f-body:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --shadow:0 30px 80px -30px rgba(0,0,0,.9);
  --glow:0 0 0 1px rgba(252,121,26,.55),0 24px 70px -24px rgba(252,121,26,.55),0 0 60px -20px rgba(155,77,255,.5);
  --ease:cubic-bezier(.2,.7,.2,1);
  --hdr:78px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.65 var(--f-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.no-scroll{overflow:hidden}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}
h1,h2,h3,h4{font-family:var(--f-head);line-height:1.12;letter-spacing:-.02em;text-wrap:balance}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
::selection{background:var(--accent);color:#fff}
[hidden]{display:none!important}
.ico{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Layout ---------- */
.container{width:min(1400px,100% - 48px);margin-inline:auto}
.container--narrow{width:min(860px,100% - 48px)}
.section{padding:120px 0;position:relative}
.section--alt{background:linear-gradient(180deg,var(--bg2),var(--bg))}
.section--alt::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,var(--line2),transparent)}
.section--tight{padding:72px 0}
.section--flush{padding:40px 0 110px}
.center{text-align:center}
.muted{color:var(--muted)}
.small{font-size:13px}
.lead{font-size:18px;color:#d5d5de;max-width:68ch}
.h3{font-size:clamp(22px,2.4vw,28px);margin-bottom:10px}
.h4{font-size:18px;margin-bottom:18px;display:flex;align-items:center;gap:12px}
.grid{display:grid;gap:26px}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}

.section-head{text-align:center;margin-bottom:56px}
.section-head h2{font-size:clamp(34px,5vw,60px);text-transform:uppercase;font-weight:800}
.section-head p:not(.eyebrow){color:var(--muted);margin-top:12px;font-size:17px}
.section-head--row{display:flex;justify-content:space-between;align-items:flex-end;text-align:left;gap:24px}
.eyebrow{font:700 12px/1 var(--f-head);letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;display:inline-flex;align-items:center;gap:10px}
.eyebrow.center{display:flex;justify-content:center;color:var(--dim)}

.card{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);position:relative}
.glass{background:rgba(255,255,255,.07);border:1px solid var(--line2);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%)}
.gb{transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.gb::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(140deg,var(--accent),var(--purple) 45%,transparent 75%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .45s;pointer-events:none;z-index:2}
.gb:hover{transform:translateY(-6px);box-shadow:0 40px 90px -30px rgba(252,121,26,.35),0 30px 80px -30px rgba(155,77,255,.35)}
.gb:hover::before{opacity:1}

/* ---------- Buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:50px;padding:0 26px;border-radius:14px;font:700 15px/1 var(--f-head);border:1px solid transparent;white-space:nowrap;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s,border-color .3s}
.btn:active{transform:scale(.97)}
.btn--primary{background:linear-gradient(135deg,var(--accent-hi),var(--accent) 50%,var(--accent-lo));color:#fff;box-shadow:0 12px 34px -10px rgba(252,121,26,.75),inset 0 1px 0 rgba(255,255,255,.3);text-shadow:0 1px 1px rgba(0,0,0,.25)}
.btn--primary::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 18px 44px -10px rgba(252,121,26,.9),inset 0 1px 0 rgba(255,255,255,.3)}
.btn--primary:hover::after{transform:translateX(120%)}
.btn--ghost{background:rgba(255,255,255,.06);border-color:var(--line2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.btn--ghost:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.4);transform:translateY(-2px)}
.btn--sm{height:40px;padding:0 18px;font-size:13px;border-radius:11px}
.btn--lg{height:60px;padding:0 34px;font-size:16px;border-radius:16px}
.btn--block{width:100%}
.btn[disabled]{opacity:.55;pointer-events:none}
.btn .spin{width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--accent)}
.link-arrow .ico{transition:transform .3s}
.link-arrow:hover .ico{transform:translateX(5px)}
.badge{display:inline-flex;align-items:center;height:26px;padding:0 12px;border-radius:99px;font:700 11px/1 var(--f-head);letter-spacing:.12em;text-transform:uppercase;background:rgba(5,5,5,.6);border:1px solid var(--line2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}

/* ---------- Generated concert artwork ---------- */
.scene{--h1:278;--h2:22;--h3:325;--crowd:360px;position:relative;overflow:hidden;isolation:isolate;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 120'%3E%3Cg fill='%23050505' stroke='%23050505' stroke-width='8' stroke-linecap='round'%3E%3Ccircle cx='24' cy='74' r='12'/%3E%3Cellipse cx='24' cy='124' rx='26' ry='36'/%3E%3Cpath d='M44 100 56 44'/%3E%3Ccircle cx='78' cy='62' r='13'/%3E%3Cellipse cx='78' cy='118' rx='28' ry='42'/%3E%3Cpath d='M56 92 44 30M100 92 112 34'/%3E%3Ccircle cx='128' cy='80' r='12'/%3E%3Cellipse cx='128' cy='128' rx='26' ry='34'/%3E%3Ccircle cx='176' cy='66' r='13'/%3E%3Cellipse cx='176' cy='120' rx='27' ry='40'/%3E%3Cpath d='M198 96 214 40'/%3E%3Ccircle cx='228' cy='78' r='12'/%3E%3Cellipse cx='228' cy='126' rx='26' ry='34'/%3E%3Cpath d='M208 104 196 56'/%3E%3Ccircle cx='276' cy='60' r='13'/%3E%3Cellipse cx='276' cy='116' rx='28' ry='42'/%3E%3Cpath d='M254 90 246 28M298 90 306 30'/%3E%3Ccircle cx='326' cy='76' r='12'/%3E%3Cellipse cx='326' cy='126' rx='26' ry='36'/%3E%3Ccircle cx='374' cy='68' r='13'/%3E%3Cellipse cx='374' cy='122' rx='27' ry='40'/%3E%3Cpath d='M394 98 404 46'/%3E%3C/g%3E%3C/svg%3E") center bottom/var(--crowd) auto repeat-x,
    radial-gradient(circle,#fff 0 1.5px,hsl(var(--h2) 100% 70%/.7) 2.5px,transparent 7px) 0 9%/11% 18px repeat-x,
    repeating-conic-gradient(from 104deg at 50% -6%,transparent 0 5deg,hsl(var(--h1) 100% 75%/.17) 5deg 7.5deg,transparent 7.5deg 13deg),
    radial-gradient(34% 26% at 50% 78%,hsl(var(--h2) 100% 62%/.75),transparent 72%),
    radial-gradient(58% 62% at 50% 24%,hsl(var(--h1) 95% 58%/.85),transparent 72%),
    radial-gradient(44% 58% at 6% 32%,hsl(var(--h3) 100% 56%/.7),transparent 72%),
    radial-gradient(44% 58% at 94% 30%,hsl(var(--h2) 100% 55%/.6),transparent 72%),
    #07060d}
.scene::before,.portrait::before{content:"";position:absolute;inset:0;background:var(--img,none) center/cover no-repeat;z-index:-1}
.portrait{--h1:22;--h2:280;--h3:325;position:relative;overflow:hidden;isolation:isolate;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 240'%3E%3Cpath fill='%23070709' stroke='%23fff' stroke-opacity='.28' stroke-width='1.5' d='M14 242c0-54 30-76 62-82v-14c-16-10-24-28-24-50 0-30 20-52 48-52s48 22 48 52c0 22-8 40-24 50v14c32 6 62 28 62 82Z'/%3E%3C/svg%3E") center bottom/92% auto no-repeat,
    radial-gradient(62% 48% at 50% 34%,hsl(var(--h1) 100% 62%/.95),transparent 72%),
    radial-gradient(60% 60% at 0 0,hsl(var(--h2) 100% 56%/.75),transparent 72%),
    radial-gradient(60% 60% at 100% 8%,hsl(var(--h3) 100% 56%/.7),transparent 72%),
    #0a0810}

/* ---------- Header ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:60;height:var(--hdr);transition:background .4s,border-color .4s,height .4s;border-bottom:1px solid transparent}
.hdr.is-stuck{background:rgba(5,5,5,.72);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-color:var(--line);height:66px}
.hdr__in{height:100%;display:flex;align-items:center;gap:30px}
.logo{display:inline-flex;align-items:center;gap:10px;font:800 19px/1 var(--f-head);letter-spacing:.02em}
.logo svg{width:28px;height:28px;fill:var(--accent);filter:drop-shadow(0 0 10px rgba(252,121,26,.7))}
.logo svg rect{transform-origin:center;animation:eq 1.2s ease-in-out infinite alternate}
.logo svg rect:nth-child(2){animation-delay:-.3s}.logo svg rect:nth-child(3){animation-delay:-.7s}.logo svg rect:nth-child(4){animation-delay:-.5s}
.nav{display:flex;gap:4px;margin-inline:auto}
.nav a{position:relative;padding:10px 14px;font:600 14px/1 var(--f-head);color:#d2d2dc;border-radius:10px;transition:color .25s,background .25s}
.nav a:hover{color:#fff;background:rgba(255,255,255,.06)}
.nav a.is-active{color:var(--accent)}
.nav a.is-active::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;border-radius:2px;background:var(--accent);box-shadow:0 0 12px var(--accent)}
.hdr__actions{display:flex;align-items:center;gap:8px}
.icon-btn{position:relative;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:#e6e6ee;transition:background .25s,color .25s}
.icon-btn:hover{background:rgba(255,255,255,.08);color:#fff}
.icon-btn .ico{width:20px;height:20px}
.badge-count{position:absolute;top:3px;right:3px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--accent);font:800 10px/18px var(--f-head);text-align:center;box-shadow:0 0 0 2px var(--bg)}
.badge-count:empty{display:none}
.burger{display:none}
.mnav{position:fixed;inset:0;z-index:70;background:rgba(5,5,5,.92);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);display:flex;flex-direction:column;padding:26px 28px 40px;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
.mnav.open{opacity:1;visibility:visible}
.mnav__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}
.mnav a.mnav__link{display:block;font:400 clamp(34px,9vw,54px)/1.25 var(--f-display);text-transform:uppercase;letter-spacing:.01em;opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .5s var(--ease),color .25s}
.mnav.open a.mnav__link{opacity:1;transform:none}
.mnav a.mnav__link:hover,.mnav a.mnav__link.is-active{color:var(--accent)}
.mnav .btn{margin-top:auto}
.tabbar{display:none}

/* ---------- Hero ---------- */
.hero{min-height:100svh;display:flex;align-items:flex-end;padding:calc(var(--hdr) + 36px) 0 104px}
.hero__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,5,5,.88) 0,rgba(5,5,5,.45) 45%,transparent 75%),linear-gradient(to top,var(--bg) 2%,transparent 38%)}
.hero__beams{position:absolute;inset:0;z-index:-1;mix-blend-mode:screen;pointer-events:none}
.hero__beams span{position:absolute;top:-12%;left:50%;width:16vmax;height:130%;transform-origin:50% 0;background:linear-gradient(to bottom,hsl(22 100% 70%/.5),transparent 80%);clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);filter:blur(10px);animation:sweep 9s ease-in-out infinite alternate}
.hero__beams span:nth-child(2){background:linear-gradient(to bottom,hsl(280 100% 72%/.55),transparent 80%);animation-duration:11s;animation-delay:-3s;left:28%}
.hero__beams span:nth-child(3){background:linear-gradient(to bottom,hsl(325 100% 70%/.5),transparent 80%);animation-duration:13s;animation-delay:-6s;left:74%}
.hero__beams span:nth-child(4){background:linear-gradient(to bottom,hsl(210 100% 72%/.45),transparent 80%);animation-duration:10s;animation-delay:-8s;left:60%}
.hero__inner{position:relative}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(252,121,26,.7);animation:pulse 1.8s infinite}
.hero__eyebrow{padding:9px 16px;border-radius:99px;background:rgba(255,255,255,.07);border:1px solid var(--line2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;letter-spacing:.2em}
.hero__title{font:400 clamp(72px,12vw,184px)/.84 var(--f-display);text-transform:uppercase;font-style:italic;letter-spacing:-.01em;margin:10px 0 0;display:flex;flex-direction:column;align-items:flex-start;text-shadow:0 10px 60px rgba(0,0,0,.6)}
.hero__title em{color:var(--accent);margin:-.06em 0 0 2.1em;transform:rotate(-4deg);text-shadow:0 0 50px rgba(252,121,26,.7),0 0 120px rgba(252,121,26,.45);font-style:italic}
.hero__tag{font:700 clamp(15px,1.7vw,22px)/1 var(--f-head);letter-spacing:.3em;text-transform:uppercase;margin-top:26px}
.hero__pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.hero__pills li{font:600 11px/1 var(--f-head);letter-spacing:.24em;text-transform:uppercase;padding:9px 14px;border:1px solid var(--line2);border-radius:99px;color:#e5e5ee;background:rgba(5,5,5,.3)}
.hero__meta{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:26px;font-weight:600;font-size:16px}
.hero__meta li{display:flex;align-items:center;gap:10px}
.hero__meta .ico{color:var(--accent)}
.countdown{display:flex;gap:14px;margin-top:28px}
.countdown__box{width:96px;padding:18px 0 14px;text-align:center;border-radius:18px;background:rgba(255,255,255,.07);border:1px solid var(--line2);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
.countdown__box b{display:block;font:400 42px/1 var(--f-display);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.countdown__box span{font:600 11px/1 var(--f-head);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:block;margin-top:8px}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.play-ring{width:30px;height:30px;border-radius:50%;border:1.5px solid #fff;display:grid;place-items:center}
.play-ring .ico{width:12px;height:12px;fill:#fff;margin-left:2px}
.hero__scroll{position:absolute;left:50%;bottom:34px;width:26px;height:42px;margin-left:-13px;border:1.5px solid rgba(255,255,255,.5);border-radius:14px}
.hero__scroll span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--accent);animation:wheel 1.8s infinite}

.ticker{border-block:1px solid var(--line);background:var(--bg2);overflow:hidden;padding:20px 0}
.ticker__track{display:flex;gap:56px;width:max-content;animation:marquee 34s linear infinite}
.ticker__track span{font:400 30px/1 var(--f-display);text-transform:uppercase;letter-spacing:.04em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.4);display:flex;align-items:center;gap:56px}
.ticker__track span::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 16px var(--accent)}

/* ---------- Artist cards ---------- */
.acard{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:3/4;border:1px solid var(--line);transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s}
.acard__img{position:absolute;inset:0;transition:transform .9s var(--ease),filter .5s}
.acard::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(5,5,5,.95) 4%,transparent 55%);pointer-events:none}
.acard__info{position:absolute;left:20px;right:20px;bottom:20px;z-index:2;transition:transform .5s var(--ease)}
.acard__info h3{font-size:21px}
.acard__info p{font-size:13px;color:var(--accent);font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-top:6px}
.acard__social{position:absolute;right:14px;top:14px;z-index:2;display:flex;flex-direction:column;gap:8px;opacity:0;transform:translateX(12px);transition:opacity .4s,transform .4s var(--ease)}
.acard__social a{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:rgba(5,5,5,.55);border:1px solid var(--line2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .25s,border-color .25s}
.acard__social a:hover{background:var(--accent);border-color:var(--accent)}
.acard:hover,.acard:focus-within{transform:translateY(-8px);border-color:rgba(252,121,26,.6);box-shadow:var(--glow)}
.acard:hover .acard__img{transform:scale(1.08);filter:saturate(1.25)}
.acard:hover .acard__social,.acard:focus-within .acard__social{opacity:1;transform:none}
.acard--sm .acard__info{left:14px;right:14px;bottom:14px}
.acard--sm .acard__info h3{font-size:16px}
.acard--sm .acard__info p{font-size:11px}

/* ---------- Event cards ---------- */
.ecard{display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;background:var(--surface);border:1px solid var(--line);transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s}
.ecard:hover{transform:translateY(-8px);border-color:rgba(252,121,26,.55);box-shadow:var(--glow)}
.ecard__media{display:block;aspect-ratio:16/10;transition:filter .5s}
.ecard__media .badge{position:absolute;left:16px;top:16px}
.ecard:hover .ecard__media{filter:saturate(1.3) brightness(1.1)}
.ecard__body{padding:24px;display:flex;flex-direction:column;gap:14px;flex:1}
.ecard__body h3{font-size:21px;text-transform:uppercase}
.ecard__body h3 a:hover{color:var(--accent)}
.meta{display:grid;gap:8px;font-size:14px;color:var(--muted)}
.meta li{display:flex;align-items:center;gap:10px}
.meta .ico{color:var(--accent)}
.ecard__foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}
.price{font:800 20px/1 var(--f-head);color:var(--accent)}
.price small{display:block;font:600 11px/1 var(--f-body);color:var(--dim);letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.event-list{display:grid;gap:22px}
.ecard--row{flex-direction:row}
.ecard--row .ecard__media{width:min(38%,380px);aspect-ratio:auto;min-height:210px;flex:none}
.ecard--row .ecard__body{flex-direction:row;align-items:center;gap:28px;padding:28px 32px}
.ecard__text{display:grid;gap:14px}
.ecard--row .ecard__text{flex:1}
.ecard--row .ecard__body h3{font-size:26px}
.ecard--row .ecard__foot{flex-direction:column;align-items:flex-end;border:0;padding:0;margin:0;gap:16px}
.ecard--row .price{text-align:right;font-size:26px}

/* ---------- Segmented control & timeline ---------- */
.seg{display:flex;width:max-content;max-width:100%;margin:0 auto 54px;padding:5px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--line)}
.seg button{height:40px;padding:0 22px;border-radius:10px;font:700 13px/1 var(--f-head);color:var(--muted);transition:background .3s,color .3s,box-shadow .3s}
.seg button.is-active{background:var(--accent);color:#fff;box-shadow:0 8px 24px -8px rgba(252,121,26,.8)}
.timeline{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding-top:34px}
.timeline::before{content:"";position:absolute;left:0;right:0;top:11px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--accent),var(--purple) 55%,var(--pink))}
.tl{position:relative;padding:22px;border-radius:var(--r-sm);background:rgba(255,255,255,.035);border:1px solid var(--line);transition:transform .4s var(--ease),border-color .4s,background .4s}
.tl::before{content:"";position:absolute;left:22px;top:-34px;width:24px;height:24px;border-radius:50%;background:var(--bg);border:2px solid var(--accent);box-shadow:0 0 0 5px rgba(252,121,26,.15),0 0 22px rgba(252,121,26,.8)}
.tl::after{content:"";position:absolute;left:30px;top:-26px;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.tl:hover{transform:translateY(-6px);border-color:rgba(252,121,26,.5);background:rgba(252,121,26,.07)}
.tl time{font:800 13px/1 var(--f-head);color:var(--accent);letter-spacing:.08em}
.tl h3{font-size:19px;margin:12px 0 6px}
.tl p{font-size:14px;color:var(--muted)}

/* ---------- Pricing ---------- */
.pricing{align-items:center}
.price-card{overflow:hidden;display:flex;flex-direction:column}
.price-card__media{height:150px;-webkit-mask:linear-gradient(#000 55%,transparent);mask:linear-gradient(#000 55%,transparent)}
.price-card__body{padding:6px 30px 32px;display:flex;flex-direction:column;gap:20px;flex:1}
.price-card h3{font-size:22px;text-transform:uppercase}
.price-card__price{font:800 40px/1 var(--f-head);color:var(--accent);letter-spacing:-.03em}
.price-card__price small{font:500 14px/1 var(--f-body);color:var(--dim);letter-spacing:0}
.checks{display:grid;gap:12px;font-size:15px;color:#d8d8e2;margin-bottom:8px}
.checks li{display:flex;align-items:flex-start;gap:12px}
.checks .ico{color:var(--accent);margin-top:4px}
.price-card--hot{border-color:var(--accent);box-shadow:var(--glow);transform:scale(1.045);z-index:1;background:linear-gradient(180deg,rgba(252,121,26,.13),rgba(155,77,255,.05) 60%,rgba(255,255,255,.02))}
.price-card--hot .price-card__media{height:170px}
.ribbon{position:absolute;right:18px;top:18px;z-index:3;padding:7px 12px;border-radius:8px;background:var(--accent);font:800 10px/1 var(--f-head);letter-spacing:.14em;text-transform:uppercase;box-shadow:0 8px 20px -6px rgba(252,121,26,.9)}

/* ---------- Gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:16px;grid-auto-flow:dense}
.gallery--sm{grid-auto-rows:150px;grid-template-columns:repeat(3,1fr)}
.gitem{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);cursor:zoom-in;transition:transform .5s var(--ease),box-shadow .5s,border-color .5s;width:100%;height:100%;text-align:left}
.gitem.tall{grid-row:span 2}.gitem.wide{grid-column:span 2}
.gitem span{position:absolute;left:16px;bottom:14px;right:16px;font:700 13px/1.3 var(--f-head);opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s;text-shadow:0 2px 10px #000}
.gitem:hover{transform:scale(1.025);border-color:rgba(252,121,26,.6);box-shadow:var(--glow);z-index:1}
.gitem:hover span{opacity:1;transform:none}

/* ---------- Testimonials / sponsors / FAQ / CTA ---------- */
.quote{padding:32px;display:flex;flex-direction:column;gap:22px}
.stars{display:flex;gap:4px;color:var(--accent)}
.stars .ico{fill:currentColor;width:16px;height:16px}
.quote blockquote{font-size:17px;line-height:1.7;color:#e2e2ea;flex:1}
.quote figcaption{display:flex;align-items:center;gap:14px}
.quote figcaption b{display:block;font-family:var(--f-head);font-size:15px}
.quote figcaption small{color:var(--dim);font-size:13px}
.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex:none;font:800 14px/1 var(--f-head);background:linear-gradient(135deg,var(--accent),var(--purple));box-shadow:0 0 0 2px var(--bg),0 0 0 3px rgba(252,121,26,.5)}
.avatar--lg{width:58px;height:58px;font-size:18px}
.sponsors{overflow:hidden;margin-top:26px;-webkit-mask:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent);mask:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent)}
.sponsors__track{display:flex;gap:80px;width:max-content;animation:marquee 30s linear infinite}
.sponsors__track span{font:800 24px/1 var(--f-head);letter-spacing:.04em;color:#5b5b68;white-space:nowrap;transition:color .3s}
.sponsors__track span:hover{color:#fff}
.acc-list{display:grid;gap:14px}
.acc{border:1px solid var(--line);border-radius:var(--r-sm);background:rgba(255,255,255,.03);transition:border-color .3s,background .3s}
.acc[open]{border-color:rgba(252,121,26,.5);background:rgba(252,121,26,.05)}
.acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;font:700 17px/1.35 var(--f-head)}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"";flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--line2);background:linear-gradient(#fff,#fff) center/12px 2px no-repeat,linear-gradient(#fff,#fff) center/2px 12px no-repeat;transition:transform .35s var(--ease),background-color .3s,border-color .3s}
.acc[open] summary::after{transform:rotate(135deg);background-color:var(--accent);border-color:var(--accent)}
.acc p{padding:0 24px 24px;color:var(--muted);max-width:70ch}
.cta-band{padding:150px 0 190px;text-align:center}
.cta-band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(var(--bg),rgba(5,5,5,.35) 40%,rgba(5,5,5,.2))}
.cta-band h2{font:400 clamp(44px,8vw,110px)/.95 var(--f-display);text-transform:uppercase;font-style:italic;margin-bottom:36px}
.cta-band h2 em{color:var(--accent);text-shadow:0 0 50px rgba(252,121,26,.7)}

/* ---------- Footer ---------- */
.ftr{background:var(--bg2);border-top:1px solid var(--line);padding:80px 0 0}
.ftr__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.5fr;gap:48px}
.ftr p{color:var(--muted);font-size:14px;margin-top:16px;max-width:30ch}
.ftr h4{font-size:14px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:20px}
.ftr li{margin-bottom:12px}
.ftr li a{color:var(--muted);font-size:14px;transition:color .25s,padding .25s}
.ftr li a:hover{color:var(--accent);padding-left:5px}
.socials{display:flex;gap:10px;margin-top:22px}
.socials a{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;border:1px solid var(--line2);transition:background .25s,border-color .25s,transform .25s}
.socials a:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-3px)}
.news{display:flex;gap:8px;margin-top:16px}
.news input{flex:1;min-width:0;height:48px;padding:0 16px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid var(--line2)}
.news input:focus{outline:0;border-color:var(--accent)}
.news .btn{width:48px;height:48px;padding:0}
.ftr__bottom{margin-top:64px;padding:24px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--dim)}

/* ---------- Inner page hero ---------- */
.page-hero{padding:calc(var(--hdr) + 54px) 0 34px;position:relative}
.page-hero h1{font-size:clamp(36px,5.4vw,64px);font-weight:800}
.page-hero p{color:#d9d9e3;margin-top:12px;font-size:17px}
.page-hero--tall{padding:calc(var(--hdr) + 90px) 0 150px;text-align:center}
.page-hero--tall::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(5,5,5,.55),rgba(5,5,5,.25) 50%,var(--bg))}
.page-hero--tall .crumbs{justify-content:center}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--muted);margin-bottom:16px}
.crumbs a:hover{color:var(--accent)}
.crumbs a::after{content:"›";margin-left:8px;color:var(--dim)}
.crumbs span{color:var(--accent)}
form.search{display:flex;align-items:center;gap:12px;height:62px;padding:0 22px;border-radius:18px;max-width:580px;margin:30px auto 0;transition:border-color .3s,box-shadow .3s}
form.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px rgba(252,121,26,.18)}
form.search input{flex:1;min-width:0;background:none;border:0;outline:0;font-size:16px}
form.search input::placeholder{color:#b9b9c4}
form.search .ico{color:var(--accent);width:20px;height:20px}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:-104px;position:relative;z-index:2}
.chips{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding:4px}
.chips::-webkit-scrollbar{display:none}
.chips--center{justify-content:center;margin-bottom:34px;flex-wrap:wrap}
.chip{height:42px;padding:0 20px;border-radius:12px;border:1px solid var(--line2);background:rgba(5,5,5,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font:700 13px/1 var(--f-head);white-space:nowrap;transition:background .3s,border-color .3s,box-shadow .3s}
.chip:hover{border-color:rgba(255,255,255,.4)}
.chip.is-active{background:var(--accent);border-color:var(--accent);box-shadow:0 8px 24px -8px rgba(252,121,26,.8)}
.sort{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.sort select{height:42px;width:auto}
.result-count{color:var(--muted);font-size:14px;margin:54px 0 20px}

/* ---------- Event details ---------- */
.banner{min-height:68vh;display:flex;align-items:flex-end;padding:calc(var(--hdr) + 40px) 0 60px}
.banner::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,var(--bg) 4%,rgba(5,5,5,.25) 60%,rgba(5,5,5,.5))}
.banner h1{font:400 clamp(52px,9vw,128px)/.9 var(--f-display);text-transform:uppercase;font-style:italic;margin:16px 0 4px}
.back{display:flex;width:max-content;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#d5d5df;margin-bottom:26px}
.back .ico{transform:rotate(180deg)}
.back:hover{color:var(--accent)}
.details{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:48px;align-items:start}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:38px 0 48px}
.stat{padding:22px;border-radius:var(--r-sm);background:rgba(255,255,255,.035);border:1px solid var(--line);display:flex;gap:14px;align-items:center}
.stat .ico{width:28px;height:28px;color:var(--accent)}
.stat b{display:block;font:800 22px/1 var(--f-head)}
.stat span{font-size:13px;color:var(--muted)}
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:34px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{position:relative;padding:16px 18px;font:700 14px/1 var(--f-head);color:var(--muted);white-space:nowrap;transition:color .25s}
.tab:hover{color:#fff}
.tab.is-active{color:var(--accent)}
.tab.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);box-shadow:0 0 14px var(--accent)}
.tab-panel{display:none;animation:fadeUp .5s var(--ease)}
.tab-panel.is-active{display:block}
.tab-panel>.h3{margin-bottom:24px}
.tab-panel .seg{margin:0 0 26px}
.lineup{gap:16px}
.agenda{display:grid;gap:12px}
.agenda li{display:grid;grid-template-columns:110px 1fr;gap:20px;align-items:center;padding:18px 22px;border-radius:var(--r-sm);border:1px solid var(--line);background:rgba(255,255,255,.03);transition:border-color .3s,transform .3s}
.agenda li:hover{border-color:rgba(252,121,26,.5);transform:translateX(6px)}
.agenda time{font:800 14px/1 var(--f-head);color:var(--accent)}
.agenda b{font-family:var(--f-head);display:block}
.agenda span{font-size:14px;color:var(--muted)}
.venue{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.map{position:relative;min-height:260px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);
  background:linear-gradient(115deg,transparent 46%,rgba(252,121,26,.35) 46% 47.2%,transparent 47.2%),linear-gradient(20deg,transparent 60%,rgba(155,77,255,.3) 60% 61%,transparent 61%),linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px) 0 0/100% 38px,linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px) 0 0/38px 100%,radial-gradient(60% 60% at 50% 50%,#17171f,#0b0b10)}
.map__pin{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px rgba(252,121,26,.25),0 0 30px var(--accent)}
.map__pin::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--accent);animation:ping 2s infinite}
.venue__info h3{font-size:22px;margin-bottom:18px}
.info-list{display:grid;gap:18px}
.info-list li{display:flex;gap:14px}
.info-list .ico{color:var(--accent);margin-top:4px;width:20px;height:20px}
.info-list b{display:block;font-family:var(--f-head);font-size:15px}
.info-list span{font-size:14px;color:var(--muted)}
.details__side{position:sticky;top:96px}
.buybox{padding:30px;border-color:rgba(252,121,26,.4);box-shadow:var(--glow)}
.buybox__from{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.buybox__price{font:800 44px/1.1 var(--f-head);color:var(--accent);letter-spacing:-.03em}
.buybox__list{margin:22px 0;display:grid;gap:10px}
.buybox__list a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;border:1px solid var(--line);font-size:14px;font-weight:600;transition:border-color .25s,background .25s}
.buybox__list a:hover{border-color:var(--accent);background:rgba(252,121,26,.08)}
.buybox__list b{color:var(--accent);font-family:var(--f-head)}
.secure-note{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:var(--dim);margin-top:16px}
.secure-note .ico{color:var(--ok)}
.sticky-cta{display:none}

/* ---------- Forms ---------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{display:grid;gap:8px;align-content:start}
.field--full{grid-column:1/-1}
.field label{font:700 13px/1 var(--f-head);color:#d9d9e2}
.field label em{color:var(--accent);font-style:normal}
input[type=text],input[type=email],input[type=tel],input[type=search],select,textarea{width:100%;height:54px;padding:0 16px;border-radius:var(--r-sm);background:rgba(255,255,255,.045);border:1px solid var(--line2);transition:border-color .25s,box-shadow .25s,background .25s}
textarea{height:auto;padding:14px 16px;resize:vertical;line-height:1.6}
select{appearance:none;-webkit-appearance:none;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}
select option{background:#15151a;color:#fff}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px rgba(252,121,26,.16);background-color:rgba(255,255,255,.07)}
form.search input{height:auto;padding:0;border:0;background:none;border-radius:0}
.field input::placeholder,.field textarea::placeholder{color:var(--dim)}
.err{display:none;color:var(--danger);font-size:12px;font-weight:600}
.field.invalid input,.field.invalid textarea{border-color:var(--danger)}
.field.invalid .err{display:block}

/* ---------- Booking ---------- */
.stepper{display:flex;margin-bottom:44px;counter-reset:s}
.stepper li{flex:1;display:flex;align-items:center;gap:12px;color:var(--dim);font:700 13px/1 var(--f-head);position:relative}
.stepper li:not(:last-child)::after{content:"";flex:1;height:2px;margin-right:12px;border-radius:2px;background:var(--line2);transition:background .4s}
.stepper span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--line2);flex:none;transition:all .4s var(--ease)}
.stepper li.is-active{color:#fff}
.stepper li.is-active span{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 6px rgba(252,121,26,.18),0 0 26px rgba(252,121,26,.7)}
.stepper li.is-done{color:#fff}
.stepper li.is-done span{border-color:var(--accent);color:var(--accent)}
.stepper li.is-done::after{background:var(--accent)}
.split{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:36px;align-items:start}
.split__side{position:sticky;top:96px}
.split__main{display:grid;gap:22px;min-width:0}
.step-panel{display:none;animation:fadeUp .5s var(--ease)}
.step-panel.is-active{display:block}
.step-panel .muted{margin-bottom:22px}
.options{display:grid;gap:14px}
.opt{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:22px 24px;border-radius:var(--r);border:1px solid var(--line2);background:rgba(255,255,255,.03);text-align:left;width:100%;transition:border-color .3s,background .3s,box-shadow .3s,transform .3s var(--ease)}
.opt:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.35)}
.opt__check{width:26px;height:26px;border-radius:8px;border:2px solid var(--line2);display:grid;place-items:center;transition:all .3s}
.opt__check .ico{opacity:0;width:14px;height:14px;stroke-width:3.5}
.opt h3{font-size:18px}
.opt p{font-size:13px;color:var(--muted);margin-top:6px}
.opt b{font:800 22px/1 var(--f-head);color:var(--accent)}
.opt.is-on{border-color:var(--accent);background:rgba(252,121,26,.08);box-shadow:var(--glow)}
.opt.is-on .opt__check{background:var(--accent);border-color:var(--accent)}
.opt.is-on .opt__check .ico{opacity:1}
.qty-list{display:grid;gap:14px}
.qty-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 24px;border-radius:var(--r);border:1px solid var(--line2);background:rgba(255,255,255,.03)}
.qty-row h3{font-size:18px}
.qty-row p{font-size:14px;color:var(--accent);font-weight:700;margin-top:4px}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line2);border-radius:12px;overflow:hidden;background:rgba(5,5,5,.5)}
.qty button{width:42px;height:42px;display:grid;place-items:center;transition:background .2s}
.qty button:hover{background:var(--accent)}
.qty output{width:44px;text-align:center;font:800 16px/1 var(--f-head);font-variant-numeric:tabular-nums}
.review-block{padding:24px;border-radius:var(--r);border:1px solid var(--line);background:rgba(255,255,255,.03);margin-bottom:14px}
.review-block header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.review-block header h3{font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.review-block header button{color:var(--accent);font-weight:700;font-size:13px}
.review-block dl{display:grid;grid-template-columns:auto 1fr;gap:8px 24px;font-size:15px}
.review-block dt{color:var(--muted)}
.review-block dd{font-weight:600;text-align:right}
.ready{padding:54px 34px;text-align:center}
.ready__icon{width:76px;height:76px;margin:0 auto 22px;border-radius:50%;display:grid;place-items:center;background:rgba(252,121,26,.14);color:var(--accent);box-shadow:0 0 50px rgba(252,121,26,.4)}
.ready__icon .ico{width:30px;height:30px}
.ready__actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:10px}
.book-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:10px;padding-top:24px;border-top:1px solid var(--line)}
.book-actions__total{display:none}

.summary{padding:28px;display:grid;gap:16px}
.summary .h4{margin:0}
.sum-item{display:grid;grid-template-columns:56px 1fr auto;gap:14px;align-items:center}
.sum-item .scene{width:56px;height:56px;border-radius:12px;--crowd:60px}
.sum-item b{font-family:var(--f-head);font-size:14px;display:block}
.sum-item small{color:var(--muted);font-size:12px}
.sum-item strong{font-family:var(--f-head);font-size:14px}
.sum-rows{display:grid;gap:10px;padding-top:16px;border-top:1px solid var(--line);font-size:15px}
.sum-row{display:flex;justify-content:space-between;gap:12px;color:var(--muted)}
.sum-row.ok{color:var(--ok)}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:16px;border-top:1px dashed var(--line2);font:800 16px/1 var(--f-head)}
.sum-total b{font-size:30px;color:var(--accent);letter-spacing:-.02em}
.sum-event{display:flex;gap:14px;align-items:center}
.sum-event .scene{width:72px;height:72px;border-radius:14px;flex:none;--crowd:80px}
.sum-event b{font-family:var(--f-head);display:block}
.sum-event small{color:var(--muted)}

/* ---------- Cart ---------- */
.cart{overflow:hidden}
.cart__head,.cart-row{display:grid;grid-template-columns:minmax(0,2.4fr) 1fr 1.2fr 1fr 40px;gap:16px;align-items:center;padding:20px 26px}
.cart__head{font:700 12px/1 var(--f-head);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--line)}
.cart-row{border-bottom:1px solid var(--line);transition:background .3s}
.cart-row:last-child{border:0}
.cart-row:hover{background:rgba(255,255,255,.025)}
.cart-row__item{display:flex;gap:16px;align-items:center;min-width:0}
.cart-row__item .scene{width:76px;height:76px;border-radius:14px;flex:none;--crowd:90px}
.cart-row__item b{font-family:var(--f-head);display:block}
.cart-row__item small{color:var(--muted);font-size:13px}
.cart-row__price{color:var(--muted);font-weight:600}
.cart-row__total{font:800 17px/1 var(--f-head)}
.rm{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--dim);transition:background .25s,color .25s}
.rm:hover{background:rgba(255,95,95,.15);color:var(--danger)}
.coupon{display:flex;align-items:center;gap:12px;padding:10px 10px 10px 20px;max-width:440px}
.coupon .ico{color:var(--accent)}
.coupon input{flex:1;min-width:0;height:40px;background:none;border:0;padding:0;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.coupon input:focus{outline:0;box-shadow:none}
.news .field input{height:48px;border-radius:12px}
.coupon input::placeholder{text-transform:none;letter-spacing:0;font-weight:400;color:var(--dim)}
.empty{padding:80px 30px;text-align:center;display:grid;justify-items:center;gap:12px}
.empty__icon{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:rgba(252,121,26,.12);color:var(--accent);margin-bottom:8px}
.empty__icon .ico{width:34px;height:34px}
.empty .btn{margin-top:12px}

/* ---------- Checkout ---------- */
.panel{padding:30px}
.num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--accent);font-size:13px;flex:none}
.pay-group{font:700 11px/1 var(--f-head);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin:22px 0 12px}
.pay-group:first-of-type{margin-top:0}
.pay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pay{position:relative;display:flex;align-items:center;gap:12px;padding:16px;border-radius:var(--r-sm);border:1px solid var(--line2);background:rgba(255,255,255,.03);cursor:pointer;transition:border-color .3s,background .3s,box-shadow .3s,transform .3s var(--ease)}
.pay:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.35)}
.pay input{position:absolute;opacity:0;inset:0}
.pay__mark{width:44px;height:30px;border-radius:7px;display:grid;place-items:center;background:var(--c);font:800 11px/1 var(--f-head);letter-spacing:.02em;flex:none}
.pay__name{font:700 14px/1 var(--f-head);flex:1}
.pay__check{width:18px;height:18px;border-radius:50%;border:2px solid var(--line2);transition:all .25s}
.pay:has(input:checked){border-color:var(--accent);background:rgba(252,121,26,.08);box-shadow:0 0 0 1px var(--accent),0 16px 40px -20px rgba(252,121,26,.7)}
.pay:has(input:checked) .pay__check{border-color:var(--accent);background:radial-gradient(var(--accent) 45%,transparent 50%)}
.pay:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}
.pay-fields{margin-top:24px;padding-top:24px;border-top:1px solid var(--line);animation:fadeUp .4s var(--ease)}
.pay-fields .muted.small{margin-top:10px}
.terms{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:14px;color:var(--muted)}
.terms input{width:20px;height:20px;accent-color:var(--accent)}
.terms a{color:var(--accent);font-weight:700}
.terms .err{flex-basis:100%}
.secure-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:99px;font-size:13px!important;font-weight:700;color:var(--ok)!important;background:rgba(46,212,122,.1);border:1px solid rgba(46,212,122,.3)}

/* ---------- Thank you ---------- */
.thanks{position:relative;min-height:100svh;padding:calc(var(--hdr) + 60px) 0 110px;text-align:center;overflow:hidden}
#confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.thanks__glow{position:absolute;left:50%;top:6%;width:760px;height:760px;margin-left:-380px;border-radius:50%;background:radial-gradient(rgba(252,121,26,.28),rgba(155,77,255,.14) 45%,transparent 70%);filter:blur(20px);pointer-events:none}
.thanks__inner{position:relative}
.success{width:112px;height:112px;margin:0 auto 28px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#5ff0a2,#16b862);box-shadow:0 0 0 12px rgba(46,212,122,.12),0 0 80px rgba(46,212,122,.6);animation:pop .7s var(--ease) both}
.success svg{width:100%;height:100%}
.success circle{fill:none}
.success path{fill:none;stroke:#fff;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:70;stroke-dashoffset:70;animation:draw .6s .45s var(--ease) forwards}
.thanks h1{font:400 clamp(56px,10vw,110px)/1 var(--f-display);text-transform:uppercase;font-style:italic}
.thanks .lead{margin:12px auto 34px}
.receipt{padding:10px 30px;text-align:left;max-width:560px;margin:0 auto}
.receipt div{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);font-size:15px}
.receipt div:last-child{border:0}
.receipt dt{color:var(--muted)}
.receipt dd{font-weight:700;text-align:right}
.receipt .hl dd{color:var(--accent);font-family:var(--f-head);font-size:18px}
.thanks__actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px}

/* ---------- Dashboard ---------- */
.dash{display:grid;grid-template-columns:280px minmax(0,1fr);gap:32px;align-items:start}
.dash__side{padding:24px;position:sticky;top:96px}
.dash__user{display:flex;gap:14px;align-items:center;padding-bottom:22px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.dash__user b{font-family:var(--f-head);display:block}
.dash__user small{color:var(--muted);font-size:13px;word-break:break-all}
.dash__nav{display:grid;gap:4px}
.dash__nav button,.dash__nav a{display:flex;align-items:center;gap:12px;height:48px;padding:0 14px;border-radius:12px;font:600 14px/1 var(--f-head);color:var(--muted);text-align:left;transition:background .25s,color .25s}
.dash__nav button:hover,.dash__nav a:hover{background:rgba(255,255,255,.05);color:#fff}
.dash__nav .is-active{background:rgba(252,121,26,.12);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.pill-count{margin-left:auto;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:var(--accent);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center}
.pill-count:empty{display:none}
.dash-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:34px}
.dstat{padding:22px 24px;border-radius:var(--r);border:1px solid var(--line);background:linear-gradient(135deg,rgba(252,121,26,.1),rgba(155,77,255,.06))}
.dstat b{font:800 30px/1 var(--f-head);display:block}
.dstat span{font-size:13px;color:var(--muted)}
.dash-panel{display:none;animation:fadeUp .45s var(--ease)}
.dash-panel.is-active{display:block}
.dash-panel>.h3{margin-bottom:22px}
.ticket-list,.dl-list,.notif-list{display:grid;gap:16px}
.tcard{display:grid;grid-template-columns:200px 1fr auto;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--surface);transition:border-color .4s,box-shadow .4s,transform .4s var(--ease)}
.tcard:hover{border-color:rgba(252,121,26,.55);box-shadow:var(--glow);transform:translateY(-4px)}
.tcard .scene{min-height:150px}
.tcard__body{padding:22px 24px;display:grid;gap:10px;align-content:center}
.tcard__body h3{font-size:20px;text-transform:uppercase}
.tcard__actions{padding:22px 24px;display:grid;gap:10px;align-content:center;border-left:1px dashed var(--line2)}
.status{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:99px;font:700 11px/1 var(--f-head);background:rgba(46,212,122,.12);color:var(--ok);width:max-content}
.status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.status--sample{background:rgba(155,77,255,.15);color:#c4a0ff}
.table-wrap{overflow-x:auto}
.table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.table th{text-align:left;padding:18px 22px;font:700 11px/1 var(--f-head);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--line)}
.table td{padding:18px 22px;border-bottom:1px solid var(--line)}
.table tr:last-child td{border:0}
.table td b{font-family:var(--f-head)}
.dl{display:flex;align-items:center;gap:16px;padding:18px 22px;border-radius:var(--r-sm);border:1px solid var(--line);background:rgba(255,255,255,.03)}
.dl>.ico{width:24px;height:24px;color:var(--accent)}
.dl div{flex:1;min-width:0}
.dl b{font-family:var(--f-head);display:block}
.dl small{color:var(--muted)}
.notif{display:flex;gap:14px;padding:18px 22px;border-radius:var(--r-sm);border:1px solid var(--line);background:rgba(255,255,255,.03)}
.notif.unread{border-color:rgba(252,121,26,.4);background:rgba(252,121,26,.06)}
.notif>.ico{color:var(--accent);margin-top:4px;width:20px;height:20px}
.notif b{font-family:var(--f-head);display:block;font-size:15px}
.notif p{font-size:14px;color:var(--muted)}
.notif time{font-size:12px;color:var(--dim)}
.prefs{margin-top:22px;display:grid;gap:16px}
.switch{display:flex;align-items:center;gap:14px;font-size:15px;cursor:pointer}
.switch input{position:absolute;opacity:0}
.switch span{width:46px;height:26px;border-radius:99px;background:rgba(255,255,255,.14);position:relative;flex:none;transition:background .3s}
.switch span::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .3s var(--ease)}
.switch input:checked+span{background:var(--accent)}
.switch input:checked+span::after{transform:translateX(20px)}
.switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:3px}

/* ---------- Contact / FAQ extras ---------- */
.contact-cards{margin-top:-120px;position:relative;z-index:2;margin-bottom:40px}
.contact-card{padding:30px;display:grid;gap:6px;background:linear-gradient(180deg,rgba(22,22,27,.92),rgba(12,12,15,.92));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.contact-card__icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:rgba(252,121,26,.14);color:var(--accent);margin-bottom:10px}
.contact-card__icon .ico{width:22px;height:22px}
.contact-card h3{font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.contact-card p{font:700 19px/1.3 var(--f-head)}
.contact-card small{color:var(--dim);font-size:13px}
.contact-split .panel .form-grid{margin:22px 0 26px}
.venue-card{overflow:hidden}
.venue-card .map{border:0;border-radius:0;min-height:220px}
.venue-card__body{padding:26px;display:grid;gap:14px}
.venue-card__body .h4{margin:0}
.help{margin-top:44px;padding:30px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;border-color:rgba(252,121,26,.35)}
.help .h4{margin-bottom:4px}

/* ---------- Modal / e-ticket / toast ---------- */
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:rgba(0,0,0,.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;transition:opacity .3s;overflow-y:auto}
.modal.open{opacity:1}
.modal__box{position:relative;width:min(100%,820px);transform:translateY(20px) scale(.97);transition:transform .4s var(--ease)}
.modal.open .modal__box{transform:none}
.modal__x{position:absolute;right:-6px;top:-50px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);border:1px solid var(--line2)}
.modal__x:hover{background:var(--accent)}
.modal__bar{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px}
.lb{border-radius:var(--r);aspect-ratio:16/10;border:1px solid var(--line2);--crowd:520px}
.lb__cap{text-align:center;margin-top:16px;font:700 16px/1 var(--f-head)}
.trailer{border-radius:var(--r);overflow:hidden;border:1px solid var(--line2);--crowd:520px;aspect-ratio:16/9;display:grid;place-items:center;text-align:center;padding:30px}
.trailer::after{content:"";position:absolute;inset:0;background:rgba(5,5,5,.55);z-index:-1}
.trailer h3{font:400 clamp(34px,6vw,64px)/1 var(--f-display);font-style:italic;text-transform:uppercase}
.trailer p{color:#dedee8;margin:10px 0 22px}
.trailer .news{max-width:400px;margin-inline:auto}
.trailer .news .btn{width:auto;padding:0 20px}

.eticket{display:grid;grid-template-columns:1fr 230px;border-radius:22px;overflow:hidden;background:#0d0d11;border:1px solid rgba(252,121,26,.5);box-shadow:var(--glow);-webkit-print-color-adjust:exact;print-color-adjust:exact}
.eticket__head{padding:26px 28px;display:flex;align-items:center;gap:16px;--crowd:260px;min-height:128px}
.eticket__head::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.75),rgba(5,5,5,.2));z-index:-1}
.eticket__head svg{width:44px;height:44px;fill:var(--accent);flex:none}
.eticket__head strong{display:block;font:400 34px/1 var(--f-display);font-style:italic;text-transform:uppercase}
.eticket__head span{font:700 11px/1 var(--f-head);letter-spacing:.3em;color:#e4e4ec;display:block;margin-top:8px}
.eticket__grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px;padding:26px 28px}
.eticket__grid dt{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-weight:700}
.eticket__grid dd{font:700 16px/1.3 var(--f-head);margin-top:4px;word-break:break-word}
.eticket__grid .full{grid-column:1/-1}
.eticket__stub{position:relative;background:#fff;color:#0b0b0b;display:grid;place-items:center;align-content:center;gap:12px;padding:26px 20px;text-align:center;border-left:2px dashed #b9b9c2}
.eticket__stub::before,.eticket__stub::after{content:"";position:absolute;left:-13px;width:24px;height:24px;border-radius:50%;background:#000}
.eticket__stub::before{top:-12px}.eticket__stub::after{bottom:-12px}
.qr{width:140px;height:140px;display:grid;place-items:center}
.qr img,.qr canvas{width:140px;height:140px}
.eticket__stub small{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#6a6a74;font-weight:700}
.eticket__stub b{font:800 15px/1 var(--f-head);letter-spacing:.02em}

.toast-wrap{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);z-index:120;display:grid;gap:10px;justify-items:center;pointer-events:none;width:max-content;max-width:calc(100% - 32px)}
.toast{display:flex;align-items:center;gap:10px;padding:14px 20px;border-radius:14px;background:rgba(20,20,25,.95);border:1px solid var(--line2);box-shadow:var(--shadow);font-weight:600;font-size:14px;animation:toastIn .4s var(--ease)}
.toast .ico{color:var(--ok)}
.toast.bad .ico{color:var(--danger)}

/* ---------- Motion ---------- */
.js .reveal{opacity:0;transform:translateY(32px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}
.js .reveal.in{opacity:1;transform:none}
.js .price-card--hot.reveal.in{transform:scale(1.045)}
@keyframes eq{from{transform:scaleY(.45)}to{transform:scaleY(1)}}
@keyframes sweep{from{transform:rotate(-26deg)}to{transform:rotate(26deg)}}
@keyframes pulse{70%{box-shadow:0 0 0 12px rgba(252,121,26,0)}100%{box-shadow:0 0 0 0 rgba(252,121,26,0)}}
@keyframes ping{to{transform:scale(2.6);opacity:0}}
@keyframes wheel{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(16px)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pop{from{transform:scale(0)}60%{transform:scale(1.12)}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes toastIn{from{opacity:0;transform:translateY(20px)}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
}

/* ==========================================================================
   TABLET  (≤ 1100px)
   ========================================================================== */
@media (max-width:1100px){
  .nav,.hdr__actions .btn{display:none}
  .burger{display:grid}
  .hdr__actions{margin-left:auto}
  .section{padding:92px 0}
  .grid--4{grid-template-columns:repeat(2,1fr)}
  .grid--3{grid-template-columns:repeat(2,1fr)}
  .pricing{grid-template-columns:1fr;max-width:560px;margin-inline:auto}
  .price-card{flex-direction:row}
  .price-card__media{width:170px;height:auto!important;flex:none;-webkit-mask:linear-gradient(90deg,#000 55%,transparent);mask:linear-gradient(90deg,#000 55%,transparent)}
  .price-card__body{padding:30px 30px 30px 6px}
  .price-card--hot,.js .price-card--hot.reveal.in{transform:none}
  .timeline{grid-template-columns:repeat(2,1fr);row-gap:54px}
  .timeline::before{display:none}
  .tl::before{box-shadow:0 0 0 5px rgba(252,121,26,.15)}
  .gallery{grid-template-columns:repeat(3,1fr);grid-auto-rows:180px}
  .ftr__grid{grid-template-columns:1fr 1fr}
  .details,.split{grid-template-columns:minmax(0,1fr)}
  .details__side{display:none}
  .sticky-cta{display:flex;position:fixed;left:16px;right:16px;bottom:16px;z-index:50;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px 14px 22px;border-radius:20px;background:rgba(16,16,20,.9);border:1px solid rgba(252,121,26,.5);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--glow)}
  .sticky-cta small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
  .sticky-cta b{font:800 22px/1 var(--f-head);color:var(--accent)}
  body[data-page="details"] .ftr{padding-bottom:90px}
  .split__side{position:static}
  body[data-page="booking"] .split__side{order:-1}
  body[data-page="booking"] .summary .sum-rows,body[data-page="booking"] .summary .secure-note{display:none}
  .book-actions{position:sticky;bottom:16px;z-index:40;padding:14px;border-radius:20px;background:rgba(16,16,20,.92);border:1px solid var(--line2);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:var(--shadow)}
  .book-actions__total{display:block;text-align:center}
  .book-actions__total small{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
  .book-actions__total b{font:800 18px/1 var(--f-head);color:var(--accent)}
  .dash{grid-template-columns:minmax(0,1fr)}
  .dash__side,.dash__main,.details__main{min-width:0}
  .dash__side{position:static;padding:18px}
  .dash__user{border:0;margin:0;padding-bottom:14px}
  .dash__nav{display:flex;overflow-x:auto;gap:8px;scrollbar-width:none;margin:0 -18px;padding:0 18px}
  .dash__nav::-webkit-scrollbar{display:none}
  .dash__nav button,.dash__nav a{flex:none;height:42px;border:1px solid var(--line);white-space:nowrap}
  .dash__nav .is-active{box-shadow:none;border-color:var(--accent)}
  .ecard--row .ecard__media{width:34%}
  .venue{grid-template-columns:1fr}
}

/* ==========================================================================
   MOBILE  (≤ 720px) — purpose-built layouts, not stacked desktop
   ========================================================================== */
@media (max-width:720px){
  :root{--hdr:64px;--r:18px}
  body{font-size:15px;padding-bottom:calc(74px + env(safe-area-inset-bottom))}
  .container,.container--narrow{width:calc(100% - 36px)}
  .section{padding:68px 0}
  .section--tight{padding:48px 0}
  .section--flush{padding:24px 0 70px}
  .section-head{margin-bottom:32px;text-align:left}
  .section-head--row{align-items:flex-end}
  .section-head p:not(.eyebrow){font-size:15px}
  .hdr__actions .icon-btn:not(.burger):not([data-cart]){display:none}

  /* bottom tab bar */
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;inset:auto 0 0;z-index:65;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:rgba(8,8,10,.9);backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);border-top:1px solid var(--line)}
  .tabbar a{position:relative;display:grid;justify-items:center;gap:5px;padding:6px 0;font:700 10px/1 var(--f-head);color:var(--dim)}
  .tabbar .ico{width:22px;height:22px}
  .tabbar a.is-active{color:var(--accent)}
  .tabbar a.tabbar__main{color:#fff}
  .tabbar a.tabbar__main i{width:52px;height:52px;margin-top:-28px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent-hi),var(--accent-lo));box-shadow:0 10px 30px -6px rgba(252,121,26,.9),0 0 0 5px var(--bg)}
  .tabbar .badge-count{top:0;right:calc(50% - 22px)}
  .toast-wrap{bottom:calc(92px + env(safe-area-inset-bottom))}

  /* hero */
  .hero{min-height:calc(100svh - 74px);padding:calc(var(--hdr) + 20px) 0 46px;--crowd:340px!important}
  .hero__shade{background:linear-gradient(to top,var(--bg) 6%,rgba(5,5,5,.55) 50%,rgba(5,5,5,.2))}
  .hero__inner{text-align:center}
  .hero__title{align-items:center;font-size:clamp(56px,19vw,104px)}
  .hero__title em{margin:-.08em 0 0 1.2em}
  .hero__tag{letter-spacing:.2em;margin-top:18px}
  .hero__pills{display:none}
  .hero__meta{justify-content:center;flex-direction:column;align-items:center;gap:8px;font-size:15px;margin-top:18px}
  .countdown{gap:8px;justify-content:center;margin-top:24px}
  .countdown__box{flex:1;width:auto;max-width:86px;padding:14px 0 12px;border-radius:14px}
  .countdown__box b{font-size:30px}
  .countdown__box span{font-size:9px;letter-spacing:.1em}
  .hero__cta{flex-direction:column;margin-top:26px}
  .hero__cta .btn{width:100%}
  .hero__scroll{display:none}
  .ticker{padding:14px 0}
  .ticker__track span{font-size:20px}

  /* swipe carousels */
  .snap{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-18px;padding:6px 18px 22px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .snap::-webkit-scrollbar{display:none}
  .snap>*{flex:none;width:78%;scroll-snap-align:center}
  #artistGrid.snap>*{width:62%}
  .pricing{max-width:none}
  .price-card{flex-direction:column}
  .price-card__media{width:auto;height:120px!important;-webkit-mask:linear-gradient(#000 55%,transparent);mask:linear-gradient(#000 55%,transparent)}
  .price-card__body{padding:4px 24px 26px}
  .acard__social{opacity:1;transform:none}
  .js .snap .reveal{opacity:1;transform:none}

  /* vertical timeline */
  .seg{margin:0 0 30px}
  .timeline{grid-template-columns:1fr;row-gap:14px;padding:0 0 0 34px}
  .timeline::before{display:block;left:10px;right:auto;top:8px;bottom:8px;width:2px;height:auto;background:linear-gradient(var(--accent),var(--purple),var(--pink))}
  .tl::before{left:-35px;top:22px}
  .tl::after{left:-27px;top:30px}
  .tl{padding:18px}

  .gallery,.gallery--sm{grid-template-columns:repeat(2,1fr);grid-auto-rows:130px;gap:10px}
  .gitem span{opacity:1;transform:none;font-size:11px}
  .sponsors__track{gap:44px}
  .sponsors__track span{font-size:18px}
  .acc summary{padding:18px;font-size:15px}
  .acc p{padding:0 18px 20px;font-size:14px}
  .cta-band{padding:90px 0 130px}
  .ftr{padding-top:54px}
  .ftr__grid{grid-template-columns:1fr 1fr;gap:34px 20px}
  .ftr__grid>:first-child,.ftr__grid>:last-child{grid-column:1/-1}
  .ftr__bottom{margin-top:40px;flex-direction:column;gap:6px}

  /* inner pages */
  .page-hero{padding:calc(var(--hdr) + 28px) 0 20px}
  .page-hero--tall{padding:calc(var(--hdr) + 44px) 0 110px;text-align:left}
  .page-hero--tall .crumbs{justify-content:flex-start}
  form.search{height:54px;margin-top:22px}
  .toolbar{margin-top:-84px}
  .toolbar .chips{margin-inline:-18px;padding-inline:18px;width:calc(100% + 36px)}
  .sort{width:100%;justify-content:space-between}
  .result-count{margin:26px 0 16px}
  .ecard--row{flex-direction:column}
  .ecard--row .ecard__media{width:100%;min-height:0;aspect-ratio:16/9}
  .ecard--row .ecard__body{flex-direction:column;align-items:stretch;padding:20px;gap:16px}
  .ecard--row .ecard__body h3{font-size:21px}
  .ecard--row .ecard__foot{flex-direction:row;align-items:center;justify-content:space-between;padding-top:16px;border-top:1px solid var(--line)}
  .ecard--row .price{text-align:left;font-size:20px}

  .banner{min-height:60vh;padding-bottom:30px;--crowd:340px!important}
  .banner .hero__meta{align-items:flex-start;justify-content:flex-start}
  .stats{grid-template-columns:1fr 1fr;gap:10px;margin:26px 0 34px}
  .stat{padding:16px;flex-direction:column;align-items:flex-start;gap:10px}
  .lineup.grid--4{grid-template-columns:repeat(2,1fr);gap:10px}
  .agenda li{grid-template-columns:1fr;gap:8px;padding:16px}
  .sticky-cta{bottom:calc(84px + env(safe-area-inset-bottom));left:12px;right:12px}
  body[data-page="details"] .ftr{padding-bottom:110px}

  /* booking */
  .stepper{margin-bottom:26px}
  .stepper b{display:none}
  .stepper li.is-active b{display:block;position:absolute;top:46px;left:0;white-space:nowrap;color:var(--accent)}
  .stepper li:last-child.is-active b{left:auto;right:0}
  .stepper li:last-child{flex:none}
  .stepper span{width:32px;height:32px}
  .stepper li:not(:last-child)::after{margin:0 8px 0 -4px}
  .split{gap:20px;margin-top:34px}
  .form-grid{grid-template-columns:1fr;gap:16px}
  .opt{grid-template-columns:auto 1fr;padding:18px;gap:14px}
  .opt b{grid-column:2}
  .qty-row{padding:18px}
  .book-actions{bottom:calc(84px + env(safe-area-inset-bottom));padding:10px}
  .book-actions .btn{height:46px;padding:0 18px}
  .summary{padding:20px}
  .panel{padding:22px 18px}
  .ready{padding:38px 20px}
  .ready__actions .btn{width:100%}

  /* cart becomes ticket cards */
  .cart{background:none;border:0;box-shadow:none;overflow:visible}
  .cart__head{display:none}
  #cartRows{display:grid;gap:12px}
  .cart-row{grid-template-columns:1fr auto;grid-template-areas:"item rm" "qty total";padding:16px;border:1px solid var(--line)!important;border-radius:var(--r);background:var(--surface);row-gap:16px}
  .cart-row__item{grid-area:item}
  .cart-row__item .scene{width:60px;height:60px}
  .cart-row__price{display:none}
  .cart-row .qty{grid-area:qty;width:max-content}
  .cart-row__total{grid-area:total;text-align:right;color:var(--accent)}
  .rm{grid-area:rm}
  .coupon{max-width:none}

  .pay-grid{grid-template-columns:1fr}
  .thanks{padding-top:calc(var(--hdr) + 30px);padding-bottom:60px}
  .success{width:92px;height:92px}
  .receipt{padding:6px 20px}
  .thanks__actions .btn{width:100%}

  .dash-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:24px}
  .dstat{padding:14px 12px;border-radius:14px}
  .dstat b{font-size:22px}
  .dstat span{font-size:11px}
  .tcard{grid-template-columns:1fr}
  .tcard .scene{min-height:110px}
  .tcard__actions{border-left:0;border-top:1px dashed var(--line2);grid-template-columns:1fr 1fr;padding:16px 20px}
  .dl{flex-wrap:wrap}
  .dl .btn{width:100%}

  .contact-cards{grid-template-columns:1fr;margin-top:-84px;gap:12px}
  .contact-card{padding:20px;grid-template-columns:auto 1fr;column-gap:16px;align-items:center}
  .contact-card__icon{grid-row:span 3;margin:0}
  .help{padding:22px}
  .help .btn{width:100%}

  .modal{padding:16px;align-items:end}
  .modal__x{right:0}
  .eticket{grid-template-columns:1fr}
  .eticket__stub{border-left:0;border-top:2px dashed #b9b9c2}
  .eticket__stub::before{top:-13px;left:-12px}
  .eticket__stub::after{top:-13px;bottom:auto;left:auto;right:-12px}
  .eticket__head strong{font-size:26px}
}

/* ==========================================================================
   PRINT — only the e-ticket
   ========================================================================== */
@media print{
  @page{margin:14mm}
  body{background:#fff;padding:0}
  body>*:not(.modal){display:none!important}
  .modal{position:static;display:block;padding:0;background:none;backdrop-filter:none;opacity:1}
  .modal__box{transform:none;width:100%}
  .modal__x,.modal__bar{display:none!important}
  .eticket{box-shadow:none;break-inside:avoid;grid-template-columns:1fr 230px}
  .eticket__stub::before,.eticket__stub::after{background:#fff}
}


/* ==========================================================================
   WordPress additions
   ========================================================================== */

/* Photo-backed scenes: the photo sits on top of the generated artwork, which
   stays as the fallback if the image cannot load. */
.scene.has-img::before,.portrait.has-img::before{background:linear-gradient(180deg,rgba(5,5,5,.1),rgba(5,5,5,.48)),var(--img) center/cover no-repeat}
.hero.has-img::before{background:linear-gradient(180deg,rgba(5,5,5,.62),rgba(5,5,5,.2) 26%,rgba(5,5,5,.3)),var(--img) center/cover no-repeat}
.cta-band.has-img::before,.page-hero.has-img::before,.banner.has-img::before{background:linear-gradient(rgba(5,5,5,.42),rgba(5,5,5,.42)),var(--img) center/cover no-repeat}
.portrait.has-img::before{background-position:center,center top}
.gitem img,.lb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.gitem::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(5,5,5,.75),transparent 50%);z-index:-1;opacity:0;transition:opacity .35s}
.gitem:hover::after{opacity:1}
.lb{aspect-ratio:3/2;max-height:72vh;margin-inline:auto}
.lb img{object-fit:contain;background:#050505}
.modal--lb .modal__box{width:min(100%,1100px)}

/* Admin bar */
.admin-bar .hdr{top:32px}
.admin-bar .mnav{top:32px}
@media (max-width:782px){.admin-bar .hdr,.admin-bar .mnav{top:46px}}
@media (max-width:600px){.admin-bar .hdr{top:0}.admin-bar .hdr:not(.is-stuck){top:46px}}

.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
.skip-link:focus{clip:auto;clip-path:none;height:auto;width:auto;left:12px;top:12px;z-index:999;padding:12px 18px;border-radius:12px;background:var(--accent);color:#fff;font-weight:700}
input[type=password],input[type=number],input[type=url]{width:100%;height:54px;padding:0 16px;border-radius:var(--r-sm);background:rgba(255,255,255,.045);border:1px solid var(--line2);color:inherit;font:inherit}
input[type=password]:focus,input[type=number]:focus,input[type=url]:focus,input[type=text]:focus,input[type=email]:focus,input[type=tel]:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px rgba(252,121,26,.16)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* Editor content (pages, posts, event descriptions) */
.entry-content{color:#d5d5de;font-size:17px;line-height:1.75}
.entry-content>*+*{margin-top:1.1em}
.entry-content h2,.entry-content h3,.entry-content h4{color:var(--text);margin-top:1.6em;line-height:1.25}
.entry-content h2{font-size:28px}.entry-content h3{font-size:22px}.entry-content h4{font-size:18px}
.entry-content a:not(.btn):not(.wp-block-button__link){color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.entry-content ul,.entry-content ol{padding-left:1.3em}
.entry-content ul{list-style:disc}.entry-content ol{list-style:decimal}
.entry-content li+li{margin-top:.4em}
.entry-content img,.entry-thumb img{max-width:100%;height:auto;border-radius:var(--r)}
.entry-content blockquote{border-left:3px solid var(--accent);padding:4px 0 4px 20px;color:var(--text);font-style:italic}
.entry-content pre,.entry-content code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9em;background:var(--surface2);border-radius:8px}
.entry-content code{padding:2px 6px}.entry-content pre{padding:16px;overflow:auto}
.entry-content table{width:100%;border-collapse:collapse}
.entry-content th,.entry-content td{padding:10px 12px;border:1px solid var(--line);text-align:left}
.entry-content .alignleft{float:left;margin:0 24px 16px 0}
.entry-content .alignright{float:right;margin:0 0 16px 24px}
.entry-content .aligncenter{display:block;margin-inline:auto}
.entry-content .wp-caption-text,.entry-content figcaption{font-size:13px;color:var(--muted);margin-top:8px}
.entry-thumb{margin-bottom:32px}
.lead.entry-content{font-size:18px;line-height:1.65;margin-bottom:44px}
.lead-first>p:first-child{font-size:21px;line-height:1.6;color:#fff}
.entry-content--wide{max-width:none}

/* Blog list */
.post-list{display:grid;gap:22px}
.post-item{overflow:hidden;display:flex;flex-direction:column}
.post-item__media img{width:100%;aspect-ratio:16/8;object-fit:cover;display:block}
.post-item__body{padding:26px}
.post-item__body h2{margin:8px 0 10px}
.post-item__body .link-arrow{margin-top:14px}
.pager{margin-top:34px}
.pager .nav-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.pager .page-numbers{min-width:42px;height:42px;padding:0 12px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line2);font-weight:700}
.pager .page-numbers.current{background:var(--accent);border-color:var(--accent)}
.comments{margin-top:56px;padding-top:36px;border-top:1px solid var(--line)}
.comments .comment-list{list-style:none;padding:0}
.comments .comment-body{padding:18px 0;border-bottom:1px solid var(--line)}
.comments .children{list-style:none;padding-left:28px}
.comments .avatar{border-radius:50%;float:left;margin-right:12px}
.comments input[type=submit]{height:48px;padding:0 24px;border-radius:99px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer;border:0}

/* ==========================================================================
   Project 21
   ========================================================================== */

.grid--2{grid-template-columns:repeat(2,1fr)}
.section-head--row>div{min-width:0}
.section-head h2{overflow-wrap:anywhere}

/* Header: logo, sub-menu, button */
.logo--img img{height:60px;width:auto;display:block;transition:height .4s;filter:drop-shadow(0 6px 18px rgba(0,0,0,.55))}
.hdr.is-stuck .logo--img img{height:50px}
.nav{align-items:center}
.nav__item{position:relative}
.nav__item>a{display:inline-flex;align-items:center;gap:6px}
.nav__item>a .ico{width:14px;height:14px;transition:transform .25s}
.nav__item:hover>a .ico,.nav__item:focus-within>a .ico{transform:rotate(180deg)}
.nav__sub{position:absolute;left:0;top:100%;min-width:210px;padding:8px;border-radius:14px;background:rgba(14,14,18,.96);border:1px solid var(--line2);box-shadow:var(--shadow);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);display:grid;gap:2px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s,transform .25s var(--ease),visibility .25s}
.nav__item:hover .nav__sub,.nav__item:focus-within .nav__sub{opacity:1;visibility:visible;transform:none}
.nav__sub a{display:block;padding:12px 14px;white-space:nowrap}
.nav__sub a.is-current{color:var(--accent);background:rgba(252,121,26,.1)}
.mnav__links{overflow-y:auto;flex:1;margin-bottom:20px}
.mnav a.mnav__link{font-size:clamp(30px,8vw,48px)}
.mnav a.mnav__link--sub{font:700 17px/1.2 var(--f-head);text-transform:none;letter-spacing:0;color:var(--muted);padding:6px 0 6px 18px;border-left:2px solid var(--line2);margin:2px 0 2px 4px}
.mnav .logo--img img{height:54px}

/* ---------- Home hero ---------- */
.hero{padding-bottom:150px;align-items:center}
.hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,410px);gap:clamp(28px,4vw,72px);align-items:center}
.hero__title{font-size:clamp(54px,7.2vw,120px);line-height:.9}
.hero__title span,.hero__title em{max-width:100%;overflow-wrap:anywhere}
.hero__title em{margin:.04em 0 0 .45em;transform:rotate(-3deg);transform-origin:left center}
.hero__lead{max-width:54ch;font-size:clamp(16px,1.25vw,19px);line-height:1.6;color:#e9e9f0;margin-top:26px}
.hero__meta li{max-width:100%}
.nextcard{position:relative;border-radius:26px;overflow:hidden;border:1px solid var(--line2);background:rgba(12,12,16,.66);backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);box-shadow:var(--shadow),0 0 80px -30px rgba(252,121,26,.7)}
.nextcard__media{display:block;aspect-ratio:16/9;--crowd:240px}
.nextcard__media .badge{position:absolute;left:14px;top:14px;background:var(--accent);border-color:var(--accent);color:#fff}
.nextcard__body{padding:22px 22px 24px;display:grid;gap:14px}
.nextcard h3{font:800 clamp(21px,1.7vw,26px)/1.15 var(--f-head);text-transform:uppercase}
.nextcard h3 a:hover{color:var(--accent)}
.nextcard .countdown{margin:2px 0 4px;gap:8px}
.nextcard .countdown__box{flex:1;width:auto;padding:12px 0 10px;border-radius:14px}
.nextcard .countdown__box b{font-size:30px}
.nextcard .countdown__box span{font-size:9px;letter-spacing:.12em;margin-top:6px}
.hstats{position:relative;z-index:3;margin-top:-78px}
.hstats__in{display:grid;grid-template-columns:repeat(4,1fr);border-radius:24px;border:1px solid var(--line2);background:rgba(16,16,20,.82);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow);overflow:hidden}
.hstat{display:flex;align-items:center;gap:16px;padding:26px 28px;border-right:1px solid var(--line)}
.hstat:last-child{border:0}
.hstat .ico{width:34px;height:34px;color:var(--accent);flex:none}
.hstat b{display:block;font:400 clamp(34px,3vw,46px)/1 var(--f-display);letter-spacing:.01em}
.hstat span{font-size:13px;color:var(--muted)}

/* Home: nothing upcoming */
.soon{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(280px,380px);gap:26px;align-items:center;padding:34px}
.soon .empty__icon{margin:0}
.soon .h3{margin-bottom:6px}
.soon .news{margin:0}
.soon .news .btn{width:auto;padding:0 20px}

/* Home: about */
.about{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,5vw,88px);align-items:center}
.about__title{font-size:clamp(30px,3.6vw,52px);font-weight:800;line-height:1.08;margin-bottom:22px}
.about__title em{font-style:normal;color:var(--accent)}
.about__text>p{color:#d5d5de;font-size:17px;margin-bottom:14px;max-width:62ch}
.about__media{position:relative;padding:0 0 60px 60px}
.about__media .about__main{aspect-ratio:4/5;border-radius:var(--r);border:1px solid var(--line2);box-shadow:var(--shadow);max-height:600px;width:100%}
.about__media .about__small{position:absolute;left:0;bottom:0;width:46%;aspect-ratio:1;border-radius:var(--r);border:6px solid var(--bg2);box-shadow:var(--shadow)}
.about__badge{position:absolute;right:-14px;top:28px;width:128px;height:128px;border-radius:50%;display:grid;place-items:center;text-align:center;background:linear-gradient(135deg,var(--accent-hi),var(--accent) 50%,var(--accent-lo));box-shadow:0 0 0 8px rgba(252,121,26,.18),var(--glow);font:700 11px/1.3 var(--f-head);letter-spacing:.14em;text-transform:uppercase}
.about__badge b{display:block;font:400 40px/1 var(--f-display);letter-spacing:.02em}
.feats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:28px 0 30px}
.feat{padding:20px;border-radius:var(--r-sm);border:1px solid var(--line);background:rgba(255,255,255,.035);display:grid;gap:10px;align-content:start}
.feat__icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:rgba(252,121,26,.14);color:var(--accent)}
.feat__icon .ico{width:22px;height:22px}
.feat b{font:700 15px/1.3 var(--f-head)}
.feat span{font-size:13px;color:var(--muted);line-height:1.5}
.stats--about{grid-template-columns:repeat(2,1fr);margin:30px 0 28px}
.price--note{font-size:16px;color:#e6e6ee}

/* Home: what we do */
.scard{display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;background:var(--surface);border:1px solid var(--line);transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s}
.scard:hover{transform:translateY(-8px);border-color:rgba(252,121,26,.55);box-shadow:var(--glow)}
.scard__media{aspect-ratio:16/10;--crowd:280px}
.scard__body{position:relative;padding:38px 26px 28px;display:grid;gap:10px}
.scard__icon{position:absolute;left:26px;top:-28px;width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent-hi),var(--accent) 50%,var(--accent-lo));box-shadow:0 12px 30px -8px rgba(252,121,26,.8)}
.scard__icon .ico{width:24px;height:24px}
.scard h3{font-size:20px}
.scard p{color:var(--muted);font-size:15px}

/* Home: season calendar rows */
.srows{display:grid;gap:16px}
.srow{display:grid;grid-template-columns:120px 190px minmax(0,1fr) auto;gap:clamp(16px,2.4vw,36px);align-items:center;padding:16px 26px 16px 22px;border-radius:var(--r);border:1px solid var(--line);background:linear-gradient(100deg,rgba(252,121,26,.16),rgba(155,77,255,.07) 55%,rgba(255,255,255,.02));transition:transform .4s var(--ease),border-color .4s,box-shadow .4s}
.srow:hover{transform:translateX(8px);border-color:rgba(252,121,26,.55);box-shadow:var(--glow)}
.sdate{text-align:center}
.sdate b{display:block;font:400 58px/.9 var(--f-display);color:var(--accent);text-shadow:0 0 30px rgba(252,121,26,.5)}
.sdate span{font:700 12px/1 var(--f-head);letter-spacing:.2em;text-transform:uppercase;color:#e6e6ee;display:block;margin-top:8px}
.srow__media{aspect-ratio:16/10;border-radius:14px;--crowd:150px}
.srow h3{font:800 clamp(19px,1.7vw,24px)/1.2 var(--f-head);text-transform:uppercase;margin-bottom:10px}
.srow h3 a:hover{color:var(--accent)}
.srow__buy{display:flex;align-items:center;gap:22px}

/* Footer */
.ftr .logo--img img{height:96px}
.ftr__grid{grid-template-columns:1.3fr 1.2fr .8fr 1.4fr}
.ftr-events li{margin-bottom:14px}
.ftr-events a{display:grid;gap:3px;color:#e6e6ee!important;font-weight:600}
.ftr-events small{color:var(--accent);font:700 11px/1 var(--f-head);letter-spacing:.12em;text-transform:uppercase}
.ftr__contact{display:grid;gap:10px;margin-top:18px;font-size:14px;color:var(--muted)}
.ftr__contact span{display:flex;gap:10px;align-items:flex-start}
.ftr__contact .ico{color:var(--accent);margin-top:3px}

/* Map: the real location, shown as a picture; a click opens directions */
.mapbox{position:relative;display:block;overflow:hidden;border-radius:var(--r);border:1px solid var(--line2);background:var(--surface);min-height:300px;height:100%}
.mapbox iframe,.mapbox img{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}
.mapbox iframe{pointer-events:none;filter:grayscale(1) invert(.92) contrast(.88) brightness(.95) hue-rotate(180deg)}
.mapbox__link{position:absolute;inset:0;z-index:2}
.mapbox__cta{position:absolute;left:16px;bottom:16px;z-index:3;pointer-events:none}
.mapbox--wide{min-height:420px;margin-top:40px}
.venue-card .mapbox{border:0;border-radius:0;min-height:240px}

/* Past events archive */
.archive{display:grid;gap:54px;margin-top:10px}
.archive__head{display:flex;align-items:baseline;gap:16px;padding-bottom:14px;margin-bottom:6px;border-bottom:1px solid var(--line2)}
.archive__head h2{font:400 clamp(48px,7vw,84px)/.9 var(--f-display);font-style:italic;color:var(--accent);text-shadow:0 0 40px rgba(252,121,26,.45)}
.archive__head span{font:700 12px/1 var(--f-head);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.archive__list{list-style:none;padding:0;margin:0}
.arow{display:grid;grid-template-columns:74px minmax(0,1fr) 64px 20px;gap:18px;align-items:center;padding:16px 14px;border-bottom:1px solid var(--line);border-radius:14px;transition:background .25s,padding .25s var(--ease)}
.arow:hover{background:rgba(255,255,255,.04);padding-left:22px}
.arow time{font:700 12px/1.2 var(--f-head);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.arow time b{display:block;font:800 26px/1 var(--f-head);color:#fff;letter-spacing:-.02em}
.arow__name{font:700 clamp(17px,1.6vw,22px)/1.25 var(--f-head)}
.arow__thumb{width:64px;height:44px;border-radius:10px;--crowd:60px}
.arow .badge{gap:6px;height:28px}
.arow>.ico{color:var(--dim);transition:color .25s,transform .25s}
.arow:hover>.ico{color:var(--accent);transform:translateX(4px)}

/* About page: seasons */
.seasons{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.season{display:grid;grid-template-columns:150px minmax(0,1fr);gap:26px;padding:24px 26px;border-radius:var(--r);border:1px solid var(--line);background:rgba(255,255,255,.03)}
.season__year b{display:block;font:400 46px/1 var(--f-display);font-style:italic;color:var(--accent)}
.season__year span{font:700 11px/1 var(--f-head);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.season p{color:#d5d5de;line-height:1.8}
.story{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,88px);align-items:start}

/* Services (editable in the page editor) */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.svc-grid>.wp-block-group__inner-container{display:contents}
.svc-grid>*,.svc-grid>.wp-block-group__inner-container>*{margin:0!important;max-width:none!important}
.svc{padding:30px;border-radius:var(--r);border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));box-shadow:var(--shadow);transition:transform .45s var(--ease),border-color .45s,box-shadow .45s}
.svc:hover{transform:translateY(-6px);border-color:rgba(252,121,26,.55);box-shadow:var(--glow)}
.svc>*,.svc>.wp-block-group__inner-container>*{margin-block:0!important}
.svc h3{font-size:20px;margin-bottom:10px!important;color:#fff}
.svc h3::before{content:"";display:block;width:36px;height:3px;border-radius:3px;background:var(--accent);box-shadow:0 0 14px var(--accent);margin-bottom:18px}
.svc p{color:var(--muted);font-size:15px}
.help{margin-top:54px}

/* Event page */
.banner .badge{margin-bottom:4px}
.banner h1{overflow-wrap:anywhere;font-size:clamp(48px,8vw,128px)}
.block{margin-bottom:54px}
.block>.h3{margin-bottom:22px}
.buybox__price--sm{font-size:28px;margin:6px 0 14px}
.buybox .muted{margin-bottom:18px;font-size:15px}
.buybox__row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;border:1px solid var(--line);font-size:14px;font-weight:600}
.buybox__row b{color:var(--accent);font-family:var(--f-head)}
.trows{display:grid;gap:10px;margin:16px 0 18px}
.trow{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px;border-radius:14px;border:1px solid var(--line2);background:rgba(255,255,255,.03);transition:border-color .3s,background .3s}
.trow.is-on{border-color:var(--accent);background:rgba(252,121,26,.08)}
.trow.is-out{opacity:.6}
.trow__info{display:grid;gap:3px;min-width:0}
.trow__info b{font-family:var(--f-head);font-size:15px}
.trow__info small{color:var(--muted);font-size:12px;line-height:1.4}
.trow__price{font:800 18px/1.2 var(--f-head);color:var(--accent)}
.trow__left{font-style:normal;font-size:12px;font-weight:700;color:var(--danger)}
.qty input{width:44px;height:42px;padding:0;border:0;border-radius:0;background:none;text-align:center;font:800 16px/1 var(--f-head);-moz-appearance:textfield;appearance:textfield;box-shadow:none!important}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.tform .sum-total{margin-bottom:18px;padding-top:14px}
.tform .btn.is-idle{filter:saturate(.55);opacity:.85}
.status--valid{background:rgba(46,212,122,.12);color:var(--ok)}
.status--used{background:rgba(90,160,255,.14);color:#8ab8ff}
.status--cancelled{background:rgba(255,95,95,.14);color:var(--danger)}
.venue{align-items:stretch}

/* E-ticket page */
.tnote{display:flex;align-items:center;gap:10px;padding:14px 18px;border-radius:14px;border:1px solid rgba(90,160,255,.35);background:rgba(90,160,255,.08);margin-bottom:20px;font-weight:600}
.tnote--bad{border-color:rgba(255,95,95,.4);background:rgba(255,95,95,.08);color:var(--danger)}
.eticket.is-void{border-color:var(--line2);box-shadow:none}
.eticket.is-void .eticket__stub .qr{opacity:.25}
.qr svg{width:140px;height:140px;display:block}
.ticket-list--past .tcard{opacity:.7}
.tcard:hover{opacity:1}

/* ---------- WooCommerce (classic cart, checkout, My Account) ---------- */
.p21-wc .clear{clear:both}
.p21-wc h2,.p21-wc h3{font-size:22px;margin:0 0 18px}
.p21-wc abbr.required,.p21-wc .required{color:var(--accent);text-decoration:none;border:0}
.stepper--checkout{max-width:820px;margin-inline:auto}
.stepper--checkout li.is-active~li.is-active span{background:none;box-shadow:none;border-color:var(--accent);color:var(--accent)}
.woocommerce-notices-wrapper:empty{display:none}
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-NoticeGroup>ul{list-style:none;margin:0 0 22px;padding:16px 20px;border-radius:14px;border:1px solid var(--line2);border-left:4px solid var(--ok);background:rgba(255,255,255,.04);font-weight:600;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.woocommerce-info{border-left-color:#5aa0ff}
.woocommerce-error{border-left-color:var(--danger);display:block}
.woocommerce-error li+li{margin-top:6px}
.woocommerce-message a:not(.button),.woocommerce-info a:not(.button),.woocommerce-error a{color:var(--accent);text-decoration:underline}
.woocommerce-message .button,.woocommerce-info .button{order:2;margin-left:auto}
.p21-wc .button,.woocommerce-message .button,.woocommerce-info .button,.p21-wc .woocommerce-Button{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 22px;border-radius:14px;font:700 14px/1 var(--f-head);border:1px solid var(--line2);background:rgba(255,255,255,.06);color:#fff;cursor:pointer;transition:background .25s,border-color .25s,transform .25s;white-space:nowrap}
.p21-wc .button:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.4)}
.p21-wc .button.alt,.p21-wc .checkout-button,.p21-wc #place_order,.p21-wc .woocommerce-form-login__submit,.p21-wc .woocommerce-form-register__submit,.p21-wc button[name=save_account_details],.p21-wc button[name=save_address]{background:linear-gradient(135deg,var(--accent-hi),var(--accent) 50%,var(--accent-lo));border-color:transparent;box-shadow:0 12px 34px -10px rgba(252,121,26,.75),inset 0 1px 0 rgba(255,255,255,.3)}
.p21-wc .button.alt:hover,.p21-wc .checkout-button:hover,.p21-wc #place_order:hover{transform:translateY(-2px);background:linear-gradient(135deg,var(--accent-hi),var(--accent) 50%,var(--accent-lo))}
.p21-wc .button:disabled,.p21-wc .button[disabled]{opacity:.5;pointer-events:none}
.p21-wc .form-row{margin:0 0 16px;padding:0}
.p21-wc .form-row label{display:block;font:700 13px/1.2 var(--f-head);color:#d9d9e2;margin-bottom:8px}
.p21-wc .form-row .woocommerce-input-wrapper{display:block}
.p21-wc .form-row.woocommerce-invalid input,.p21-wc .form-row.woocommerce-invalid .select2-selection{border-color:var(--danger)}
.p21-wc .woocommerce-form__label-for-checkbox,.p21-wc label.checkbox{display:inline-flex!important;align-items:center;gap:10px;font-weight:600;cursor:pointer}
.p21-wc input[type=checkbox],.p21-wc input[type=radio]{width:18px;height:18px;accent-color:var(--accent);flex:none}
.p21-wc .show-password-input{display:none}
.p21-wc .password-input{display:block}
.p21-wc fieldset{border:1px solid var(--line);border-radius:var(--r-sm);padding:20px;margin:24px 0}
.p21-wc legend{padding:0 10px;font:700 14px/1 var(--f-head)}
.p21-wc small,.p21-wc .woocommerce-password-hint,.p21-wc em{color:var(--muted);font-size:13px}
.p21-wc .blockUI.blockOverlay{background:#0b0b0b!important;opacity:.55!important}
.select2-container--default .select2-selection--single{height:54px;border-radius:var(--r-sm);background:rgba(255,255,255,.045);border:1px solid var(--line2)}
.select2-container--default .select2-selection--single .select2-selection__rendered{color:#fff;line-height:52px;padding-left:16px}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:52px;right:10px}
.select2-dropdown{background:#15151a;border-color:var(--line2);color:#fff}
.select2-container--default .select2-search--dropdown .select2-search__field{background:#0b0b0b;border-color:var(--line2);color:#fff;height:40px;padding:0 10px}
.select2-container--default .select2-results__option--highlighted[aria-selected],.select2-container--default .select2-results__option--highlighted[data-selected]{background:var(--accent);color:#fff}
.select2-container--default .select2-results__option[aria-selected=true],.select2-container--default .select2-results__option[data-selected=true]{background:rgba(255,255,255,.08)}
.p21-wc table.shop_table{width:100%;border:1px solid var(--line);border-radius:var(--r);border-collapse:separate;border-spacing:0;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));margin-bottom:26px;overflow:hidden}
.p21-wc table.shop_table th{padding:16px 20px;text-align:left;font:700 11px/1.2 var(--f-head);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--line)}
.p21-wc table.shop_table td{padding:16px 20px;border-bottom:1px solid var(--line);vertical-align:middle}
.p21-wc table.shop_table tbody tr:last-child td,.p21-wc table.shop_table tfoot tr:last-child td,.p21-wc table.shop_table tfoot tr:last-child th{border-bottom:0}
.p21-wc table.shop_table tfoot th{font-size:12px}
.p21-wc table.shop_table a:not(.button):not(.remove){font-weight:700}
.p21-wc table.shop_table a:not(.button):not(.remove):hover{color:var(--accent)}
.p21-wc .amount{font-family:var(--f-head);font-weight:700}
.p21-wc .order-total .amount,.p21-wc .cart-subtotal .amount{color:var(--accent);font-size:18px}
.p21-wc dl.variation{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;margin:6px 0 0;font-size:13px;color:var(--muted)}
.p21-wc dl.variation dt{font-weight:700}
.p21-wc dl.variation dd,.p21-wc dl.variation p{margin:0}
.p21-thumb{display:block;width:64px;height:64px;border-radius:12px;--crowd:70px}
.p21-wc td.product-thumbnail{width:96px}
.p21-wc a.remove{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;font-size:22px;line-height:1;color:var(--dim)!important;transition:background .25s,color .25s}
.p21-wc a.remove:hover{background:rgba(255,95,95,.15);color:var(--danger)!important}
.p21-wc .quantity .qty{width:84px;height:46px;text-align:center;font-weight:700;display:block;border:1px solid var(--line2);border-radius:12px;background:rgba(5,5,5,.5);overflow:visible}
.p21-wc td.actions{padding:18px 20px!important}
.p21-wc td.actions .coupon{display:inline-flex;float:left;gap:8px;padding:0;max-width:none}
.p21-wc td.actions .coupon input{flex:none;height:48px;width:200px!important;min-width:200px;float:none;padding:0 14px;border:1px solid var(--line2);border-radius:12px;background:rgba(255,255,255,.045);text-transform:none;font-weight:400;letter-spacing:0}
.p21-wc td.actions>.button{float:right}
.p21-wc .cart-collaterals{margin-top:10px}
.p21-wc .cart_totals{float:right;width:min(100%,460px)}
.p21-wc .wc-proceed-to-checkout .checkout-button{display:flex;width:100%;height:60px;font-size:16px;border-radius:16px}
.p21-wc .cart-empty{font-size:18px}
.p21-wc .return-to-shop{margin-top:18px}
.p21-wc form.checkout_coupon,.p21-wc form.woocommerce-form-login,.p21-wc form.woocommerce-form-register,.p21-wc form.lost_reset_password{border:1px solid var(--line);border-radius:var(--r);padding:28px;margin:0 0 26px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015))}
.p21-wc form.checkout_coupon{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.p21-wc form.checkout_coupon p{margin:0;float:none;width:auto}
.p21-wc form.checkout_coupon p:first-child{flex-basis:100%;color:var(--muted)}
.p21-wc #customer_details .col-1,.p21-wc #customer_details .col-2{float:none;width:100%}
.p21-wc #order_review_heading{margin-top:0}
.p21-wc #order_review{border:1px solid rgba(252,121,26,.4);border-radius:var(--r);padding:22px;box-shadow:var(--glow);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015))}
.p21-wc #order_review table.shop_table{border:0;background:none;border-radius:0;margin-bottom:10px}
.p21-wc #order_review table.shop_table th,.p21-wc #order_review table.shop_table td{padding:12px 4px}
.p21-wc #payment{background:none}
.p21-wc #payment ul.payment_methods{list-style:none;margin:0 0 18px;padding:0 0 6px;border-bottom:1px solid var(--line);display:grid;gap:10px}
.p21-wc #payment ul.payment_methods li{padding:14px 16px;border:1px solid var(--line2);border-radius:14px;background:rgba(255,255,255,.03)}
.p21-wc #payment ul.payment_methods li:has(input:checked){border-color:var(--accent);background:rgba(252,121,26,.08)}
.p21-wc #payment ul.payment_methods li>label{display:inline;font-weight:700;margin-left:8px;cursor:pointer}
.p21-wc #payment ul.payment_methods li img{max-height:24px;display:inline;vertical-align:middle;margin-left:8px}
.p21-wc #payment .payment_box{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line2);font-size:14px;color:var(--muted)}
.p21-wc #payment .payment_box p:last-child{margin:0}
.p21-wc #place_order{width:100%;height:60px;font-size:16px;border-radius:16px;margin-top:16px}
.p21-wc .woocommerce-privacy-policy-text,.p21-wc .woocommerce-terms-and-conditions-wrapper{font-size:13px;color:var(--muted)}
.p21-wc .woocommerce-privacy-policy-text a{color:var(--accent)}
@media (min-width:1001px){
  .p21-wc form.woocommerce-checkout{display:grid;grid-template-columns:minmax(0,1fr) 460px;column-gap:48px;align-items:start}
  .p21-wc form.woocommerce-checkout>*{grid-column:1/-1}
  .p21-wc form.woocommerce-checkout>#customer_details{grid-column:1;grid-row:1/span 2}
  .p21-wc form.woocommerce-checkout>#order_review_heading{grid-column:2;grid-row:1}
  .p21-wc form.woocommerce-checkout>#order_review{grid-column:2;grid-row:2}
  .p21-wc form.woocommerce-checkout>.woocommerce-NoticeGroup{grid-row:auto}
}
.p21-wc .woocommerce-thankyou-order-received{font:700 20px/1.4 var(--f-head);color:var(--ok);margin-bottom:22px}
.p21-wc ul.order_details{list-style:none;padding:0;margin:0 0 34px;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.p21-wc ul.order_details li{padding:18px 20px;border-radius:var(--r-sm);border:1px solid var(--line);background:rgba(255,255,255,.035);font:700 11px/1.3 var(--f-head);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);float:none;margin:0}
.p21-wc ul.order_details li strong{display:block;margin-top:8px;font-size:16px;letter-spacing:0;text-transform:none;color:#fff;word-break:break-word}
.p21-order-tickets{margin:0 0 40px}
.p21-wc .tcard__body h3{font-size:20px;margin:0}
.p21-wc .woocommerce-customer-details address{font-style:normal;padding:22px;border:1px solid var(--line);border-radius:var(--r);line-height:1.8;color:#d5d5de}
.p21-wc .woocommerce-columns--addresses,.p21-wc .woocommerce-Addresses{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}
.p21-wc .woocommerce-columns--addresses>*,.p21-wc .woocommerce-Addresses>*{float:none;width:auto}
.p21-wc mark{background:none;color:var(--accent);font-weight:700}
.p21-wc .woocommerce:has(>.woocommerce-MyAccount-navigation){display:grid;grid-template-columns:270px minmax(0,1fr);gap:32px;align-items:start}
.p21-wc .woocommerce:has(>.woocommerce-MyAccount-navigation)>.woocommerce-notices-wrapper{grid-column:1/-1}
.p21-wc .woocommerce-MyAccount-navigation,.p21-wc .woocommerce-MyAccount-content{float:none;width:auto}
.p21-wc .woocommerce-MyAccount-navigation{padding:16px;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));position:sticky;top:96px}
.p21-wc .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.p21-wc .woocommerce-MyAccount-navigation a{display:flex;align-items:center;height:48px;padding:0 14px;border-radius:12px;font:600 14px/1 var(--f-head);color:var(--muted);transition:background .25s,color .25s}
.p21-wc .woocommerce-MyAccount-navigation a:hover{background:rgba(255,255,255,.05);color:#fff}
.p21-wc .woocommerce-MyAccount-navigation .is-active a{background:rgba(252,121,26,.12);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.p21-wc .woocommerce-MyAccount-content>p{color:#d5d5de;margin-bottom:16px}
.p21-wc .woocommerce-MyAccount-content>p a{color:var(--accent);font-weight:700}
.p21-wc a.dstat{display:block;transition:border-color .3s,transform .3s var(--ease)}
.p21-wc a.dstat:hover{border-color:rgba(252,121,26,.55);transform:translateY(-3px)}
.p21-wc .woocommerce-Address{padding:22px;border:1px solid var(--line);border-radius:var(--r)}
.p21-wc .woocommerce-Address address{font-style:normal;color:#d5d5de;line-height:1.8}
.p21-wc .woocommerce-Address-title{display:flex;justify-content:space-between;align-items:center;gap:12px}
.p21-wc .woocommerce-Address-title a{color:var(--accent);font-weight:700;font-size:13px}
.p21-wc .u-columns.col2-set{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.p21-wc .u-columns.col2-set>*{float:none;width:auto}
.p21-wc .col2-set::before,.p21-wc .col2-set::after,.p21-wc .woocommerce-Addresses::before,.p21-wc .woocommerce-Addresses::after,.p21-wc .woocommerce-columns::before,.p21-wc .woocommerce-columns::after,.p21-wc .woocommerce::before,.p21-wc .woocommerce::after{display:none!important}
.p21-wc .woocommerce-LostPassword a,.p21-wc .lost_password a{color:var(--accent);font-weight:700}
.p21-wc .woocommerce-pagination{display:flex;gap:10px;margin-top:10px}
.p21-wc--shop ul.products{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:26px}
.p21-wc--shop ul.products::before,.p21-wc--shop ul.products::after{display:none}
.p21-wc--shop ul.products li.product{float:none;width:auto;margin:0;padding:18px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);position:relative}
.p21-wc--shop ul.products li.product img{border-radius:12px;margin-bottom:14px;width:100%;height:auto}
.p21-wc--shop .woocommerce-loop-product__title{font-size:17px;margin-bottom:6px}
.p21-wc--shop .price{display:block;margin-bottom:14px}
.p21-wc--shop .onsale{position:absolute;left:28px;top:28px;padding:5px 10px;border-radius:99px;background:var(--accent);font:700 11px/1 var(--f-head)}
.p21-wc--shop div.product{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.p21-wc--shop div.product>*{float:none!important;width:auto!important}
.p21-wc--shop div.product .woocommerce-tabs,.p21-wc--shop div.product .related,.p21-wc--shop div.product .upsells{grid-column:1/-1}
.p21-wc--shop form.cart{display:flex;gap:12px;margin:20px 0}

/* ---------- Laptop ---------- */
@media (max-width:1280px){
  .nav a{padding:10px 10px}
  .hero__grid{grid-template-columns:minmax(0,1fr) minmax(0,360px)}
  .srow{grid-template-columns:100px 160px minmax(0,1fr) auto}
}
/* ---------- Tablet ---------- */
@media (max-width:1100px){
  .hdr__cta{display:none}
  .logo--img img{height:52px}
  .hero{padding-bottom:120px}
  .hero__grid{grid-template-columns:minmax(0,1fr)}
  .nextcard{max-width:520px}
  .hstats__in{grid-template-columns:repeat(2,1fr)}
  .hstat:nth-child(2){border-right:0}
  .hstat:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .about,.story{grid-template-columns:minmax(0,1fr)}
  .about__media{max-width:560px;order:-1}
  .soon{grid-template-columns:auto minmax(0,1fr)}
  .soon .news{grid-column:1/-1}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .srow{grid-template-columns:90px 150px minmax(0,1fr)}
  .srow__buy{grid-column:2/-1;justify-content:space-between}
  .ftr__grid{grid-template-columns:1fr 1fr}
  .details__side{display:block;position:static;order:-1}
  .details{gap:34px}
  .p21-wc .woocommerce:has(>.woocommerce-MyAccount-navigation){grid-template-columns:minmax(0,1fr)}
  .p21-wc .woocommerce-MyAccount-navigation{position:static;padding:10px}
  .p21-wc .woocommerce-MyAccount-navigation ul{display:flex;overflow-x:auto;scrollbar-width:none}
  .p21-wc .woocommerce-MyAccount-navigation a{white-space:nowrap;height:42px;border:1px solid var(--line)}
  .p21-wc .woocommerce-MyAccount-navigation .is-active a{box-shadow:none;border-color:var(--accent)}
  body[data-page="details"] .ftr{padding-bottom:110px}
}
/* ---------- Mobile ---------- */
@media (max-width:720px){
  .logo--img img{height:46px}
  .hero{padding-bottom:96px}
  .hero__title em{margin-left:.2em}
  .hstats{margin-top:-60px}
  .hstat{padding:18px;gap:12px}
  .hstat .ico{width:26px;height:26px}
  .soon{grid-template-columns:minmax(0,1fr);padding:24px;text-align:left}
  .feats{grid-template-columns:minmax(0,1fr)}
  .about__media{padding:0 0 40px 40px}
  .about__badge{width:104px;height:104px;right:-6px}
  .about__badge b{font-size:32px}
  .stats--about,.stats{grid-template-columns:repeat(2,1fr)}
  .svc-grid,.grid--2{grid-template-columns:minmax(0,1fr)}
  .srow{grid-template-columns:72px minmax(0,1fr);padding:16px}
  .srow__media{display:none}
  .srow__buy{grid-column:1/-1}
  .sdate b{font-size:44px}
  .arow{grid-template-columns:54px minmax(0,1fr) 20px;gap:12px;padding:14px 6px}
  .arow>span:not(.arow__name){display:none}
  .arow time b{font-size:22px}
  .season{grid-template-columns:minmax(0,1fr);gap:10px;padding:20px}
  .archive{gap:40px}
  .ftr__grid{grid-template-columns:minmax(0,1fr)}
  .mapbox--wide{min-height:300px}
  .p21-wc .u-columns.col2-set{grid-template-columns:minmax(0,1fr)}
  .p21-wc td.actions .coupon{float:none;display:flex;margin-bottom:10px}
  .p21-wc td.actions .coupon input{flex:1;width:auto!important;min-width:0}
  .p21-wc td.actions>.button{float:none;width:100%}
  .p21-wc .cart_totals{float:none;width:100%}
  .p21-wc table.shop_table_responsive thead{display:none}
  .p21-wc table.shop_table_responsive tr{display:block;border-bottom:1px solid var(--line2)}
  .p21-wc table.shop_table_responsive tr td{display:block;text-align:right!important;border:0;padding:10px 16px}
  .p21-wc table.shop_table_responsive tr td::before{content:attr(data-title);float:left;font:700 11px/1.6 var(--f-head);letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
  .p21-wc table.shop_table_responsive tr td.product-remove::before,.p21-wc table.shop_table_responsive tr td.product-thumbnail::before,.p21-wc table.shop_table_responsive tr td.actions::before{display:none}
  .p21-wc table.shop_table_responsive td.product-thumbnail{display:none}
  .p21-wc .quantity .qty{margin-left:auto}
  .stepper--checkout b{display:none}
  .stepper--checkout li.is-active b{display:inline}
  .tcard{grid-template-columns:minmax(0,1fr)}
  .tcard__actions{border-left:0;border-top:1px dashed var(--line2)}
  .p21-wc--shop div.product{grid-template-columns:minmax(0,1fr)}
}

/* ---------- v4 additions ---------- */
.page-hero--tall{padding-bottom:140px}
.page-hero--tall h1{font:400 clamp(48px,7vw,104px)/.95 var(--f-display);text-transform:uppercase;font-style:italic;letter-spacing:0;text-shadow:0 10px 50px rgba(0,0,0,.6)}
.page-hero--tall p{max-width:60ch;margin-inline:auto;font-size:18px}
.section--lift{position:relative;z-index:2;margin-top:-64px}
.toolbar{margin-bottom:48px}
.toolbar--center{justify-content:center}
.hero__copy{min-width:0}
.dchip{position:absolute;right:16px;bottom:16px;min-width:62px;padding:10px 10px 9px;border-radius:14px;text-align:center;background:rgba(5,5,5,.72);border:1px solid var(--line2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font:700 11px/1 var(--f-head);letter-spacing:.16em;text-transform:uppercase;color:#e6e6ee}
.dchip b{display:block;font:400 30px/1 var(--f-display);letter-spacing:.02em;color:var(--accent);margin-bottom:5px}
.ecard--row .dchip{left:16px;right:auto}
.ecard--row .ecard__media .badge{left:auto;right:16px}
.pricing--2{grid-template-columns:repeat(2,minmax(0,400px));justify-content:center}
.pricing--1{grid-template-columns:minmax(0,420px);justify-content:center}
.pricing--2 .price-card--hot,.pricing--1 .price-card--hot,.js .pricing--2 .price-card--hot.reveal.in{transform:none}
.price-card__media.has-img::before{background:linear-gradient(180deg,rgba(5,5,5,0),rgba(5,5,5,.3)),var(--img) center/cover no-repeat}
.season__names{display:flex;flex-wrap:wrap;gap:8px}
.season__names a{padding:7px 14px;border-radius:99px;border:1px solid var(--line2);font-size:14px;font-weight:600;color:#e2e2ea;transition:border-color .25s,color .25s,background .25s}
.season__names a:hover{border-color:var(--accent);color:#fff;background:rgba(252,121,26,.12)}
.contact-cards{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:-110px;margin-bottom:44px}
.contact-card p{overflow-wrap:anywhere}
.venue-card__media{aspect-ratio:16/10;--crowd:240px}
.contact-split{align-items:stretch}
.contact-split .panel>.muted{margin-top:6px}
.mapbox__fallback{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:6px;text-align:center;padding:24px;background:radial-gradient(60% 60% at 50% 40%,rgba(252,121,26,.16),transparent 70%),repeating-linear-gradient(0deg,transparent 0 46px,rgba(255,255,255,.04) 46px 47px),repeating-linear-gradient(90deg,transparent 0 46px,rgba(255,255,255,.04) 46px 47px),var(--surface)}
.mapbox__fallback .map__pin{position:relative;left:auto;top:auto;margin:0 0 18px}
.mapbox__fallback b{font:700 17px/1.2 var(--f-head)}
.mapbox__fallback span:last-child{font-size:13px;color:var(--muted);max-width:40ch}
.mapbox iframe,.mapbox img{z-index:1}
.stats--event{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin:0 0 44px}
.stat>div{min-width:0}
.stat b{overflow-wrap:anywhere;line-height:1.15}
.lineup .acard{aspect-ratio:3/4}
.lb{position:relative;overflow:hidden;background:#050505}
.post-item__ph{display:block;aspect-ratio:16/8}
.faq-list{margin-bottom:10px}
.acc__body>*:last-child{padding-bottom:24px}
.acc__body p{padding-bottom:10px}
.tabbar a span{display:block}
.tabbar a.tabbar__main i .ico{width:24px;height:24px}
.ticker--names{margin-top:56px}
.snap--narrow{}
@media (max-width:1100px){
  .pricing--2{grid-template-columns:minmax(0,1fr)}
  .contact-split .venue-card{order:2}
}
@media (max-width:720px){
  .page-hero--tall{padding-bottom:104px}
  .page-hero--tall p{margin-inline:0;font-size:16px}
  .section--lift{margin-top:-52px}
  .toolbar{margin-bottom:30px}
  .toolbar--center{justify-content:flex-start}
  .snap--narrow>*{width:62%}
  .contact-cards{grid-template-columns:minmax(0,1fr);margin-top:-84px;gap:12px}
  .ticker--names{margin-top:36px}
  .dchip b{font-size:24px}
  .stats--event{grid-template-columns:1fr 1fr}
}

/* ---------- v4 responsive polish ---------- */
:root{--hdr:88px}
.logo--img img{height:70px}
.hdr.is-stuck{height:74px}
.hdr.is-stuck .logo--img img{height:58px}
.hero__title em{margin-top:.1em}
@media (max-width:1100px){
  .logo--img img{height:60px}
  .hero__title{font-size:clamp(60px,11.5vw,120px)}
  .nextcard{max-width:none;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr)}
  .nextcard__media{aspect-ratio:auto;min-height:100%}
  .about__media{max-width:none;padding:0 0 48px 48px}
  .about__media .about__main{aspect-ratio:16/10;max-height:none}
  .about__media .about__small{width:32%}
}
@media (max-width:1100px) and (min-width:721px){
  .snap:not(.pricing){display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 0 20px;scrollbar-width:none}
  .snap:not(.pricing)::-webkit-scrollbar{display:none}
  .snap:not(.pricing)>*{flex:none;width:44%;scroll-snap-align:start}
  .snap.grid--4>*{width:30%}
  .js .snap .reveal{opacity:1;transform:none}
}
@media (max-width:720px){
  :root{--hdr:68px}
  .logo--img img,.hdr.is-stuck .logo--img img{height:50px}
  .hdr.is-stuck{height:64px}
  .hero__eyebrow{font-size:10px;letter-spacing:.14em;padding:8px 12px;max-width:100%}
  .hero__title{font-size:clamp(44px,13.6vw,84px)}
  .hero__title em{margin-left:0;text-align:center}
  .hero__lead{margin-top:18px}
  .nextcard{display:block;text-align:left}
  .nextcard__media{aspect-ratio:16/9;min-height:0}
  .hstat{padding:16px 14px;gap:10px}
  .hstat b{font-size:30px}
  .hstat span{font-size:12px;line-height:1.3;display:block}
  .about__media .about__main{aspect-ratio:4/3}
  .about__media{padding:0 0 36px 36px}
}
.season{align-items:center}
.season__names{align-items:flex-start;align-content:flex-start}
.svc-grid .svc.svc p{margin-top:10px!important}
.contact-split{align-items:start}
@media print{
  body.p21-page-ticket>main{display:block!important}
  body.p21-page-ticket .page-hero,body.p21-page-ticket .no-print,body.p21-page-ticket .tnote{display:none!important}
  body.p21-page-ticket .section{padding:0}
  body.p21-page-ticket .container{width:100%}
}
