*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
--red:#CC0000;--red-dark:#990000;--red-glow:rgba(204,0,0,0.4);--red-soft:rgba(204,0,0,0.12);
--black:#050505;--dark:#0d0d0d;--dark2:#151515;--dark3:#1e1e1e;--gray:#aaa;--light-gray:#ddd;--white:#fff}
html{scroll-behavior:smooth;overflow-x:hidden}
a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
body{font-family:'Inter',sans-serif;background:var(--black);color:var(--white);overflow-x:hidden;-webkit-text-size-adjust:100%}
::selection{background:var(--red);color:var(--white)}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
section,footer,div{background-color:inherit}
/* Decorative overlay layers must stay see-through — the rule above would
   otherwise paint them solid and hide the whole page behind them. */
.particles,.hero-lines,.hero-scroll,.hero-ctas,.cta-btns,.wall-inner,.wall-btns,.wall-cd,.marquee-track,.stats-grid,.loc-item,.social-row,.footer-bottom,.hero-inner,.container{background-color:transparent!important}
html,body,section,.section,.hero,.marquee,.stats-bar,.cta-section,.footer,.video-section,.gallery-section{background-color:var(--black)}
.why-section,.pricing-section,.timings-section,.footer{background-color:var(--dark3)!important}
img{max-width:100%;display:block}

/* ── SCROLL PROGRESS ── */
.progress{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--red),#ff4d4d);z-index:200;transition:width .1s linear}

/* ── FESTIVAL PARTICLES ── */
.particles{position:fixed;inset:0;pointer-events:none;z-index:98;overflow:hidden}
.particle{position:absolute;top:-40px;font-size:18px;opacity:.55;animation:fall linear infinite}
@keyframes fall{0%{transform:translateY(-40px) rotate(0deg)}100%{transform:translateY(105vh) rotate(360deg)}}

/* ── OFFER STRIP ── */
.offer-bar{position:relative;background:linear-gradient(90deg,var(--red-dark),var(--red),var(--red-dark));background-size:200% 100%;animation:shine 6s linear infinite;padding:10px 16px;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;z-index:120;font-size:12.5px;font-weight:600;letter-spacing:.5px}
@keyframes shine{0%{background-position:0 0}100%{background-position:200% 0}}
.offer-bar .cd{display:inline-flex;gap:5px;font-family:'Oswald',sans-serif;font-weight:600;letter-spacing:1px}
.offer-bar .cd b{background:rgba(0,0,0,.28);padding:2px 7px;border-radius:3px;min-width:34px;text-align:center;display:inline-block}
.offer-bar a{color:var(--white);background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.35);padding:5px 16px;border-radius:99px;text-decoration:none;font-size:11px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;transition:.3s}
.offer-bar a:hover{background:var(--white);color:var(--red)}
.offer-bar .x{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:rgba(255,255,255,.6);font-size:16px;cursor:pointer;line-height:1}

/* ── LOADER ── */
.loader{position:fixed;inset:0;background:var(--black);z-index:9999;display:flex;align-items:center;justify-content:center;transition:opacity .6s,visibility .6s}
.loader.hidden{opacity:0;visibility:hidden}
.loader-text{font-family:'Bebas Neue',sans-serif;font-size:48px;letter-spacing:8px;overflow:hidden}
.loader-text span{display:inline-block;animation:slideUp .6s ease backwards}
@keyframes slideUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
.loader-bar{position:absolute;bottom:40%;left:50%;transform:translateX(-50%);width:200px;height:2px;background:var(--dark3);border-radius:2px;overflow:hidden}
.loader-bar::after{content:'';position:absolute;left:0;top:0;height:100%;width:0;background:var(--red);animation:loadBar 1.6s ease forwards}
@keyframes loadBar{to{width:100%}}

