/* ═════════ TOKENS ═════════ */
:root{
  color-scheme:light dark;
  --bg:#FFFFFF;--bg-2:#F5F7FA;--bg-3:#EAEFF5;--card:#FFFFFF;
  --ink:#0C121C;--ink-2:#39434F;--muted:#6A7480;
  --line:#E3E8EE;--line-2:#CBD4DE;
  --acc:#1A4FD6;--acc-hi:#1240B8;--acc-2:#0E9AA7;--acc-soft:#ECF1FE;
  --grad:linear-gradient(100deg,#1A4FD6,#0E9AA7);
  --shadow-s:0 2px 8px rgba(12,18,28,.05);
  --shadow-m:0 14px 34px -20px rgba(12,18,28,.35);
  --shadow-l:0 26px 60px -30px rgba(12,18,28,.45);
  --blob-o:.40;
  --w:1160px;--gut:clamp(18px,4.4vw,40px);--nav-h:66px;
  --fd:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --fb:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0B0F16;--bg-2:#111722;--bg-3:#18202C;--card:#121A25;
    --ink:#EFF3F8;--ink-2:#BFC8D3;--muted:#8794A2;
    --line:#212B38;--line-2:#313D4C;
    --acc:#7BA0F5;--acc-hi:#A2BEFA;--acc-2:#3FC9D6;--acc-soft:#152031;
    --grad:linear-gradient(100deg,#7BA0F5,#3FC9D6);
    --shadow-s:0 2px 8px rgba(0,0,0,.4);--shadow-m:0 14px 34px -20px rgba(0,0,0,.8);
    --shadow-l:0 26px 60px -30px rgba(0,0,0,.9);--blob-o:.26;
  }
}
:root[data-theme="dark"]{
  --bg:#0B0F16;--bg-2:#111722;--bg-3:#18202C;--card:#121A25;
  --ink:#EFF3F8;--ink-2:#BFC8D3;--muted:#8794A2;
  --line:#212B38;--line-2:#313D4C;
  --acc:#7BA0F5;--acc-hi:#A2BEFA;--acc-2:#3FC9D6;--acc-soft:#152031;
  --grad:linear-gradient(100deg,#7BA0F5,#3FC9D6);
  --shadow-s:0 2px 8px rgba(0,0,0,.4);--shadow-m:0 14px 34px -20px rgba(0,0,0,.8);
  --shadow-l:0 26px 60px -30px rgba(0,0,0,.9);--blob-o:.26;
}

*{box-sizing:border-box}
/* the standalone pages carry no host reset, so state this here */
[hidden]{display:none!important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--fb);font-size:16px;
  line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--acc)}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--w);margin-inline:auto;padding-inline:var(--gut)}
p{margin:0}
h1,h2,h3{margin:0;font-family:var(--fd);letter-spacing:-.025em;text-wrap:balance}

/* ═════════ MOTION ═════════ */
[data-rv]{transition:opacity .7s cubic-bezier(.2,.75,.3,1),transform .7s cubic-bezier(.2,.75,.3,1);
  transition-delay:var(--d,0ms)}
[data-rv].pre{opacity:0;transform:translateY(18px)}
.grow{transform-origin:left center;transition:transform .9s cubic-bezier(.2,.8,.3,1) var(--d,0ms)}
.grow.pre{transform:scaleX(0)}
#prog{position:fixed;top:0;left:0;height:3px;width:100%;transform:scaleX(0);transform-origin:left;
  background:var(--grad);z-index:80;will-change:transform}

/* ═════════ NAV ═════════ */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:70;background:var(--bg);
  border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s,background .3s}
.nav.stuck{border-bottom-color:var(--line);box-shadow:var(--shadow-s);
  background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px) saturate(160%)}
.nav-in{display:flex;align-items:center;gap:14px;justify-content:space-between;min-height:var(--nav-h)}
.logo{font-family:var(--fd);font-weight:800;font-size:1.04rem;letter-spacing:-.03em;text-decoration:none;
  color:var(--ink);white-space:nowrap;display:flex;align-items:center;gap:9px;background:none;border:0;
  cursor:pointer;padding:0}
