/* Enjoy Events website v16 — shared styles. Source: Dragos's enjoyevents-redesign-v16.html <style> block (4 Oct 2026),
   installed as a file for the Laravel layout resources/views/layouts/front/v16.blade.php. Page-only rules live in the pages. */
/* ── Brand tokens: replace with the exact Enjoy Events hex values ── */
:root{
  /* Enjoy Events brand — core identity */
  --brand:#bf1e74; --brand-dark:#9b1560; --hot:#ff5ea3; --pink-light:#ff8ec7; --purple:#a78bfa;
  --grad-sig:linear-gradient(100deg,#ff8ec7,#ff5ea3 60%,#a78bfa);
  --grad-cta:linear-gradient(90deg,#bf1e74,#ff5ea3);
  --on-pink:#070811;            /* never white text on hot pink */
  /* Dark ground (default theme) */
  --night:#070811; --night-2:#0e101c; --night-3:#131627; --line:#232742;
  --text:#eef1fb; --muted:#a7adc4; --faint:#7c8199;
  --accent:#ff5ea3;             /* link / accent text on dark */
  --lilac:#a78bfa; --brand-2:#ff5ea3;
  --ink:#070811;                /* text on light chips/buttons */
  /* Light surfaces used inside the dark theme */
  --paper:#f6f7fb; --ink-mute:#475569; --line-ink:rgba(11,16,32,.12);
  box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --night:#070811; --text:#eef1fb; } }
:root[data-theme="dark"]{ --night:#070811; --text:#eef1fb; }
/* Light mode (site toggle) */
:root[data-theme="light"]{
  --night:#f6f7fb; --night-2:#ffffff; --night-3:#eceef6; --line:#dfe2ee;
  --text:#0b1020; --muted:#475569; --faint:#64748b; --accent:#bf1e74; --lilac:#0e7490;
  --ink:#f6f7fb; --paper:#ffffff;
}
/* Anything on a paper/white surface always uses dark text */
.light,.tix,.pass-silver,.pass-gold,.lang-menu,#qPop,.bg-paper,.bg-white{ --ink:#0b1020; }
[data-theme="light"] .border-white\/10,[data-theme="light"] .border-white\/15,[data-theme="light"] .border-white\/20{ border-color:var(--line); }
[data-theme="light"] .divide-white\/10 > * + *{ border-color:var(--line); }
[data-theme="light"] .light{ background:#ffffff; border-block:1px solid var(--line); }
[data-theme="light"] .hdr{ border-bottom-color:var(--line); }
html{ scroll-padding-top:calc(env(safe-area-inset-top,0px) + 64px); }
html.lenis, html.lenis body{ height:auto; } .lenis.lenis-smooth{ scroll-behavior:auto!important; }
*,*::before,*::after{ box-sizing:inherit; }
body{ background:var(--night); color:var(--text); font-family:"Inter",system-ui,sans-serif; font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
::selection{ background:var(--hot); color:var(--on-pink); }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{ outline:3px solid var(--brand-2); outline-offset:3px; border-radius:6px; }
.display{ font-family:"Bricolage Grotesque",sans-serif; font-optical-sizing:auto; letter-spacing:-.02em; }
.tnum{ font-feature-settings:'tnum' 1; }
.light{ background:var(--paper); color:var(--ink); }
.light .mute{ color:var(--ink-mute); }
.mute{ color:var(--muted); }

/* Header */
.hdr{ position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--night) 82%,transparent); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); padding-top:env(safe-area-inset-top,0px); border-bottom:1px solid var(--line); }
.tabs a{ white-space:nowrap; position:relative; padding:.4rem .7rem; border-radius:8px; color:var(--muted); font-weight:600; font-size:.9rem; transition:color .2s, background .2s; }
.tabs a:hover{ color:var(--text); }
.tabs a[aria-current="page"]{ color:var(--text); background:rgba(255,255,255,.06); }

/* Ticker */
.ticker{ display:flex; width:max-content; animation:tick 40s linear infinite; }
.ticker-wrap:hover .ticker{ animation-play-state:paused; }
@keyframes tick{ to{ transform:translateX(-50%);} }

/* Hero ticket deck — the one signature moment */
.deck{ position:relative; height:470px; perspective:1400px; }
.tix{ position:absolute; left:50%; top:50%; width:min(340px,82vw); height:430px; margin:-215px 0 0 calc(min(330px,82vw)/-2);
  border-radius:22px; background:var(--paper); color:var(--ink); box-shadow:0 30px 60px -25px rgba(0,0,0,.65);
  transition:transform .7s cubic-bezier(.2,.75,0,1), opacity .5s; will-change:transform; }
.tix[data-pos="0"]{ transform:translate(0,0) rotate(-2deg); z-index:3; }
.tix[data-pos="1"]{ transform:translate(34px,14px) rotate(5deg); z-index:2; }
.tix[data-pos="2"]{ transform:translate(-30px,22px) rotate(-9deg); z-index:1; }
.tix[data-pos="out"]{ transform:translate(-120%,-10px) rotate(-22deg); opacity:0; z-index:4; }
.tix .notch{ --cut:calc(56% + 72px);
  -webkit-mask:radial-gradient(circle 13px at left var(--cut),#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 13px at right var(--cut),#0000 98%,#000) right/51% 100% no-repeat;
          mask:radial-gradient(circle 13px at left var(--cut),#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 13px at right var(--cut),#0000 98%,#000) right/51% 100% no-repeat; }
.perf{ border-top:2px dashed rgba(27,16,48,.28); }

/* Art tiles (placeholders for real event artwork) */
.art{ position:relative; overflow:hidden; isolation:isolate; }
.art .pat{ position:absolute; inset:0; z-index:-1; transition:transform .8s cubic-bezier(.2,.75,0,1); }
.art .grain{ position:absolute; inset:0; z-index:-1; opacity:.16; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }
a:hover .art .pat, .art:hover .pat{ transform:scale(1.06); }

/* Night picker */
.night-tile{ border:1px solid var(--line); border-radius:10px; transition:background .2s, color .2s, border-color .2s; }
.night-tile:hover{ border-color:var(--ink); }
.night-tile[aria-pressed="true"]{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.night-tile[aria-pressed="true"] .dot{ background:var(--hot); }
.scroll-x{ overflow-x:auto; scrollbar-width:none; } .scroll-x::-webkit-scrollbar{ display:none; }

/* Buttons */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; height:40px; padding:0 1.1rem; border-radius:999px; font-weight:700; font-size:15px; white-space:nowrap; transition:background .2s,color .2s,border-color .2s; }
.btn-brand{ background:var(--brand); color:#fff; } .btn-brand:hover{ background:var(--brand-dark); }
.btn-light{ background:var(--text); color:var(--ink); } .btn-light:hover{ background:var(--hot); color:var(--on-pink); }
.btn-ghost{ border:1px solid var(--hair-2); } .btn-ghost:hover{ border-color:var(--text); }
.light .btn-ghost{ border-color:var(--line-ink); } .light .btn-ghost:hover{ border-color:var(--ink); }
.btn-ink{ background:var(--ink); color:var(--paper); } .btn-ink:hover{ background:var(--brand); color:#fff; }

/* Events */
.chip{ border:1px solid var(--hair-2); border-radius:999px; white-space:nowrap; height:34px; padding:0 .85rem; font-size:.85rem; font-weight:600; transition:background .2s,color .2s,border-color .2s; }
.chip:hover{ border-color:rgba(255,255,255,.35); }
.chip[aria-pressed="true"]{ background:var(--hot); color:var(--on-pink); border-color:var(--hot); }
.seg{ background:var(--night-2); border:1px solid var(--hair); border-radius:999px; padding:3px; display:flex; }
.seg button,.seg a{ white-space:nowrap; height:28px; padding:0 .8rem; border-radius:999px; font-weight:600; font-size:.82rem; color:var(--muted); display:inline-flex; align-items:center; gap:.3rem; }
.seg button[aria-pressed="true"],.seg a[aria-current="true"]{ background:var(--text); color:var(--ink); }
.seg .n{ font-size:.72rem; opacity:.7; }
.fbar{ position:sticky; top:calc(env(safe-area-inset-top,0px) + 56px); z-index:30; background:color-mix(in srgb,var(--night) 90%,transparent); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
.ev-row{ border-bottom:1px solid var(--line); transition:background .2s; }
.ev-row:hover{ background:var(--night-2); }
.ev-row:hover .t{ color:var(--brand-2); }

/* Membership passes */
.pass{ position:relative; border-radius:14px; padding:1.5rem; overflow:hidden; isolation:isolate; }
.pass::before{ content:""; position:absolute; top:18px; left:50%; width:64px; height:12px; margin-left:-32px; border-radius:999px; background:var(--night); box-shadow:inset 0 2px 3px rgba(0,0,0,.35); }
.pass-silver{ background:linear-gradient(145deg,#f6f7fb 0%,#d6d9e6 45%,#ffffff 70%,#c3c7d9 100%); color:#0b1020; }
.pass-gold{ background:var(--grad-sig); color:#070811; }
.pass .holo{ position:absolute; inset:0; z-index:-1; opacity:.55; mix-blend-mode:soft-light;
  background:repeating-linear-gradient(115deg,transparent 0 22px,rgba(255,255,255,.55) 22px 24px,transparent 24px 60px); }
.pass-free{ background:var(--night-2); border:1px solid var(--line); }
.pass-free::before{ background:var(--night); }
.pass .price{ font-family:"Bricolage Grotesque",sans-serif; font-weight:800; letter-spacing:-.03em; line-height:1; }
.tick{ width:20px; height:20px; border-radius:50%; display:inline-grid; place-items:center; flex:none; }
.cmp th,.cmp td{ padding:.7rem .75rem; border-bottom:1px solid var(--hair); text-align:center; font-size:14.5px; }
.cmp th:first-child,.cmp td:first-child{ text-align:left; }
.cmp thead th{ font-weight:700; }
.meter{ height:10px; border-radius:999px; background:rgba(27,16,48,.1); overflow:hidden; }
.meter > i{ display:block; height:100%; background:var(--grad-sig); border-radius:999px; transition:width .5s cubic-bezier(.2,.75,0,1); }
input[type=range]{ accent-color:var(--brand); width:100%; }
details summary{ list-style:none; cursor:pointer; } details summary::-webkit-details-marker{ display:none; }
details[open] .plus{ transform:rotate(45deg); } .plus{ transition:transform .3s; }


.art .photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.75,0,1); }
a:hover .art .photo{ transform:scale(1.04); }
.art .fallback-name{ position:absolute; left:14px; right:14px; bottom:12px; color:#fff; font-weight:800; font-size:1.35rem; line-height:1.05; text-shadow:0 2px 12px rgba(0,0,0,.45); }
.pass-legend{ background:linear-gradient(150deg,#131627 0%,#9b1560 50%,#070811 100%); color:#eef1fb; border:1px solid rgba(255,94,163,.4); }
.pass-legend .btn-light{ background:#eef1fb; color:#070811; }
.pass-legend .opacity-70,.pass-legend .opacity-80,.pass-legend .opacity-60{ color:#eef1fb; }
.pass-legend .holo{ opacity:.35; }
.min-w-11{ min-width:44px; }
.hero-purple{ background:linear-gradient(180deg,#0d0a1c 0%,#1b1030 55%,#241545 100%); }
[data-theme="light"] .hero-purple{ background:linear-gradient(180deg,#f6f7fb 0%,#efeafd 100%); }

/* Logo: real logo image, text wordmark if it can't load */
.logo .logo-img + .logo-word{ display:none; }
.logo-word{ color:var(--brand); letter-spacing:-.02em; } .logo-word .text-spot{ color:var(--hot); } .logo-word .font-light{ font-weight:500; }
[data-theme="light"] .logo-word .text-spot{ color:var(--brand-dark); }
body.auth #appBand, body.auth #siteFooter{ display:none; }
.auth-wrap{ min-height:min(calc(100vh - 100px), 860px); }
@media (max-width:1023px){ .auth-wrap{ min-height:0; } }   /* stage 3: phones start the form right under the header */
.auth-side{ position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(160deg,#0d0a1c 0%,#1b1030 55%,#2a1650 100%); color:#eef1fb; }
.auth-side .glow{ position:absolute; border-radius:50%; filter:blur(10px); z-index:-1; }
.auth-collage{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:400px; }
.auth-collage .art{ border-radius:14px; aspect-ratio:4/5; box-shadow:0 20px 40px -18px rgba(0,0,0,.7); }
.auth-collage .art:nth-child(1){ transform:rotate(-6deg) translateY(8px); } .auth-collage .art:nth-child(2){ transform:translateY(-6px); } .auth-collage .art:nth-child(3){ transform:rotate(6deg) translateY(8px); }
.field label{ display:block; font-size:.875rem; font-weight:600; margin-bottom:.4rem; }
.field input,.field select{ width:100%; height:44px; border-radius:10px; background:var(--night-2); border:1px solid var(--line); padding:0 1rem; color:var(--text); outline:none; font-size:15px; transition:border-color .2s, box-shadow .2s; }
.field input:focus,.field select:focus{ border-color:var(--hot); box-shadow:0 0 0 3px rgba(255,94,163,.18); }
[data-theme="light"] .field input:focus{ border-color:var(--brand); box-shadow:0 0 0 3px rgba(191,30,116,.15); }
.field .err{ color:var(--accent); font-size:.8rem; margin-top:.35rem; display:none; }
.field.bad input{ border-color:var(--accent); } .field.bad .err{ display:block; }
.check{ display:flex; gap:.7rem; align-items:flex-start; font-size:.9rem; }
.check input{ width:18px; height:18px; margin-top:2px; accent-color:var(--brand); flex:none; }
.toast{ position:fixed; left:50%; bottom:90px; transform:translate(-50%,20px); opacity:0; background:var(--text); color:var(--ink); padding:.7rem 1.1rem; border-radius:10px; font-size:14px; font-weight:600; z-index:70; transition:all .35s; pointer-events:none; }
.toast.on{ opacity:1; transform:translate(-50%,0); }

/* Flippable cards (membership + gift cards) */
.flip{ perspective:1400px; cursor:pointer; }
.flip-inner{ position:relative; width:100%; aspect-ratio:1.55; min-height:272px; transform-style:preserve-3d; transition:transform .8s cubic-bezier(.2,.75,0,1); }
.flip.is-flipped .flip-inner{ transform:rotateY(180deg); }
.cc-face{ position:absolute; inset:0; border-radius:22px; overflow:hidden; isolation:isolate; padding:20px 22px; -webkit-backface-visibility:hidden; backface-visibility:hidden; box-shadow:0 30px 60px -28px rgba(0,0,0,.75); display:flex; flex-direction:column; }
.cc-back{ transform:rotateY(180deg); background:#0e101c; color:#eef1fb; border:1px solid #232742; padding:0; }
.cc-sheen{ position:absolute; inset:0; z-index:-1; background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.28) 45%,transparent 60%); mix-blend-mode:soft-light; }
.cc-lines{ position:absolute; inset:0; z-index:-1; opacity:.18; background:repeating-radial-gradient(circle at 110% -20%,transparent 0 18px,rgba(255,255,255,.6) 18px 19px); }
.cc-chip{ width:44px; height:34px; border-radius:8px; background:linear-gradient(135deg,#f2eefb,#c9c1de 45%,#f7f4ff 60%,#b3aacb); position:relative; box-shadow:inset 0 0 0 1px rgba(0,0,0,.15); }
.cc-chip::before{ content:""; position:absolute; inset:7px 10px; border:1px solid rgba(0,0,0,.22); border-radius:4px; }
.cc-num{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.18em; font-size:.95rem; }
.cc-stripe{ height:28px; background:#000; margin-top:14px; flex:none; }
.cc-fan{ background:linear-gradient(135deg,#231a47 0%,#5b47c4 55%,#a78bfa 100%); color:#eef1fb; }
.cc-super{ background:var(--grad-sig); color:#070811; }
.cc-legend{ background:linear-gradient(135deg,#070811 0%,#5e0f3c 45%,#bf1e74 100%); color:#eef1fb; box-shadow:0 30px 60px -28px rgba(191,30,116,.6), inset 0 0 0 1px rgba(255,94,163,.45); }
.cc-birthday{ background:linear-gradient(135deg,#bf1e74 0%,#ff5ea3 55%,#ff8ec7 100%); color:#070811; }
.cc-custom{ background:linear-gradient(135deg,#0e7490 0%,#6d5bd0 55%,#a78bfa 100%); color:#eef1fb; }
.flip-hint{ font-size:.8rem; opacity:.75; display:inline-flex; gap:.35rem; align-items:center; }
@media (prefers-reduced-motion: reduce){ .flip-inner{ transition:none; } }
/* Gift builder */
.gift-tile{ border:1px solid var(--hair-2); border-radius:12px; padding:10px; text-align:left; transition:border-color .2s, background .2s; background:var(--night-2); }
.gift-tile:hover{ border-color:var(--lilac); }
.gift-tile[aria-pressed="true"]{ border-color:var(--hot); background:var(--night-3); box-shadow:0 0 0 3px rgba(255,94,163,.18); }
.gift-mini{ aspect-ratio:1.55; border-radius:10px; position:relative; overflow:hidden; display:flex; align-items:flex-end; padding:8px 10px; font-weight:800; font-size:.8rem; }
.amt{ height:38px; padding:0 1rem; border-radius:999px; border:1px solid var(--line); font-weight:700; }
.amt[aria-pressed="true"]{ background:var(--hot); color:#070811; border-color:var(--hot); }
textarea.fx{ width:100%; min-height:96px; border-radius:10px; background:var(--night-2); border:1px solid var(--line); padding:.8rem 1rem; color:var(--text); outline:none; font-size:15px; resize:vertical; }
textarea.fx:focus{ border-color:var(--hot); box-shadow:0 0 0 3px rgba(255,94,163,.18); }
/* About */
.about-img{ border-radius:14px; overflow:hidden; }

/* Gift card designs */
.gc-ribbon-v,.gc-ribbon-h{ position:absolute; z-index:0; background:linear-gradient(90deg,rgba(255,255,255,.35),rgba(255,255,255,.8) 50%,rgba(255,255,255,.35)); box-shadow:0 0 0 1px rgba(0,0,0,.05); }
.gc-ribbon-v{ top:0; bottom:0; right:20%; width:16px; }
.gc-ribbon-h{ left:0; right:0; top:52%; height:16px; background:linear-gradient(180deg,rgba(255,255,255,.35),rgba(255,255,255,.8) 50%,rgba(255,255,255,.35)); }
.gc-bow{ position:absolute; z-index:1; width:64px; height:40px; right:calc(20% + 8px); top:calc(52% + 8px); transform:translate(50%,-50%); }
.gc-bow::before,.gc-bow::after{ content:""; position:absolute; top:4px; width:30px; height:30px; border-radius:60% 60% 60% 10%; border:5px solid rgba(255,255,255,.92); background:rgba(255,255,255,.18); }
.gc-bow::before{ left:0; transform:rotate(-38deg); } .gc-bow::after{ right:0; transform:scaleX(-1) rotate(-38deg); }
.gc-bow i{ position:absolute; left:50%; top:50%; width:14px; height:14px; margin:-7px; border-radius:5px; background:#fff; box-shadow:0 2px 6px rgba(0,0,0,.2); z-index:2; }
.gc-confetti{ position:absolute; inset:0; z-index:-1; opacity:.9;
  background-image:radial-gradient(circle,#fff 2px,transparent 2.5px),radial-gradient(circle,#a78bfa 2.5px,transparent 3px),radial-gradient(circle,#070811 1.5px,transparent 2px),radial-gradient(circle,#ffe0f0 3px,transparent 3.5px);
  background-size:46px 46px,62px 62px,38px 38px,80px 80px; background-position:0 0,20px 30px,10px 18px,40px 8px; }
.gc-content{ position:relative; z-index:2; display:flex; flex-direction:column; height:100%; }
.gift-chip{ display:inline-flex; align-items:center; gap:.45rem; height:36px; padding:0 1rem; border-radius:999px; border:1px solid var(--line); font-weight:600; font-size:.92rem; white-space:nowrap; transition:all .2s; }
.gift-chip:hover{ border-color:var(--lilac); }
.gift-chip[aria-pressed="true"]{ background:var(--hot); color:#070811; border-color:var(--hot); }
.flip.auto-hint .flip-inner{ transition-duration:1s; }

/* Event page */
.ev-hero{ position:relative; overflow:hidden; isolation:isolate; }
.ev-hero .backdrop{ position:absolute; inset:-40px; z-index:-2; filter:blur(40px) saturate(1.2); opacity:.55; }
.ev-hero .backdrop img{ width:100%; height:100%; object-fit:cover; }
.ev-hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(7,8,17,.55),var(--night) 92%); }
[data-theme="light"] .ev-hero::after{ background:linear-gradient(180deg,rgba(246,247,251,.55),var(--night) 92%); }
.ev-panel{ background:var(--night-2); border:1px solid var(--hair); border-radius:14px; }
.ev-fact{ background:var(--night-2); border:1px solid var(--hair); border-radius:12px; padding:10px 12px; }
.ev-fact dt{ font-size:.8rem; color:var(--muted); }
.ev-fact dd{ font-weight:700; margin-top:2px; }
.policy{ border-bottom:1px solid var(--line); }
.policy summary{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.85rem 0; font-weight:700; font-size:15px; }
.icon-btn{ height:34px; padding:0 12px; border-radius:999px; border:1px solid var(--hair-2); display:inline-flex; align-items:center; gap:.45rem; font-weight:600; font-size:.84rem; }
.icon-btn:hover{ border-color:var(--text); }
.icon-btn[aria-pressed="true"]{ color:var(--accent); border-color:var(--accent); }
.share-menu{ position:absolute; right:0; top:42px; background:var(--paper); color:#0b1020; border-radius:12px; padding:6px; width:210px; box-shadow:0 20px 40px -12px rgba(0,0,0,.5); z-index:20; }
.share-menu a,.share-menu button{ display:flex; width:100%; padding:10px 12px; border-radius:10px; font-weight:600; font-size:.9rem; }
.share-menu a:hover,.share-menu button:hover{ background:#eceef6; }
.seller{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 12px; border-radius:10px; border:1px solid var(--hair-2); font-size:14px; }
.seller:hover{ border-color:var(--hot); }
.ev-mobilebar{ display:none; }
@media (max-width:1023px){ body.evt .ev-mobilebar{ display:flex; position:fixed; left:0; right:0; bottom:0; z-index:55; padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px)); background:color-mix(in srgb,var(--night) 92%,transparent); backdrop-filter:blur(14px); border-top:1px solid var(--line); align-items:center; justify-content:space-between; gap:12px; }
}

/* Genuine store badges (from enjoyevents.uk) with text fallback */
.store-badge{ display:inline-flex; height:44px; border-radius:9px; transition:transform .2s; }
.store-badge:hover{ transform:translateY(-2px); }
.store-badge img{ height:44px; width:auto; }
.store-badge img + .badge-fallback{ display:none; }
.badge-fallback{ height:44px; padding:0 1.1rem; border-radius:9px; background:#000; color:#fff; display:inline-flex; flex-direction:column; justify-content:center; }
/* Social sign-in (Google + Apple brand rules: white/neutral Google button, black Apple button) */
.or-rule{ display:flex; align-items:center; gap:14px; color:var(--muted); font-size:.85rem; }
.or-rule::before,.or-rule::after{ content:""; flex:1; height:1px; background:var(--line); }
.sso{ display:flex; align-items:center; justify-content:center; gap:12px; width:100%; height:44px; border-radius:999px; font-family:Roboto,Inter,system-ui,sans-serif; font-weight:500; font-size:15px; transition:filter .2s, box-shadow .2s; }
.sso img{ width:20px; height:20px; object-fit:contain; }
.sso-google{ background:#ffffff; color:#1f1f1f; border:1px solid #747775; }
.sso-google:hover{ box-shadow:0 1px 3px rgba(0,0,0,.3); }
.sso-apple{ background:#000000; color:#ffffff; border:1px solid #000; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text",Inter,sans-serif; }
[data-theme="dark"] .sso-apple, :root:not([data-theme="light"]) .sso-apple{ border-color:#3a3f5c; }
.sso-apple:hover,.sso-google:hover{ filter:brightness(.97); }

/* Explore by country: buttons with a capital photo behind frosted glass */
.country-btn{ position:relative; display:flex; align-items:center; gap:10px; height:60px; padding:0 12px; border-radius:14px; overflow:hidden; isolation:isolate; color:#fff; box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.country-btn .ct-bg{ position:absolute; inset:0; z-index:-3; background:var(--g); background-size:cover; background-position:center; transition:transform .8s cubic-bezier(.2,.75,0,1); }
.country-btn:hover .ct-bg{ transform:scale(1.08); }
.country-btn .ct-glass{ position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,.12) 45%,rgba(0,0,0,0) 70%); }
.country-btn:hover .ct-glass{ background:linear-gradient(90deg,rgba(191,30,116,.5),rgba(0,0,0,0) 60%); }
.ct-flag{ width:26px; height:18px; object-fit:cover; border-radius:4px; box-shadow:0 0 0 1px rgba(255,255,255,.45),0 2px 6px rgba(0,0,0,.35); flex:none; }
.ct-flag-emoji{ font-size:20px; line-height:1; flex:none; }
.country-btn .name{ font-weight:700; font-size:15px; text-shadow:0 1px 3px rgba(0,0,0,.8),0 0 12px rgba(0,0,0,.45); flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.country-btn .ct-count{ font-size:.75rem; font-weight:700; min-width:26px; height:24px; padding:0 8px; border-radius:999px; display:inline-grid; place-items:center;
  background:rgba(0,0,0,.5); border:1px solid rgba(255,255,255,.25); }

/* Home hero: photo behind everything, slowly zooming in and out */
.hero-has-photo{ isolation:isolate; }
.hero-photo{ position:absolute; inset:0; z-index:-2; overflow:hidden; }
.hero-photo img{ width:100%; height:100%; object-fit:cover; object-position:center; transform-origin:50% 45%; animation:heroZoom 22s ease-in-out infinite alternate; }
@keyframes heroZoom{ from{ transform:scale(1); } to{ transform:scale(1.14); } }
.hero-photo-shade{ position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg,rgba(7,8,17,.78) 0%,rgba(7,8,17,.84) 55%,var(--night) 100%); }
[data-theme="light"] .hero-photo-shade{ background:linear-gradient(180deg,rgba(246,247,251,.9) 0%,rgba(246,247,251,.92) 55%,var(--night) 100%); }
.hero-has-photo > .absolute.rounded-full{ z-index:-1; }
@media (prefers-reduced-motion: reduce){ .hero-photo img{ animation:none; } }
/* Pages */
.lang-menu{ background:var(--paper); color:var(--ink); border-radius:14px; box-shadow:0 20px 40px -12px rgba(0,0,0,.5); }
@media (prefers-reduced-motion: reduce){ .ticker{ animation:none; } *{ transition-duration:.01ms!important; } }
/* Members pre-sale row (shows only while a show is in pre-sale) */
.presale{ background:var(--night-2); border:1px solid rgba(255,94,163,.3); color:var(--text); position:relative; isolation:isolate; }
.presale::after{ content:""; display:none; position:absolute; inset:0; z-index:-1; opacity:.18; background:repeating-radial-gradient(circle at 110% -10%,transparent 0 22px,rgba(255,255,255,.5) 22px 23px); pointer-events:none; }
.presale .mute{ color:#d6cfe6; }
.presale .btn-light{ background:#eef1fb; color:#070811; } .presale .btn-light:hover{ background:var(--hot); }
.presale .btn-ghost{ border-color:rgba(255,255,255,.3); color:#eef1fb; } .presale .btn-ghost:hover{ border-color:#fff; }
.presale-card{ background:rgba(7,8,17,.55); border:1px solid rgba(255,255,255,.12); transition:border-color .2s, background .2s; }
.presale-card:hover{ border-color:rgba(255,142,199,.6); background:rgba(7,8,17,.7); }
/* Month tabs (Upcoming events) */
.month-tile{ border:1px solid var(--line-ink); border-radius:18px; text-align:left; transition:background .2s, color .2s, border-color .2s; }
.month-tile:hover{ border-color:var(--ink); }
.month-tile .mt-count{ color:var(--brand); }
.month-tile[aria-pressed="true"]{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.month-tile[aria-pressed="true"] .mt-count{ color:var(--hot); }
/* Sold out veil on event pictures (same as the live site) */
.so-veil{ position:absolute; inset:0; z-index:2; display:grid; place-items:center; background:rgba(7,8,17,.55); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.so-veil span{ padding:.4rem .9rem; border-radius:999px; border:1px solid rgba(255,255,255,.35); background:rgba(0,0,0,.45); color:#fff; font-size:.72rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.btn-off{ border:1px solid var(--line); color:var(--muted); cursor:default; }
/* ═══ v15 ═══ */
.grad-text{ background:var(--grad-sig); -webkit-background-clip:text; background-clip:text; color:transparent; }
[data-theme="light"] .grad-text{ background:linear-gradient(100deg,#bf1e74,#ff5ea3 55%,#7c5ce0); -webkit-background-clip:text; background-clip:text; }
/* Three-part search (what / where / when) */
.sbar{ box-shadow:0 18px 40px -22px rgba(0,0,0,.55); }
.sfield{ display:flex; flex-direction:column; justify-content:center; min-width:0; padding:4px 16px; height:52px; position:relative; }
.sfield .slab{ font-size:11px; font-weight:700; letter-spacing:.02em; opacity:.6; }
.sfield input,.sfield select{ background:transparent; outline:none; border:0; font-weight:600; font-size:15px; color:inherit; width:100%; min-width:0; padding:0; }
.sfield select{ -webkit-appearance:none; appearance:none; cursor:pointer; padding-right:18px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16' fill='none' stroke='%23727a92' stroke-width='2.2'><path d='m3 6 5 5 5-5'/></svg>") no-repeat right center; }
.sfield option{ color:#0b1020; }
@media (min-width:640px){ .sdiv::before{ content:""; position:absolute; left:0; top:12px; bottom:12px; width:1px; background:currentColor; opacity:.14; } }
.hdr-search{ height:36px; border-radius:999px; border:1px solid var(--hair-2); background:color-mix(in srgb,var(--night-2) 70%,transparent); }
.hdr-search:focus-within{ border-color:rgba(255,255,255,.4); }
/* Event cards: one look everywhere */
.ev-card{ display:flex; flex-direction:column; background:var(--night-2); border:1px solid var(--hair); border-radius:14px; overflow:hidden; transition:border-color .2s, transform .25s; }
.ev-card:hover{ border-color:rgba(255,255,255,.22); transform:translateY(-2px); }
.light .ev-card{ background:#fff; border-color:var(--line-ink); }
.light .ev-card .text-spot{ color:var(--brand); }
.ev-pill{ position:absolute; z-index:3; top:10px; height:26px; padding:0 9px; border-radius:999px; display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; white-space:nowrap; }
.ev-pill.date{ left:10px; background:#fff; color:#0b1020; }
.ev-pill.hot{ right:12px; background:var(--grad-sig); color:#070811; }
.ev-go{ display:inline-flex; align-items:center; gap:4px; font-size:.875rem; font-weight:700; color:var(--accent); white-space:nowrap; }
.light .ev-go{ color:var(--brand); }
.ev-card:hover .ev-go svg{ transform:translateX(3px); } .ev-go svg{ transition:transform .25s; }
.flag-sm{ width:18px; height:13px; border-radius:3px; object-fit:cover; box-shadow:0 0 0 1px rgba(0,0,0,.12); }
/* Month + day picker */
.month-tile[aria-pressed="true"]{ background:var(--brand); color:#fff; border-color:var(--brand); box-shadow:0 14px 30px -16px rgba(191,30,116,.8); }
.month-tile[aria-pressed="true"] .mt-count{ color:#ffd3e8; }
.day-tile{ position:relative; border:1px solid var(--line-ink); border-radius:16px; text-align:center; transition:background .2s,color .2s,border-color .2s; background:#fff; }
.day-tile:hover{ border-color:var(--ink); }
.day-tile[aria-pressed="true"]{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.day-tile .cnt{ position:absolute; top:-7px; right:-7px; min-width:20px; height:20px; padding:0 5px; border-radius:999px; background:var(--brand); color:#fff; font-size:11px; font-weight:800; display:grid; place-items:center; box-shadow:0 0 0 3px var(--paper); }
/* Category tiles */
.vibe-tile{ position:relative; display:block; border-radius:14px; overflow:hidden; isolation:isolate; color:#fff; }
.vibe-tile::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(7,8,17,.05) 0%,rgba(7,8,17,.2) 35%,rgba(7,8,17,.82) 62%,rgba(7,8,17,.97) 100%); transition:background .3s; }
.vibe-tile:hover::after{ background:linear-gradient(180deg,rgba(191,30,116,.08) 0%,rgba(94,15,60,.35) 35%,rgba(60,10,40,.88) 62%,rgba(7,8,17,.97) 100%); }
.vibe-tile .vt-body{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:16px 18px; }
.vibe-tile .vt-arrow{ position:absolute; z-index:2; top:12px; right:12px; width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:rgba(7,8,17,.45); border:1px solid rgba(255,255,255,.3); transition:background .25s, transform .25s; }
.vibe-tile:hover .vt-arrow{ background:var(--hot); color:#070811; transform:rotate(-45deg); }
/* Events page: category tabs with an underline */
.utabs{ display:flex; gap:1.6rem; border-bottom:1px solid var(--line); }
.utabs button{ padding:.85rem 0 .7rem; font-weight:600; color:var(--muted); border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap; transition:color .2s,border-color .2s; }
.utabs button:hover{ color:var(--text); }
.utabs button[aria-pressed="true"]{ color:var(--text); border-color:var(--hot); }
.chip-sep{ width:1px; align-self:stretch; margin:6px 4px; background:var(--line); flex:none; }
@media (max-width:767px){ .fbar{ position:static; } }
.sec-link{ display:inline-flex; align-items:center; gap:5px; font-size:.875rem; font-weight:700; color:var(--accent); white-space:nowrap; }
.sec-link:hover{ text-decoration:underline; text-underline-offset:3px; }
.ev-datepill{ display:inline-flex; align-items:center; gap:8px; height:28px; padding:0 12px; border-radius:999px; background:var(--hot); color:#070811; font-weight:700; font-size:.82rem; }
/* ═══ v16 ═══ */
.ev-pills{ position:absolute; z-index:3; top:12px; left:12px; right:56px; display:flex; flex-wrap:wrap; gap:6px; pointer-events:none; }
.ev-pills .ev-pill{ position:static; }
.ev-heart{ position:absolute; z-index:4; top:8px; right:8px; width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:rgba(7,8,17,.6); color:#fff; border:1px solid rgba(255,255,255,.22); opacity:.7; transition:transform .2s, background .2s, color .2s, opacity .2s; }
.ev-heart svg{ width:14px; height:14px; }
.ev-heart:hover{ transform:scale(1.08); opacity:1; }
.ev-card:hover .ev-heart,.ev-heart[aria-pressed="true"]{ opacity:1; }
.ev-heart[aria-pressed="true"]{ background:var(--hot); color:#070811; border-color:var(--hot); }
.ev-heart[aria-pressed="true"] svg, .icon-btn[aria-pressed="true"] svg{ fill:currentColor; }
.hdr-saved{ position:relative; }
.hdr-saved .n{ position:absolute; top:-5px; right:-5px; min-width:19px; height:19px; padding:0 5px; border-radius:999px; background:var(--hot); color:#070811; font-size:10.5px; font-weight:800; display:grid; place-items:center; box-shadow:0 0 0 2px var(--night); }
.hdr-saved .n[hidden]{ display:none; }
/* Tours */
.tour-tile{ position:relative; display:block; border-radius:24px; overflow:hidden; isolation:isolate; color:#fff; }
.tour-tile::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(7,8,17,.05) 0%,rgba(7,8,17,.15) 30%,rgba(7,8,17,.85) 64%,rgba(7,8,17,.97) 100%); transition:background .3s; }
.tour-tile:hover::after{ background:linear-gradient(180deg,rgba(191,30,116,.1) 0%,rgba(94,15,60,.3) 30%,rgba(60,10,40,.9) 64%,rgba(7,8,17,.97) 100%); }
.tour-tile .tt-body{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:20px; }
.tour-tile .vt-arrow{ position:absolute; z-index:2; top:14px; right:14px; width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:rgba(7,8,17,.45); border:1px solid rgba(255,255,255,.3); transition:background .25s, transform .25s; }
.tour-tile:hover .vt-arrow{ background:var(--hot); color:#070811; transform:rotate(-45deg); }
.tour-row{ display:grid; grid-template-columns:96px minmax(0,1fr) auto; gap:12px; align-items:center; min-height:40px; padding:6px 12px; border-radius:10px; border:1px solid var(--hair); background:var(--night-2); transition:border-color .2s, background .2s; }
.tour-row:hover{ border-color:rgba(255,255,255,.22); background:var(--night-3); }
.light .tour-row{ background:#fff; border-color:var(--line-ink); }
.tr-date{ font-size:13px; font-weight:800; line-height:1.2; white-space:nowrap; }
.light .tr-date{ color:#0b1020; }
/* Tour map */
.tour-map{ background:#0e101c; border:1px solid var(--line); z-index:0; }
[data-theme="light"] .tour-map{ background:#e9ecf3; }
.leaflet-container{ font-family:"Inter",system-ui,sans-serif; }
.leaflet-popup-content-wrapper{ border-radius:16px; background:var(--paper); color:#0b1020; box-shadow:0 20px 40px -12px rgba(0,0,0,.5); }
.leaflet-popup-tip{ background:var(--paper); }
.leaflet-popup-content{ margin:14px 16px; min-width:220px; }
.mp-t{ font-weight:800; font-size:16px; display:flex; align-items:center; gap:8px; }
.mp-s{ color:#475569; font-size:13px; margin-top:1px; }
.mp ul{ margin:10px 0 12px; padding:0; list-style:none; }
.mp li{ display:flex; justify-content:space-between; gap:12px; font-size:13px; padding:4px 0; border-top:1px solid #eceef6; }
.mp li a{ font-weight:700; color:#0b1020; } .mp li span{ color:#475569; white-space:nowrap; }
.mp-all{ font-weight:800; font-size:13px; color:#bf1e74 !important; }
.leaflet-bar a,.leaflet-bar a:hover{ background:var(--night-2); color:var(--text); border-color:var(--line); }
.leaflet-control-attribution{ background:rgba(7,8,17,.55) !important; color:#a7adc4 !important; font-size:10px; }
.leaflet-control-attribution a{ color:#ff8ec7 !important; }
.leaflet-tooltip{ background:#0b1020; color:#fff; border:0; border-radius:10px; font-weight:700; padding:5px 9px; box-shadow:0 8px 20px rgba(0,0,0,.35); }
.leaflet-tooltip-top:before{ border-top-color:#0b1020; }
/* Past events */
.past-card .photo{ filter:saturate(.75); }
.past-card:hover .photo{ filter:none; }
.stat-tile{ border-radius:14px; padding:16px; background:color-mix(in srgb,var(--night-2) 70%,transparent); border:1px solid var(--hair); }
/* Enjoy Radio strip (always dark, like the radio app) */
.radio-band{ background:radial-gradient(520px 220px at 96% 0%,rgba(191,30,116,.28),transparent 65%),#0e101c; color:#eef1fb; border:1px solid rgba(255,255,255,.08); }
.radio-band .mute{ color:#c4bfd6; }
.radio-band .grad-text{ background:var(--grad-sig); -webkit-background-clip:text; background-clip:text; color:transparent; }
.onair{ display:inline-flex; align-items:center; gap:7px; height:28px; padding:0 11px; border-radius:999px; background:rgba(255,94,163,.14); border:1px solid rgba(255,94,163,.4); font-size:12px; font-weight:700; color:#ffd3e8; white-space:nowrap; }
.onair .dot{ width:7px; height:7px; border-radius:50%; background:#ff3d8b; box-shadow:0 0 0 0 rgba(255,61,139,.7); animation:onair 1.6s infinite; }
@keyframes onair{ 70%{ box-shadow:0 0 0 8px rgba(255,61,139,0); } 100%{ box-shadow:0 0 0 0 rgba(255,61,139,0); } }
.r-play{ width:44px; height:44px; border-radius:50%; flex:none; display:grid; place-items:center; background:var(--brand); color:#fff; transition:transform .2s; }
.r-play:hover{ transform:scale(1.06); }
.r-play .i-stop,.r-play .i-load{ display:none; } .r-play.playing .i-play{ display:none; } .r-play.playing .i-stop{ display:block; }
.r-play.loading .i-play,.r-play.loading .i-stop{ display:none; } .r-play.loading .i-load{ display:block; width:22px; height:22px; border-radius:50%; border:3px solid rgba(255,255,255,.35); border-top-color:#fff; animation:rspin .8s linear infinite; }
@keyframes rspin{ to{ transform:rotate(360deg); } }
.r-wave{ display:block; width:100%; height:36px; }
.rb-badges .store-badge,.rb-badges .store-badge img,.rb-badges .badge-fallback{ height:36px; border-radius:8px; }
@media (prefers-reduced-motion: reduce){ .onair .dot{ animation:none; } }
.r-mini{ position:fixed; left:16px; bottom:calc(16px + env(safe-area-inset-bottom,0px)); z-index:61; display:flex; align-items:center; gap:10px; padding:8px 10px 8px 8px; border-radius:999px; background:#0e101c; color:#eef1fb; border:1px solid rgba(255,94,163,.45); box-shadow:0 18px 40px -12px rgba(0,0,0,.6); max-width:min(330px,calc(100vw - 32px)); opacity:0; pointer-events:none; transform:translateY(24px); transition:transform .35s cubic-bezier(.2,.75,0,1), opacity .25s; }
.r-mini.show{ opacity:1; pointer-events:auto; transform:none; }
.r-mini button{ width:34px; height:34px; border-radius:50%; flex:none; display:grid; place-items:center; background:var(--brand); color:#fff; }
@media (max-width:1023px){ .r-mini{ bottom:calc(76px + env(safe-area-inset-bottom,0px)); } }
@media (prefers-reduced-motion: reduce){ .onair .dot,.playing-on .eq i{ animation:none; } }
/* Footer (v16) */
.site-footer{ position:relative; overflow:hidden; background:var(--night); border-top:1px solid var(--hair); }
.soc{ width:36px; height:36px; border-radius:50%; display:grid; place-items:center; border:1px solid var(--hair-2); color:var(--text); transition:background .2s, color .2s, border-color .2s, transform .2s; }
.soc:hover{ background:var(--hot); color:#070811; border-color:var(--hot); transform:translateY(-2px); }
.ft-radio{ display:inline-flex; align-items:center; gap:12px; padding:8px 12px 8px 10px; border-radius:12px; border:1px solid var(--hair-2); background:color-mix(in srgb,var(--night-2) 80%,transparent); max-width:320px; transition:border-color .2s; }
.ft-radio:hover{ border-color:var(--hot); }
.ft-radio-go{ margin-left:auto; width:26px; height:26px; border-radius:50%; display:grid; place-items:center; background:var(--brand); color:#fff; flex:none; }
.ft-h{ font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:12px; }
.ft-list li + li{ margin-top:8px; }
.ft-list a{ font-weight:500; font-size:14.5px; color:var(--text); opacity:.85; transition:color .2s, opacity .2s; }
.ft-list a:hover{ opacity:1; color:var(--accent); }
.ft-word{ font-family:"Bricolage Grotesque",sans-serif; font-weight:800; letter-spacing:-.04em; line-height:.9; font-size:clamp(2rem,5.5vw,4rem); white-space:nowrap; text-align:center; margin:36px 0 14px; padding-bottom:.1em; user-select:none;
  background:linear-gradient(180deg,rgba(255,94,163,.28) 0%,rgba(255,94,163,.06) 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
[data-theme="light"] .ft-word{ background:linear-gradient(180deg,rgba(191,30,116,.22) 0%,rgba(191,30,116,.04) 100%); -webkit-background-clip:text; background-clip:text; }
.ft-top{ display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 12px; border-radius:999px; border:1px solid var(--hair-2); color:var(--text); font-weight:600; font-size:13px; }
.ft-top:hover{ border-color:var(--hot); color:var(--accent); }

/* ── Laravel site additions (stage 1, 21 Oct 2026) ── */
/* announcements marquee (fix 66) sits inside the sticky header: no extra top padding on <main> */
body.has-ee-mq > main{ padding-top:0 !important; }
/* the real sold-out veil partial (front/partials/_soldout-veil) inside a v16 art block: under the pills and the heart */
.art .ee-soldout-veil{ z-index:2 !important; }
/* user menu (signed in) */
.user-menu{ background:var(--paper); color:#0b1020; border-radius:12px; padding:6px; width:230px; box-shadow:0 20px 40px -12px rgba(0,0,0,.5); z-index:60; }
.user-menu a,.user-menu button{ display:flex; width:100%; padding:10px 12px; border-radius:10px; font-weight:600; font-size:.9rem; text-align:left; }
.user-menu a:hover,.user-menu button:hover{ background:#eceef6; }
.user-menu .um-head{ padding:10px 12px 8px; border-bottom:1px solid #eceef6; margin-bottom:4px; }
.lang-menu a{ display:flex; justify-content:space-between; align-items:center; padding:0 12px; height:40px; border-radius:10px; font-size:.9rem; font-weight:600; }
.lang-menu a:hover,.lang-menu a[aria-current="true"]{ background:#eceef6; }
.avatar{ width:32px; height:32px; border-radius:50%; object-fit:cover; background:var(--night-3); }
/* hero deck on phones: the deck sits under the text */
@media (max-width:1023px){ .deck{ height:440px; } }
/* month / day panels */
[data-month-panel][hidden],[data-days-panel][hidden],[data-near-panel][hidden]{ display:none; }
.day-tile[hidden]{ display:none; }
/* partner logos (site config sponsors row) */
.partner-tile{ height:64px; border-radius:10px; background:var(--night-2); display:grid; place-items:center; padding:10px 14px; border:1px solid var(--hair); transition:border-color .2s, transform .2s; }
.partner-tile:hover{ border-color:var(--brand); transform:translateY(-2px); }
.partner-tile img{ max-height:36px; max-width:100%; width:auto; object-fit:contain; }
/* mini radio player: clear of the WhatsApp float (bottom-left) */
.r-mini{ left:auto; right:16px; }
@media (max-width:1023px){ .r-mini{ right:16px; bottom:calc(84px + env(safe-area-inset-bottom,0px)); } }

/* ── stage 2 (21 Oct 2026): events list, tour view, event page, past events, artist page ── */
[hidden]{ display:none !important; }                       /* Tailwind's display utilities used to beat the hidden attribute */
body.has-ee-mq > main#main{ padding-top:0 !important; }     /* the marquee's own <style> (108px for the old fixed header) comes after site.css: the id wins */
.utabs a{ display:inline-block; padding:.85rem 0 .7rem; font-weight:600; color:var(--muted); border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap; transition:color .2s,border-color .2s; }
.utabs a:hover{ color:var(--text); }
.utabs a[aria-current="true"]{ color:var(--text); border-color:var(--hot); }
a.chip{ display:inline-flex; align-items:center; }
.chip[aria-current="true"]{ background:var(--hot); color:var(--on-pink); border-color:var(--hot); }
.chip .n{ font-size:.75rem; opacity:.7; margin-left:.35rem; font-weight:600; }
.ev-card .ev-when{ display:none; }
/* List view on the events page: every card becomes a row (art left, text right), the pills and the footer go */
.ev-list{ display:grid !important; grid-template-columns:1fr !important; gap:10px !important; padding-top:1.5rem !important; }
.ev-list .ev-card{ display:grid !important; grid-template-columns:120px minmax(0,1fr) !important; border-radius:12px !important; }
.ev-list .ev-card .art{ aspect-ratio:auto !important; min-height:96px; height:100%; }
.ev-list .ev-card .art .ev-pill, .ev-list .ev-card .art .ev-heart{ display:none !important; }
.ev-list .ev-card .ev-foot{ display:none !important; }
.ev-list .ev-card .ev-when{ display:inline; }
.ev-list .ev-card .ev-body{ padding:10px 14px !important; justify-content:center; }
@media (min-width:640px){ .ev-list .ev-card{ grid-template-columns:160px minmax(0,1fr) !important; } .ev-list .ev-card .art{ min-height:104px; } }
/* Laravel pager in v16's look */
.pager{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.4rem; margin-top:2rem; }
.pager a,.pager span{ height:36px; min-width:36px; padding:0 .8rem; border-radius:999px; font-weight:600; font-size:14px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--hair-2); }
.pager a:hover{ border-color:var(--text); }
.pager [aria-current="page"]{ background:var(--text); color:var(--ink); border-color:var(--text); }
.pager .off{ opacity:.4; pointer-events:none; }
.pager .meta{ width:100%; text-align:center; font-size:.875rem; color:var(--muted); margin-top:.5rem; border:0; height:auto; }
/* Event description from the admin (iaBilet HTML or typed text): same rules as the previous event page, both themes */
.desc{ line-height:1.65; font-size:16px; }
.desc h1,.desc h2,.desc h3,.desc h4{ font-weight:700; margin:1rem 0 .5rem; }
.desc a{ color:var(--accent); text-decoration:underline; }
.desc p{ margin:.6rem 0; } .desc ul,.desc ol{ margin:.6rem 0 .6rem 1.2rem; list-style:disc; }
.desc img{ max-width:100%; height:auto; border-radius:10px; margin:.6rem 0; }
.desc iframe{ max-width:100%; }
[data-theme="light"] .desc a{ color:#9b1560; }
.tour-map{ background:var(--night-2); }
.ev-hero .backdrop img{ display:block; }
.artist-photo{ width:140px; height:140px; border-radius:14px; padding:2px; background:var(--brand); flex:none; }
.artist-photo img{ width:100%; height:100%; border-radius:12px; object-fit:cover; display:block; background:var(--night-2); }
.chip-row{ display:flex; flex-wrap:wrap; gap:.5rem; }

/* ── stage 3 (21 Oct 2026): membership, rewards, gift cards, about, contact, support, sponsor, policies, auth, member account ── */
.field textarea{ width:100%; min-height:120px; border-radius:10px; background:var(--night-2); border:1px solid var(--line); padding:.8rem 1rem; color:var(--text); outline:none; font-size:15px; resize:vertical; transition:border-color .2s, box-shadow .2s; }
.field textarea:focus{ border-color:var(--hot); box-shadow:0 0 0 3px rgba(255,94,163,.18); }
.field select{ -webkit-appearance:none; appearance:none; padding-right:2.4rem; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16' fill='none' stroke='%23a7adc4' stroke-width='2.2'><path d='m3 6 5 5 5-5'/></svg>"); background-repeat:no-repeat; background-position:right 1rem center; }
.field select option{ color:#0b1020; background:#fff; }
.field input[readonly]{ color:var(--muted); background:color-mix(in srgb,var(--night-2) 60%,transparent); }
.field input[type=file]{ padding:.6rem 1rem; height:auto; line-height:1.4; }
.field input[type=file]::file-selector-button{ border:0; border-radius:999px; padding:.35rem .9rem; margin-right:.8rem; font-weight:700; background:var(--text); color:var(--ink); cursor:pointer; }
.field.bad textarea,.field.bad select{ border-color:var(--accent); }
.field .err.on{ display:block; }
.light .field input,.light .field select,.light .field textarea{ background:#fff; color:#0b1020; border-color:var(--line-ink); }
.light .field label{ color:#0b1020; }
.light .field select{ background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16' fill='none' stroke='%23475569' stroke-width='2.2'><path d='m3 6 5 5 5-5'/></svg>"); }
.field-note{ font-size:.8rem; color:var(--muted); margin-top:.35rem; }
.hp{ position:absolute; left:-9999px; top:-9999px; height:0; width:0; overflow:hidden; }
/* generic panels */
.panel{ background:var(--night-2); border:1px solid var(--hair); border-radius:14px; }
.panel-hot{ border-color:rgba(255,94,163,.4); background:var(--night-2); }
.light .panel{ background:#fff; border-color:var(--line-ink); }
.pill{ display:inline-flex; align-items:center; gap:.35rem; height:26px; padding:0 10px; border-radius:999px; font-size:12px; font-weight:700; white-space:nowrap; border:1px solid var(--line); color:var(--muted); }
.pill-ok{ background:rgba(16,185,129,.14); color:#6ee7b7; border-color:rgba(16,185,129,.35); }
.pill-warn{ background:rgba(251,146,60,.14); color:#fdba74; border-color:rgba(251,146,60,.35); }
.pill-hot{ background:var(--grad-sig); color:#070811; border-color:transparent; }
.pill-info{ background:rgba(167,139,250,.14); color:#c4b5fd; border-color:rgba(167,139,250,.35); }
.pill-off{ background:rgba(255,255,255,.04); color:var(--muted); }
[data-theme="light"] .pill-ok{ color:#047857; } [data-theme="light"] .pill-warn{ color:#c2410c; } [data-theme="light"] .pill-info{ color:#5b21b6; }
.code{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.08em; }
.copy-btn{ height:32px; padding:0 12px; border-radius:999px; border:1px solid var(--line); font-size:.8rem; font-weight:700; }
.copy-btn:hover{ border-color:var(--text); }
.num-badge{ display:inline-grid; place-items:center; width:40px; height:40px; border-radius:12px; background:var(--grad-sig); color:#070811; font-weight:800; }
/* membership page */
.plan-cta[disabled]{ opacity:.55; cursor:not-allowed; }
.modal-veil{ position:fixed; inset:0; z-index:90; background:rgba(2,4,12,.72); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); align-items:center; justify-content:center; padding:20px; }
.modal-box{ max-width:440px; width:100%; background:var(--night-2); border:1px solid var(--hair-2); border-radius:14px; padding:22px; box-shadow:0 30px 80px -20px rgba(0,0,0,.8); color:var(--text); }
.light .night-tile:not([aria-pressed="true"]),.night-tile.on-light:not([aria-pressed="true"]){ background:#fff; }
.calc-card{ box-shadow:0 30px 60px -30px rgba(27,16,48,.35); }
.faq details{ border-top:1px solid var(--line); }
.faq details:last-child{ border-bottom:1px solid var(--line); }
.faq summary{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.85rem 0; font-weight:700; font-size:15px; }
.faq .plus{ width:24px; height:24px; border-radius:50%; border:1px solid var(--hair-2); font-size:14px; display:grid; place-items:center; flex:none; }
.faq p{ color:var(--muted); padding-bottom:.9rem; max-width:64ch; font-size:14.5px; line-height:1.6; }
.light .faq details{ border-color:var(--line-ink); } .light .faq p{ color:var(--ink-mute); }
.meter-dark{ background:rgba(255,255,255,.1); }
/* gift cards */
.gift-gallery .flip-inner{ min-height:0; }
.gift-card-wrap{ width:100%; max-width:380px; }
.light .gift-chip{ border-color:var(--line-ink); } .light .gift-chip[aria-pressed="true"]{ background:var(--brand); color:#fff; border-color:var(--brand); }
.cur-btn{ height:38px; padding:0 1rem; border-radius:999px; border:1px solid var(--line); font-weight:700; }
.cur-btn.on{ background:var(--hot); color:#070811; border-color:var(--hot); }
.gift-code-input{ text-transform:uppercase; letter-spacing:.14em; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
/* about */
.about-card .photo{ transition:opacity 1.1s ease, transform .8s cubic-bezier(.2,.75,0,1); }
.about-card .ac-media.multi .photo{ opacity:0; } .about-card .ac-media.multi .photo.on{ opacity:1; }
.ac-dots{ position:absolute; left:0; right:0; bottom:11px; z-index:3; display:flex; gap:6px; justify-content:center; }
.ac-dot{ width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.5); transition:width .35s ease, background .35s ease; }
.ac-dot.on{ width:20px; border-radius:3px; background:#ff5ea3; box-shadow:0 0 10px rgba(255,94,163,.85); }
.team-photo{ width:100%; aspect-ratio:1; border-radius:14px; object-fit:cover; background:var(--night-3); }
.value-tile{ border-radius:14px; padding:1.5rem; }
/* contact / support / sponsor */
.contact-card{ display:flex; align-items:center; gap:1rem; padding:1rem; border-radius:14px; border:1px solid var(--hair); background:var(--night-2); transition:border-color .2s; }
a.contact-card:hover{ border-color:var(--hot); }
.contact-ic{ width:40px; height:40px; border-radius:12px; display:grid; place-items:center; flex:none; }
.step-dot{ flex:0 0 36px; height:36px; border-radius:50%; background:var(--night-2); border:1px solid var(--line); display:grid; place-items:center; color:var(--hot); }
.step-line{ position:relative; padding-bottom:26px; }
.step-line::before{ content:""; position:absolute; left:17px; top:40px; bottom:4px; width:2px; background:linear-gradient(180deg,var(--line),transparent); }
.step-line:last-child{ padding-bottom:0; } .step-line:last-child::before{ display:none; }
.tier-box{ position:relative; display:flex; flex-direction:column; padding:1.25rem; border-radius:14px; border:1px solid var(--hair); background:var(--night-2); }
.tier-box.feat{ border-color:rgba(255,94,163,.5); background:var(--night-2); }
.tier-box .badge-top{ position:absolute; top:-12px; left:1.4rem; }
.tier-box li{ display:flex; gap:.6rem; padding:.3rem 0; font-size:.92rem; }
.tier-box li::before{ content:"✓"; color:var(--hot); font-weight:800; }
.err-box{ background:rgba(224,73,92,.1); border:1px solid rgba(224,73,92,.45); color:#f3aab6; border-radius:14px; padding:12px 16px; font-size:14px; }
.ok-box{ background:rgba(16,185,129,.1); border:1px solid rgba(16,185,129,.4); border-radius:14px; padding:1.6rem; text-align:center; }
.logo-strip img{ max-height:44px; width:auto; object-fit:contain; }
/* policy pages */
.policy-toc{ position:sticky; top:calc(env(safe-area-inset-top,0px) + 72px); }
.policy-toc a{ display:block; padding:.4rem 0 .4rem .9rem; border-left:2px solid var(--line); color:var(--muted); font-size:.9rem; }
.policy-toc a:hover,.policy-toc a.on{ color:var(--text); border-color:var(--hot); }
.policy-toc a.l3{ padding-left:1.6rem; font-size:.85rem; }
.legal{ line-height:1.8; font-size:15.5px; }
.legal h1,.legal h2,.legal h3,.legal h4{ font-weight:800; margin:1.8rem 0 .6rem; line-height:1.25; scroll-margin-top:90px; font-family:"Bricolage Grotesque",sans-serif; letter-spacing:-.01em; }
.legal h1{ font-size:1.7rem; } .legal h2{ font-size:1.45rem; } .legal h3{ font-size:1.2rem; } .legal h4{ font-size:1.05rem; }
.legal p{ margin:.85rem 0; } .legal ul,.legal ol{ margin:.85rem 0 .85rem 1.4rem; } .legal ul{ list-style:disc; } .legal ol{ list-style:decimal; } .legal li{ margin:.35rem 0; }
.legal a[href]{ color:var(--accent); text-decoration:underline; text-underline-offset:3px; }   /* only real links: the CMS wraps headings in bare anchors */
.legal strong,.legal b{ color:var(--text); font-weight:700; }
.legal table{ width:100%; border-collapse:collapse; margin:1rem 0; font-size:.92rem; } .legal td,.legal th{ border:1px solid var(--line); padding:8px 10px; vertical-align:top; }
.legal span,.legal p,.legal li,.legal td{ font-family:"Inter",system-ui,sans-serif !important; font-size:inherit !important; color:inherit !important; background:transparent !important; }
.legal img{ max-width:100%; height:auto; }
[data-theme="light"] .legal a[href]{ color:#9b1560; }
/* auth */
body.auth .hdr{ position:relative; }
.auth-aside-logo .logo-img{ height:40px; }
.auth-collage .art img{ display:block; width:100%; height:100%; object-fit:cover; }
.auth-form .field label{ font-size:.875rem; }
.pw-toggle{ position:absolute; right:8px; top:50%; transform:translateY(-50%); height:36px; padding:0 12px; border-radius:10px; font-size:.85rem; font-weight:700; color:var(--muted); }
.pw-toggle:hover{ color:var(--text); }
.otp-input{ width:100%; max-width:320px; margin:0 auto; display:block; text-align:center; font-size:32px; font-weight:800; letter-spacing:14px; height:64px; border-radius:16px; background:var(--night-2); border:1px solid var(--line); color:var(--text); outline:none; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.otp-input:focus{ border-color:var(--hot); box-shadow:0 0 0 3px rgba(255,94,163,.18); }
.gsi-wrap{ display:flex; justify-content:center; }
.gsi-wrap .g_id_signin{ display:flex; justify-content:center; }
.sso-apple-wrap button{ border-radius:999px !important; width:100% !important; max-width:320px; height:48px !important; font-size:15px !important; }
.sso-apple-wrap > div{ margin-top:12px !important; }
.step-list li{ display:flex; gap:.8rem; padding:.45rem 0; }
.step-list .n{ width:28px; height:28px; border-radius:50%; background:var(--grad-sig); color:#070811; font-weight:800; display:grid; place-items:center; flex:none; font-size:.85rem; }
/* member account console */
body.acct #appBand{ display:none; }
.acct-wrap{ display:grid; gap:2rem; grid-template-columns:minmax(0,1fr); }   /* minmax(0,…): the rail's chip strip must not widen the page on phones */
.acct-wrap > *{ min-width:0; }
@media (min-width:1024px){ .acct-wrap{ grid-template-columns:260px minmax(0,1fr); gap:2.5rem; } }
.rail{ position:sticky; top:calc(env(safe-area-inset-top,0px) + 72px); align-self:start; }
.rail-user{ display:flex; align-items:center; gap:12px; padding:12px; border-radius:14px; background:var(--night-2); border:1px solid var(--hair); }
.rail-avatar{ width:46px; height:46px; border-radius:50%; object-fit:cover; background:var(--grad-sig); color:#070811; font-weight:800; display:grid; place-items:center; flex:none; font-size:1rem; }
.rail-nav{ margin-top:14px; display:flex; flex-direction:column; gap:3px; }
.rail-nav a,.rail-nav .rail-h{ display:flex; align-items:center; gap:12px; padding:9px 12px; border-radius:10px; font-weight:600; color:var(--muted); transition:background .2s, color .2s; }
.rail-nav a:hover{ color:var(--text); background:var(--night-2); }
.rail-nav a[aria-current="page"]{ color:var(--text); background:var(--night-2); box-shadow:inset 3px 0 0 var(--hot); }
.rail-nav a svg{ width:18px; height:18px; flex:none; }
.rail-nav .n{ margin-left:auto; min-width:24px; height:22px; padding:0 7px; border-radius:999px; background:var(--night-3); font-size:11.5px; font-weight:800; display:grid; place-items:center; color:var(--text); }
.rail-nav a[aria-current="page"] .n{ background:var(--hot); color:#070811; }
.rail-nav .sub{ margin-left:30px; padding:7px 12px; font-size:.9rem; font-weight:500; }
.rail-h{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; font-weight:800; color:var(--faint); padding-top:14px; }
.rail-out{ margin-top:10px; }
@media (max-width:1023px){
  .rail{ position:static; }
  .rail-nav{ flex-direction:row; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; gap:6px; padding-bottom:4px; margin-left:-20px; margin-right:-20px; padding-left:20px; padding-right:20px; }
  .rail-nav::-webkit-scrollbar{ display:none; }
  .rail-nav a{ white-space:nowrap; border:1px solid var(--line); border-radius:999px; padding:8px 14px; flex:none; }
  .rail-nav a[aria-current="page"]{ background:var(--text); color:var(--ink); box-shadow:none; }
  .rail-nav a[aria-current="page"] .n{ background:var(--hot); }
  .rail-nav .rail-h,.rail-nav .sub-wrap{ display:none; }
  .rail-nav a.sub{ margin:0; font-weight:600; font-size:.9rem; }
  .rail-out{ margin-top:0; }
}
.acct-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }
.acct-crumb{ font-size:.85rem; color:var(--muted); }
.acct-crumb a:hover{ color:var(--text); }
.stat-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
@media (min-width:768px){ .stat-grid{ grid-template-columns:repeat(4,1fr); gap:16px; } }
a.stat-tile{ display:block; transition:border-color .2s, transform .25s; }
a.stat-tile:hover{ border-color:color-mix(in srgb,var(--hot) 55%,transparent); transform:translateY(-2px); }
.stat-tile .lab{ font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.stat-tile .val{ font-family:"Bricolage Grotesque",sans-serif; font-weight:800; font-size:1.6rem; line-height:1.05; margin-top:10px; letter-spacing:-.02em; }
.stat-tile .sub{ font-size:.82rem; color:var(--muted); margin-top:4px; }
.stat-tile .ic{ width:34px; height:34px; border-radius:11px; display:grid; place-items:center; background:var(--grad-sig); color:#070811; float:right; }
.stat-tile .ic svg{ width:16px; height:16px; }
/* tables that become cards on phones */
.tbl{ width:100%; border-collapse:collapse; }
.tbl th{ text-align:left; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); padding:12px 14px; border-bottom:1px solid var(--line); }
.tbl td{ padding:14px; border-bottom:1px solid var(--line); vertical-align:middle; font-size:.93rem; }
.tbl tr:last-child td{ border-bottom:0; }
.tbl tbody tr{ transition:background .2s; } .tbl tbody tr:hover{ background:var(--night-3); }
.tbl .actions{ display:flex; flex-wrap:wrap; gap:6px; }
.btn-sm{ height:34px; padding:0 .9rem; font-size:.85rem; }
.btn-xs{ height:30px; padding:0 .75rem; font-size:.8rem; }
@media (max-width:767px){
  .tbl thead{ display:none; }
  .tbl,.tbl tbody,.tbl tr,.tbl td{ display:block; width:100%; }
  .tbl tr{ border:1px solid var(--hair); border-radius:12px; margin-bottom:12px; padding:6px 4px; background:var(--night-2); }
  .tbl td{ border:0; padding:7px 12px; display:flex; justify-content:space-between; gap:12px; align-items:center; }
  .tbl td::before{ content:attr(data-th); font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); flex:none; }
  .tbl td.no-th{ display:block; } .tbl td.no-th::before{ display:none; }
  .tbl td.actions-cell{ justify-content:flex-start; } .tbl td.actions-cell::before{ display:none; }
}
.empty{ text-align:center; padding:3rem 1rem; color:var(--muted); }
.empty svg{ width:44px; height:44px; margin:0 auto 12px; opacity:.6; }
.feed-item{ display:flex; align-items:center; gap:12px; padding:12px 0; border-top:1px solid var(--line); }
.feed-item:first-of-type{ border-top:0; }
.feed-ic{ width:34px; height:34px; border-radius:11px; flex:none; display:grid; place-items:center; }
.feed-ic svg{ width:15px; height:15px; }
.seg-bar{ display:flex; height:8px; border-radius:4px; overflow:hidden; margin-top:16px; background:rgba(255,255,255,.06); }
.seg-bar i{ display:block; height:100%; }
/* the ticket (keeps the app's ticket look, white card) */
.tk{ width:100%; max-width:420px; margin:0 auto; background:#fff; color:#1a1d29; border-radius:22px; overflow:hidden; box-shadow:0 24px 60px -24px rgba(0,0,0,.7); }
.tk__strip{ display:flex; background:var(--brand); color:#fff; padding:12px 8px; }
.tk__strip.is-cancelled{ background:#5b5b66; }
.tk__slot{ flex:1; text-align:center; min-width:0; padding:0 4px; }
.tk__slot:first-child{ flex:1.7; }
.tk__slot:first-child .tk__slot-value{ white-space:normal; font-size:13.5px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.tk__slot-label{ display:block; font-size:10px; letter-spacing:1.4px; text-transform:uppercase; color:rgba(255,255,255,.72); margin-bottom:3px; }
.tk__slot-value{ display:block; font-family:"Bricolage Grotesque",sans-serif; font-weight:800; font-size:15px; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tk__hero{ position:relative; height:170px; background:#2e313a center/cover no-repeat; display:flex; align-items:flex-end; }
.tk__hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.62) 100%); }
.tk__hero-text{ position:relative; z-index:1; width:100%; padding:14px 16px; text-align:center; color:#fff; }
.tk__title{ font-family:"Bricolage Grotesque",sans-serif; font-weight:800; font-size:18px; line-height:1.2; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tk__when{ margin:6px 0 0; font-size:11.5px; color:rgba(255,255,255,.78); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tk__body{ padding:18px 16px 8px; text-align:center; }
.tk__qr{ display:inline-block; padding:8px; border:1px solid #e8eaf0; border-radius:12px; background:#fff; width:196px; height:196px; }
.tk__qr svg{ width:100%; height:100%; display:block; }
.tk__code{ margin:10px 0 0; font-family:ui-monospace,Menlo,monospace; font-weight:700; font-size:16px; letter-spacing:3px; color:#1a1d29; }
.tk__type{ margin:6px 0 0; font-size:13px; color:#5c6275; }
.tk__checked{ margin:8px 0 0; font-size:11px; font-weight:800; letter-spacing:1px; color:#1a9e4b; text-transform:uppercase; }
.tk__cancelled{ display:inline-block; margin:6px 0 10px; padding:10px 14px; border-radius:10px; background:rgba(220,38,38,.09); color:#c22; font-size:13px; font-weight:700; }
.tk__order{ margin:12px 0 0; font-size:11.5px; color:#8a8fa3; }
.tk__fine{ margin:6px 0 0; font-size:11.5px; color:#8a8fa3; }
.tk__actions{ padding:14px 16px 22px; }
.tk__venue{ padding:0 16px 16px; font-size:12px; color:#5c6275; text-align:center; }
.check-row{ display:flex; gap:.7rem; align-items:flex-start; font-size:.92rem; }
.check-row input{ width:18px; height:18px; margin-top:2px; accent-color:var(--brand); flex:none; }

/* 21-10-2026: long labels (RO) — tighter tabs below 1536px so the actions always fit */
@media (min-width:1024px) and (max-width:1535px){ .tabs a{ padding:.4rem .5rem; font-size:.84rem; } .hdr .logo-word{ font-size:1.15rem; } }

/* ── POLISH PASS (21-10-2026): the restraint and proportions of the Enjoy Tickets home, in Enjoy Events' own tokens.
   Scale: header 56px · hero headline clamp(30px,4.3vw,52px) · section title 28/30px · body 16px · chips/pills 34px ·
   buttons 40px · cards radius 14px with a hairline border, poster 4:3, one date pill · panels 14px · 72/88px between sections. */
:root{ --hair:rgba(255,255,255,.08); --hair-2:rgba(255,255,255,.16); }
:root[data-theme="light"]{ --hair:rgba(11,16,32,.1); --hair-2:rgba(11,16,32,.16); }
.light{ --hair:rgba(11,16,32,.1); --hair-2:rgba(11,16,32,.18); }
.border-hair{ border-color:var(--hair); }
.wrap{ margin:0 auto; max-width:1320px; padding-left:20px; padding-right:20px; }
@media (min-width:768px){ .wrap{ padding-left:32px; padding-right:32px; } }
.sec{ padding-top:64px; } .sec-b{ padding-bottom:64px; }
@media (min-width:768px){ .sec{ padding-top:88px; } .sec-b{ padding-bottom:88px; } }
.sec-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:12px 24px; margin-bottom:22px; }
.sec-h{ font-family:"Bricolage Grotesque",sans-serif; font-weight:800; letter-spacing:-.02em; font-size:28px; line-height:1.15; }
@media (min-width:768px){ .sec-h{ font-size:30px; } }
.sec-sub{ font-size:15px; color:var(--muted); margin-top:4px; }
.light .sec-sub{ color:var(--ink-mute); }
.sel-sm{ height:30px; padding:0 28px 0 10px; border-radius:8px; background:var(--night-2); border:1px solid var(--hair-2); font-weight:600; font-size:13.5px; color:var(--text); -webkit-appearance:none; appearance:none; outline:none; }
.sel-sm:focus{ border-color:rgba(255,255,255,.4); }
.sel-sm option{ color:#0b1020; }
.status-pill{ display:inline-flex; align-items:center; gap:8px; height:32px; padding:0 12px; border-radius:999px; background:color-mix(in srgb,var(--night-2) 85%,transparent); border:1px solid var(--hair-2); font-size:13.5px; font-weight:600; }
.status-pill .dot{ width:7px; height:7px; border-radius:50%; background:var(--hot); box-shadow:0 0 0 3px rgba(255,94,163,.2); }

/* Header: 56px, text links, quiet icon buttons, one filled button */
.hdr .logo-img{ height:30px; }
.hdr-ic{ width:36px; height:36px; border-radius:999px; display:inline-grid; place-items:center; color:var(--text); border:1px solid transparent; transition:border-color .2s, background .2s; white-space:nowrap; }
.hdr-ic:hover{ border-color:var(--hair-2); background:var(--night-2); }
.hdr-saved .n{ top:-3px; right:-3px; min-width:17px; height:17px; font-size:10px; }
.hdr-pill{ display:inline-flex; align-items:center; height:34px; padding:0 14px; border-radius:999px; font-size:13.5px; font-weight:700; white-space:nowrap; }
.hdr-pill.fill{ background:var(--brand); color:#fff; } .hdr-pill.fill:hover{ background:var(--brand-dark); }
.hdr-pill.text{ color:var(--text); padding:0 10px; } .hdr-pill.text:hover{ color:var(--accent); }
.hdr-pill.line{ border:1px solid var(--hair-2); } .hdr-pill.line:hover{ border-color:var(--text); }

/* Ticker under the hero: a thin dark strip */
.ticker-wrap{ background:var(--night-2); border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); color:var(--muted); font-size:13px; font-weight:600; }
.ticker-wrap .tk-sep{ color:var(--accent); opacity:.8; padding:0 14px; }

/* Home hero: centred, one search bar */
.hero-c{ background:var(--night); }
@media (min-width:1024px){ .hero-c > .hero-in{ min-height:520px; display:flex; flex-direction:column; align-items:center; justify-content:center; } .hero-c > .hero-in > form{ width:100%; } }
.hero-c .sbar{ background:#fff; color:#0b1020; border-radius:16px; padding:6px; }
.hero-c .sfield .slab{ color:#0b1020; opacity:1; font-size:11px; font-weight:700; }
.hero-c .sfield input,.hero-c .sfield select{ color:#0b1020; font-size:15px; }
.hero-c .sfield input::placeholder{ color:#64748b; font-weight:500; }
.hero-c .sdiv::before{ background:#0b1020; opacity:.12; }
.hero-c .btn-brand{ border-radius:11px; height:50px; font-size:15px; }
.hero-c .chip{ height:34px; background:color-mix(in srgb,var(--night-2) 85%,transparent); }

/* Trust strip */
.trust{ border-top:1px solid var(--hair); border-bottom:1px solid var(--hair); }
.trust-i{ display:flex; gap:12px; align-items:flex-start; }
.trust-ic{ width:36px; height:36px; border-radius:50%; flex:none; display:grid; place-items:center; background:rgba(191,30,116,.16); color:var(--accent); }
.trust-ic svg{ width:17px; height:17px; }
.trust-t{ font-size:15px; font-weight:700; line-height:1.2; }
.trust-s{ font-size:14px; color:var(--muted); margin-top:3px; line-height:1.4; }

/* Event card anatomy */
.ev-card .art{ flex:none; }
.ev-body{ padding:14px 16px 14px; display:flex; flex-direction:column; flex:1; min-width:0; }
.ev-cat{ font-size:12.5px; font-weight:600; color:var(--accent); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ev-t{ font-size:16px; font-weight:700; line-height:1.3; margin-top:4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ev-v{ font-size:14px; color:var(--muted); margin-top:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ev-foot{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:auto; padding-top:12px; }
.ev-st{ font-size:14px; font-weight:700; } .ev-st.off{ color:var(--muted); font-weight:600; }
.ev-card.ev-wide .ev-t{ font-size:17px; }
.light .ev-cat{ color:var(--brand); } .light .ev-v,.light .ev-st.off{ color:var(--ink-mute); }
.light .ev-card:hover{ border-color:rgba(11,16,32,.3); }
/* phones: the compact variant (home "Pick a date", long lists) is a row — art left, text right, no pill / heart — so the page stays short */
@media (max-width:639px){
  .ev-card.ev-cmp{ display:grid; grid-template-columns:120px minmax(0,1fr); }
  .ev-card.ev-cmp .art{ aspect-ratio:auto; min-height:100px; height:100%; }
  .ev-card.ev-cmp .art .ev-pill,.ev-card.ev-cmp .art .ev-heart{ display:none; }
  .ev-card.ev-cmp .ev-body{ padding:10px 12px; justify-content:center; }
  .ev-card.ev-cmp .ev-when{ display:inline; }
  .ev-card.ev-cmp .ev-foot{ padding-top:6px; }
}
.rail-btn{ width:32px; height:32px; border-radius:50%; border:1px solid var(--hair-2); display:grid; place-items:center; color:var(--text); }
.rail-btn:hover{ background:var(--text); color:var(--ink); border-color:var(--text); }
.tour-card .ev-body{ padding:12px 14px; }

/* Pick a date: month pills 40px with a count, day squares 52px */
.m-pill{ display:inline-flex; align-items:center; gap:8px; height:40px; padding:0 14px; border-radius:999px; border:1px solid var(--hair-2); font-weight:700; font-size:14px; white-space:nowrap; background:#fff; color:#0b1020; transition:background .2s, color .2s, border-color .2s; }
.m-pill .n{ font-size:12px; font-weight:700; opacity:.6; }
.m-pill:hover{ border-color:#0b1020; }
.m-pill[aria-pressed="true"]{ background:#0b1020; color:#fff; border-color:#0b1020; } .m-pill[aria-pressed="true"] .n{ opacity:.7; }
.d-mon{ align-self:stretch; display:flex; align-items:flex-end; padding:0 6px 4px 2px; font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-mute); white-space:nowrap; }
.d-sq{ position:relative; flex:none; width:52px; height:52px; border-radius:10px; border:1px solid var(--line-ink); background:#fff; color:#0b1020; display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1; transition:background .2s, color .2s, border-color .2s; }
.d-sq .wd{ font-size:10.5px; font-weight:700; color:#64748b; } .d-sq .dn{ font-size:18px; font-weight:800; margin-top:2px; letter-spacing:-.02em; }
.d-sq .dot{ position:absolute; bottom:5px; width:5px; height:5px; border-radius:50%; background:var(--brand); display:none; }
.d-sq[data-has] .dot{ display:block; }
.d-sq:not([data-has]){ color:#94a0b8; } .d-sq:not([data-has]) .wd{ color:#b1b9cc; }
.d-sq:hover{ border-color:#0b1020; }
.d-sq[aria-pressed="true"]{ background:#0b1020; color:#fff; border-color:#0b1020; } .d-sq[aria-pressed="true"] .wd{ color:#b7bed1; } .d-sq[aria-pressed="true"] .dot{ background:var(--hot); }
.light .btn-ink{ background:#0b1020; color:#fff; } .light .btn-ink:hover{ background:var(--brand); }
.light .btn-ghost{ border-color:rgba(11,16,32,.2); color:#0b1020; }

/* Vibe tiles 180px, country rows, plan minis */
.vibe-tile .vt-body h3{ font-size:22px; }
.ct-row{ display:flex; align-items:center; gap:10px; height:48px; border-bottom:1px solid var(--hair); color:var(--text); transition:color .2s; }
.ct-row:hover{ color:var(--accent); }
.ct-ic{ width:32px; height:32px; border-radius:50%; flex:none; overflow:hidden; background:var(--night-3) center/cover no-repeat; display:grid; place-items:center; }
.ct-ic .ct-flag{ width:32px; height:32px; border-radius:50%; box-shadow:none; }
.ct-row .name{ flex:1; min-width:0; font-weight:600; font-size:14.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ct-row .ct-count{ font-size:12px; font-weight:700; min-width:24px; height:22px; padding:0 7px; border-radius:999px; display:inline-grid; place-items:center; background:var(--night-2); border:1px solid var(--hair-2); color:var(--muted); }
.plan-mini{ display:flex; flex-direction:column; padding:16px 18px; border-radius:14px; border:1px solid var(--hair); background:var(--night-2); min-height:150px; transition:border-color .2s, transform .2s; }
.plan-mini:hover{ border-color:rgba(255,255,255,.22); transform:translateY(-2px); }
.plan-mini.pop{ border-color:rgba(255,94,163,.45); }

/* Radio strip at half the height (overrides the partial's Tailwind padding) */
#radio .radio-band{ border-radius:14px; }
#radio .radio-band > .grid{ padding:18px 22px !important; gap:16px 28px !important; }
#radioH{ font-size:1.3rem !important; margin-top:8px !important; }
#radio .radio-band p.mute.text-\[15px\]{ font-size:13.5px !important; margin-top:4px !important; }
#radio .radio-band .mt-5.pt-4{ margin-top:12px !important; padding-top:10px !important; font-size:13px; }
#radio .radio-band img.h-10{ height:30px !important; }

/* App band: dark, slim */
.app-band{ background:var(--night-2); border-top:1px solid var(--hair); }

/* Events page filter row */
.filter-row{ display:flex; align-items:center; gap:8px; overflow-x:auto; scrollbar-width:none; padding:2px 0; }
.filter-row::-webkit-scrollbar{ display:none; }
.filter-row > *{ flex:none; }
.filter-row .chip-sep{ height:22px; margin:0 4px; }
.search-sm{ height:36px; border-radius:999px; background:var(--night-2); border:1px solid var(--hair-2); padding:0 14px 0 36px; font-size:14px; color:var(--text); outline:none; width:100%; }
.search-sm:focus{ border-color:rgba(255,255,255,.4); }
.search-sm::placeholder{ color:var(--muted); }

/* Tour view */
.tour-poster{ max-width:360px; }
.tr-main{ display:flex; align-items:baseline; gap:8px; min-width:0; }
.tr-city{ font-weight:700; font-size:14.5px; white-space:nowrap; }
.tr-venue{ font-size:13px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.tr-st{ font-size:11px; font-weight:700; color:var(--accent); white-space:nowrap; }
@media (max-width:639px){ .tour-row{ grid-template-columns:76px minmax(0,1fr) auto; padding:7px 10px; } .tr-main{ flex-direction:column; align-items:flex-start; gap:1px; } .tr-city{ white-space:normal; } .tr-venue{ max-width:100%; } .tour-row .ev-go{ font-size:0; } .tour-row .ev-go svg{ width:16px; height:16px; } }
.tour-facts{ display:flex; flex-wrap:wrap; gap:6px 18px; font-size:14px; color:var(--muted); }
.tour-facts b{ color:var(--text); font-weight:700; }

/* Event page: poster + buy card */
.ev-poster{ border-radius:14px; border:1px solid var(--hair); }
.ev-poster img.photo{ object-fit:contain; }
.buy-card{ background:var(--night-2); border:1px solid var(--hair); border-radius:14px; padding:18px; }
.date-blk{ flex:none; width:58px; border-radius:10px; background:var(--text); color:var(--ink); text-align:center; padding:6px 0 7px; line-height:1; }
.date-blk .d{ font-family:"Bricolage Grotesque",sans-serif; font-size:24px; font-weight:800; letter-spacing:-.02em; display:block; margin:2px 0; }
.date-blk .s{ font-size:10.5px; font-weight:700; display:block; }
.facts-line{ display:flex; flex-wrap:wrap; gap:4px 14px; font-size:13.5px; color:var(--muted); margin-top:12px; }
.facts-line b{ color:var(--text); font-weight:700; }
.members-line{ display:flex; gap:8px; align-items:flex-start; margin-top:12px; font-size:13px; color:var(--muted); line-height:1.45; }
.members-line b{ color:var(--text); }
.members-line:hover b{ color:var(--accent); }
.dl{ display:grid; grid-template-columns:150px minmax(0,1fr); gap:0 16px; font-size:14.5px; }
.dl dt{ color:var(--muted); padding:9px 0; border-top:1px solid var(--hair); }
.dl dd{ padding:9px 0; border-top:1px solid var(--hair); font-weight:600; }
@media (max-width:639px){ .dl{ grid-template-columns:1fr; } .dl dt{ padding-bottom:0; } .dl dd{ border-top:0; padding-top:2px; } }
.side-panel{ border:1px solid var(--hair); border-radius:14px; padding:16px; background:var(--night-2); }
.side-panel h2{ font-size:13px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }

/* Membership page */
.plan-card{ display:flex; flex-direction:column; padding:22px; border-radius:14px; border:1px solid var(--hair); background:var(--night-2); width:100%; max-width:320px; margin:0 auto; }
.plan-card.feat{ border-color:rgba(255,94,163,.5); }
.plan-card li{ display:flex; gap:.55rem; padding:.25rem 0; font-size:14.5px; line-height:1.4; }
.plan-card li::before{ content:"✓"; color:var(--accent); font-weight:800; flex:none; }
.cmp{ width:100%; border-collapse:collapse; }
.cmp thead th{ font-size:14px; } .cmp tbody td:first-child{ color:var(--muted); font-weight:500; }
.cmp .tick{ width:18px; height:18px; background:rgba(255,94,163,.18); color:var(--accent); font-size:11px; }
.cmp .no{ color:var(--faint); }
.calc-card{ box-shadow:none; }
.meter{ background:rgba(255,255,255,.1); }
input[type=range]{ accent-color:var(--hot); }

/* Past events */
.past-card .ev-st{ color:var(--muted); font-weight:600; }

/* 21-10-2026: sponsor tile + WizMedia mark */
.partner-tile.partner-cta{ gap:8px; grid-auto-flow:column; font-weight:700; font-size:14px; color:var(--text); border-style:dashed; }
.partner-tile.partner-cta:hover{ color:var(--accent); }
.ft-wiz{ font-size:12px; opacity:.85; } .ft-wiz img{ height:12px; width:auto; display:inline-block; vertical-align:middle; }

/* ── WHAT'S ON (21-10-2026): the home programme block — month tabs, a date scrubber, day-grouped rows. Replaces the light
   "Pick a date" band: dark ground with Enjoy Events' pink glow top-left, hairlines, 72px under the tours rail. ── */
.prog{ position:relative; isolation:isolate; padding-top:72px; }
.prog::before{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(760px 380px at 0% 0%,rgba(191,30,116,.17),transparent 70%); }
[data-theme="light"] .prog::before{ background:radial-gradient(760px 380px at 0% 0%,rgba(191,30,116,.08),transparent 70%); }
/* month tabs: text, 36px tall, the active one underlined in pink */
.pg-tabs{ display:flex; gap:2px; border-bottom:1px solid var(--hair); margin-top:2px; }
.pg-tab{ display:inline-flex; align-items:center; gap:5px; height:36px; padding:0 10px; font-size:14px; font-weight:700; color:var(--muted); white-space:nowrap; border-bottom:2px solid transparent; margin-bottom:-1px; transition:color .2s, border-color .2s; }
.pg-tab .n{ font-weight:600; opacity:.65; }
.pg-tab:hover{ color:var(--text); }
.pg-tab[aria-pressed="true"]{ color:var(--text); border-color:var(--hot); }
/* date scrubber: one slim 28px column per day, the pink bar = shows that day, today ringed, the chosen day on a pink pill */
.pg-scrub-wrap{ position:relative; margin-top:12px; }
.pg-scrub{ position:relative; display:flex; align-items:flex-end; padding:20px 0 2px; }
.pg-d{ position:relative; flex:none; width:28px; height:90px; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; color:var(--muted); border-radius:6px; }
.pg-d .mo{ position:absolute; top:-17px; left:2px; font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--text); white-space:nowrap; line-height:1; }
.pg-d .bar{ display:block; width:8px; height:calc(4px + var(--n) * 9px); max-height:44px; border-radius:3px; background:var(--hot); margin-bottom:6px; transition:height .2s; }
.pg-d:not([data-has]) .bar{ height:2px; background:var(--hair-2); }
.pg-d .dn{ display:grid; place-items:center; width:24px; height:24px; border-radius:999px; font-size:12.5px; font-weight:700; color:var(--text); line-height:1; transition:background .2s, color .2s; }
.pg-d:not([data-has]) .dn{ color:var(--faint); font-weight:600; }
.pg-d .w1{ font-size:9.5px; font-weight:700; line-height:1; margin-top:4px; color:var(--faint); }
.pg-d:hover .dn{ background:var(--night-3); color:var(--text); }
.pg-d[aria-pressed="true"] .dn{ background:var(--hot); color:var(--on-pink); font-weight:800; }
.pg-d[aria-pressed="true"] .w1{ color:var(--text); }
.pg-d.is-today .dn{ box-shadow:inset 0 0 0 1px var(--hot); }
.pg-d.is-today[aria-pressed="true"] .dn{ box-shadow:none; }
.pg-d.is-today .w1{ color:var(--accent); }
.pg-tip{ position:absolute; z-index:5; transform:translate(-50%,calc(-100% - 6px)); background:var(--text); color:var(--ink); font-size:12px; font-weight:700; padding:5px 9px; border-radius:8px; white-space:nowrap; pointer-events:none; box-shadow:0 8px 20px rgba(0,0,0,.35); }
.pg-tip::after{ content:""; position:absolute; left:50%; bottom:-5px; margin-left:-5px; border:5px solid transparent; border-top-color:var(--text); border-bottom:0; }
/* the programme: day groups with a sticky day header left and 72px rows right */
.pg-meta{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 16px; margin-top:18px; }
.pg-list{ margin-top:10px; border-top:1px solid var(--hair); }
.pg-day{ display:grid; grid-template-columns:104px minmax(0,1fr); gap:0 16px; border-bottom:1px solid var(--hair); padding:10px 0; }
.pg-dh{ position:sticky; top:calc(env(safe-area-inset-top,0px) + 64px); align-self:start; display:flex; flex-direction:column; line-height:1; padding-top:14px; }
.pg-dh .wd{ font-size:11.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); }
.pg-dh .dn{ font-size:34px; font-weight:800; letter-spacing:-.03em; margin-top:5px; }
.pg-dh .mo{ font-size:13px; font-weight:600; color:var(--muted); margin-top:5px; }
.pg-rows{ min-width:0; }
.pg-row{ display:grid; grid-template-columns:56px minmax(0,1fr) auto 92px 86px 28px; align-items:center; gap:14px; height:72px; padding:0 6px 0 0; border-top:1px solid var(--hair); color:var(--text); border-radius:0; transition:background .2s; }
.pg-row:first-child{ border-top:0; }
.pg-row:hover{ background:color-mix(in srgb,var(--night-2) 75%,transparent); }
.pg-row:hover .pg-t{ color:var(--accent); }
.pg-th{ position:relative; width:56px; height:56px; border-radius:10px; overflow:hidden; isolation:isolate; display:grid; place-items:center; background:var(--night-3); }
.pg-th .pat{ position:absolute; inset:0; z-index:-1; }
.pg-th img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.pg-th .pg-in{ font-weight:800; font-size:20px; color:#fff; text-shadow:0 1px 6px rgba(0,0,0,.45); }
.pg-main{ min-width:0; display:flex; flex-direction:column; gap:3px; }
.pg-t{ font-size:15px; font-weight:700; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:color .2s; }
.pg-v{ font-size:14px; color:var(--muted); line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pg-m{ display:none; font-size:12.5px; font-weight:600; color:var(--muted); line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pg-time{ display:inline-flex; align-items:center; height:26px; padding:0 9px; border-radius:999px; border:1px solid var(--hair-2); font-size:12.5px; font-weight:700; white-space:nowrap; color:var(--text); }
.pg-time:empty{ visibility:hidden; padding:0; border:0; width:0; }
.pg-st{ font-size:13.5px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pg-st.hot{ color:var(--accent); }
.pg-row.is-off .pg-st{ color:var(--muted); font-weight:600; }
.pg-row.is-off .pg-th{ opacity:.55; filter:saturate(.4); }
.pg-go{ display:inline-flex; align-items:center; gap:4px; font-size:13.5px; font-weight:700; color:var(--accent); white-space:nowrap; }
.pg-go svg{ transition:transform .25s; } .pg-row:hover .pg-go svg{ transform:translateX(3px); }
.pg-heart{ width:28px; height:28px; border-radius:50%; display:grid; place-items:center; color:var(--muted); border:1px solid transparent; transition:color .2s, background .2s, border-color .2s; }
.pg-heart svg{ width:14px; height:14px; }
.pg-heart:hover{ color:var(--text); border-color:var(--hair-2); }
.pg-heart[aria-pressed="true"]{ color:var(--on-pink); background:var(--hot); border-color:var(--hot); }
.pg-heart[aria-pressed="true"] svg{ fill:currentColor; }
.pg-foot{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px 28px; margin-top:22px; }
[data-theme="light"] .pg-row:hover{ background:#fff; }
@media (max-width:767px){
  .pg-tab{ padding:0 8px; }
  .pg-day{ grid-template-columns:1fr; gap:0; padding:8px 0 2px; }
  .pg-dh{ position:static; flex-direction:row; align-items:baseline; gap:7px; padding:4px 0 6px; }
  .pg-dh .dn{ font-size:22px; margin:0; } .pg-dh .mo{ margin:0; } .pg-dh .wd{ order:3; margin-left:2px; }
  .pg-row{ grid-template-columns:56px minmax(0,1fr) 28px; gap:12px; padding:0; }
  .pg-time,.pg-st,.pg-go{ display:none; }
  .pg-m{ display:block; }
}

/* ── WHAT'S ON, take 2 (21-10-2026): the date scrubber is gone (Dragos: "I don't like that design"). A small "Pick a date" ghost
   button on the right of the month tabs opens a mini calendar (one month, Mon-Sun, a pink dot under the days with shows, today
   ringed, the chosen day on a pink pill; a bottom sheet on phones). The shows below come in ONE of two views, the visitor's
   choice (Grid | List segment in the header, localStorage ee-ev-view shared with the events page): Grid = the shared cards
   4 / 3 / 2 / 1 per row in ONE continuous grid (date order, "Show more" = 12 more cards), List = the day groups with the sticky
   day header + 72px rows as before. The .pg-scrub / .pg-d / .pg-tip rules above are no longer used. ── */
.pg-bar{ display:flex; align-items:flex-end; gap:12px; border-bottom:1px solid var(--hair); margin-top:2px; }
.pg-bar .pg-tabs{ flex:1 1 auto; min-width:0; border-bottom:0; margin-top:0; }
.pg-pick{ position:relative; flex:none; padding-bottom:4px; }
.pg-pick-btn{ height:30px; padding:0 .7rem; font-size:13px; gap:.4rem; }
.pg-pick-btn[aria-expanded="true"]{ border-color:var(--text); }
.pg-cal{ position:absolute; right:0; top:calc(100% + 8px); z-index:40; width:304px; padding:14px; background:var(--night-2); border:1px solid var(--hair-2); border-radius:14px; box-shadow:0 18px 48px rgba(0,0,0,.45); }
.pg-cal-h{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; }
.pg-cal-t{ font-size:14px; font-weight:800; }
.pg-cal-nav{ width:30px; height:30px; border-radius:999px; border:1px solid var(--hair-2); display:grid; place-items:center; color:var(--text); transition:border-color .2s, background .2s; }
.pg-cal-nav:hover{ border-color:var(--text); }
.pg-cal-nav:disabled{ opacity:.3; cursor:default; } .pg-cal-nav:disabled:hover{ border-color:var(--hair-2); }
.pg-cal-wd{ display:grid; grid-template-columns:repeat(7,1fr); text-align:center; font-size:11px; font-weight:800; letter-spacing:.06em; color:var(--faint); margin-bottom:4px; }
.pg-cal-g{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.pg-cd{ position:relative; height:36px; display:grid; place-items:center; border-radius:999px; font-size:13.5px; font-weight:600; color:var(--faint); line-height:1; transition:background .15s, color .15s; }
.pg-cd[data-has]{ color:var(--text); font-weight:800; }
.pg-cd[data-has]::after{ content:""; position:absolute; left:50%; bottom:4px; width:4px; height:4px; margin-left:-2px; border-radius:50%; background:var(--hot); }
.pg-cd:disabled{ opacity:.35; cursor:default; }
.pg-cd:not(:disabled):hover{ background:var(--night-3); color:var(--text); }
.pg-cd.is-today{ box-shadow:inset 0 0 0 1px var(--hot); }
.pg-cd[aria-pressed="true"]{ background:var(--hot); color:var(--on-pink); box-shadow:none; }
.pg-cd[aria-pressed="true"]::after{ background:var(--on-pink); }
.pg-cd.x{ pointer-events:none; }
.pg-cal-f{ display:flex; align-items:center; gap:6px; margin-top:10px; font-size:11.5px; font-weight:600; color:var(--muted); }
.pg-cal-dot{ width:5px; height:5px; border-radius:50%; background:var(--hot); }
.pg-scrim{ position:fixed; inset:0; z-index:59; background:rgba(7,8,17,.55); }
/* the two views are sibling containers in #dayGrid: #dayCards = one continuous grid of the shared cards (date order, the
   day filter hides cards one by one), #dayDays = the day groups with the sticky header + rows exactly as before */
.pg-cards{ padding-top:18px; }
@media (min-width:640px){ .pg-scrim{ display:none !important; } }
@media (max-width:639px){
  .pg-cal{ position:fixed; left:0; right:0; top:auto; bottom:0; width:auto; z-index:60; border-radius:18px 18px 0 0; padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px)); box-shadow:0 -18px 48px rgba(0,0,0,.5); }
  .pg-cal::before{ content:""; display:block; width:36px; height:4px; border-radius:2px; background:var(--hair-2); margin:0 auto 12px; }
  .pg-cal-g{ gap:4px; } .pg-cd{ height:42px; font-size:15px; }
}
@media (max-width:767px){ .pg-cards{ padding-top:14px; } }
@media (max-width:479px){ #pgView{ order:1; } }   /* narrow phones: Past events + All events share the first line, the Grid | List switch sits right above the month tabs */

/* /plans (24-10-2026): the benefits table tight, the FAQ in a column beside it from 1024px */
.cmp.tight th,.cmp.tight td{ padding:.5rem .55rem; font-size:13.5px; }
.cmp.tight thead th{ font-size:13px; }
.cmp.tight th:first-child,.cmp.tight td:first-child{ padding-left:0; }
.cmp.tight .tick{ width:16px; height:16px; font-size:10px; }
.faq-aside .faq summary{ font-size:14.5px; padding:.75rem 0; }
.faq-aside .faq p{ font-size:14px; }
.cmp th,.cmp td{ transition:background-color .9s ease; }
.cmp .glow{ background-color:rgba(255,94,163,.16); transition-duration:.25s; }
.light .cmp .glow{ background-color:rgba(191,30,116,.12); }