/* ── NAV ── */
.nav{position:sticky;top:0;width:100%;z-index:100;padding:18px 0;transition:all .4s;background:transparent}
.nav.scrolled{background:rgba(5,5,5,.92);backdrop-filter:blur(20px);padding:12px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.nav-inner{max-width:1300px;margin:0 auto;padding:0 40px;display:flex;justify-content:space-between;align-items:center}
.logo{font-family:'Bebas Neue',sans-serif;font-size:28px;letter-spacing:4px;text-decoration:none;color:var(--white)}
.logo em{font-style:normal;color:var(--red)}
.nav-menu{display:flex;list-style:none;gap:30px;align-items:center}
.nav-menu a{color:var(--gray);text-decoration:none;font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;transition:color .3s;position:relative}
.nav-menu a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--red);transition:width .3s}
.nav-menu a:hover{color:var(--white)}
.nav-menu a:hover::after{width:100%}
.nav-btn{background:var(--red)!important;color:var(--white)!important;padding:12px 26px!important;border-radius:4px;letter-spacing:1px!important;font-weight:700!important}
.nav-btn::after{display:none!important}
.nav-btn:hover{background:var(--red-dark)!important;transform:translateY(-1px)}
.mobile-toggle{display:none;background:none;border:none;cursor:pointer;padding:4px}
.mobile-toggle span{display:block;width:22px;height:1.5px;background:var(--white);margin:5px 0;transition:.3s}
.mobile-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.mobile-toggle.open span:nth-child(2){opacity:0}
.mobile-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* ── HERO ── */
.hero{min-height:92vh;display:flex;align-items:center;position:relative;overflow:hidden;margin-top:-74px;padding-top:74px}
.hero-bg{position:absolute;inset:0;background:linear-gradient(135deg,var(--black) 0%,#0a0000 40%,#120000 100%)}
.hero-photo{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.3;transform:scale(1.06);animation:slowZoom 22s ease-in-out infinite alternate}
@keyframes slowZoom{to{transform:scale(1.16)}}
.hero-veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.94) 0%,rgba(5,5,5,.72) 55%,rgba(5,5,5,.5) 100%)}
.hero-glow{position:absolute;top:50%;right:0;width:620px;height:620px;background:radial-gradient(circle,var(--red-glow) 0%,transparent 68%);opacity:.22;transform:translate(20%,-50%);pointer-events:none;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.hero-lines{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero-lines i{position:absolute;top:0;width:1px;height:100%;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.045) 50%,transparent)}
.hero-lines i:nth-child(1){left:20%}.hero-lines i:nth-child(2){left:50%}.hero-lines i:nth-child(3){left:78%}
.hero-inner{max-width:1300px;margin:0 auto;padding:110px 40px 100px;position:relative;z-index:2;width:100%}
.hero-label{display:inline-flex;align-items:center;gap:9px;margin-bottom:30px;animation:fadeUp .8s ease .7s backwards;border:1px solid rgba(204,0,0,.35);padding:7px 16px;border-radius:99px;background:rgba(204,0,0,.06)}
.hero-label-dot{width:7px;height:7px;background:var(--red);border-radius:50%;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 var(--red-glow)}50%{box-shadow:0 0 0 10px transparent}}
.hero-label span{font-size:10.5px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--red)}
.hero h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(54px,9vw,120px);line-height:.88;letter-spacing:2px;margin-bottom:30px}
.hero-line{display:block;overflow:hidden}
.hero-line span{display:inline-block;animation:revealText .9s cubic-bezier(.16,1,.3,1) backwards}
.hero-line:nth-child(1) span{animation-delay:.9s}
.hero-line:nth-child(2) span{animation-delay:1.05s}
.hero-line:nth-child(3) span{animation-delay:1.2s;color:var(--red)}
@keyframes revealText{from{transform:translateY(110%)}to{transform:translateY(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.hero-desc{font-size:16px;color:var(--gray);max-width:480px;line-height:1.8;margin-bottom:14px;animation:fadeUp .8s ease 1.4s backwards}
.hero-tagline{font-size:13px;color:var(--red);font-weight:700;letter-spacing:3px;text-transform:uppercase;margin-bottom:38px;animation:fadeUp .8s ease 1.5s backwards}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;animation:fadeUp .8s ease 1.6s backwards}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 38px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;text-decoration:none;transition:all .3s;border:none;cursor:pointer;position:relative;overflow:hidden;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.btn-red{background:var(--red);color:var(--white);border-radius:4px}
.btn-red::before{content:'';position:absolute;inset:0;background:linear-gradient(45deg,transparent,rgba(255,255,255,.14),transparent);transform:translateX(-100%);transition:transform .55s}
.btn-red:hover::before{transform:translateX(100%)}
.btn-red:hover{box-shadow:0 0 40px var(--red-glow);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,.16);border-radius:4px}
.btn-ghost:hover{border-color:var(--white);transform:translateY(-2px)}
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.35);transform:scale(0);animation:rip .6s linear;pointer-events:none}
@keyframes rip{to{transform:scale(4);opacity:0}}
.hero-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;animation:fadeUp 1s ease 2.1s backwards;z-index:2}
.hero-scroll span{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--gray)}
.scroll-line{width:1px;height:38px;position:relative;overflow:hidden;background:rgba(255,255,255,.08)}
.scroll-line::after{content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--red);animation:scrollDown 1.6s ease infinite}
@keyframes scrollDown{0%{top:-100%}100%{top:100%}}