.logo .glyph{width:26px;height:26px;border-radius:7px;background:var(--grad);display:grid;place-items:center;
  color:#fff;font-size:.7rem;font-weight:900;letter-spacing:0;flex:none;font-family:var(--fd)}
.logo sup{font-size:.54em;color:var(--muted);font-weight:600}
.links{display:none;gap:2px;align-items:center}
@media(min-width:1100px){.links{display:flex}}
.links button,.links a{position:relative;font-family:var(--fb);font-size:.92rem;font-weight:500;
  color:var(--ink-2);text-decoration:none;padding:8px 11px;border-radius:7px;background:none;border:0;
  cursor:pointer;transition:color .22s,background .22s}
.links button::after,.links a::after{content:"";position:absolute;left:11px;right:11px;bottom:3px;height:2px;
  border-radius:2px;background:var(--grad);transform:scaleX(0);transform-origin:right;
  transition:transform .35s cubic-bezier(.2,.8,.3,1)}
.links button:hover,.links a:hover{color:var(--ink);background:var(--bg-2)}
.links button:hover::after,.links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-right{display:flex;align-items:center;gap:9px}

.btn{position:relative;overflow:hidden;display:inline-block;background:var(--acc);color:#fff;
  text-decoration:none;font-family:var(--fd);font-weight:700;font-size:.92rem;letter-spacing:-.01em;
  padding:11px 20px;border-radius:8px;border:1px solid var(--acc);cursor:pointer;
  transition:transform .2s cubic-bezier(.2,.8,.3,1),box-shadow .25s,background .25s,border-color .25s}
.btn::after{content:"";position:absolute;top:0;bottom:0;width:38%;left:-45%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-18deg)}
@media (prefers-reduced-motion:no-preference){.btn:hover::after{animation:shine .7s ease}}
@keyframes shine{to{left:130%}}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px var(--acc);
  background:var(--acc-hi);border-color:var(--acc-hi)}
.btn:active{transform:translateY(0)}
.btn-lg{padding:14px 28px;font-size:1rem;border-radius:10px}
.btn-sm{padding:9px 15px;font-size:.85rem;border-radius:7px}
.btn-out{background:transparent;color:var(--acc);border-color:var(--line-2)}
.btn-out:hover{background:var(--acc-soft);border-color:var(--acc);color:var(--acc);box-shadow:none}
.btn-grad{background:var(--grad);border-color:transparent}
.btn-grad:hover{background:var(--grad);filter:brightness(1.08)}
.icon-btn{background:none;border:1px solid var(--line-2);color:var(--muted);font-family:var(--fb);
  font-size:.82rem;padding:9px 12px;border-radius:8px;cursor:pointer;
  transition:color .2s,border-color .2s,background .2s}
