/* ==========================================================
   AustinsFinest.com — neon night theme
   ========================================================== */
:root{
  --bg:#0b1026; --bg2:#111a3d; --card:#161f48; --card2:#1d2858; --line:rgba(255,255,255,.10);
  --ink:#f6f7ff; --muted:#aab3da; --orange:#ff6a1a; --orange2:#ff8a3d; --cyan:#19d3ff; --yellow:#ffd23f; --pink:#ff2fb3; --green:#3ee08f;
  --radius:16px; --shadow:0 10px 30px rgba(0,0,0,.35);
  --font:'Outfit',system-ui,-apple-system,Segoe UI,Roboto,sans-serif; --display:'Bungee',Impact,sans-serif; --script:'Pacifico',cursive;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.55;font-size:16px;
  background-image:radial-gradient(1200px 600px at 85% -10%,rgba(25,211,255,.12),transparent 60%),radial-gradient(900px 500px at -10% 10%,rgba(255,106,26,.12),transparent 60%);background-attachment:fixed}
img{max-width:100%;display:block}
a{color:var(--cyan);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.15;margin:0 0 .5em}
h1{font-family:var(--display);font-weight:400;letter-spacing:.5px;font-size:clamp(1.8rem,4vw,2.8rem)}
.wrap{max-width:1280px;margin:0 auto;padding:0 16px}
.muted{color:var(--muted)} .small{font-size:.86rem} .center{text-align:center}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;z-index:99;background:#fff;color:#000;padding:8px}
.hp{position:absolute!important;left:-5000px!important;height:0;width:0;opacity:0}
:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(9,13,34,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hdr{display:flex;align-items:center;gap:18px;padding-top:8px;padding-bottom:8px}
.brand img{height:62px;width:auto;filter:drop-shadow(0 0 10px rgba(255,106,26,.35))}
.hdr-search{flex:1;display:flex;max-width:520px;background:var(--card);border:1px solid var(--line);border-radius:999px;overflow:hidden}
.hdr-search input{flex:1;background:transparent;border:0;color:var(--ink);padding:10px 16px;font:inherit;min-width:0}
.hdr-search button{background:linear-gradient(135deg,var(--orange),var(--pink));border:0;color:#fff;padding:0 16px;cursor:pointer;font-size:1rem}
.hdr-user{display:flex;gap:8px;margin-left:auto;align-items:center}
.pill{display:inline-block;padding:8px 14px;border-radius:999px;background:linear-gradient(135deg,var(--orange),#ff3d6e);color:#fff;font-weight:600;font-size:.9rem;white-space:nowrap}
.pill:hover{text-decoration:none;filter:brightness(1.1)}
.pill-ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}
.pill-admin{background:linear-gradient(135deg,#6a4cff,var(--cyan))}
.nav-toggle{display:none;background:var(--card);border:1px solid var(--line);color:var(--ink);font-size:1.4rem;border-radius:10px;padding:4px 12px;cursor:pointer}
.mainnav{border-top:1px solid var(--line)}
.mainnav .wrap{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.mainnav a{color:var(--ink);padding:10px 12px;font-weight:600;font-size:.95rem;white-space:nowrap;border-bottom:3px solid transparent}
.mainnav a:hover{text-decoration:none;border-bottom-color:var(--orange);text-shadow:0 0 12px rgba(255,106,26,.7)}

/* ---------- buttons/forms ---------- */
.btn{display:inline-flex;align-items:center;gap:6px;padding:11px 20px;border-radius:12px;border:0;cursor:pointer;font:600 1rem var(--font);color:#fff;
  background:linear-gradient(135deg,var(--orange),#ff3d6e);box-shadow:0 0 0 rgba(255,106,26,0);transition:.2s;text-decoration:none!important}
.btn:hover{box-shadow:0 0 22px rgba(255,106,26,.55);transform:translateY(-1px)}
.btn-ghost{background:transparent;border:1px solid rgba(25,211,255,.5);color:var(--cyan)}
.btn-ghost:hover{box-shadow:0 0 18px rgba(25,211,255,.4)}
.btn-tix{background:linear-gradient(135deg,var(--yellow),var(--orange));color:#1b1200}
.btn-sm{padding:7px 14px;font-size:.9rem;border-radius:10px}
.btn-block{width:100%;justify-content:center}
.fav.on{background:rgba(255,47,179,.18);border-color:var(--pink);color:#fff}
.linkbtn{background:none;border:0;color:var(--cyan);cursor:pointer;padding:0;font:inherit}
input,select,textarea{font:inherit;color:var(--ink);background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;width:100%}
select{appearance:auto}
input:focus,select:focus,textarea:focus{border-color:var(--cyan);outline:none;box-shadow:0 0 0 3px rgba(25,211,255,.2)}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--orange)}
.lbl{display:block;margin:0 0 12px;font-weight:600;font-size:.9rem}
.lbl input,.lbl select,.lbl textarea{margin-top:5px;font-weight:400}
.ck{display:flex;gap:8px;align-items:center;margin:6px 0;font-size:.93rem;cursor:pointer}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.flash{padding:12px 16px;border-radius:12px;margin:12px 0;background:rgba(62,224,143,.14);border:1px solid rgba(62,224,143,.5)}
.flash-err{background:rgba(255,61,110,.14);border-color:rgba(255,61,110,.6)}
.flash-info{background:rgba(25,211,255,.12);border-color:rgba(25,211,255,.5)}

/* ---------- section headings ---------- */
.sec-title{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:44px 0 16px;font-weight:400}
.sec-title span{font-family:var(--display);font-size:clamp(1.3rem,2.6vw,1.9rem);background:linear-gradient(90deg,var(--yellow),var(--orange),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
.sec-title small{color:var(--muted);font-size:.95rem}
.sec-title a{margin-left:auto;font-weight:600}
.page-head{padding-top:26px}
.lead{font-size:1.12rem;color:#d7dcf5;max-width:780px}

/* ---------- cards ---------- */
.grid{display:grid;gap:18px}
.cards4{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.cards3{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.cards2{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:.2s;position:relative}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,0,0,.4),0 0 0 1px rgba(25,211,255,.35)}
.card-link{color:inherit;display:block;height:100%}
.card-link:hover{text-decoration:none}
.card-img{position:relative;aspect-ratio:16/10;background:var(--card2);overflow:hidden}
.card-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card-img .ph{position:absolute;inset:0}
.ph{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--c) 70%,#fff 0%),color-mix(in srgb,var(--c) 35%,#0b1026));}
.ph span{font-size:3.2rem;filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}
.ph.big{min-height:280px}.ph.big span{font-size:6rem}
.card-body{padding:14px 16px 16px}
.card-body h3{font-size:1.1rem;margin:6px 0 4px}
.card-body p{color:var(--muted);font-size:.92rem;margin:6px 0 0}
.meta{color:var(--muted);font-size:.9rem}
.cat-chip{display:inline-flex;gap:4px;align-items:center;font-size:.78rem;font-weight:600;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--c) 22%,transparent);border:1px solid color-mix(in srgb,var(--c) 60%,transparent);color:#fff}
.card-img .cat-chip{position:absolute;left:10px;bottom:10px;background:rgba(10,14,34,.8)}
.badge{position:absolute;top:10px;right:10px;font-size:.72rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase;padding:4px 9px;border-radius:8px;background:#000a;color:#fff}
.dh-info .badge{position:static;display:inline-block}
.badge-feat{background:var(--yellow);color:#221800}.badge-spon{background:var(--cyan);color:#001b22}
.datebox{position:absolute;top:10px;left:10px;background:#fff;color:#111;border-radius:10px;text-align:center;min-width:52px;overflow:hidden;box-shadow:var(--shadow);line-height:1.05}
.datebox b{display:block;background:var(--orange);color:#fff;font-size:.72rem;padding:3px 0;text-transform:uppercase}
.datebox span{display:block;font-family:var(--display);font-size:1.45rem;padding-top:3px}
.datebox i{display:block;font-style:normal;font-size:.7rem;padding-bottom:4px;color:#555}
.datebox.big{min-width:76px}.datebox.big span{font-size:2.1rem}
.free{display:inline-block;margin-top:8px;font-weight:800;color:#06210f;background:var(--green);padding:2px 9px;border-radius:7px;font-size:.8rem}
.price{display:inline-block;margin-top:8px;font-weight:700;color:var(--yellow);font-size:.88rem}
.free.big,.price.big{font-size:1rem;padding:4px 12px;margin:8px 0}
.stars{position:relative;display:inline-block;font-size:1rem;line-height:1;letter-spacing:1px;vertical-align:middle}
.stars-bg{color:rgba(255,255,255,.2)}
.stars-fg{position:absolute;left:0;top:0;overflow:hidden;white-space:nowrap;color:var(--yellow);text-shadow:0 0 8px rgba(255,210,63,.5)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.chip{display:inline-block;padding:6px 12px;border-radius:999px;background:var(--card2);border:1px solid var(--line);color:var(--ink);font-size:.86rem}
.chip:hover{border-color:var(--cyan);text-decoration:none}
.chip-award{border-color:rgba(255,210,63,.6);background:rgba(255,210,63,.12)}
.chip-occasion{border-color:rgba(255,47,179,.5)}
.empty-box{padding:30px;border:2px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--muted)}
.box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:18px}
.box h2{font-size:1.25rem}

/* ---------- occasions strip ---------- */
.occ-strip{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 12px;scrollbar-width:thin}
.occ{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:112px;padding:14px 12px;border-radius:16px;background:var(--card);border:1px solid var(--line);color:var(--ink);font-weight:600;font-size:.88rem;text-align:center;transition:.2s}
.occ span{font-size:1.8rem}
.occ:hover{text-decoration:none;border-color:var(--pink);box-shadow:0 0 18px rgba(255,47,179,.35);transform:translateY(-2px)}

/* ==========================================================
   FLYER (seasonal)
   ========================================================== */
.flyer{position:relative;margin:22px 0 10px;border-radius:26px;overflow:hidden;color:var(--f-ink);background:var(--f-bg);
  background-image:linear-gradient(160deg,var(--f-bg) 0%,var(--f-bg2) 100%);box-shadow:0 20px 60px rgba(0,0,0,.5);isolation:isolate}
.flyer::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.9;pointer-events:none}
.flyer-inner{position:relative;padding:clamp(22px,4vw,46px)}
.flyer a{color:inherit}
.flyer .kicker{display:inline-block;font-family:var(--f-font2);font-size:clamp(1rem,2vw,1.35rem);color:var(--f-a2);transform:rotate(-2deg)}
.flyer h1{font-family:var(--f-font);font-weight:400;font-size:clamp(2.2rem,6.2vw,5rem);line-height:.98;margin:.15em 0 .2em;color:var(--f-a1);
  text-shadow:0 0 6px color-mix(in srgb,var(--f-a1) 70%,transparent),0 0 26px color-mix(in srgb,var(--f-a1) 50%,transparent),3px 3px 0 rgba(0,0,0,.25)}
.flyer-sub{margin:0;font-weight:600;opacity:.9}
.flyer-items{display:grid;gap:16px;margin:26px 0}
.fitem h3{font-family:var(--f-font);font-weight:400;font-size:clamp(1.15rem,2.1vw,1.55rem);margin:4px 0;line-height:1.1}
.fitem h3 a:hover{text-decoration:none;color:var(--f-a2)}
.fwhen{display:inline-block;font-weight:800;font-size:.78rem;letter-spacing:1px;color:var(--f-a3)}
.fwhere{display:block;opacity:.85;font-size:.92rem}
.factions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.ftag{font-weight:800;font-size:.78rem;padding:4px 9px;border-radius:7px;background:var(--f-a3);color:var(--f-bg)}
.fbtn{display:inline-block;padding:7px 14px;border-radius:999px;font-weight:700;font-size:.86rem;background:var(--f-a1);color:var(--f-bg)!important;text-decoration:none!important;transition:.15s}
.fbtn.alt{background:transparent;border:2px solid currentColor;color:var(--f-ink)!important}
.fbtn:hover{transform:scale(1.05)}
.fbtn.big{padding:11px 22px;font-size:1rem}
.flyer-foot{display:flex;gap:12px;flex-wrap:wrap}
.fimg{aspect-ratio:4/3;overflow:hidden;background:rgba(0,0,0,.2)}
.fimg img{width:100%;height:100%;object-fit:cover}
.fimg-ph{display:grid;place-items:center;height:100%;font-size:3rem;background:radial-gradient(circle,color-mix(in srgb,var(--c) 60%,#fff),color-mix(in srgb,var(--c) 40%,#000))}
/* floating decorations */
.flyer-deco{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.flyer-deco span{position:absolute;font-size:clamp(1.6rem,3vw,2.8rem);opacity:.85;animation:floaty 7s ease-in-out infinite;animation-delay:calc(var(--i) * -0.9s);filter:drop-shadow(0 4px 8px rgba(0,0,0,.35))}
.flyer-deco span:nth-child(1){top:6%;right:4%}.flyer-deco span:nth-child(2){top:44%;right:2%}.flyer-deco span:nth-child(3){bottom:6%;right:12%}
.flyer-deco span:nth-child(4){top:4%;right:22%}.flyer-deco span:nth-child(5){bottom:4%;left:3%}.flyer-deco span:nth-child(6){top:34%;left:1%;font-size:1.4rem}
.flyer-deco span:nth-child(7){bottom:30%;right:30%;font-size:1.3rem;opacity:.5}.flyer-deco span:nth-child(8){top:16%;left:40%;font-size:1.2rem;opacity:.45}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-14px) rotate(8deg)}}
@media (prefers-reduced-motion:reduce){.flyer-deco span,.bulbs{animation:none!important}}
.flyer-inner>*{position:relative;z-index:1}

/* patterns */
.pattern-stars::before{background:radial-gradient(circle,rgba(255,255,255,.55) 1px,transparent 1.5px) 0 0/38px 38px,radial-gradient(circle,rgba(255,255,255,.3) 1px,transparent 1.5px) 19px 19px/38px 38px}
.pattern-snow::before{background:radial-gradient(circle,rgba(255,255,255,.7) 2px,transparent 2.5px) 0 0/46px 46px,radial-gradient(circle,rgba(255,255,255,.45) 1.5px,transparent 2px) 23px 13px/46px 46px,radial-gradient(circle,rgba(255,255,255,.3) 3px,transparent 3.5px) 10px 30px/90px 90px}
.pattern-web::before{background:repeating-conic-gradient(from 0deg at 0 0,rgba(255,255,255,.09) 0 .6deg,transparent .6deg 12deg),repeating-radial-gradient(circle at 0 0,transparent 0 46px,rgba(255,255,255,.08) 47px 48px),repeating-conic-gradient(from 180deg at 100% 100%,rgba(255,255,255,.09) 0 .6deg,transparent .6deg 12deg),repeating-radial-gradient(circle at 100% 100%,transparent 0 46px,rgba(255,255,255,.08) 47px 48px);
  -webkit-mask:radial-gradient(circle at 0 0,#000 0 320px,transparent 330px),radial-gradient(circle at 100% 100%,#000 0 320px,transparent 330px);mask:radial-gradient(circle at 0 0,#000 0 320px,transparent 330px),radial-gradient(circle at 100% 100%,#000 0 320px,transparent 330px)}
.pattern-hearts::before{background:radial-gradient(circle,rgba(255,77,121,.5) 3px,transparent 4px) 0 0/40px 40px,radial-gradient(circle,rgba(255,255,255,.25) 2px,transparent 3px) 20px 20px/40px 40px}
.pattern-clover::before{background:radial-gradient(circle,rgba(125,255,122,.35) 3px,transparent 4px) 0 0/34px 34px,radial-gradient(circle,rgba(255,215,0,.35) 2px,transparent 3px) 17px 17px/34px 34px}
.pattern-paper::before{background:repeating-linear-gradient(0deg,rgba(80,50,20,.05) 0 2px,transparent 2px 5px),radial-gradient(ellipse at center,transparent 50%,rgba(90,50,10,.35) 100%)}
.pattern-dots::before{background:radial-gradient(circle,rgba(60,92,207,.22) 6px,transparent 7px) 0 0/48px 48px,radial-gradient(circle,rgba(247,201,72,.35) 4px,transparent 5px) 24px 24px/48px 48px}
.pattern-papel::before{background:radial-gradient(circle,rgba(0,0,0,.06) 2px,transparent 3px) 0 0/20px 20px}
.pattern-sunburst::before{background:repeating-conic-gradient(from 0deg at 85% 15%,rgba(255,255,255,.18) 0 6deg,transparent 6deg 12deg)}
.pattern-stripes::before{background:linear-gradient(transparent 62%,rgba(0,0,0,0) 62%),repeating-linear-gradient(180deg,rgba(224,22,43,.55) 0 22px,rgba(255,255,255,.65) 22px 44px);-webkit-mask:linear-gradient(transparent 70%,#000 70%);mask:linear-gradient(transparent 70%,#000 70%)}
.pattern-stripes .flyer-inner::after{content:"";position:absolute;left:0;top:0;width:160px;height:120px;background:radial-gradient(circle,#fff 2px,transparent 3px) 0 0/24px 24px;opacity:.35;z-index:0;pointer-events:none}
.pattern-waves::before{background:repeating-radial-gradient(circle at 50% 120%,rgba(255,255,255,.18) 0 6px,transparent 6px 26px)}
.pattern-field::before{background:repeating-linear-gradient(90deg,rgba(255,255,255,.14) 0 3px,transparent 3px 90px),repeating-linear-gradient(90deg,rgba(0,0,0,.08) 0 45px,transparent 45px 90px)}
.pattern-diamonds::before{background:conic-gradient(from 45deg,rgba(255,255,255,.16) 25%,transparent 0 50%,rgba(255,255,255,.16) 0 75%,transparent 0) 0 0/52px 52px}
.pattern-leaves::before{background:radial-gradient(circle,rgba(242,163,58,.35) 4px,transparent 5px) 0 0/44px 44px,radial-gradient(circle,rgba(217,98,43,.35) 3px,transparent 4px) 22px 22px/44px 44px}
.pattern-confetti::before{background:radial-gradient(circle,rgba(232,195,90,.7) 2px,transparent 3px) 0 0/30px 30px,radial-gradient(circle,rgba(255,255,255,.5) 1.5px,transparent 2.5px) 15px 9px/30px 30px,radial-gradient(circle,rgba(192,192,192,.5) 2px,transparent 3px) 7px 22px/42px 42px}
.papel{display:flex;position:absolute;top:0;left:0;right:0;z-index:2;height:46px;pointer-events:none}
.papel span{flex:1;clip-path:polygon(0 0,100% 0,100% 70%,85% 100%,70% 70%,50% 100%,30% 70%,15% 100%,0 70%);opacity:.92}
.papel span:nth-child(5n+1){background:var(--f-a1)}.papel span:nth-child(5n+2){background:var(--f-a2)}.papel span:nth-child(5n+3){background:var(--f-a3)}.papel span:nth-child(5n+4){background:#ffd23f}.papel span:nth-child(5n){background:#7b2cbf}
.pattern-papel .flyer-inner{padding-top:70px}

/* layout: POSTER */
.layout-poster .flyer-inner{text-align:center}
.layout-poster .flyer-head{max-width:900px;margin:0 auto}
.layout-poster h1{font-size:clamp(2.6rem,7.5vw,6rem)}
.layout-poster .flyer-items{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));counter-reset:fi;text-align:left}
.layout-poster .fitem{counter-increment:fi;position:relative;padding:16px 16px 16px 70px;border:2px dashed color-mix(in srgb,var(--f-ink) 35%,transparent);border-radius:14px;background:color-mix(in srgb,var(--f-bg) 92%,transparent)}
.layout-poster .fitem::before{content:counter(fi,decimal-leading-zero);position:absolute;left:14px;top:14px;font-family:var(--f-font);font-size:2rem;color:var(--f-a1);line-height:1}
.layout-poster .fitem.is-feat{border-style:solid;border-color:var(--f-a1);box-shadow:0 0 22px color-mix(in srgb,var(--f-a1) 45%,transparent)}
.layout-poster .flyer-foot{justify-content:center}
.tape{position:absolute;width:130px;height:34px;background:rgba(255,255,255,.35);z-index:3;backdrop-filter:blur(1px)}
.tape.tl{top:14px;left:-28px;transform:rotate(-35deg)}.tape.tr{top:14px;right:-28px;transform:rotate(35deg)}
.tearoffs{display:flex;margin:26px -46px -46px;border-top:2px dashed color-mix(in srgb,var(--f-ink) 45%,transparent)}
.tearoffs span{flex:1;writing-mode:vertical-rl;transform:rotate(180deg);font-size:.72rem;font-weight:700;padding:12px 0;text-align:center;border-left:2px dashed color-mix(in srgb,var(--f-ink) 35%,transparent);opacity:.75;min-width:0}
.theme-rodeo h1{color:var(--f-a1);text-shadow:2px 2px 0 var(--f-a3)}
.theme-rodeo .fitem{background:rgba(255,255,255,.35)!important}
.theme-fiesta h1{text-shadow:3px 3px 0 var(--f-a2)}

/* layout: MARQUEE */
.layout-marquee .flyer-inner{display:grid;grid-template-columns:minmax(260px,.9fr) 1.3fr;gap:30px;align-items:center;padding:clamp(30px,4.5vw,54px)}
.layout-marquee .flyer-items{margin:0;gap:10px}
.layout-marquee .fitem{display:flex;gap:14px;align-items:center;padding:12px 16px;background:rgba(0,0,0,.55);border:1px solid color-mix(in srgb,var(--f-a2) 50%,transparent);border-radius:12px}
.layout-marquee .fitem h3{text-transform:uppercase;letter-spacing:.5px;font-size:clamp(1rem,1.7vw,1.3rem)}
.layout-marquee .fitem .ftext{flex:1}
.layout-marquee .fitem.is-feat{border-color:var(--f-a1);box-shadow:inset 0 0 0 1px var(--f-a1),0 0 18px color-mix(in srgb,var(--f-a1) 40%,transparent)}
.layout-marquee .flyer-foot{grid-column:1/-1}
.bulbs{position:absolute;inset:10px;border-radius:18px;padding:12px;z-index:1;pointer-events:none;
  background:radial-gradient(circle,var(--f-a3) 0 4px,color-mix(in srgb,var(--f-a3) 30%,transparent) 5px,transparent 8px) 0 0/26px 26px;
  -webkit-mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:bulb 1.2s steps(2) infinite}
@keyframes bulb{50%{filter:brightness(.55) saturate(.7)}}

/* layout: TICKETS */
.layout-tickets .flyer-items{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.layout-tickets .fitem{display:grid;grid-template-columns:110px 1fr 46px;background:var(--f-ink);color:#1a1a1a;border-radius:14px;overflow:hidden;position:relative;
  -webkit-mask:radial-gradient(circle at calc(100% - 46px) 0,transparent 10px,#000 11px) top/100% 51% no-repeat,radial-gradient(circle at calc(100% - 46px) 100%,transparent 10px,#000 11px) bottom/100% 51% no-repeat;
  mask:radial-gradient(circle at calc(100% - 46px) 0,transparent 10px,#000 11px) top/100% 51% no-repeat,radial-gradient(circle at calc(100% - 46px) 100%,transparent 10px,#000 11px) bottom/100% 51% no-repeat;transform:rotate(var(--rot));transition:.2s}
.layout-tickets .fitem:hover{transform:rotate(0) scale(1.02)}
.layout-tickets .fimg{aspect-ratio:auto;height:100%}
.layout-tickets .ftext{padding:12px 14px}
.layout-tickets .fwhen{color:var(--f-a1);filter:brightness(.8)}
.layout-tickets .fbtn.alt{color:#1a1a1a!important}
.layout-tickets .fitem .fbtn:not(.alt){background:var(--f-bg);color:var(--f-ink)!important}
.layout-tickets .ftag{background:var(--f-a1);color:#fff}
.stub{border-left:2px dashed rgba(0,0,0,.35);display:grid;place-items:center;background:var(--f-a1)}
.stub span{writing-mode:vertical-rl;font-family:var(--f-font);font-size:.85rem;color:#fff;letter-spacing:2px}
.layout-tickets .fitem.is-feat .stub{background:var(--f-a3)}

/* layout: POLAROID */
.layout-polaroid .flyer-head{text-align:center}
.layout-polaroid h1{font-family:var(--f-font)}
.layout-polaroid .flyer-items{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:26px;padding:10px}
.layout-polaroid .fitem{background:#fff;color:#222;padding:12px 12px 16px;border-radius:4px;box-shadow:0 12px 26px rgba(0,0,0,.35);transform:rotate(var(--rot));transition:.25s}
.layout-polaroid .fitem:hover{transform:rotate(0) scale(1.04);z-index:2}
.layout-polaroid .fitem h3{font-family:var(--f-font2);font-size:1.25rem}
.layout-polaroid .fwhen{color:var(--f-a2);filter:brightness(.75)}
.layout-polaroid .fbtn.alt{color:#222!important}
.layout-polaroid .fbtn:not(.alt){background:var(--f-a1);color:#fff!important}
.layout-polaroid .flyer-foot{justify-content:center}
.theme-spring .flyer-items .fitem,.theme-summer .fitem{color:#222}

/* ---------- map ---------- */
.map-layout{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}
.legend{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px;max-height:680px;overflow:auto;font-size:.9rem;position:sticky;top:120px}
.lg-top{display:grid;gap:8px;margin-bottom:8px}
.seg{display:flex;gap:6px}.seg label{flex:1;display:flex;gap:6px;align-items:center;justify-content:center;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:7px;cursor:pointer;font-weight:600}
.legend details{border-top:1px solid var(--line);padding:6px 0}
.legend summary{cursor:pointer;font-weight:800;padding:6px 2px;color:var(--yellow);list-style:none}
.legend summary::after{content:"▾";float:right;color:var(--muted)}
.legend details:not([open]) summary::after{content:"▸"}
.lg-gtitle{font-weight:700;margin:8px 0 2px;color:var(--cyan)}
.lg-item{display:flex;align-items:center;gap:8px;padding:3px 2px;cursor:pointer;border-radius:8px}
.lg-item:hover{background:rgba(255,255,255,.05)}
.dot{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--c);font-size:.8rem;box-shadow:0 0 0 2px rgba(255,255,255,.2)}
.lg-chips{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0}
.tchip input{position:absolute;opacity:0;width:1px;height:1px}
.tchip span{display:inline-block;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--bg2);cursor:pointer;font-size:.82rem;transition:.15s}
.tchip input:checked+span{background:linear-gradient(135deg,var(--orange),var(--pink));border-color:transparent;color:#fff}
.tchip input:focus-visible+span{outline:2px solid var(--yellow)}
.lg-row{display:block;margin:8px 0;font-weight:600}.lg-row select{margin-top:4px;padding:7px}
.lg-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.map-wrap{min-width:0}
.bigmap{height:680px;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);z-index:1}
.af-pin{background:none;border:0}
.af-pin span{display:grid;place-items:center;width:34px;height:34px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:var(--c);border:2px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.4)}
.af-pin b{display:block;transform:rotate(45deg);font-size:16px;line-height:1;font-weight:400}
.af-pin.is-event span{border-color:var(--yellow);box-shadow:0 0 0 3px rgba(255,210,63,.45),0 3px 10px rgba(0,0,0,.4)}
.leaflet-popup-content-wrapper{border-radius:14px}
.pop{min-width:200px;max-width:240px;font-family:var(--font);color:#1a1f3a}
.pop img{width:100%;height:110px;object-fit:cover;border-radius:8px;margin-bottom:6px}
.pop b{display:block;font-size:1rem}.pop small{display:block;color:#555;margin:2px 0}.pop p{margin:6px 0;font-size:.85rem}
.pop a{font-weight:700;color:#d14b00}.pop .free{color:#0a7a3d;font-weight:800}
.map-list h4{margin:14px 0 8px}
.ml-row{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px}
.ml-item{flex:0 0 200px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--c);border-radius:12px;padding:10px;color:var(--ink);font-size:.88rem}
.ml-item span{float:right}.ml-item b{display:block}.ml-item small{color:var(--muted)}
.ml-item:hover{text-decoration:none;border-color:var(--c)}

/* ---------- calendar ---------- */
.cal-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}
.cal-box,.cal-day{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.cal-bar{display:flex;align-items:center;justify-content:space-between}
.cal-bar h2,.cal-bar h3{margin:0;font-family:var(--display);font-weight:400;font-size:1.4rem}
.cal-bar button{background:var(--bg2);border:1px solid var(--line);color:var(--ink);width:40px;height:40px;border-radius:12px;font-size:1.4rem;cursor:pointer}
.cal-bar button:hover{border-color:var(--orange)}
.cal-filters{display:flex;gap:8px;margin:12px 0}.cal-filters select{padding:7px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;transition:opacity .2s}
.cal-grid.loading{opacity:.4}
.cal-dow{text-align:center;font-size:.75rem;font-weight:800;color:var(--muted);text-transform:uppercase;padding:4px 0}
.cal-cell{min-height:74px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:5px;text-align:left;color:var(--ink);cursor:pointer;font:inherit;display:flex;flex-direction:column;gap:2px;position:relative}
.cal-cell.empty{background:transparent;border:0;cursor:default}
.cal-cell b{font-size:.9rem}
.cal-cell.past{opacity:.5}
.cal-cell.today{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange),0 0 14px rgba(255,106,26,.35)}
.cal-cell.sel{background:linear-gradient(160deg,rgba(255,106,26,.28),rgba(255,47,179,.2));border-color:var(--pink)}
.cal-cell:hover{border-color:var(--cyan)}
.cal-dots{display:flex;flex-wrap:wrap;gap:2px}
.cal-dots i{font-style:normal;font-size:.8rem;width:20px;height:20px;display:grid;place-items:center;border-radius:6px;background:color-mix(in srgb,var(--c) 45%,transparent)}
.cal-cell em{font-style:normal;font-size:.7rem;color:var(--yellow);position:absolute;right:6px;top:5px}
.cal-day-title{font-family:var(--display);font-weight:400;font-size:1.15rem;color:var(--yellow)}
.cal-day-list{display:grid;gap:8px;max-height:520px;overflow:auto;margin-bottom:12px}
.cal-ev{display:flex;gap:10px;align-items:flex-start;background:var(--bg2);border:1px solid var(--line);border-left:4px solid var(--c);border-radius:10px;padding:9px 10px;color:var(--ink)}
.cal-ev:hover{text-decoration:none;border-color:var(--c)}
.ce-i{font-size:1.3rem}.cal-ev b{display:block;font-size:.95rem}.cal-ev small{color:var(--muted)}.cal-ev em{color:var(--green);font-style:normal;font-weight:800}
.cal-legend{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:12px;font-size:.8rem;color:var(--muted)}
.cal-legend i{font-style:normal;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;background:color-mix(in srgb,var(--c) 45%,transparent);margin-right:4px}
.cal-layout.full .cal-cell{min-height:100px}

/* ---------- music ---------- */
.music-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.music-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.mc-body{padding:12px 14px}.mc-body h3{font-size:1.05rem;margin:0 0 4px}
.video-wrap{position:relative;aspect-ratio:16/9;background:#000}
.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-ph{aspect-ratio:16/9;display:grid;place-items:center;align-content:center;gap:10px;background:linear-gradient(135deg,#2a0f4d,#0b1026)}
.video-ph span{font-size:3rem}
iframe.spotify{width:100%;border:0;border-radius:12px}

/* ---------- promos ---------- */
.promo-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:44px auto 20px}
.promo{border-radius:20px;padding:24px;color:#fff;transition:.2s;min-height:190px}
.promo span{font-size:2.2rem;letter-spacing:4px}.promo h3{font-family:var(--display);font-weight:400;font-size:1.35rem;margin:10px 0 6px}.promo p{margin:0;opacity:.9}
.promo:hover{text-decoration:none;transform:translateY(-3px) rotate(-.5deg)}
.p1{background:linear-gradient(135deg,#ff2fb3,#ff6a1a)}.p2{background:linear-gradient(135deg,#1a9e5f,#19a7d3)}.p3{background:linear-gradient(135deg,#6a4cff,#ff2fb3)}

/* ---------- listing pages ---------- */
.with-side{display:grid;grid-template-columns:270px 1fr;gap:24px;align-items:start;margin-top:10px}
.side-filters{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;position:sticky;top:120px;max-height:calc(100vh - 140px);overflow:auto}
.side-filters details{border-top:1px solid var(--line);padding:8px 0}
.side-filters summary{font-weight:800;color:var(--yellow);cursor:pointer}
.fgroup b{display:block;color:var(--cyan);margin:8px 0 2px;font-size:.85rem}
.pager{display:flex;gap:6px;flex-wrap:wrap;margin:24px 0}
.pager a,.pager span{padding:7px 12px;border-radius:10px;background:var(--card);border:1px solid var(--line);color:var(--ink)}
.pager .cur{background:var(--orange);border-color:var(--orange)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.tabs a{padding:8px 14px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--ink);font-weight:600;font-size:.9rem}
.tabs a.on{background:linear-gradient(135deg,var(--orange),var(--pink));border-color:transparent}
.tabs a:hover{text-decoration:none}
.day-h{font-family:var(--display);font-weight:400;font-size:1.3rem;margin:26px 0 12px;color:var(--yellow)}
.day-h small{font-family:var(--font);color:var(--muted);font-size:.95rem}
.big-search{display:flex;gap:10px;max-width:640px;margin:10px 0}
.card-ad{grid-column:1/-1}

/* ---------- detail ---------- */
.crumbs{font-size:.88rem;color:var(--muted);margin:18px 0 12px}
.detail-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:26px;background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 30%,transparent),var(--shadow)}
.dh-img{position:relative;min-height:300px;background:var(--card2)}
.dh-img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.dh-img .ph{position:absolute;inset:0}
.dh-info{padding:26px 26px 26px 0}
.dh-info h1{margin:10px 0 6px}
.when-big{font-size:1.05rem;line-height:1.8;margin:8px 0}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.tix-search{margin-top:12px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tix-search a{font-weight:700}
.detail-grid{display:grid;grid-template-columns:1fr 340px;gap:22px;margin-top:22px}
.tg{margin-bottom:8px}.tg b{font-size:.85rem;color:var(--muted)}
.minimap{height:220px;border-radius:12px;margin-bottom:12px;z-index:1}
.facts dt{font-weight:700;margin-top:10px}.facts dd{margin:2px 0 0;color:#d7dcf5}
.near{display:flex;gap:10px;align-items:center;padding:7px 0;color:var(--ink);border-bottom:1px solid var(--line)}
.near span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--c)}
.ev-list{display:grid;gap:8px}
.ev-row{display:flex;gap:12px;align-items:center;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:8px 12px;color:var(--ink)}
.ev-row:hover{text-decoration:none;border-color:var(--cyan)}
.ev-row .d{width:46px;text-align:center;font-family:var(--display);font-size:1.3rem;line-height:1}
.ev-row .d b{display:block;font-family:var(--font);font-size:.7rem;color:var(--orange);text-transform:uppercase}
.ev-row small{display:block;color:var(--muted)}.ev-row .tix{margin-left:auto}
.review{border-top:1px solid var(--line);padding:14px 0}
.review h4{margin:6px 0 2px}
.review p{margin:4px 0;color:#dfe3f8}
.rv-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,var(--cyan),#6a4cff)}
.review-form{background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px}
.star-input{border:0;padding:0;margin:0 0 12px;display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px}
.star-input legend{width:100%;font-weight:600;margin-bottom:4px;font-size:.9rem}
.star-input input{position:absolute;opacity:0;width:1px}
.star-input label{font-size:2rem;color:rgba(255,255,255,.25);cursor:pointer;transition:.1s}
.star-input input:checked~label,.star-input label:hover,.star-input label:hover~label{color:var(--yellow);text-shadow:0 0 10px rgba(255,210,63,.6)}
.star-input input:focus-visible+label{outline:2px solid var(--cyan)}
.cta-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* ---------- rentals ---------- */
.rent-cats{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 20px}
.rent-cats a{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:118px;padding:14px 10px;border-radius:16px;background:var(--card);border:2px solid var(--line);color:var(--ink);font-weight:600;font-size:.85rem;text-align:center}
.rent-cats a span{font-size:2rem}
.rent-cats a.on,.rent-cats a:hover{border-color:var(--c,var(--orange));text-decoration:none;box-shadow:0 0 18px color-mix(in srgb,var(--c,var(--orange)) 40%,transparent)}
.vendor-cta{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-top:20px}
.vendor-cta a:not(.btn){display:inline-block;margin:2px 8px 2px 0}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.shop{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;color:var(--ink);text-align:center}
.shop span{font-size:2rem;display:block}.shop b{display:block}.shop small{color:var(--orange)}
.shop:hover{text-decoration:none;border-color:var(--yellow)}

/* ---------- auth/account ---------- */
.auth{display:grid;place-items:center;padding:40px 16px}
.auth-card{width:100%;max-width:440px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:var(--shadow)}
.auth.wide .auth-card{max-width:680px}
.acct-grid{display:grid;grid-template-columns:1fr 320px;gap:24px}
ul.plain{list-style:none;padding:0}ul.plain li{padding:8px 0;border-bottom:1px solid var(--line)}
.prose{max-width:860px}.prose h2{margin-top:1.4em}.prose p,.prose li{color:#dfe3f8}
.big-emoji{font-size:4rem;margin-top:30px}

/* ---------- ads ---------- */
.ad{margin:24px auto;text-align:center;min-height:0}
.ad-label{display:block;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}

/* ---------- footer ---------- */
.site-footer{margin-top:60px;background:#070b1c;border-top:1px solid var(--line);padding:40px 0 20px}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr;gap:24px}
.site-footer h4{font-family:var(--display);font-weight:400;color:var(--yellow)}
.site-footer a{display:block;color:#cfd5f2;padding:3px 0;font-size:.93rem}
.news label{display:block;font-weight:700;margin:12px 0 6px}.news .row{display:flex;gap:8px}
.foot-legal{border-top:1px solid var(--line);margin-top:24px;padding-top:12px}

/* ---------- lightbox ---------- */
.lightbox{position:fixed;inset:0;background:rgba(3,5,15,.85);z-index:1000;display:grid;place-items:center;padding:16px}
.lightbox[hidden]{display:none}
.lb-inner{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;width:min(560px,100%);max-height:92vh;overflow:auto;position:relative}
.lb-wide .lb-inner{width:min(1100px,100%)}
.lb-close{position:absolute;right:10px;top:10px;background:var(--bg2);border:1px solid var(--line);color:var(--ink);border-radius:10px;width:36px;height:36px;cursor:pointer;z-index:5}
.am-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}
.am-tabs button,.am-tabs a{background:var(--bg2);border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:7px 14px;cursor:pointer;font:600 .88rem var(--font)}
.am-tabs .on{background:var(--orange);border-color:var(--orange)}
.am-map{height:min(70vh,640px);border-radius:12px}
.am-img img,.lb-img{max-width:100%;margin:auto;border-radius:10px}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .map-layout{grid-template-columns:1fr}
  .legend{position:static;max-height:none}
  .bigmap{height:520px}
  .layout-marquee .flyer-inner{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .hdr{flex-wrap:wrap;gap:10px}
  .brand img{height:50px}
  .hdr-search{order:3;flex-basis:100%;max-width:none}
  .hdr-user .pill-ghost{display:none}
  .nav-toggle{display:block}
  .mainnav{display:none}
  .nav-open .mainnav{display:block}
  .mainnav .wrap{flex-direction:column}
  .with-side,.detail-grid,.acct-grid,.cal-layout,.vendor-cta{grid-template-columns:1fr}
  .side-filters{position:static;max-height:none}
  .detail-hero{grid-template-columns:1fr}
  .dh-info{padding:0 18px 22px}
  .tearoffs{margin:22px -22px -22px}
}
@media (max-width:560px){
  .cal-cell{min-height:52px;padding:3px}
  .cal-dots i{width:14px;height:14px;font-size:.6rem}
  .cal-layout.full .cal-cell{min-height:60px}
  .layout-tickets .flyer-items{grid-template-columns:1fr}
  .layout-tickets .fitem{grid-template-columns:84px 1fr 34px}
  .row2{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .flyer{border-radius:18px}
  .tape{display:none}
  .bigmap{height:440px}
}

.bigmap-box{position:relative}
.map-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:500;background:rgba(11,16,38,.92);border:1px solid var(--orange);border-radius:16px;padding:18px 22px;text-align:center;max-width:320px;box-shadow:0 0 24px rgba(255,106,26,.35);pointer-events:none}
.map-hint[hidden]{display:none}
.map-hint span{display:block;font-size:2rem}.map-hint b{display:block;font-family:var(--display);font-weight:400;color:var(--yellow);margin:4px 0}.map-hint small{color:var(--muted)}


/* map clusters */
.af-cluster{background:none}
.af-cluster span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font:800 .9rem var(--font);color:#fff;
  background:radial-gradient(circle at 35% 30%,#ff9a4d,#ff3d6e);border:3px solid #fff;box-shadow:0 0 0 4px rgba(255,106,26,.35),0 4px 12px rgba(0,0,0,.35)}
.af-cluster.lg span{width:46px;height:46px;margin:-3px;background:radial-gradient(circle at 35% 30%,#c77dff,#7209b7);box-shadow:0 0 0 5px rgba(155,93,229,.35),0 4px 12px rgba(0,0,0,.35)}
.af-cluster.xl span{width:52px;height:52px;margin:-6px;background:radial-gradient(circle at 35% 30%,#4cc9f0,#3a0ca3);box-shadow:0 0 0 6px rgba(25,211,255,.35),0 4px 12px rgba(0,0,0,.35)}
.inline{display:inline}
.osm-credit{font-size:.78rem;color:var(--muted);margin-top:8px}