/* ── MARQUEE ── */
.marquee{padding:36px 0;border-top:1px solid rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.04);overflow:hidden;background:var(--dark)}
.marquee-track{display:flex;gap:56px;animation:marqueeScroll 26s linear infinite;width:max-content}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{font-family:'Bebas Neue',sans-serif;font-size:23px;letter-spacing:4px;color:rgba(255,255,255,.28);white-space:nowrap;display:flex;align-items:center;gap:56px;transition:color .3s}
.marquee-item:hover{color:var(--red)}
.marquee-item::after{content:'◆';font-size:9px;color:var(--red);opacity:.7}
@keyframes marqueeScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ── SECTIONS ── */
.section{padding:110px 0;position:relative}
.container{max-width:1300px;margin:0 auto;padding:0 40px}
.section-eyebrow{font-size:11px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--red);margin-bottom:18px;display:flex;align-items:center;gap:16px}
.section-eyebrow::before{content:'';width:40px;height:1px;background:var(--red)}
.section-heading{font-family:'Bebas Neue',sans-serif;font-size:clamp(38px,6vw,72px);line-height:.95;letter-spacing:2px;margin-bottom:22px}
.section-heading .w{display:inline-block;opacity:0;transform:translateY(24px) rotateX(-40deg);transition:all .55s cubic-bezier(.16,1,.3,1)}
.section-heading.active .w{opacity:1;transform:none}
.section-desc{font-size:15px;color:var(--gray);max-width:560px;line-height:1.8}

/* ── REVEALS ── */
.reveal{opacity:0;transform:translateY(46px);transition:all .8s cubic-bezier(.16,1,.3,1)}
.reveal.active{opacity:1;transform:none}
.reveal-left{opacity:0;transform:translateX(-56px);transition:all .8s cubic-bezier(.16,1,.3,1)}
.reveal-left.active{opacity:1;transform:none}
.reveal-right{opacity:0;transform:translateX(56px);transition:all .8s cubic-bezier(.16,1,.3,1)}
.reveal-right.active{opacity:1;transform:none}
.reveal-scale{opacity:0;transform:scale(.92);transition:all .8s cubic-bezier(.16,1,.3,1)}
.reveal-scale.active{opacity:1;transform:none}
.stagger:nth-child(1){transition-delay:.05s}.stagger:nth-child(2){transition-delay:.13s}
.stagger:nth-child(3){transition-delay:.21s}.stagger:nth-child(4){transition-delay:.29s}
.stagger:nth-child(5){transition-delay:.37s}.stagger:nth-child(6){transition-delay:.45s}
.stagger:nth-child(7){transition-delay:.53s}.stagger:nth-child(8){transition-delay:.61s}

/* ── WHY ── */
.why-section{background:var(--dark)}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:54px}
.why-card{background:var(--dark2);padding:48px 34px;position:relative;overflow:hidden;transition:all .4s;border:1px solid rgba(255,255,255,.06)}
.why-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .5s}
.why-card::after{content:'';position:absolute;inset:0;background:radial-gradient(400px circle at var(--mx,50%) var(--my,50%),rgba(204,0,0,.09),transparent 45%);opacity:0;transition:opacity .4s;pointer-events:none}
.why-card:hover{background:var(--dark3)}
.why-card:hover::before{transform:scaleX(1)}
.why-card:hover::after{opacity:1}
.why-num{font-family:'Bebas Neue',sans-serif;font-size:70px;color:rgba(255,255,255,.06);position:absolute;top:8px;right:20px;line-height:1;transition:color .4s}
.why-card:hover .why-num{color:rgba(204,0,0,.16)}
.why-card h3{font-family:'Oswald',sans-serif;font-size:22px;font-weight:600;text-transform:uppercase;letter-spacing:1px;margin:16px 0 14px}
.why-card p{font-size:14px;color:var(--gray);line-height:1.8}
.why-icon-box{width:48px;height:48px;border:1px solid rgba(204,0,0,.3);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:22px;transition:transform .4s}
.why-card:hover .why-icon-box{transform:translateY(-4px) rotate(-6deg)}