.icon-btn:hover{color:var(--acc);border-color:var(--acc);background:var(--acc-soft)}
.burger{display:inline-flex}
@media(min-width:1100px){.burger{display:none}}
@media(max-width:1099px){#tbtn{display:none}}
@media(max-width:560px){
  .nav-in{gap:9px}
  .logo{font-size:.92rem;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .logo sup{display:none}
  .nav-right .btn{padding:10px 13px;font-size:.84rem}
  .icon-btn{padding:9px 10px;font-size:.78rem}
}
#menu{border-top:1px solid var(--line);background:var(--bg);display:grid;padding-block:8px 14px}
#menu button,#menu a{padding:11px 4px;text-align:left;text-decoration:none;color:var(--ink-2);
  font-family:var(--fb);font-weight:500;font-size:.98rem;border:0;border-bottom:1px solid var(--line);
  background:none;cursor:pointer}
#menu .mrow{display:flex;gap:10px;align-items:center;padding-top:12px;border-bottom:0}

/* ═════════ AURORA ═════════ */
.aurora{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.blob{position:absolute;border-radius:50%;filter:blur(72px);opacity:var(--blob-o)}
.b1{width:46vw;height:46vw;max-width:620px;max-height:620px;left:-12vw;top:-16vw;
  background:radial-gradient(circle,var(--acc),transparent 66%)}
.b2{width:40vw;height:40vw;max-width:540px;max-height:540px;right:-10vw;top:4vw;
  background:radial-gradient(circle,var(--acc-2),transparent 66%)}
.b3{width:34vw;height:34vw;max-width:460px;max-height:460px;left:34vw;top:30vw;
  background:radial-gradient(circle,var(--acc),transparent 70%);opacity:calc(var(--blob-o)*.6)}
@media (prefers-reduced-motion:no-preference){
  .b1{animation:float1 26s ease-in-out infinite alternate}
  .b2{animation:float2 31s ease-in-out infinite alternate}
  .b3{animation:float1 38s ease-in-out infinite alternate-reverse}
  @keyframes float1{to{transform:translate3d(7vw,5vw,0) scale(1.12)}}
  @keyframes float2{to{transform:translate3d(-8vw,7vw,0) scale(1.16)}}
}

/* ═════════ TYPE ═════════ */
h1{font-size:clamp(2.1rem,5.6vw,3.7rem);line-height:1.05;font-weight:800}
.h1-city{font-size:clamp(2.4rem,7.4vw,5rem);line-height:.98;font-weight:900;letter-spacing:-.04em}
.h2{font-family:var(--fd);font-size:clamp(1.55rem,3.7vw,2.5rem);line-height:1.12;font-weight:800;
  text-transform:uppercase;letter-spacing:-.018em}
.kicker{display:inline-flex;align-items:center;gap:9px;font-family:var(--fd);font-size:.76rem;
  font-weight:700;text-transform:uppercase;letter-spacing:.15em;color:var(--acc);margin:0}
.kicker::before{content:"";width:22px;height:2px;border-radius:2px;background:var(--grad);flex:none}
.lede{font-size:clamp(1.02rem,1.8vw,1.14rem);color:var(--ink-2);max-width:62ch;margin:0;font-weight:300}
.rulebar{height:3px;width:74px;border-radius:3px;background:var(--grad)}

/* ═════════ HERO ═════════ */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:var(--bg)}
.hero>.wrap{position:relative;z-index:1}
.hero-img{padding-top:clamp(18px,3vw,30px)}
.hero-img figure{margin:0;border-radius:16px;overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--shadow-l);position:relative;will-change:transform}
.hero-img img{width:100%;transform:scale(1.02)}
@media (prefers-reduced-motion:no-preference){
  .hero-img img{animation:kb 30s ease-in-out infinite alternate}
  @keyframes kb{to{transform:scale(1.10) translate3d(-1%,-1%,0)}}
  .hero-img figure::after{content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.26) 48%,transparent 62%);
    transform:translateX(-120%);animation:sweep 1.5s cubic-bezier(.3,.8,.3,1) .35s both}
  @keyframes sweep{to{transform:translateX(120%)}}
}
.hero-body{display:grid;gap:22px;padding-block:clamp(30px,5vw,54px)}
@media (prefers-reduced-motion:no-preference){
  .up{animation:up .85s cubic-bezier(.2,.8,.3,1) both;animation-delay:calc(var(--i,0)*95ms + 120ms)}
  @keyframes up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
}
.hero-meta{display:flex;flex-wrap:wrap;gap:9px}
.chip{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;font-weight:600;color:var(--ink-2);
  background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 15px;
  box-shadow:var(--shadow-s);transition:transform .22s,border-color .22s,color .22s}
.chip:hover{transform:translateY(-2px);border-color:var(--acc);color:var(--acc)}
.chip i{width:7px;height:7px;border-radius:50%;background:var(--acc);display:block;flex:none}
.chip.live i{background:var(--acc-2)}
@media (prefers-reduced-motion:no-preference){
  .chip.live i{animation:ping 1.9s ease-in-out infinite}
  @keyframes ping{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--acc-2) 55%,transparent)}
    55%{box-shadow:0 0 0 7px transparent}}
}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.note{font-size:.9rem;color:var(--muted)}
.datebar{display:flex;flex-wrap:wrap;gap:10px 26px;align-items:baseline;
  font-family:var(--fd);font-weight:700;font-size:clamp(1rem,2.2vw,1.3rem);letter-spacing:-.02em}