/* ── STATS ── */
.stats-bar{background:var(--red)!important;padding:56px 0;position:relative;overflow:hidden}
.stats-bar::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.22),transparent);pointer-events:none}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;text-align:center;position:relative}
.stat-num{font-family:'Bebas Neue',sans-serif;font-size:54px;letter-spacing:2px;line-height:1}
.stat-text{font-size:11.5px;font-weight:600;letter-spacing:2px;text-transform:uppercase;opacity:.85;margin-top:4px}

/* ── FACILITIES ── */
.facilities-wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:54px}
.facility-card{background:var(--dark2);padding:38px 22px;text-align:center;transition:all .4s;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.06)}
.facility-card::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--red);transition:all .4s;transform:translateX(-50%)}
.facility-card:hover{background:var(--dark3);transform:translateY(-5px)}
.facility-card:hover::after{width:100%}
.facility-emoji{font-size:34px;margin-bottom:14px;display:block;transition:transform .4s}
.facility-card:hover .facility-emoji{transform:scale(1.22) rotate(6deg)}
.facility-card h4{font-family:'Oswald',sans-serif;font-size:14.5px;font-weight:500;text-transform:uppercase;letter-spacing:2px}

/* ── PRICING ── */
.pricing-section{background:var(--dark)}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:54px;perspective:1200px}
.price-card{background:var(--dark2);border:1px solid rgba(255,255,255,.05);padding:46px 34px;position:relative;transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .4s,box-shadow .4s;overflow:hidden;transform-style:preserve-3d;display:flex;flex-direction:column}
.price-card.best{border-color:var(--red);box-shadow:0 0 0 1px var(--red),0 18px 60px rgba(204,0,0,.16)}
.price-card.best::after{content:'';position:absolute;inset:-1px;border:1px solid var(--red);opacity:0;animation:ringPulse 3s ease-in-out infinite;pointer-events:none}
@keyframes ringPulse{0%,100%{opacity:0;transform:scale(1)}50%{opacity:.5;transform:scale(1.012)}}
.price-tag{position:absolute;top:20px;right:-38px;background:var(--red);color:var(--white);font-size:9.5px;font-weight:800;letter-spacing:1.5px;padding:6px 44px;transform:rotate(45deg);z-index:2}
.price-card:hover{border-color:rgba(204,0,0,.5)}
.price-dur{font-family:'Oswald',sans-serif;font-size:14px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--gray);margin-bottom:22px}
.price-old{font-size:16px;color:var(--gray);text-decoration:line-through;margin-bottom:4px}
.price-new{font-family:'Bebas Neue',sans-serif;font-size:62px;letter-spacing:1px;line-height:1;margin-bottom:4px}
.price-mo{font-size:13px;color:var(--gray);margin-bottom:8px}
.price-save{display:inline-block;background:var(--red-soft);color:var(--red);padding:4px 15px;font-size:11px;font-weight:700;letter-spacing:1px;border-radius:2px;margin-bottom:26px;align-self:flex-start}
.price-list{list-style:none;margin-bottom:28px;flex:1}
.price-list li{font-size:13px;color:var(--light-gray);padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04);display:flex;align-items:center;gap:10px}
.price-list li::before{content:'✓';color:var(--red);font-weight:700;font-size:12px}
.price-card .btn{width:100%;padding:14px}