.datebar .sep{color:var(--line-2);font-weight:400}
.datebar .loc{color:var(--muted);font-weight:600;font-size:.94em}

/* ═════════ STATS ═════════ */
.stats{background:var(--bg-2);border-bottom:1px solid var(--line)}
.stats-in{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line)}
@media(min-width:780px){.stats-in{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--bg-2);padding:26px 18px;display:grid;gap:8px;justify-items:center;text-align:center;
  transition:background .3s}
.stat:hover{background:var(--bg-3)}
.stat b{font-family:var(--fd);font-size:clamp(1.9rem,4.4vw,2.7rem);font-weight:900;letter-spacing:-.045em;
  line-height:1;font-variant-numeric:tabular-nums;background:var(--grad);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{font-family:var(--fd);font-size:.76rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.14em;color:var(--muted)}

/* ═════════ SECTIONS ═════════ */
section{padding-block:clamp(48px,7vw,88px);border-bottom:1px solid var(--line);
  scroll-margin-top:calc(var(--nav-h) + 8px)}
.alt{background:var(--bg-2)}
.shead{display:grid;gap:14px;margin-bottom:clamp(28px,4.4vw,44px);max-width:70ch;justify-items:start}

/* ═════════ DAYS ═════════ */
.days{display:grid;gap:16px}
@media(min-width:720px){.days{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.days{grid-template-columns:repeat(4,1fr)}}
.day{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line);
  border-radius:14px;padding:26px 20px 22px;display:grid;gap:10px;align-content:start;
  transition:border-color .3s,transform .35s cubic-bezier(.2,.8,.3,1),box-shadow .35s}
.day::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--grad);
  transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.2,.8,.3,1) var(--d,0ms)}
.day.on::before{transform:scaleX(1)}
.day::after{content:attr(data-n);position:absolute;right:12px;top:4px;font-family:var(--fd);
  font-weight:900;font-size:4.4rem;line-height:1;color:var(--ink);opacity:.045;pointer-events:none}
.day:hover{border-color:var(--acc);transform:translateY(-6px);box-shadow:var(--shadow-m)}
.day-tag{font-family:var(--fd);font-size:.7rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.12em;color:var(--acc);background:var(--acc-soft);border-radius:5px;padding:5px 9px;
  justify-self:start}
.day-tag.pub{color:var(--ink-2);background:var(--bg-3)}
.day h3{font-size:1.1rem;font-weight:700;letter-spacing:-.02em}
.day>p{font-size:.9rem;color:var(--muted)}
.day ul{margin:0;padding:0;list-style:none;display:grid;gap:7px;font-size:.9rem;color:var(--ink-2)}
.day ul li{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:baseline}
.day ul li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--acc-2);margin-top:.5em}

/* ═════════ SPLIT / LIST ═════════ */
.split{display:grid;gap:clamp(26px,4vw,46px)}
@media(min-width:880px){.split{grid-template-columns:1fr 1fr}}
.block{display:grid;gap:14px;align-content:start}
.block h3{font-family:var(--fd);font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.feat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px;display:grid;
  gap:12px;box-shadow:var(--shadow-s);transition:transform .35s,box-shadow .35s,border-color .3s}
.feat:hover{transform:translateY(-4px);box-shadow:var(--shadow-m);border-color:var(--acc)}
.feat .tagline{font-family:var(--fd);font-size:.78rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--acc-2)}
.plist{margin:0;padding:0;list-style:none}
.plist li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:baseline;
  padding:11px 10px 11px 6px;border-bottom:1px solid var(--line);font-size:.96rem;color:var(--ink-2);
  transition:padding-left .3s cubic-bezier(.2,.8,.3,1),color .25s,background .25s;border-radius:6px}