/* ── GALLERY ── */
.gallery-rail{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:54px}
.g-item{position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid rgba(255,255,255,.07);background:linear-gradient(135deg,var(--dark2),var(--dark3));cursor:pointer}
.g-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.g-item.has-img{cursor:zoom-in}
.g-item:hover img{transform:scale(1.09)}
.g-cap{position:absolute;left:0;right:0;bottom:0;padding:16px;background:linear-gradient(to top,rgba(0,0,0,.85),transparent);font-family:'Oswald',sans-serif;font-size:13px;letter-spacing:2px;text-transform:uppercase;transform:translateY(6px);opacity:.85;transition:.4s}
.g-item:hover .g-cap{transform:none;opacity:1}
.g-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:rgba(255,255,255,.28);font-size:12px;letter-spacing:2px;text-transform:uppercase}
.g-empty b{font-size:28px;font-weight:400;color:rgba(204,0,0,.5)}
.g-empty small{font-size:10px;letter-spacing:1px;color:rgba(255,255,255,.2);text-transform:none}
.g-item.has-img .g-empty{display:none}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.93);z-index:500;display:none;align-items:center;justify-content:center;padding:24px}
.lightbox.on{display:flex;animation:fadeIn .3s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.lightbox img{max-width:92vw;max-height:88vh;object-fit:contain;border:1px solid rgba(255,255,255,.1)}
.lightbox .close{position:absolute;top:20px;right:26px;font-size:30px;color:var(--white);background:none;border:none;cursor:pointer}

/* ── VIDEO ── */
.video-box{margin:54px auto 0;position:relative;max-width:960px}
.video-frame{position:relative;padding-bottom:56.25%;background:var(--dark2);overflow:hidden;border:1px solid rgba(255,255,255,.05)}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:none}
.video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:linear-gradient(135deg,var(--dark2),var(--dark3));cursor:pointer}
.play-btn{width:78px;height:78px;background:var(--red);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s;box-shadow:0 0 60px var(--red-glow);position:relative}
.play-btn::before{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid var(--red);animation:ripple2 2.4s ease-out infinite}
@keyframes ripple2{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.9);opacity:0}}
.video-placeholder:hover .play-btn{transform:scale(1.08)}
.play-btn svg{width:26px;height:26px;fill:var(--white);margin-left:4px}
.video-placeholder p{color:var(--gray);font-size:12.5px;letter-spacing:2px;text-transform:uppercase}

/* ── TIMINGS ── */
.timings-section{background:var(--dark)}
.timings-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:54px;align-items:center}
.time-display{background:var(--dark2);border:1px solid rgba(255,255,255,.05);padding:56px;text-align:center;position:relative;overflow:hidden}
.time-big{font-family:'Bebas Neue',sans-serif;font-size:76px;color:var(--red);line-height:1;letter-spacing:2px}
.time-sep{font-family:'Bebas Neue',sans-serif;font-size:19px;color:var(--gray);letter-spacing:4px;margin:8px 0}
.live-badge{display:inline-flex;align-items:center;gap:8px;margin-top:22px;padding:7px 18px;border-radius:99px;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;border:1px solid}
.live-badge.open{color:#25D366;border-color:rgba(37,211,102,.4);background:rgba(37,211,102,.08)}
.live-badge.closed{color:var(--gray);border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.03)}
.live-dot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse2 1.8s infinite}
@keyframes pulse2{0%,100%{opacity:1}50%{opacity:.25}}
.time-info h3{font-family:'Bebas Neue',sans-serif;font-size:38px;letter-spacing:2px;margin-bottom:18px}
.time-info p{color:var(--gray);font-size:14px;line-height:1.8;margin-bottom:22px}
.time-days{list-style:none}
.time-days li{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:14px}
.time-days li span:first-child{color:var(--light-gray)}
.time-days li span:last-child{color:var(--red);font-weight:600;font-family:'Oswald',sans-serif;letter-spacing:1px}

/* ── LOCATION ── */
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px;margin-top:54px}
.loc-map{height:420px;overflow:hidden;border:2px solid rgba(255,255,255,.1);background:var(--dark2);border-radius:8px;display:flex;flex-direction:column}
.loc-map iframe{width:100%;flex:1;border:none}
.loc-map .maplink{display:block;text-align:center;padding:12px;background:var(--dark2);color:var(--red);font-size:13px;font-weight:700;text-decoration:none;letter-spacing:1px;text-transform:uppercase;border-top:1px solid rgba(255,255,255,.06)}
.loc-item{display:flex;gap:16px;margin-bottom:26px}
.loc-icon{width:44px;height:44px;min-width:44px;border:1px solid rgba(204,0,0,.3);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;transition:.3s}
.loc-item:hover .loc-icon{background:var(--red-soft);transform:translateY(-3px)}
.loc-text h4{font-size:14px;font-weight:700;margin-bottom:4px}
.loc-text p,.loc-text a{font-size:13px;color:var(--gray);text-decoration:none;line-height:1.6}
.loc-text a:hover{color:var(--red)}