.plist li:last-child{border-bottom:0}
.plist li::before{content:"";width:6px;height:6px;border-radius:2px;background:var(--grad);
  transform:rotate(45deg);margin-top:.5em;transition:transform .35s}
.plist li:hover{padding-left:14px;color:var(--ink);background:var(--bg-2)}
.plist li:hover::before{transform:rotate(135deg) scale(1.25)}

/* ═════════ CATEGORY CARDS ═════════ */
.cats{display:grid;gap:16px}
@media(min-width:680px){.cats{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.cats{grid-template-columns:repeat(3,1fr)}}
.cat{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line);
  border-radius:14px;padding:22px 20px 24px;display:grid;gap:11px;align-content:start;
  transition:border-color .3s,transform .35s cubic-bezier(.2,.8,.3,1),box-shadow .35s}
.cat::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;
  background:radial-gradient(420px 180px at var(--mx,50%) var(--my,0%),
    color-mix(in srgb,var(--acc) 12%,transparent),transparent 70%)}
.cat:hover{border-color:var(--acc);transform:translateY(-6px);box-shadow:var(--shadow-m)}
.cat:hover::before{opacity:1}
.cat-ico{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;background:var(--acc-soft);
  color:var(--acc);border:1px solid color-mix(in srgb,var(--acc) 26%,transparent);
  transition:transform .45s cubic-bezier(.2,.8,.3,1),background .3s,color .3s}