/* ── CTA ── */
.cta-section{background:linear-gradient(135deg,var(--red-dark),var(--red),var(--red-dark))!important;background-size:200% 200%!important;animation:gradShift 9s ease infinite;text-align:center;padding:96px 0;position:relative;overflow:hidden}
@keyframes gradShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.cta-section::before{content:'';position:absolute;inset:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}
.cta-section h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(38px,6vw,72px);letter-spacing:2px;margin-bottom:14px;position:relative}
.cta-section p{font-size:17px;opacity:.92;margin-bottom:36px;position:relative}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative}
.btn-white{background:var(--white);color:var(--red);padding:16px 38px;border-radius:4px;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:2px;text-decoration:none;transition:all .3s;display:inline-flex;align-items:center;gap:10px}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 10px 40px rgba(0,0,0,.25)}
.btn-outline-w{background:transparent;border:1px solid rgba(255,255,255,.45);color:var(--white);padding:16px 38px;border-radius:4px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:2px;text-decoration:none;transition:all .3s;display:inline-flex;align-items:center;gap:10px}
.btn-outline-w:hover{border-color:var(--white);transform:translateY(-2px)}

/* ── FOOTER ── */
.footer{background:var(--dark);padding:56px 0 20px;border-top:1px solid rgba(255,255,255,.04)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:56px;margin-bottom:36px}
.footer-brand p{color:var(--gray);font-size:13px;line-height:1.8;margin:14px 0 18px}
.social-row{display:flex;gap:10px}
.social-row a{width:36px;height:36px;background:rgba(255,255,255,.04);border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .3s;text-decoration:none;font-size:14px}
.social-row a:hover{background:var(--red);transform:translateY(-3px)}
.footer-col h4{font-family:'Oswald',sans-serif;font-size:13px;font-weight:600;letter-spacing:3px;text-transform:uppercase;margin-bottom:18px}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:10px}
.footer-col a{color:var(--gray);text-decoration:none;font-size:13px;transition:color .3s}
.footer-col a:hover{color:var(--red)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.04);padding-top:20px;display:flex;justify-content:space-between}
.footer-bottom p{color:rgba(255,255,255,.22);font-size:12px}

/* ── FLOATING + MOBILE BAR ── */
.wa-float{position:fixed;bottom:28px;right:24px;z-index:99;width:56px;height:56px;background:#25D366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 24px rgba(37,211,102,.45);transition:all .3s;text-decoration:none}
.wa-float::before{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:ripple2 2.6s ease-out infinite}
.wa-float:hover{transform:scale(1.1)}
.wa-float svg{width:28px;height:28px;fill:white;position:relative}
.top-btn{position:fixed;bottom:96px;right:24px;z-index:99;width:42px;height:42px;border-radius:50%;background:var(--dark3);border:1px solid rgba(255,255,255,.1);color:var(--white);cursor:pointer;font-size:16px;opacity:0;visibility:hidden;transition:.35s}
.top-btn.on{opacity:1;visibility:visible}
.top-btn:hover{background:var(--red);border-color:var(--red)}
.mobile-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:97;background:rgba(10,10,10,.96);backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.07);padding:9px 12px calc(9px + env(safe-area-inset-bottom));gap:8px}
.mobile-bar a{flex:1;text-align:center;padding:12px 8px;border-radius:6px;font-size:12px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;text-decoration:none}
.mobile-bar .m-call{background:rgba(255,255,255,.07);color:var(--white)}
.mobile-bar .m-wa{background:var(--red);color:var(--white)}