.cat-ico svg{width:23px;height:23px}
.cat:hover .cat-ico{transform:translateY(-3px) rotate(-7deg) scale(1.08);background:var(--grad);
  color:#fff;border-color:transparent}
.cat h3{font-size:1.02rem;font-weight:700;letter-spacing:-.02em;position:relative}
.cat p{font-size:.88rem;color:var(--muted);line-height:1.55;position:relative}

/* ═════════ MARQUEE ═════════ */
.marq{overflow:hidden;border-block:1px solid var(--line);background:var(--card);padding-block:13px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marq+.marq{border-top:0}
.mtrack{display:flex;width:max-content;align-items:center}
@media (prefers-reduced-motion:no-preference){
  .mtrack{animation:slideL 44s linear infinite}
  .rev .mtrack{animation-name:slideR}
  .marq:hover .mtrack{animation-play-state:paused}
  @keyframes slideL{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @keyframes slideR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
}
.mtrack span{display:inline-flex;align-items:center;gap:20px;white-space:nowrap;padding-inline:20px;
  font-family:var(--fd);font-size:.9rem;font-weight:600;letter-spacing:.06em;color:var(--ink-2)}
.mtrack span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc-2);
  opacity:.65;flex:none}

/* ═════════ PILLS ═════════ */
.pills{display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:0;list-style:none}
.pills li{font-size:.9rem;font-weight:500;color:var(--ink-2);background:var(--card);
  border:1px solid var(--line);border-radius:8px;padding:9px 15px;box-shadow:var(--shadow-s);
  transition:transform .25s cubic-bezier(.2,.8,.3,1),border-color .25s,color .25s}
.pills li:hover{transform:translateY(-3px);border-color:var(--acc);color:var(--acc)}

/* ═════════ TICKETS ═════════ */
.tix{display:grid;gap:18px}
@media(min-width:760px){.tix{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1060px){.tix{grid-template-columns:repeat(3,1fr)}}
.tk{position:relative;background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:26px 22px;display:flex;flex-direction:column;gap:15px;box-shadow:var(--shadow-s);
  transition:transform .38s cubic-bezier(.2,.8,.3,1),box-shadow .38s,border-color .3s}
.tk:hover{transform:translateY(-8px);box-shadow:var(--shadow-l);border-color:var(--acc)}
.tk.best{border:0;padding:2px;background:var(--grad);box-shadow:var(--shadow-m)}
.tk.best .inner{background:var(--card);border-radius:14px;padding:26px 22px;display:flex;
  flex-direction:column;gap:15px;flex:1}
.tk-flag{position:absolute;top:-12px;left:22px;z-index:2;background:var(--grad);color:#fff;
  font-family:var(--fd);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;
  padding:5px 11px;border-radius:6px;box-shadow:var(--shadow-s)}
.tk-when{font-family:var(--fd);font-size:.74rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.13em;color:var(--muted)}
.tk h3{font-size:1.16rem;font-weight:700;line-height:1.28}
.tk-price{display:flex;align-items:baseline;gap:9px;border-top:1px solid var(--line);padding-top:16px}
.tk-price b{font-family:var(--fd);font-size:2.7rem;font-weight:900;letter-spacing:-.05em;line-height:1;
  font-variant-numeric:tabular-nums}
.tk.best .tk-price b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.tk-price i{font-style:normal;font-family:var(--fd);font-size:.75rem;font-weight:700;color:var(--muted);
  text-transform:uppercase;letter-spacing:.1em}
.tk ul{margin:0;padding:0;list-style:none;display:grid;gap:10px;font-size:.93rem;color:var(--ink-2);
  flex:1 1 auto}
.tk ul li{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start}
.tk ul li::before{content:"✓";width:19px;height:19px;border-radius:50%;background:var(--acc-soft);
  border:1px solid color-mix(in srgb,var(--acc) 34%,transparent);margin-top:.16em;display:grid;
  place-items:center;font-size:.68rem;font-weight:800;color:var(--acc);line-height:1}
.tk.best ul li::before{background:var(--grad);border-color:transparent;color:#fff}
.tk .btn{text-align:center}

/* ═════════ CALENDAR ═════════ */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:26px}
.filters input{max-width:280px}
.fchips{display:flex;flex-wrap:wrap;gap:8px}
.fchip{font-family:var(--fd);font-size:.8rem;font-weight:700;letter-spacing:.04em;color:var(--ink-2);
  background:var(--card);border:1px solid var(--line-2);border-radius:999px;padding:8px 15px;cursor:pointer;
  transition:all .22s}
.fchip:hover{border-color:var(--acc);color:var(--acc)}
.fchip[aria-pressed="true"]{background:var(--grad);border-color:transparent;color:#fff}
.mgroup{margin-bottom:34px}
.mgroup h3{display:flex;align-items:center;gap:14px;font-family:var(--fd);font-size:.85rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-bottom:14px}
.mgroup h3::after{content:"";flex:1;height:1px;background:var(--line)}
.eds{display:grid;gap:12px}
@media(min-width:700px){.eds{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.eds{grid-template-columns:repeat(3,1fr)}}
.ed{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;background:var(--card);
  border:1px solid var(--line);border-radius:12px;padding:14px 16px;text-decoration:none;color:inherit;
  box-shadow:var(--shadow-s);transition:transform .3s cubic-bezier(.2,.8,.3,1),border-color .25s,box-shadow .3s}
.ed:hover{transform:translateY(-4px);border-color:var(--acc);box-shadow:var(--shadow-m)}
.ed-date{display:grid;justify-items:center;gap:1px;background:var(--bg-2);border:1px solid var(--line);
  border-radius:9px;padding:8px 10px;min-width:56px}
.ed-date b{font-family:var(--fd);font-size:1.02rem;font-weight:800;line-height:1.1;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
.ed-date span{font-family:var(--fd);font-size:.64rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;color:var(--muted)}
.ed-body{display:grid;gap:2px;min-width:0}
.ed-body strong{font-family:var(--fd);font-size:1rem;font-weight:700;letter-spacing:-.02em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-body span{font-size:.84rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-body .onsale{display:inline-flex;align-items:center;gap:6px;font-family:var(--fd);font-size:.66rem;
  font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--acc-2);margin-top:3px}
.onsale i{width:6px;height:6px;border-radius:50%;background:var(--acc-2);flex:none}
@media (prefers-reduced-motion:no-preference){
  .onsale i{animation:ping2 2.2s ease-in-out infinite}
  @keyframes ping2{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--acc-2) 60%,transparent)}
    55%{box-shadow:0 0 0 6px transparent}}
}
.ed-go{color:var(--muted);transition:transform .3s,color .25s;flex:none}
.ed:hover .ed-go{color:var(--acc);transform:translateX(3px)}
.empty{padding:34px;text-align:center;color:var(--muted);border:1px dashed var(--line-2);border-radius:12px}

/* ═════════ POLICY / FORM ═════════ */
.policy{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:clamp(22px,3vw,32px);
  display:grid;gap:4px;box-shadow:var(--shadow-s);counter-reset:pc}
.pitem{counter-increment:pc;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;
  padding-block:15px;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:.95rem}
.pitem:last-child{border-bottom:0}
.pitem::before{content:"0" counter(pc);font-family:var(--fd);font-size:.8rem;font-weight:800;
  color:var(--acc);background:var(--acc-soft);border-radius:6px;padding:4px 8px;line-height:1.3}
.form{display:grid;gap:15px;background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:clamp(22px,3vw,32px);box-shadow:var(--shadow-s)}
.frow{display:grid;gap:15px}
@media(min-width:700px){.frow{grid-template-columns:1fr 1fr}}
label{display:grid;gap:7px;font-family:var(--fd);font-size:.8rem;font-weight:700;color:var(--ink-2);
  text-transform:uppercase;letter-spacing:.08em}
input,select,textarea{font-family:var(--fb);font-size:.96rem;font-weight:400;color:var(--ink);
  background:var(--bg-2);border:1px solid var(--line-2);border-radius:9px;padding:12px 14px;width:100%;
  transition:border-color .2s,background .2s,box-shadow .2s}
input:hover,select:hover,textarea:hover{border-color:var(--acc)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc);background:var(--bg);
  box-shadow:0 0 0 4px var(--acc-soft)}
textarea{min-height:128px;resize:vertical}
.fmsg{font-size:.92rem;color:var(--ink-2);background:var(--acc-soft);
  border:1px solid color-mix(in srgb,var(--acc) 40%,transparent);border-radius:9px;padding:12px 15px}

/* ═════════ CTA BAND ═════════ */
.cta-band{position:relative;overflow:hidden;background:var(--bg-3);border-bottom:1px solid var(--line);
  text-align:center}
.cta-in{position:relative;z-index:1;display:grid;gap:22px;justify-items:center;
  padding-block:clamp(52px,8vw,92px)}
.cta-in .h2{max-width:22ch}
.cta-in .hero-ctas{justify-content:center}

/* ═════════ FOOTER ═════════ */
footer{padding-block:40px 48px;background:var(--bg-2)}
.foot{display:grid;gap:26px}
@media(min-width:800px){.foot{grid-template-columns:1.5fr 1fr 1fr;align-items:start}}
.foot h4{font-family:var(--fd);font-size:.78rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.14em;margin:0 0 12px;color:var(--ink)}
.foot p{font-size:.89rem;color:var(--muted)}
.fcol{display:grid;gap:9px;justify-items:start}
.fcol button,.fcol a{font-family:var(--fb);font-size:.9rem;text-decoration:none;color:var(--ink-2);
  background:none;border:0;padding:0;cursor:pointer;text-align:left;transition:color .2s,transform .2s}
.fcol button:hover,.fcol a:hover{color:var(--acc);transform:translateX(3px)}
.fbar{margin-top:30px;padding-top:20px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;
  gap:10px 22px;justify-content:space-between;font-size:.84rem;color:var(--muted)}

/* ═════════ TO TOP ═════════ */
#totop{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:70;
  width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:var(--card);
  color:var(--ink-2);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-m);
  opacity:0;transform:translateY(12px) scale(.9);pointer-events:none;
  transition:opacity .35s,transform .35s cubic-bezier(.2,.8,.3,1),color .2s,border-color .2s}
#totop.show{opacity:1;transform:none;pointer-events:auto}
#totop:hover{color:var(--acc);border-color:var(--acc)}

/* ═════════ BREADCRUMB ═════════ */
.crumb{display:flex;align-items:center;gap:8px;font-size:.86rem;color:var(--muted);padding-top:16px}
.crumb button{font-family:var(--fb);font-size:.86rem;color:var(--acc);background:none;border:0;
  padding:0;cursor:pointer}
.crumb button:hover{text-decoration:underline}
.linkbtn{font-family:var(--fb);font-size:.84rem;color:var(--acc);background:none;border:0;padding:0;
  cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.linkbtn:hover{color:var(--acc-hi)}

/* ═════════ COOKIE CONSENT ═════════ */
.cc-banner{position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--card);
  border-top:1px solid var(--line);box-shadow:0 -16px 44px -26px rgba(6,10,18,.6);
  padding:16px var(--gut) calc(16px + env(safe-area-inset-bottom,0px));
  transform:translateY(115%);transition:transform .5s cubic-bezier(.2,.8,.3,1)}
.cc-banner.show{transform:none}
.cc-banner[hidden]{display:none!important}
.cc-in{max-width:var(--w);margin-inline:auto;display:grid;gap:14px}
@media(min-width:960px){.cc-in{grid-template-columns:1fr auto;align-items:center;gap:26px}}
.cc-txt{display:grid;gap:4px}
.cc-txt strong{font-family:var(--fd);font-size:.98rem;font-weight:800;letter-spacing:-.02em}
.cc-txt p{font-size:.87rem;color:var(--muted);max-width:74ch}
.cc-acts{display:flex;flex-wrap:wrap;gap:9px}