/* ── FESTIVAL WELCOME WALL ── */
.wall{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;text-align:center;padding:32px 24px;background:radial-gradient(ellipse at 50% 15%,var(--red-dark) 0%,#0a0505 55%,#050505 100%)}
.wall.on{display:flex;animation:wallIn .7s cubic-bezier(.16,1,.3,1)}
.wall.out{animation:wallOut .55s cubic-bezier(.7,0,.84,0) forwards}
@keyframes wallIn{from{opacity:0}to{opacity:1}}
@keyframes wallOut{to{opacity:0;transform:scale(1.06);visibility:hidden}}
.wall::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.025'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E");pointer-events:none}
.wall.has-img{background-size:cover;background-position:center}
.wall.has-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,5,5,.72),rgba(5,5,5,.88));pointer-events:none}
.wall-inner{position:relative;z-index:2;max-width:680px;width:100%}
.wall-eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:18px;animation:wUp .7s ease .15s backwards}
.wall-greet{font-family:'Bebas Neue',sans-serif;font-size:clamp(48px,11vw,104px);line-height:.95;letter-spacing:3px;margin-bottom:18px}
.wall-greet .w{display:inline-block;animation:wUp .8s cubic-bezier(.16,1,.3,1) backwards}
.wall-line{font-size:15px;color:rgba(255,255,255,.7);line-height:1.75;max-width:460px;margin:0 auto 26px;animation:wUp .7s ease .5s backwards}
.wall-offer{display:inline-block;border:1px solid rgba(255,255,255,.28);background:rgba(0,0,0,.3);padding:11px 24px;border-radius:99px;font-size:13px;font-weight:700;letter-spacing:1px;margin-bottom:18px;animation:wUp .7s ease .6s backwards}
.wall-cd{display:flex;gap:8px;justify-content:center;margin-bottom:30px;animation:wUp .7s ease .68s backwards}
.wall-cd div{background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:9px 0;min-width:60px}
.wall-cd b{display:block;font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:1px;line-height:1}
.wall-cd i{font-style:normal;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.45)}
.wall-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;animation:wUp .7s ease .78s backwards}
.wall-btns .btn{min-width:186px}
@keyframes wUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.wall-x{position:absolute;top:22px;right:24px;background:none;border:none;color:rgba(255,255,255,.45);font-size:28px;cursor:pointer;line-height:1;transition:.3s}
.wall-x:hover{color:var(--white)}

/* ── TODAY LABEL ── */
.time-today{font-size:10.5px;font-weight:700;letter-spacing:4px;text-transform:uppercase;color:var(--gray);margin-bottom:16px}
.time-closed{font-family:'Bebas Neue',sans-serif;font-size:56px;letter-spacing:2px;color:var(--gray);line-height:1.1}

/* ── RESPONSIVE ── */
@media(max-width:968px){
.nav-menu{display:none;position:absolute;top:100%;left:0;width:100%;background:rgba(5,5,5,.98);flex-direction:column;padding:22px 40px;gap:16px;border-bottom:1px solid rgba(255,255,255,.06)}
.nav-menu.open{display:flex}
.mobile-toggle{display:block}
.hero{min-height:auto}
.hero h1{font-size:clamp(42px,12vw,72px)}
.why-grid{grid-template-columns:1fr}
.facilities-wrap{grid-template-columns:repeat(2,1fr)}
.gallery-rail{grid-template-columns:repeat(2,1fr)}
.pricing-grid{grid-template-columns:1fr;max-width:420px;margin-left:auto;margin-right:auto}
.stats-grid{grid-template-columns:repeat(2,1fr);gap:22px}
.timings-grid,.loc-grid{grid-template-columns:1fr}
.loc-map{height:320px}
.time-display{padding:38px 20px}
.time-big{font-size:54px}
.footer-grid{grid-template-columns:1fr;gap:30px}
.footer-bottom{flex-direction:column;gap:8px;text-align:center}
.container{padding:0 20px}
.section{padding:74px 0}
.hero-inner{padding:60px 20px 90px}
.mobile-bar{display:flex}
.wa-float{bottom:82px;width:50px;height:50px}
.top-btn{bottom:142px}
body{padding-bottom:66px}
.offer-bar{font-size:11.5px;gap:9px;padding:9px 34px 9px 14px}
}
@media(max-width:480px){
.stats-grid{grid-template-columns:1fr}
.facilities-wrap,.gallery-rail{grid-template-columns:1fr}
.hero-ctas{flex-direction:column}
.hero-ctas .btn{width:100%}
.cta-btns{flex-direction:column;align-items:stretch}
.loc-map{height:260px}
}
@media(prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
.reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:1!important;transform:none!important}
.hero-line span{transform:none!important}
.particles{display:none}
}

/* FAILSAFE: if JS errors, nothing stays hidden */
.js-failed .reveal,.js-failed .reveal-left,.js-failed .reveal-right,.js-failed .reveal-scale,.js-failed .section-heading .w{opacity:1!important;transform:none!important}
.js-failed .loader{display:none!important}