.cc-modal[hidden]{display:none!important}
.cc-modal{position:fixed;inset:0;z-index:95;display:grid;place-items:end center}
@media(min-width:720px){.cc-modal{place-items:center}}
.cc-scrim{position:absolute;inset:0;background:rgba(6,10,18,.58);backdrop-filter:blur(3px);
  animation:ccFade .3s ease both;border:0;padding:0;cursor:default}
@keyframes ccFade{from{opacity:0}to{opacity:1}}
.cc-panel{position:relative;width:min(580px,100%);max-height:88vh;overflow:auto;background:var(--card);
  border:1px solid var(--line);border-radius:18px 18px 0 0;padding:24px;display:grid;gap:15px;
  box-shadow:var(--shadow-l);animation:ccUp .42s cubic-bezier(.2,.8,.3,1) both}
@media(min-width:720px){.cc-panel{border-radius:18px}}
@keyframes ccUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .cc-panel,.cc-scrim{animation:none}
  .cc-banner{transition:none}
}
.cc-panel h2{font-family:var(--fd);font-size:1.25rem;font-weight:800;letter-spacing:-.03em}
.cc-panel>p{font-size:.9rem;color:var(--muted)}
.cc-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start;padding:15px;
  border:1px solid var(--line);border-radius:12px;background:var(--bg-2)}
.cc-row h4{margin:0 0 3px;font-family:var(--fd);font-size:.96rem;font-weight:700;letter-spacing:-.02em}
.cc-row p{font-size:.84rem;color:var(--muted);line-height:1.5}
.cc-row .tag{font-family:var(--fd);font-size:.64rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;color:var(--acc);background:var(--acc-soft);border-radius:4px;padding:3px 7px;
  display:inline-block;margin-top:7px}
.cc-row .tag.off{color:var(--muted);background:var(--bg-3)}
.sw{position:relative;width:46px;height:26px;flex:none}
.sw input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
.sw i{position:absolute;inset:0;border-radius:999px;background:var(--line-2);transition:background .25s;
  pointer-events:none;display:block}
.sw i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;
  background:#fff;transition:transform .28s cubic-bezier(.2,.8,.3,1);box-shadow:0 1px 3px rgba(0,0,0,.35)}
.sw input:checked+i{background:var(--grad)}
.sw input:checked+i::after{transform:translateX(20px)}
.sw input:disabled{cursor:not-allowed}
.sw input:disabled+i{opacity:.5}
.sw input:focus-visible+i{outline:2px solid var(--acc);outline-offset:3px}
.cc-foot{display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end;padding-top:4px}
.cc-state{font-size:.82rem;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
