
/* === Guard rails: nunca deixar a página sumir por causa de modal/overlay === */
html, body{ visibility: visible !important; opacity: 1 !important; }

/* Modais fechados por padrão */
#carnivalModal, #cookieModal{ display:none; }

/* Backdrops separados (não mexer no body) */
#carnivalBackdrop, #cookieBackdrop{
  display:none;
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.55);
  z-index: 9998;
}

#carnivalModal, #cookieModal{
  position:fixed;
  left:50%;
  top:50%;
  transform: translate(-50%, -50%);
  z-index: 9999;
  max-width: min(560px, 92vw);
  width: 92vw;
}

/* ===== Site em construção ===== */
        .construction-padding { padding-top: 44px; }
        .construction-bar { position: fixed; top: 0; left: 0; right: 0; z-index: 9999; background: rgba(17,24,39,0.92); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(255,255,255,0.08); }
        .construction-inner { max-width: 80rem; margin: 0 auto; padding: 10px 16px; display:flex; gap:12px; align-items:center; justify-content:center; }
        .construction-badge { background: #F59E0B; color: #111827; font-weight: 800; font-size: 12px; padding: 4px 10px; border-radius: 999px; letter-spacing: 0.5px; }
        .construction-text { color: rgba(255,255,255,0.92); font-size: 13px; text-align:center; }
        @media (max-width: 420px){ .construction-text{ font-size:12px; } }

        /* ===== Acessibilidade: reduzir movimento ===== */
        @media (prefers-reduced-motion: reduce) {
            * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
        }

        
        /* ===== Modal Cookies ===== */
        .cookie-modal { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; background: rgba(0,0,0,0.55); z-index: 99999; padding: 16px; }
        .cookie-modal.active { display: flex; }
        .cookie-modal-content { width: 100%; max-width: 560px; background: white; border-radius: 20px; padding: 18px; box-shadow: 0 20px 60px rgba(0,0,0,0.35); }

        /* ===== Sambistas (apenas no modo Carnaval) ===== */
        .hero-sambistas { position:absolute; inset:0; pointer-events:none; display:none; }
        body.carnival-active .hero-sambistas { display:block; }
        .samba { transform-origin: 50% 80%; animation: samba 1.6s ease-in-out infinite; opacity: 0.9; }
        .samba.s2 { animation-duration: 1.9s; opacity: 0.75; transform-origin: 60% 85%; }
        .samba.s3 { animation-duration: 2.1s; opacity: 0.65; transform-origin: 40% 85%; }
        @keyframes samba { 0%,100%{ transform: translateY(0) rotate(-2deg) } 50%{ transform: translateY(-8px) rotate(2deg) } }

        body { font-family: 'Inter', sans-serif; }
        .font-serif { font-family: 'Playfair Display', serif; }
        .glass-effect { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); }
        .hover-lift { transition: transform 0.3s ease, box-shadow 0.3s ease; }
        .hover-lift:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(0,0,0,0.1); }
        .animate-fade-in { animation: fadeIn 1s ease-out; }
        @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
        
        /* Scroll Reveal Animation */
        .reveal{opacity:1;transform:none;}
        .reveal.active { opacity: 1; transform: translateY(0); }
        .reveal-left{opacity:1;transform:none;}
        .reveal-left.active { opacity: 1; transform: translateX(0); }
        .stagger-1 { transition-delay: 0.1s; }
        .stagger-2 { transition-delay: 0.2s; }
        .stagger-3 { transition-delay: 0.3s; }
        .stagger-4 { transition-delay: 0.4s; }
        
        /* Floating animation */
        @keyframes float {
            0%, 100% { transform: translateY(0px); }
            50% { transform: translateY(-20px); }
        }
        .floating { animation: float 6s ease-in-out infinite; }

        /* HERO MOBILE - NOVO */
        @media (max-width: 768px) {
            .hero-desktop { display: none !important; }
            
.hero-media-stage{
  isolation:isolate;
}
.hero-desktop-poster{
  background-image: url("https://s2-g1.glbimg.com/OwNMuVqozG_OvuL9Hanwnk9nxfY=/0x0:1032x581/984x0/smart/filters:strip_icc()/i.s3.glbimg.com/v1/AUTH_59edd422c0c84a879bd37670ae4f538a/internal_photos/bs/2018/m/5/ZYyH7CSeaXJpxFAS0kWQ/shopping.jpg");
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.04);
  transition: opacity .9s ease, transform 1.2s ease;
  z-index: 0;
}
.hero-intro-video{
  transition: opacity .8s ease, visibility .8s ease;
}

.hero-base-video{
  opacity: 0;
  visibility: hidden;
  transition: opacity .8s ease, visibility .8s ease;
}
.hero-intro-video{
  opacity: 1;
  visibility: visible;
}
.hero-desktop.hero-video-ended .hero-base-video,
.hero-mobile.hero-video-ended .hero-mobile-base-loop,
.hero-mobile.hero-video-ended #hero-base-mobile{
  opacity: 1;
  visibility: visible;
}
.hero-desktop.hero-video-ended .hero-intro-video,
.hero-mobile.hero-video-ended .hero-intro-video,
.hero-mobile.hero-video-ended #hero-mobile-special-intro{
  opacity: 0;
  visibility: hidden;
}
.hero-desktop.hero-video-ended .hero-desktop-poster{
  opacity: 1;
  transform: scale(1);
}
.hero-desktop.hero-video-ended .hero-intro-video{
  opacity: 0;
  visibility: hidden;
}
.hero-mobile.hero-video-ended .hero-mobile-video{
  opacity: 0;
  visibility: hidden;
}
.hero-mobile { display: flex !important; }
            .hero-mobile h1 { font-size: 2.5rem !important; }
            .hero-mobile .counter { font-size: 2rem !important; }
            .btn-loja-aqui { display: none !important; }
            .mascote-carnaval { display: none !important; }
        }
        @media (min-width: 769px) {
            .hero-mobile { display: none !important; }
        }
        
        /* EFEITOS DE CARNAVAL */
        #carnival-container {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 9998;
            overflow: hidden;
            display: none;
        }
        
        .carnival-active #carnival-container { display: block; }
        
        .confetti {
            position: absolute;
            width: 10px;
            height: 10px;
            opacity: 0.9;
            animation: fall linear forwards;
        }
        
        @keyframes fall {
            0% { transform: translateY(-100px) rotate(0deg); opacity: 1; }
            100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
        }
        
        .carnival-mask-float {
            position: fixed;
            font-size: 60px;
            z-index: 9997;
            pointer-events: none;
            animation: maskFloat 8s ease-in-out infinite;
        }
        
        @keyframes maskFloat {
            0%, 100% { transform: translateY(0) rotate(-5deg); }
            50% { transform: translateY(-30px) rotate(5deg); }
        }
        
        .mascote-carnaval {
            position: fixed;
            bottom: 100px;
            right: 30px;
            font-size: 80px;
            z-index: 9999;
            cursor: pointer;
            animation: mascoteDance 2s ease-in-out infinite;
            display: none;
            filter: drop-shadow(0 4px 8px rgba(0,0,0,0.3));
        }
        
        .carnival-active .mascote-carnaval { display: block; }
        
        @keyframes mascoteDance {
            0%, 100% { transform: rotate(-10deg) scale(1); }
            50% { transform: rotate(10deg) scale(1.1); }
        }
        
        .carnival-btn {
            position: fixed;
            bottom: 26px;
            right: 22px;
            min-height: 62px;
            border-radius: 999px;
            background: linear-gradient(135deg, #FF6B6B, #FFE66D, #4ECDC4);
            background-size: 300% 300%;
            border: 3px solid white;
            box-shadow: 0 8px 24px rgba(0,0,0,0.28);
            cursor: pointer;
            z-index: 9999;
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 8px 14px 8px 10px;
            color: #111827;
            font-weight: 700;
            animation: carnival-gradient 3s ease infinite;
            transition: transform 0.25s ease, box-shadow 0.25s ease;
            max-width: min(86vw, 340px);
        }
        .carnival-btn-icon {
            width: 42px;
            height: 42px;
            border-radius: 999px;
            background: rgba(255,255,255,0.9);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
            flex-shrink: 0;
            box-shadow: inset 0 0 0 2px rgba(255,255,255,0.8);
        }
        .carnival-btn-text {
            font-size: 12px;
            line-height: 1.1;
            text-align: left;
            color: #111827;
            text-shadow: 0 1px 0 rgba(255,255,255,0.35);
        }
        .carnival-btn:hover { transform: translateY(-1px) scale(1.02); box-shadow: 0 10px 26px rgba(0,0,0,0.32); }
        @media (max-width: 768px){
            .carnival-btn{ bottom: 18px; right: 12px; min-height: 54px; padding: 6px 10px 6px 8px; gap: 8px; max-width: calc(100vw - 24px);}
            .carnival-btn-icon{ width: 36px; height: 36px; font-size: 20px; }
            .carnival-btn-text{ font-size: 10px; }
        }
        
        @keyframes carnival-gradient {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }
        
        /* EFEITOS DE CAFÉ 3D */
        .coffee-section {
            position: relative;
            overflow: hidden;
        }
        
        .coffee-section-bg {
            position: absolute;
            inset: 0;
            background-image: url('https://thumbs.dreamstime.com/b/blurred-abstract-coffee-shop-background-atmospheric-cozy-cafe-interior-shot-334151440.jpg');
            background-size: cover;
            background-position: center;
            
        }
        
        .coffee-section-overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, rgba(63, 44, 34, 0.95) 0%, rgba(93, 64, 55, 0.9) 50%, rgba(63, 44, 34, 0.95) 100%);
        }
        
        .coffee-drop {
            position: absolute;
            width: 20px;
            height: 30px;
            background: linear-gradient(to bottom, #6F4E37, #3E2723);
            border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
            opacity: 0.6;
            animation: coffee-fall linear infinite;
            pointer-events: none;
            box-shadow: 0 0 10px rgba(111, 78, 55, 0.5);
        }
        
        @keyframes coffee-fall {
            0% { transform: translateY(-100px) scale(0.8); opacity: 0; }
            10% { opacity: 0.6; }
            90% { opacity: 0.6; }
            100% { transform: translateY(100vh) scale(1.2); opacity: 0; }
        }
        
        .coffee-bean {
            position: absolute;
            width: 15px;
            height: 20px;
            background: #4E342E;
            border-radius: 50%;
            opacity: 0.4;
            animation: bean-float linear infinite;
            pointer-events: none;
            box-shadow: 0 0 8px rgba(78, 52, 46, 0.4);
        }
        
        .coffee-bean::before {
            content: '';
            position: absolute;
            top: 50%;
            left: 10%;
            right: 10%;
            height: 2px;
            background: #3E2723;
            transform: translateY(-50%);
        }
        
        @keyframes bean-float {
            0% { transform: translateY(-50px) rotate(0deg) translateX(0); opacity: 0; }
            10% { opacity: 0.4; }
            90% { opacity: 0.4; }
            100% { transform: translateY(100vh) rotate(360deg) translateX(50px); opacity: 0; }
        }
        
        /* Efeito de vapor de café */
        .coffee-steam {
            position: absolute;
            width: 60px;
            height: 60px;
            background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, transparent 70%);
            border-radius: 50%;
            animation: steam-rise 4s ease-out infinite;
            pointer-events: none;
        }
        
        @keyframes steam-rise {
            0% { transform: translateY(0) scale(0.5); opacity: 0; }
            50% { opacity: 0.3; }
            100% { transform: translateY(-200px) scale(1.5); opacity: 0; }
        }
        
        /* POPUP CARNAVAL */
        .carnival-popup {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.8);
            backdrop-filter: blur(5px);
            z-index: 200000;
            display: none;
            align-items: center;
            justify-content: center;
        }
        
        .carnival-popup.active { display: flex; }
/* Evita conflito visual entre popup de carnaval e cookies */
body.carnival-popup-open #cookie-modal.active,
body.carnival-popup-open #cookie-banner.active{
  visibility: hidden !important;
  pointer-events: none !important;
}
body.carnival-popup-open .loja-popup.active,
body.carnival-popup-open .em-breve-popup.active{
  visibility: hidden !important;
  pointer-events: none !important;
}

        
        .carnival-popup-content {
            background: linear-gradient(135deg, #FF6B6B 0%, #FFE66D 50%, #4ECDC4 100%);
            padding: 40px;
            border-radius: 30px;
            text-align: center;
            max-width: 500px;
            width: 90%;
            box-shadow: 0 20px 60px rgba(0,0,0,0.3);
            animation: popup-appear 0.3s ease;
            position: relative;
            overflow: hidden;
        }
        
        .carnival-popup-content::before {
            content: '🎭';
            position: absolute;
            top: 10px;
            left: 10px;
            font-size: 40px;
            opacity: 0.3;
            animation: float 3s ease-in-out infinite;
        }
        
        .carnival-popup-content::after {
            content: '🎉';
            position: absolute;
            top: 10px;
            right: 10px;
            font-size: 40px;
            opacity: 0.3;
            animation: float 3s ease-in-out infinite reverse;
        }
        
        @keyframes popup-appear {
            from { transform: scale(0.8); opacity: 0; }
            to { transform: scale(1); opacity: 1; }
        }
        
        /* POPUP SUA LOJA AQUI */
        .loja-popup {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.8);
            backdrop-filter: blur(5px);
            z-index: 10000;
            display: none;
            align-items: center;
            justify-content: center;
        }
        
        .loja-popup.active { display: flex; }
        
        .loja-popup-content {
            background: white;
            padding: 40px;
            border-radius: 30px;
            text-align: center;
            max-width: 450px;
            width: 90%;
            box-shadow: 0 20px 60px rgba(0,0,0,0.3);
            animation: popup-appear 0.3s ease;
            border: 3px solid #FFD700;
        }
        
        /* POPUP EM BREVE */
        .em-breve-popup {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.7);
            backdrop-filter: blur(5px);
            z-index: 10003;
            display: none;
            align-items: center;
            justify-content: center;
        }
        
        .em-breve-popup.active { display: flex; }
        
        .em-breve-popup-content {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            padding: 40px;
            border-radius: 30px;
            text-align: center;
            max-width: 400px;
            width: 90%;
            box-shadow: 0 20px 60px rgba(0,0,0,0.3);
            animation: popup-appear 0.3s ease;
            color: white;
        }
        
        /* COOKIE BANNER */
        .cookie-banner {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            background: rgba(0,0,0,0.9);
            color: white;
            padding: 20px;
            z-index: 10002;
            display: none;
        }
        
        .cookie-banner.active { display: block; }
        
        /* DROPDOWN TERMOS E PRIVACIDADE */
        .legal-dropdown {
            border: 1px solid #374151;
            border-radius: 12px;
            overflow: hidden;
            margin-bottom: 1rem;
        }
        
        .legal-dropdown-header {
            background: #1f2937;
            padding: 1rem 1.5rem;
            cursor: pointer;
            display: flex;
            justify-content: space-between;
            align-items: center;
            transition: background 0.3s;
        }
        
        .legal-dropdown-header:hover {
            background: #374151;
        }
        
        .legal-dropdown-content {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.5s ease-out, padding 0.3s;
            background: #111827;
        }
        
        .legal-dropdown-content.active {
            max-height: 2000px;
            padding: 1.5rem;
        }
        
        .legal-dropdown-icon {
            transition: transform 0.3s;
        }
        
        .legal-dropdown-icon.active {
            transform: rotate(180deg);
        }
        
        /* UTILIDADES */
        .category-pill {
            transition: all 0.2s ease;
        }
        .category-pill:hover {
            transform: scale(1.05);
            box-shadow: 0 4px 12px rgba(0,0,0,0.15);
        }
        
        .store-card {
            background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
            border: 1px solid rgba(226, 232, 240, 0.8);
            transition: all 0.3s ease;
        }
        .store-card:hover {
            transform: translateY(-8px);
            box-shadow: 0 20px 40px rgba(0,0,0,0.12);
            border-color: rgba(220, 38, 38, 0.3);
        }
        
        /* CARDS COM GRADIENTE BRILHANTE NO CARNAVAL */
        .carnival-colors .store-card {
            background: linear-gradient(135deg, #ffffff 0%, #fff5f5 50%, #fffbeb 100%);
            border: 2px solid transparent;
            background-clip: padding-box;
            position: relative;
        }
        
        .carnival-colors .store-card::before {
            content: '';
            position: absolute;
            inset: -2px;
            background: linear-gradient(45deg, #FF6B6B, #FFE66D, #4ECDC4, #FF6B6B);
            border-radius: inherit;
            z-index: -1;
            animation: border-glow 3s ease infinite;
            background-size: 300% 300%;
        }
        
        @keyframes border-glow {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }
        
        .carnival-colors .food-card {
            background: linear-gradient(to bottom right, #fffbeb, #fef3c7, #fff5f5);
            border: 2px solid transparent;
            background-clip: padding-box;
            position: relative;
        }
        
        .carnival-colors .food-card::before {
            content: '';
            position: absolute;
            inset: -2px;
            background: linear-gradient(45deg, #FF8C42, #FFE66D, #F15BB5, #FF8C42);
            border-radius: inherit;
            z-index: -1;
            animation: border-glow 3s ease infinite;
            background-size: 300% 300%;
        }
        
        .carnival-colors .fun-card {
            background: linear-gradient(135deg, #fdf4ff 0%, #fae8ff 50%, #fff5f5 100%);
            border: 2px solid transparent;
            background-clip: padding-box;
            position: relative;
        }
        
        .carnival-colors .fun-card::before {
            content: '';
            position: absolute;
            inset: -2px;
            background: linear-gradient(45deg, #9B5DE5, #F15BB5, #00BBF9, #9B5DE5);
            border-radius: inherit;
            z-index: -1;
            animation: border-glow 3s ease infinite;
            background-size: 300% 300%;
        }
        
        .food-card {
            background: linear-gradient(to bottom right, #fffbeb, #fef3c7);
            border: 1px solid #fcd34d;
        }
        
        .fun-card {
            background: linear-gradient(135deg, #fdf4ff 0%, #fae8ff 100%);
            border: 1px solid #e879f9;
        }
        
        .local-brand {
            background: linear-gradient(135deg, #3f2c22 0%, #5d4037 50%, #3f2c22 100%);
            position: relative;
            overflow: hidden;
        }

        /* SEÇÃO CINEMA MULTIPLEX - DESTAQUE ESPECIAL */
        .cinema-highlight {
            background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
            position: relative;
            overflow: hidden;
        }
        
        .cinema-highlight::before {
            content: '';
            position: absolute;
            top: -50%;
            left: -50%;
            width: 200%;
            height: 200%;
            background: repeating-linear-gradient(
                45deg,
                transparent,
                transparent 10px,
                rgba(255,215,0,0.03) 10px,
                rgba(255,215,0,0.03) 20px
            );
            animation: cinema-shine 20s linear infinite;
        }
        
        @keyframes cinema-shine {
            0% { transform: translate(-50%, -50%) rotate(0deg); }
            100% { transform: translate(-50%, -50%) rotate(360deg); }
        }
        
        .cinema-spotlight {
            position: absolute;
            width: 300px;
            height: 300px;
            background: radial-gradient(circle, rgba(255,215,0,0.2) 0%, transparent 70%);
            border-radius: 50%;
            animation: spotlight-move 8s ease-in-out infinite;
        }
        
        @keyframes spotlight-move {
            0%, 100% { transform: translate(-100px, -100px); }
            50% { transform: translate(calc(100% + 100px), calc(100% + 100px)); }
        }

        /* LOGO ANIMADA DOURADA */
        .logo-animated {
            position: relative;
            display: inline-block;
        }
        
        .logo-animated::before {
            content: '';
            position: absolute;
            inset: -10px;
            background: linear-gradient(45deg, #FFD700, #FFA500, #FFD700, #B8860B, #FFD700);
            background-size: 400% 400%;
            border-radius: 20px;
            z-index: -1;
            animation: gold-shine 3s ease infinite;
            filter: blur(15px);
            opacity: 0.7;
        }
        
        @keyframes gold-shine {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }
        
        .logo-text-gold {
            background: linear-gradient(90deg, #FFD700, #FFA500, #FFD700, #B8860B, #FFD700);
            background-size: 200% auto;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            animation: text-shine 3s linear infinite;
            filter: drop-shadow(0 0 10px rgba(255,215,0,0.5));
        }
        
        @keyframes text-shine {
            to { background-position: 200% center; }
        }

        /* ENFEITES DE CARNAVAL NAS SEÇÕES - GRADIENTES COLORIDOS */
        .carnival-section {
            position: relative;
            border-top: 5px solid transparent;
            border-image: linear-gradient(90deg, #FF6B6B, #FFE66D, #4ECDC4, #FF6B6B) 1;
            animation: border-gradient 3s ease infinite;
        }
        
        .carnival-section::before {
            content: '🎭';
            position: absolute;
            top: 20px;
            left: 20px;
            font-size: 40px;
            opacity: 0.3;
            animation: carnival-float 4s ease-in-out infinite;
            z-index: 10;
        }
        
        .carnival-section::after {
            content: '🎉';
            position: absolute;
            top: 20px;
            right: 20px;
            font-size: 40px;
            opacity: 0.3;
            animation: carnival-float 4s ease-in-out infinite reverse;
            z-index: 10;
        }
        
        @keyframes carnival-float {
            0%, 100% { transform: translateY(0) rotate(-10deg); }
            50% { transform: translateY(-20px) rotate(10deg); }
        }
        
        @keyframes border-gradient {
            0% { border-image-source: linear-gradient(90deg, #FF6B6B, #FFE66D, #4ECDC4, #FF6B6B); }
            33% { border-image-source: linear-gradient(90deg, #4ECDC4, #FF6B6B, #FFE66D, #4ECDC4); }
            66% { border-image-source: linear-gradient(90deg, #FFE66D, #4ECDC4, #FF6B6B, #FFE66D); }
            100% { border-image-source: linear-gradient(90deg, #FF6B6B, #FFE66D, #4ECDC4, #FF6B6B); }
        }

        /* ESTRELAS E CONFETES NAS SEÇÕES */
        .section-stars {
            position: absolute;
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
            pointer-events: none;
            overflow: hidden;
            z-index: 1;
        }
        
        .star {
            position: absolute;
            color: #FFD700;
            font-size: 20px;
            animation: twinkle 2s ease-in-out infinite;
        }
        
        @keyframes twinkle {
            0%, 100% { opacity: 0.3; transform: scale(1); }
            50% { opacity: 1; transform: scale(1.2); }
        }

        /* GRADIENTES COLORIDOS DE CARNAVAL */
        .carnival-gradient-text {
            background: linear-gradient(90deg, #FF6B6B, #FFE66D, #4ECDC4, #FF6B6B);
            background-size: 300% 100%;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            animation: gradient-shift 3s ease infinite;
        }
        
        @keyframes gradient-shift {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        /* BOTÃO SUA LOJA AQUI FLUTUANTE */
        .btn-loja-aqui {
            position: fixed;
            bottom: 100px;
            left: 30px;
            background: linear-gradient(135deg, #FF6B6B, #FF8E53);
            color: white;
            padding: 15px 25px;
            border-radius: 50px;
            font-weight: bold;
            box-shadow: 0 4px 15px rgba(255,107,107,0.4);
            cursor: pointer;
            z-index: 9998;
            animation: pulse-btn 2s ease-in-out infinite;
            border: 3px solid white;
        }
        
        @keyframes pulse-btn {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.05); }
        }
        
        .btn-loja-aqui:hover {
            transform: scale(1.1);
            box-shadow: 0 6px 20px rgba(255,107,107,0.6);
        }
        
        /* MAPS 3D CONTROLS */
        .maps-3d-controls {
            display: flex;
            gap: 8px;
            margin-bottom: 12px;
            flex-wrap: wrap;
        }
        
        .maps-3d-btn {
            background: #1a73e8;
            color: white;
            padding: 8px 16px;
            border-radius: 20px;
            font-size: 12px;
            font-weight: 600;
            border: none;
            cursor: pointer;
            transition: all 0.3s;
            display: flex;
            align-items: center;
            gap: 6px;
        }
        
        .maps-3d-btn:hover {
            background: #1557b0;
            transform: translateY(-2px);
        }
        
        .maps-3d-btn.active {
            background: #34a853;
        }
        
        /* Mobile counter fix */
        @media (max-width: 768px) {
            .counter-mobile {
                font-size: 2rem !important;
            }
            
            .hero-mobile .counter {
                animation: counterPulse 2s ease-in-out infinite;
            }
            
            @keyframes counterPulse {
                0%, 100% { transform: scale(1); }
                50% { transform: scale(1.05); }
            }
        }
        
        /* BOBO DA CORTE ANIMADO - CARNAVAL */
        .bobo-corte-container {
            position: relative;
            width: 100%;
            height: 80px;
            overflow: hidden;
            margin: 0;
            padding: 0;
        }
        
        .bobo-corte {
            position: absolute;
            width: 60px;
            height: 80px;
            background-image: url('/img/bobo-corte-carnaval.png');
            background-size: contain;
            background-repeat: no-repeat;
            background-position: center;
            animation: boboWalk 15s linear infinite, boboBounce 0.5s ease-in-out infinite;
            z-index: 100;
            filter: drop-shadow(0 4px 8px rgba(0,0,0,0.3));
        }
        
        @keyframes boboWalk {
            0% { left: -80px; transform: scaleX(1); }
            45% { left: calc(100% + 20px); transform: scaleX(1); }
            50% { left: calc(100% + 20px); transform: scaleX(-1); }
            95% { left: -80px; transform: scaleX(-1); }
            100% { left: -80px; transform: scaleX(1); }
        }
        
        @keyframes boboBounce {
            0%, 100% { transform: translateY(0) scaleX(var(--direction, 1)); }
            50% { transform: translateY(-10px) scaleX(var(--direction, 1)); }
        }
        
        .bobo-corte-trail {
            position: absolute;
            width: 100%;
            height: 4px;
            background: linear-gradient(90deg, transparent, #FF6B6B, #FFE66D, #4ECDC4, transparent);
            background-size: 200% 100%;
            animation: trailShine 2s linear infinite;
            bottom: 20px;
            opacity: 0.6;
        }
        
        @keyframes trailShine {
            0% { background-position: 0% 50%; }
            100% { background-position: 200% 50%; }
        }
        
        /* Confetes caindo nas divisões */
        .section-divider-confetti {
            position: absolute;
            width: 100%;
            height: 100%;
            pointer-events: none;
            overflow: hidden;
        }
        
        .mini-confetti {
            position: absolute;
            width: 8px;
            height: 8px;
            animation: miniConfettiFall 3s linear infinite;
        }
        
        @keyframes miniConfettiFall {
            0% { transform: translateY(-20px) rotate(0deg); opacity: 0; }
            10% { opacity: 1; }
            90% { opacity: 1; }
            100% { transform: translateY(100px) rotate(360deg); opacity: 0; }
        }
        
        /* HERO MOBILE PARALLAX */
        .hero-mobile {
            position: relative;
            overflow: hidden;
        }
        
        .hero-mobile-video {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center center;
            z-index: 0;
        }

        .hero-mobile-bg {
            position: absolute;
            inset: 0;
            background:
                linear-gradient(135deg, rgba(4,10,35,0.55) 0%, rgba(11,22,58,0.45) 50%, rgba(27,48,97,0.40) 100%),
                url("assets/hero-mobile.jpg") center/cover no-repeat;
            transform: translateZ(0);
            will-change: transform;
            z-index: 1;
        }
        
        .hero-mobile-parallax-layer {
            z-index: 2;
            position: absolute;
            inset: -20%;
            background: 
                radial-gradient(circle at 20% 30%, rgba(255,215,0,0.15) 0%, transparent 40%),
                radial-gradient(circle at 80% 70%, rgba(255,107,107,0.2) 0%, transparent 40%),
                radial-gradient(circle at 50% 50%, rgba(255,255,255,0.05) 0%, transparent 50%);
            animation: parallaxFloat 8s ease-in-out infinite;
        }
        
        @keyframes parallaxFloat {
            0%, 100% { transform: translate(0, 0) scale(1); }
            25% { transform: translate(-2%, -1%) scale(1.02); }
            50% { transform: translate(1%, 2%) scale(1); }
            75% { transform: translate(2%, -1%) scale(1.01); }
        }
        
        .hero-mobile-grid {
            z-index: 2;
            position: absolute;
            inset: 0;
            background-image: 
                linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
                linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
            background-size: 50px 50px;
            animation: gridMove 20s linear infinite;
        }
        
        @keyframes gridMove {
            0% { transform: translate(0, 0); }
            100% { transform: translate(50px, 50px); }
        }
        
        .hero-mobile-shine {
            z-index: 2;
            position: absolute;
            width: 200%;
            height: 200%;
            background: linear-gradient(
                45deg,
                transparent 30%,
                rgba(255,215,0,0.1) 50%,
                transparent 70%
            );
            animation: shineSweep 5s ease-in-out infinite;
        }
        
        @keyframes shineSweep {
            0% { transform: translateX(-100%) translateY(-100%); }
            100% { transform: translateX(100%) translateY(100%); }
        }
        
        .hero-mobile-content {
            position: relative;
            z-index: 10;
        }
        
        /* Efeito de partículas no hero mobile */
        .hero-particles {
            position: absolute;
            inset: 0;
            overflow: hidden;
            pointer-events: none;
        }
        
        .hero-particle {
            position: absolute;
            width: 4px;
            height: 4px;
            background: rgba(255,215,0,0.6);
            border-radius: 50%;
            animation: particleFloat 4s ease-in-out infinite;
        }
        
        @keyframes particleFloat {
            0%, 100% { 
                transform: translateY(100vh) scale(0);
                opacity: 0;
            }
            10% {
                opacity: 1;
                transform: scale(1);
            }
            90% {
                opacity: 1;
            }
            100% { 
                transform: translateY(-100px) scale(0);
                opacity: 0;
            }
        }



/* === Carnaval: sambistas/enfeites no HERO (apenas quando ativo) === */
#sambaOverlay{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
  display:none;
  z-index:3;
}
body.carnival-active #sambaOverlay{ display:block; }

.samba-sprite{
  position:absolute;
  bottom:6%;
  width:min(18vw,140px);
  height:auto;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,.25));
  transform-origin: 50% 100%;
  animation: samba-bounce 1.2s ease-in-out infinite;
  opacity: .95;
}
.samba-sprite.s2{ left:12%; animation-duration: 1.35s; }
.samba-sprite.s3{ right:12%; animation-duration: 1.1s; }
.samba-sprite.s4{ left:30%; bottom:10%; width:min(14vw,110px); animation-duration: 1.28s; opacity:.85; }
.samba-sprite.s5{ right:30%; bottom:10%; width:min(14vw,110px); animation-duration: 1.22s; opacity:.85; }

@keyframes samba-bounce{
  0%,100%{ transform: translateY(0) rotate(-2deg); }
  50%{ transform: translateY(-10px) rotate(2deg); }
}

/* Confetes extras no modo carnaval */
body.carnival-active .carnival-confetti { opacity:1; }
.carnival-confetti{ opacity:0; transition:opacity .2s ease; }

/* Vibração de 3s ao ativar carnaval */
@keyframes samba-shake{
  0%{ transform: translate(0,0) rotate(0); }
  10%{ transform: translate(-1px, 1px) rotate(-0.5deg); }
  20%{ transform: translate(-2px, -1px) rotate(0.6deg); }
  30%{ transform: translate(2px, 1px) rotate(0.4deg); }
  40%{ transform: translate(1px, -2px) rotate(-0.6deg); }
  50%{ transform: translate(-1px, 2px) rotate(0.6deg); }
  60%{ transform: translate(-2px, 1px) rotate(-0.4deg); }
  70%{ transform: translate(2px, -1px) rotate(0.5deg); }
  80%{ transform: translate(1px, 1px) rotate(-0.4deg); }
  90%{ transform: translate(-1px, -1px) rotate(0.4deg); }
  100%{ transform: translate(0,0) rotate(0); }
}
body.samba-shake{
  animation: samba-shake 0.08s linear infinite;
}

/* Botão para desligar enfeites mais claro */
#disableCarnivalBtn{
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 9999;
  display:none;
  padding: 12px 14px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
  font-weight: 700;
}
body.carnival-active #disableCarnivalBtn{ display:block; }



/* === Carnaval: organizar botões do modal (um em cima do outro) === */
#carnivalModal .modal-actions,
#carnivalModal .actions,
#carnivalModal .button-row,
#carnivalModal .btn-row {
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
  align-items:stretch !important;
}
#carnivalModal .modal-actions button,
#carnivalModal .actions button,
#carnivalModal .button-row button,
#carnivalModal .btn-row button{
  width:100% !important;
}



/* === Bobos da corte: esconde-esconde entre cards (modo carnaval) === */
.jester-peek{
  position:absolute;
  width:52px;
  height:52px;
  pointer-events:none;
  opacity:0;
  transform: translateY(12px) scale(.9);
  animation: jester-peek 5.5s ease-in-out infinite;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,.25));
  z-index:5;
}
.jester-peek.j2{ animation-delay: 1.2s; }
.jester-peek.j3{ animation-delay: 2.4s; }
.jester-peek.j4{ animation-delay: 3.6s; }

@keyframes jester-peek{
  0%, 15%{ opacity:0; transform: translateY(18px) scale(.85); }
  22%, 45%{ opacity:1; transform: translateY(0) scale(1); }
  55%, 100%{ opacity:0; transform: translateY(18px) scale(.85); }
}

body.carnival-active .jester-peek{ display:block; }
body:not(.carnival-active) .jester-peek{ display:none; }



/* === Café Cruzeiro: fundo "mar de café" com parallax suave === */
.cafe-parallax{
  position:relative;
  overflow:hidden;
}
.cafe-parallax::before{
  content:"";
  position:absolute;
  inset:-20%;
  background-image: radial-gradient( circle at 20% 30%, rgba(255,220,160,.35), transparent 55%),
                    radial-gradient( circle at 80% 40%, rgba(120,60,20,.35), transparent 60%),
                    radial-gradient( circle at 40% 80%, rgba(90,40,10,.35), transparent 60%),
                    linear-gradient(135deg, rgba(90,40,10,.65), rgba(20,15,10,.35));
  transform: translateY(var(--cafe-parallax, 0px)) scale(1.05);
  transition: transform .05s linear;
  z-index:0;
}
.cafe-parallax::after{
  content:"";
  position:absolute;
  inset:0;
  background-image: url('assets/cafe_bg.webp');
  background-size: cover;
  background-position: center;
  opacity: .18;
  mix-blend-mode: multiply;
  transform: translateY(calc(var(--cafe-parallax, 0px) * 0.6));
  z-index:0;
}
.cafe-parallax > *{
  position:relative;
  z-index:1;
}

html.js .reveal{opacity:0;transform:translateY(28px);transition:all .85s cubic-bezier(.5,0,0,1);}
html.js .reveal-left{opacity:0;transform:translateX(-44px);transition:all .85s ease-out;}
html.js .reveal.active,html.js .reveal-left.active{opacity:1;transform:translate(0,0);}

.legal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:12000;}
.legal-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(920px,94vw);max-height:min(82vh,780px);overflow:auto;background:rgba(15,18,28,.98);border:1px solid rgba(255,255,255,.10);border-radius:18px;box-shadow:0 28px 90px rgba(0,0,0,.55);z-index:12010;color:#fff;}
.legal-header{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:rgba(8,10,16,.92);border-bottom:1px solid rgba(255,255,255,.10);}
.legal-kicker{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.65);}
.legal-title{margin:2px 0 0;font-size:18px;font-weight:900;}
.legal-close{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.10);color:#fff;padding:9px 12px;border-radius:999px;font-weight:800;}
.legal-body{padding:16px;line-height:1.6;font-size:15px;}


/* === Café Cruzeiro: vídeo de fundo (YouTube embed) === */
.cafe-video-bg{
  position:absolute;
  inset:0;
  overflow:hidden;
  border-radius: inherit;
  pointer-events:none;
  z-index:0;
  filter: saturate(1.05) contrast(1.02);
}
.cafe-video-bg iframe{
  position:absolute;
  top:50%;
  left:50%;
  width:120%;
  height:120%;
  transform: translate(-50%, -50%);
  border:0;
  opacity:.28;
}


/* Hero mobile mais vivo (movimento suave, leve) */
@media (max-width: 767px) {
  .hero-mobile-anim {
    animation: heroKenBurns 14s ease-in-out infinite alternate;
    transform-origin: center;
  }
}

@keyframes heroKenBurns {
  0% { transform: scale(1) translateY(0); filter: saturate(1) contrast(1); }
  100% { transform: scale(1.08) translateY(-8px); filter: saturate(1.05) contrast(1.02); }
}


/* VIDEO BACKGROUND - Café Cruzeiro */
.coffee-video-bg{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}
.coffee-video-bg video{
  width:100%;
  height:100%;
  object-fit:cover;
  transform: scale(1.02);
  filter: saturate(1.18) contrast(1.08) brightness(1.02);
}



/* ---- FIX: ExpoCafé banner should never overlap / shrink into a column ---- */
.expocafe-banner{
  width:100%;
  max-width:1200px;
  margin: 28px auto 44px auto;
  display:block;
  clear: both;
  position: relative;
  z-index: 1;
}



/* =========================================================
   Correções de layout (Opção 2) + Fallbacks
   ========================================================= */

.promos-layout{
  display:flex;
  flex-direction:column;
  gap:2rem;
}
.promos-right{
  width:100%;
}
.promos-right .expocafe-banner{
  max-width:520px;
  margin:0 auto;
}

/* Em telas grandes, mantém centralizado e evita "vazar" */
@media (min-width: 1024px){
  .promos-layout{
    align-items:stretch;
  }
}

/* Fallback de ícones (emoji) quando Lucide não renderiza */
.emoji-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  line-height:1;
}

/* Garante que o card verde não fique com altura "travada" estranha */
.expocafe-banner{
  width:100%;
}


/* Evita scroll lateral e 'vazio' na direita */
html, body{ overflow-x: hidden; }

/* === Promoções + ExpoCafé (A1) === */
.promos-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: start;
}
@media (min-width: 1024px){
  .promos-grid{
    grid-template-columns: 2fr 1fr;
  }
  .promos-right .expocafe-banner{
    max-width: 520px;
    margin-left: auto;
  }
}


/* ===== Carnaval mais rico (estilo piloto) ===== */
.carnival-bunting{
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 74px;
  pointer-events: none;
  z-index: 9998;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22120%22%20height%3D%2274%22%20viewBox%3D%220%200%20120%2074%22%3E%0A%3Crect%20width%3D%22120%22%20height%3D%2216%22%20fill%3D%22rgba%280%2C0%2C0%2C0%29%22/%3E%0A%3Cg%20transform%3D%22translate%280%2C16%29%22%3E%0A%3Cpolygon%20points%3D%220%2C0%2020%2C0%2010%2C22%22%20fill%3D%22%23ff6b6b%22/%3E%0A%3Cpolygon%20points%3D%2220%2C0%2040%2C0%2030%2C22%22%20fill%3D%22%23ffe66d%22/%3E%0A%3Cpolygon%20points%3D%2240%2C0%2060%2C0%2050%2C22%22%20fill%3D%22%234ecdc4%22/%3E%0A%3Cpolygon%20points%3D%2260%2C0%2080%2C0%2070%2C22%22%20fill%3D%22%23f15bb5%22/%3E%0A%3Cpolygon%20points%3D%2280%2C0%20100%2C0%2090%2C22%22%20fill%3D%22%2300bbf9%22/%3E%0A%3Cpolygon%20points%3D%22100%2C0%20120%2C0%20110%2C22%22%20fill%3D%22%23ff8c42%22/%3E%0A%3Cpath%20d%3D%22M0%2C0%20H120%22%20stroke%3D%22rgba%28255%2C255%2C255%2C0.6%29%22%20stroke-width%3D%222%22/%3E%0A%3C/g%3E%0A%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 120px 74px;
  opacity: .95;
  filter: drop-shadow(0 6px 10px rgba(0,0,0,.20));
}


.serpentina{
  position: absolute;
  top: -120px;
  width: 10px;
  height: 140px;
  border-radius: 999px;
  opacity: .9;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,.20));
  animation: serpentinaFall linear forwards;
}
@keyframes serpentinaFall{
  0% { transform: translateY(-140px) rotate(0deg); opacity: .95; }
  100% { transform: translateY(110vh) rotate(360deg); opacity: 0; }
}

.carnival-corners{
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9997;
}
.carnival-corners .corner{
  position: absolute;
  font-size: 48px;
  opacity: .55;
  filter: drop-shadow(0 6px 12px rgba(0,0,0,.18));
  animation: cornerFloat 5.5s ease-in-out infinite;
}
.carnival-corners .corner-tl{ left: 14px; top: 88px; }
.carnival-corners .corner-tr{ right: 14px; top: 88px; animation-delay: .8s; }
.carnival-corners .corner-bl{ left: 14px; bottom: 18px; animation-delay: 1.2s; }
.carnival-corners .corner-br{ right: 14px; bottom: 18px; animation-delay: 1.7s; }
@keyframes cornerFloat{
  0%,100%{ transform: translateY(0) rotate(-6deg); }
  50%{ transform: translateY(-18px) rotate(6deg); }
}

/* ===== AJUSTES V35: contraste + desfile (overlay global) ===== */

#carnival-parade{
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 42;
  display: none;
  overflow: hidden;
}
body.carnival-active #carnival-parade{ display:block; }

.parade-float{
  position: absolute;
  left: -12vw;
  top: 10vh;
  font-size: 34px;
  opacity: 0;
  filter: drop-shadow(0 8px 12px rgba(0,0,0,.18));
  animation: parade-across linear infinite;
  will-change: transform, opacity;
}
.parade-float.small{ font-size: 26px; opacity:.9; }
.parade-float.big{ font-size: 42px; }

@keyframes parade-across{
  0%{ transform: translate3d(-8vw,0,0) rotate(-8deg); opacity:0; }
  8%{ opacity:.95; }
  40%{ transform: translate3d(45vw,-18px,0) rotate(6deg); }
  72%{ transform: translate3d(92vw,14px,0) rotate(-5deg); opacity:.95; }
  100%{ transform: translate3d(118vw,0,0) rotate(10deg); opacity:0; }
}

/* ===== V37 hotfix: preservar fundos originais do site ===== */
body.carnival-colors section,
body.carnival-colors .hero,
body.carnival-colors .hero-section,
body.carnival-colors .cinema-section,
body.carnival-colors .assem-section,
body.carnival-colors .food-section,
body.carnival-colors .stores-section,
body.carnival-colors .lazer-section{
  background-image: revert !important;
  opacity: 1 !important;
  filter: none !important;
}

/* Gradiente só nos cards (sem lavar o restante) */
body.carnival-colors .store-card,
body.carnival-colors .food-card,
body.carnival-colors .fun-card,
body.carnival-colors .hover-lift{
  position: relative;
  isolation: isolate;
  border: 1px solid rgba(255,255,255,.58) !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.12), 0 10px 28px rgba(241,91,181,.18), 0 8px 22px rgba(0,187,249,.12) !important;
}

body.carnival-colors .store-card{
  background: linear-gradient(135deg, rgba(255,255,255,.98) 0%, rgba(255,242,248,.97) 45%, rgba(255,248,224,.96) 100%) !important;
}
body.carnival-colors .food-card{
  background: linear-gradient(135deg, rgba(255,253,240,.98) 0%, rgba(255,239,216,.97) 50%, rgba(255,246,250,.96) 100%) !important;
}
body.carnival-colors .fun-card,
body.carnival-colors .hover-lift{
  background: linear-gradient(135deg, rgba(250,244,255,.98) 0%, rgba(241,247,255,.97) 50%, rgba(255,246,238,.96) 100%) !important;
}

body.carnival-colors .store-card::before,
body.carnival-colors .food-card::before,
body.carnival-colors .fun-card::before,
body.carnival-colors .hover-lift::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  pointer-events:none;
  background:
    radial-gradient(circle at 12% 15%, rgba(255,107,107,.14) 0 18%, transparent 38%),
    radial-gradient(circle at 88% 20%, rgba(255,230,109,.14) 0 16%, transparent 36%),
    radial-gradient(circle at 18% 85%, rgba(241,91,181,.12) 0 16%, transparent 36%),
    radial-gradient(circle at 84% 82%, rgba(0,187,249,.12) 0 18%, transparent 38%);
  opacity: 1 !important;
  z-index: 0;
}
body.carnival-colors .store-card > *,
body.carnival-colors .food-card > *,
body.carnival-colors .fun-card > *,
body.carnival-colors .hover-lift > *{ position: relative; z-index: 1; }


/* ===== V38 fix: NÃO alterar fundo das seções; carnaval só nos cards/fotos ===== */
body.carnival-colors section,
body.carnival-colors .hero,
body.carnival-colors .hero-section,
body.carnival-colors .cinema-section,
body.carnival-colors .assem-section,
body.carnival-colors .food-section,
body.carnival-colors .stores-section,
body.carnival-colors .lazer-section{
  background-image: unset !important; /* cancela o revert da v37 e deixa o CSS original mandar */
  opacity: unset !important;
  filter: unset !important;
}

/* Alvos reais de card no site (sem mexer no fundo da seção) */
body.carnival-colors .store-card,
body.carnival-colors .food-card,
body.carnival-colors .fun-card,
body.carnival-colors .cinema-highlight,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden,
body.carnival-colors .bg-white.rounded-2xl.shadow-lg,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.shadow-lg,
body.carnival-colors .hover-lift.group:not(img):not(video){
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-color: rgba(255,255,255,.45) !important;
  box-shadow:
    0 10px 28px rgba(0,0,0,.18),
    0 0 0 1px rgba(255,255,255,.12),
    0 0 26px rgba(255, 88, 171, .10),
    0 0 26px rgba(  0,187,249, .08) !important;
}

/* Remove os backgrounds chapados da v37: preserva o background original do card */
body.carnival-colors .store-card,
body.carnival-colors .food-card,
body.carnival-colors .fun-card,
body.carnival-colors .hover-lift:not(img):not(video){
  background-image: unset !important;
}

/* Película colorida animada (suave) dentro dos cards */
body.carnival-colors .store-card::before,
body.carnival-colors .food-card::before,
body.carnival-colors .fun-card::before,
body.carnival-colors .cinema-highlight::before,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden::before,
body.carnival-colors .bg-white.rounded-2xl.shadow-lg::before,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.shadow-lg::before,
body.carnival-colors .hover-lift.group:not(img):not(video)::before{
  content:"";
  position:absolute; inset:-25%;
  z-index:0; pointer-events:none;
  border-radius: inherit;
  background:
    radial-gradient(circle at 15% 20%, rgba(255, 99, 132, .18), transparent 35%),
    radial-gradient(circle at 85% 18%, rgba(255, 205, 86, .18), transparent 36%),
    radial-gradient(circle at 80% 85%, rgba( 54, 162, 235, .18), transparent 38%),
    radial-gradient(circle at 20% 82%, rgba(153, 102, 255, .16), transparent 38%);
  animation: carnival-card-float 8s ease-in-out infinite;
}

/* Moldura gradiente animada (sem tampar conteúdo) */
body.carnival-colors .store-card::after,
body.carnival-colors .food-card::after,
body.carnival-colors .fun-card::after,
body.carnival-colors .cinema-highlight::after,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden::after,
body.carnival-colors .bg-white.rounded-2xl.shadow-lg::after,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.shadow-lg::after,
body.carnival-colors .hover-lift.group:not(img):not(video)::after{
  content:"";
  position:absolute; inset:0;
  border-radius: inherit;
  padding: 1.5px;
  background: linear-gradient(120deg,#ff4d9d,#ffd84d,#39d2ff,#8b5cf6,#ff4d9d);
  background-size: 300% 300%;
  animation: carnival-border-shift 5s linear infinite;
  pointer-events:none;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity:.9;
  z-index:1;
}

/* Conteúdo acima das camadas */
body.carnival-colors .store-card > *,
body.carnival-colors .food-card > *,
body.carnival-colors .fun-card > *,
body.carnival-colors .cinema-highlight > *,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden > *,
body.carnival-colors .bg-white.rounded-2xl.shadow-lg > *,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.shadow-lg > *,
body.carnival-colors .hover-lift.group:not(img):not(video) > *{ position:relative; z-index:2; }

/* Fotos / thumbs: aura gradiente animada sem cobrir a imagem */
body.carnival-colors .store-card img,
body.carnival-colors .food-card img,
body.carnival-colors .fun-card img,
body.carnival-colors #cameli img.rounded-2xl,
body.carnival-colors #cameli img.rounded-3xl{
  position: relative;
  z-index: 2;
  box-shadow:
    0 8px 20px rgba(0,0,0,.22),
    0 0 0 2px rgba(255,255,255,.35),
    0 0 20px rgba(255, 77, 157, .12),
    0 0 20px rgba( 57,210,255, .10) !important;
  animation: carnival-photo-glow 3.6s ease-in-out infinite;
}

@keyframes carnival-card-float{
  0%,100%{ transform: translate3d(-2%, -1%, 0) scale(1); }
  50%{ transform: translate3d(2%, 1.5%, 0) scale(1.03); }
}
@keyframes carnival-border-shift{
  0%{ background-position: 0% 50%; }
  50%{ background-position: 100% 50%; }
  100%{ background-position: 0% 50%; }
}
@keyframes carnival-photo-glow{
  0%,100%{ box-shadow: 0 8px 20px rgba(0,0,0,.22), 0 0 0 2px rgba(255,255,255,.30), 0 0 14px rgba(255,77,157,.08), 0 0 14px rgba(57,210,255,.06); }
  50%{ box-shadow: 0 10px 24px rgba(0,0,0,.24), 0 0 0 2px rgba(255,255,255,.42), 0 0 24px rgba(255,77,157,.18), 0 0 24px rgba(57,210,255,.16); }
}

/* ===== V39 fix final: NÃO tocar em fundos/seções no modo carnaval ===== */
/* Mantém exatamente o layout/fundos originais; carnaval só em cards/fotos + overlay */
body.carnival-colors section,
body.carnival-colors .hero,
body.carnival-colors .hero-section,
body.carnival-colors .cinema-section,
body.carnival-colors .assem-section,
body.carnival-colors .food-section,
body.carnival-colors .stores-section,
body.carnival-colors .lazer-section,
body.carnival-colors .cinema-highlight {
  background: revert-layer !important;
  background-image: revert-layer !important;
  opacity: 1 !important;
  filter: none !important;
}

/* Desliga enfeites de seção que estavam "lavando" o fundo */
body.carnival-colors .carnival-section,
body.carnival-active .carnival-section{
  border: none !important;
  border-image: none !important;
  animation: none !important;
}
body.carnival-colors .carnival-section::before,
body.carnival-colors .carnival-section::after,
body.carnival-active .carnival-section::before,
body.carnival-active .carnival-section::after,
body.carnival-colors #sambaOverlay,
body.carnival-colors .section-divider-confetti,
body.carnival-colors .section-stars{
  display:none !important;
  content:none !important;
}

/* Card alvo = caixas/cards reais. NÃO incluir .cinema-highlight (é seção) */
body.carnival-colors .store-card,
body.carnival-colors .food-card,
body.carnival-colors .fun-card,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden,
body.carnival-colors .bg-white.rounded-2xl.shadow-lg,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.shadow-lg,
body.carnival-colors .bg-gradient-to-br.border.rounded-3xl.shadow-lg,
body.carnival-colors .hover-lift.rounded-2xl,
body.carnival-colors .hover-lift.rounded-3xl,
body.carnival-colors .hover-lift.p-6,
body.carnival-colors .hover-lift.p-8{
  position: relative;
  isolation: isolate;
  overflow: hidden;
  box-shadow:
    0 10px 28px rgba(0,0,0,.18),
    0 0 0 1px rgba(255,255,255,.10),
    0 0 20px rgba(255, 77, 157, .10),
    0 0 18px rgba(57,210,255,.08) !important;
}

body.carnival-colors .store-card::before,
body.carnival-colors .food-card::before,
body.carnival-colors .fun-card::before,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden::before,
body.carnival-colors .bg-white.rounded-2xl.shadow-lg::before,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.shadow-lg::before,
body.carnival-colors .bg-gradient-to-br.border.rounded-3xl.shadow-lg::before,
body.carnival-colors .hover-lift.rounded-2xl::before,
body.carnival-colors .hover-lift.rounded-3xl::before,
body.carnival-colors .hover-lift.p-6::before,
body.carnival-colors .hover-lift.p-8::before{
  content:"";
  position:absolute; inset:-20%;
  z-index:0; pointer-events:none;
  border-radius: inherit;
  background:
    radial-gradient(circle at 14% 18%, rgba(255, 99, 132, .18), transparent 34%),
    radial-gradient(circle at 86% 20%, rgba(255, 205, 86, .18), transparent 34%),
    radial-gradient(circle at 82% 84%, rgba(54, 162, 235, .16), transparent 36%),
    radial-gradient(circle at 18% 82%, rgba(153, 102, 255, .16), transparent 36%);
  animation: carnival-card-float 7s ease-in-out infinite;
}

body.carnival-colors .store-card::after,
body.carnival-colors .food-card::after,
body.carnival-colors .fun-card::after,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden::after,
body.carnival-colors .bg-white.rounded-2xl.shadow-lg::after,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.shadow-lg::after,
body.carnival-colors .bg-gradient-to-br.border.rounded-3xl.shadow-lg::after,
body.carnival-colors .hover-lift.rounded-2xl::after,
body.carnival-colors .hover-lift.rounded-3xl::after,
body.carnival-colors .hover-lift.p-6::after,
body.carnival-colors .hover-lift.p-8::after{
  content:"";
  position:absolute; inset:0;
  border-radius: inherit;
  padding:2px;
  background: linear-gradient(120deg,#ff4d9d,#ffd84d,#39d2ff,#8b5cf6,#ff4d9d);
  background-size:300% 300%;
  animation:carnival-border-shift 4.8s linear infinite;
  pointer-events:none;
  z-index:1;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity:.85;
}

body.carnival-colors .store-card > *,
body.carnival-colors .food-card > *,
body.carnival-colors .fun-card > *,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden > *,
body.carnival-colors .bg-white.rounded-2xl.shadow-lg > *,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.shadow-lg > *,
body.carnival-colors .bg-gradient-to-br.border.rounded-3xl.shadow-lg > *,
body.carnival-colors .hover-lift.rounded-2xl > *,
body.carnival-colors .hover-lift.rounded-3xl > *,
body.carnival-colors .hover-lift.p-6 > *,
body.carnival-colors .hover-lift.p-8 > *{
  position:relative; z-index:2;
}

/* ===== V40 HOTFIX REAL: carnaval NÃO mexe em fundo de seção (só cards) ===== */
/* Mata qualquer lavagem herdada das tentativas anteriores */
body.carnival-colors section,
body.carnival-active section,
body.carnival-colors .cinema-highlight,
body.carnival-active .cinema-highlight,
body.carnival-colors #cameli,
body.carnival-active #cameli {
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

/* Restaurar fundos originais das seções principais */
body.carnival-colors .cinema-highlight,
body.carnival-active .cinema-highlight {
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%) !important;
}
body.carnival-colors #cameli,
body.carnival-active #cameli {
  background: linear-gradient(to bottom, #0f172a 0%, #1e3a8a 50%, #1e40af 100%) !important;
}

/* NÃO aplicar película/borda no container da seção cinema */
body.carnival-colors .cinema-highlight::before,
body.carnival-colors .cinema-highlight::after,
body.carnival-active .cinema-highlight::before,
body.carnival-active .cinema-highlight::after {
  display: none !important;
  content: none !important;
  animation: none !important;
}

/* Carnaval só nos cards reais */
body.carnival-colors .store-card,
body.carnival-colors .food-card,
body.carnival-colors .fun-card,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden,
body.carnival-colors .bg-white.rounded-2xl.p-6.shadow-lg,
body.carnival-colors .bg-gradient-to-br.border.rounded-3xl.p-8.shadow-lg,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.p-8.shadow-lg {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

body.carnival-colors .store-card::before,
body.carnival-colors .food-card::before,
body.carnival-colors .fun-card::before,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden::before,
body.carnival-colors .bg-white.rounded-2xl.p-6.shadow-lg::before,
body.carnival-colors .bg-gradient-to-br.border.rounded-3xl.p-8.shadow-lg::before,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.p-8.shadow-lg::before {
  content: '';
  position: absolute;
  inset: -18%;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(circle at 14% 18%, rgba(255, 72, 145, .14), transparent 34%),
    radial-gradient(circle at 86% 18%, rgba(255, 210, 74, .14), transparent 34%),
    radial-gradient(circle at 84% 84%, rgba(71, 198, 255, .12), transparent 36%),
    radial-gradient(circle at 18% 84%, rgba(162, 94, 255, .12), transparent 36%);
  animation: carnival-card-float 8s ease-in-out infinite;
}

body.carnival-colors .store-card::after,
body.carnival-colors .food-card::after,
body.carnival-colors .fun-card::after,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden::after,
body.carnival-colors .bg-white.rounded-2xl.p-6.shadow-lg::after,
body.carnival-colors .bg-gradient-to-br.border.rounded-3xl.p-8.shadow-lg::after,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.p-8.shadow-lg::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 2px;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(120deg, #ff4d9d, #ffd84d, #39d2ff, #8b5cf6, #ff4d9d);
  background-size: 300% 300%;
  animation: carnival-border-shift 4.8s linear infinite;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  opacity: .95;
}

body.carnival-colors .store-card > *,
body.carnival-colors .food-card > *,
body.carnival-colors .fun-card > *,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden > *,
body.carnival-colors .bg-white.rounded-2xl.p-6.shadow-lg > *,
body.carnival-colors .bg-gradient-to-br.border.rounded-3xl.p-8.shadow-lg > *,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.p-8.shadow-lg > * {
  position: relative;
  z-index: 2;
}

/* ===== V41 HOTFIX FINAL: manter fundos originais das seções (contato/categorias) ===== */
body.carnival-colors #categorias,
body.carnival-active #categorias{
  background-color: #f3f4f6 !important; /* bg-gray-100 */
  background-image: none !important;
  opacity: 1 !important;
  filter: none !important;
}

body.carnival-colors #contato,
body.carnival-active #contato{
  background-color: #111827 !important; /* bg-gray-900 */
  background-image: none !important;
  opacity: 1 !important;
  filter: none !important;
}

/* Garante contraste do texto nessa seção */
body.carnival-colors #contato h2,
body.carnival-colors #contato h4,
body.carnival-colors #contato .text-white{ color: #fff !important; }
body.carnival-colors #contato .text-gray-400{ color: #9ca3af !important; }
body.carnival-colors #contato .text-gray-500{ color: #6b7280 !important; }

/* Não aplicar efeito de card carnavalesco em blocos estruturais dessa seção */
body.carnival-colors #contato .reveal,
body.carnival-colors #contato .reveal-left,
body.carnival-colors #contato .grid,
body.carnival-colors #contato .max-w-7xl{
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}
body.carnival-colors #contato .reveal::before,
body.carnival-colors #contato .reveal::after,
body.carnival-colors #contato .reveal-left::before,
body.carnival-colors #contato .reveal-left::after,
body.carnival-colors #contato .grid::before,
body.carnival-colors #contato .grid::after{
  content:none !important;
  display:none !important;
}

/* ===== V42 FINAL HOTFIX: manter layout 100% original; carnaval só em cards ===== */
/* Reseta qualquer efeito antigo que pegou bloco estrutural */
body.carnival-colors section,
body.carnival-active section,
body.carnival-colors section *,
body.carnival-active section *{
  filter: none;
}
body.carnival-colors section,
body.carnival-active section{
  opacity: 1 !important;
  mix-blend-mode: normal !important;
}

/* Fundos ORIGINAIS das seções (iguais ao layout normal) */
body.carnival-colors #lojas-destaque{ background: #ffffff !important; }
body.carnival-colors #alimentacao{ background: linear-gradient(to bottom, #fff7ed, #fef3c7) !important; }
body.carnival-colors #cinema{ background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%) !important; }
body.carnival-colors #lazer{ background: linear-gradient(to bottom, #faf5ff, #fdf2f8) !important; }
body.carnival-colors #servicos{ background: #ffffff !important; }
body.carnival-colors #destaques{ background: linear-gradient(to bottom, #fef2f2, #ffffff) !important; }
body.carnival-colors #promocoes{ background: #ffffff !important; }
body.carnival-colors #cameli{ background: linear-gradient(to bottom, #0f172a, #1e3a8a, #1e40af) !important; }
body.carnival-colors #sobre{ background: linear-gradient(to bottom, #f0fdf4, #ffffff) !important; }
body.carnival-colors #memorial{ background: #111827 !important; }
body.carnival-colors #categorias{ background: #f3f4f6 !important; }
body.carnival-colors #contato{ background: #111827 !important; }

/* Garante que padding/altura do layout não seja alterado */
body.carnival-colors #cinema,
body.carnival-colors #cameli,
body.carnival-colors #contato,
body.carnival-colors #categorias{
  padding-top: inherit;
  padding-bottom: inherit;
}

/* Desliga efeitos carnavalescos em wrappers estruturais */
body.carnival-colors .max-w-7xl,
body.carnival-colors .max-w-6xl,
body.carnival-colors .max-w-5xl,
body.carnival-colors .grid,
body.carnival-colors .reveal,
body.carnival-colors .reveal-left,
body.carnival-colors .reveal-right,
body.carnival-colors .reveal-scale{
  background-color: transparent;
}
body.carnival-colors .max-w-7xl::before,
body.carnival-colors .max-w-7xl::after,
body.carnival-colors .max-w-6xl::before,
body.carnival-colors .max-w-6xl::after,
body.carnival-colors .max-w-5xl::before,
body.carnival-colors .max-w-5xl::after,
body.carnival-colors .grid::before,
body.carnival-colors .grid::after{
  content: none !important;
  display: none !important;
}

/* Alvos reais de cards (inclui cinema e contato/mapa) */
body.carnival-colors .store-card,
body.carnival-colors .food-card,
body.carnival-colors .fun-card,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden,
body.carnival-colors .bg-white.rounded-2xl.p-6.shadow-lg,
body.carnival-colors .bg-gradient-to-br.border.rounded-3xl.p-8.shadow-lg,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.p-8.shadow-lg,
body.carnival-colors #cinema div[class*="rounded-2xl"][class*="p-8"][class*="border"],
body.carnival-colors #cinema div[class*="rounded-3xl"][class*="p-8"][class*="yellow-500/20"],
body.carnival-colors #contato div[class*="rounded-3xl"][class*="shadow-2xl"],
body.carnival-colors #cameli .bg-white\/10,
body.carnival-colors #cameli .bg-white\/5,
body.carnival-colors #cameli .bg-blue-500\/20{
  position: relative !important;
  isolation: isolate;
  overflow: hidden;
}

body.carnival-colors .store-card::before,
body.carnival-colors .food-card::before,
body.carnival-colors .fun-card::before,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden::before,
body.carnival-colors .bg-white.rounded-2xl.p-6.shadow-lg::before,
body.carnival-colors .bg-gradient-to-br.border.rounded-3xl.p-8.shadow-lg::before,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.p-8.shadow-lg::before,
body.carnival-colors #cinema div[class*="rounded-2xl"][class*="p-8"][class*="border"]::before,
body.carnival-colors #cinema div[class*="rounded-3xl"][class*="p-8"][class*="yellow-500/20"]::before,
body.carnival-colors #contato div[class*="rounded-3xl"][class*="shadow-2xl"]::before,
body.carnival-colors #cameli .bg-white\/10::before,
body.carnival-colors #cameli .bg-white\/5::before,
body.carnival-colors #cameli .bg-blue-500\/20::before{
  content: '';
  position: absolute;
  inset: -18%;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(circle at 14% 18%, rgba(255,72,145,.14), transparent 34%),
    radial-gradient(circle at 86% 18%, rgba(255,210,74,.14), transparent 34%),
    radial-gradient(circle at 84% 84%, rgba(71,198,255,.12), transparent 36%),
    radial-gradient(circle at 18% 84%, rgba(162,94,255,.12), transparent 36%);
  animation: carnival-card-float 8s ease-in-out infinite;
}

body.carnival-colors .store-card::after,
body.carnival-colors .food-card::after,
body.carnival-colors .fun-card::after,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden::after,
body.carnival-colors .bg-white.rounded-2xl.p-6.shadow-lg::after,
body.carnival-colors .bg-gradient-to-br.border.rounded-3xl.p-8.shadow-lg::after,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.p-8.shadow-lg::after,
body.carnival-colors #cinema div[class*="rounded-2xl"][class*="p-8"][class*="border"]::after,
body.carnival-colors #cinema div[class*="rounded-3xl"][class*="p-8"][class*="yellow-500/20"]::after,
body.carnival-colors #contato div[class*="rounded-3xl"][class*="shadow-2xl"]::after,
body.carnival-colors #cameli .bg-white\/10::after,
body.carnival-colors #cameli .bg-white\/5::after,
body.carnival-colors #cameli .bg-blue-500\/20::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:2px;
  pointer-events:none;
  z-index:1;
  background: linear-gradient(120deg,#ff4d9d,#ffd84d,#39d2ff,#8b5cf6,#ff4d9d);
  background-size:300% 300%;
  animation:carnival-border-shift 4.8s linear infinite;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity:.9;
}

body.carnival-colors .store-card > *,
body.carnival-colors .food-card > *,
body.carnival-colors .fun-card > *,
body.carnival-colors .bg-white.rounded-3xl.shadow-xl.overflow-hidden > *,
body.carnival-colors .bg-white.rounded-2xl.p-6.shadow-lg > *,
body.carnival-colors .bg-gradient-to-br.border.rounded-3xl.p-8.shadow-lg > *,
body.carnival-colors .bg-gradient-to-br.rounded-3xl.p-8.shadow-lg > *,
body.carnival-colors #cinema div[class*="rounded-2xl"][class*="p-8"][class*="border"] > *,
body.carnival-colors #cinema div[class*="rounded-3xl"][class*="p-8"][class*="yellow-500/20"] > *,
body.carnival-colors #contato div[class*="rounded-3xl"][class*="shadow-2xl"] > *,
body.carnival-colors #cameli .bg-white\/10 > *,
body.carnival-colors #cameli .bg-white\/5 > *,
body.carnival-colors #cameli .bg-blue-500\/20 > *{
  position:relative;
  z-index:2;
}

/* ===== V43 ajuste fino: reduzir espaço vazio no topo da seção Cinema no modo carnaval ===== */
body.carnival-colors #cinema,
body.carnival-active #cinema{
  padding-top: 4.5rem !important;   /* antes py-24 (~6rem) */
  padding-bottom: 4.5rem !important;
}

body.carnival-colors #cinema .text-center.mb-16,
body.carnival-active #cinema .text-center.mb-16{
  margin-bottom: 2.75rem !important;
}

body.carnival-colors #cinema .grid.md\:grid-cols-3.gap-8.mb-12,
body.carnival-active #cinema .grid.md\:grid-cols-3.gap-8.mb-12{
  margin-bottom: 2rem !important;
}


/* === v46 hotfixes: vídeos e samba decorativo === */
#cafe-cruzeiro .coffee-video-bg{
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  overflow:hidden !important;
  display:block !important;
  opacity:.9;
}
#cafe-cruzeiro .coffee-video-bg video{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
#cafe-cruzeiro .coffee-section-bg{ opacity:.06 !important; }
#cafe-cruzeiro .coffee-section-overlay{
  z-index:1 !important;
  background: linear-gradient(135deg, rgba(38,24,14,.38) 0%, rgba(66,42,24,.28) 45%, rgba(24,16,10,.42) 100%) !important;
}
#cafe-cruzeiro .coffee-video-bg video{
  filter: saturate(1.22) contrast(1.08) brightness(1.06) !important;
}

#cafe-cruzeiro .max-w-7xl{ position:relative; z-index:2; }


/* =====================
   V53 — POLIMENTO DE LAYOUT (sem mexer no conteúdo)
   Objetivo: cores mais sólidas, consistência, melhor leitura.
   ===================== */
:root{
  --ui-radius-card: 22px;
  --ui-radius-card-lg: 28px;
  --ui-shadow-card: 0 12px 30px rgba(0,0,0,.10);
  --ui-shadow-card-strong: 0 18px 44px rgba(0,0,0,.16);
  --ui-border-soft: 1px solid rgba(15,23,42,.08);
}

/* Base um pouco mais "premium" */
body{ background:#f6f7fb !important; }

/* Navbar mais sólida e legível */
#navbar{
  background: rgba(255,255,255,.92) !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(15,23,42,.08);
}

/* Seções: fundos mais sólidos (menos aspecto "lavado") */
#lojas-destaque{ background:#ffffff !important; }
#alimentacao{ background: linear-gradient(to bottom, #fff3df 0%, #ffe9bf 100%) !important; }
#lazer{ background: linear-gradient(to bottom, #f7f1ff 0%, #fde8f3 100%) !important; }
#servicos{ background:#ffffff !important; }
#destaques{ background: linear-gradient(to bottom, #fde8e8 0%, #ffffff 70%) !important; }
#promocoes{ background:#ffffff !important; }
#categorias{ background:#f1f5f9 !important; }

/* Cinema / Cameli / Café: manter dark premium, mas com cards mais sólidos */
#cinema{ background: linear-gradient(135deg, #12162a 0%, #101b38 55%, #0b2b52 100%) !important; }
#cameli{ background: linear-gradient(to bottom, #0b1222 0%, #193070 55%, #1b3aa7 100%) !important; }
#cafe-cruzeiro{ background: linear-gradient(to bottom, #1b120c 0%, #2b1a10 55%, #15100c 100%) !important; }

/* Consistência de radius e sombra */
.rounded-2xl{ border-radius: var(--ui-radius-card) !important; }
.rounded-3xl{ border-radius: var(--ui-radius-card-lg) !important; }

.shadow-lg{ box-shadow: var(--ui-shadow-card) !important; }
.shadow-xl, .shadow-2xl{ box-shadow: var(--ui-shadow-card-strong) !important; }

/* Cards em seções escuras: menos transparência, mais corpo */
#cinema .bg-white\/10,
#cinema .bg-white\/5,
#cameli .bg-white\/10,
#cameli .bg-white\/5,
#cafe-cruzeiro .bg-white\/10,
#cafe-cruzeiro .bg-white\/5{
  background-color: rgba(255,255,255,.16) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
}

/* Painéis claros: borda e fundo mais sólidos */
.bg-white\/70{ background-color: rgba(255,255,255,.88) !important; }
.bg-white\/60{ background-color: rgba(255,255,255,.84) !important; }

/* Tipografia: leitura mais estável */
h1,h2,h3{ letter-spacing: -0.01em; }
section p{ line-height: 1.6; }

/* Respiro: títulos e grids um pouco mais alinhados */
section .text-center.mb-16{ margin-bottom: 3.25rem !important; }

/* Botões: aparência mais consistente */
button{ border-radius: 999px; }
button:hover{ transform: translateY(-1px); }

/* Evitar "vidro" excessivo em overlays */
.backdrop-blur-md{ backdrop-filter: blur(10px) !important; }
.backdrop-blur-sm{ backdrop-filter: blur(6px) !important; }

/* Mantém o carnaval controlado: fundos continuam sólidos */
body.carnival-colors #cinema,
body.carnival-colors #cameli,
body.carnival-colors #cafe-cruzeiro,
body.carnival-colors #alimentacao,
body.carnival-colors #lazer,
body.carnival-colors #categorias,
body.carnival-colors #contato{
  filter:none !important;
  opacity:1 !important;
}

/* ===== V54 PASSO 2 — lapidação fina (sem mexer em conteúdo) ===== */
:root{
  --v54-border-soft: rgba(15,23,42,.09);
  --v54-shadow-soft: 0 10px 26px rgba(15,23,42,.08);
  --v54-shadow-hover: 0 18px 42px rgba(15,23,42,.12);
}

/* Navbar mais "premium" sem pesar */
#navbar{
  background: linear-gradient(to bottom, rgba(255,255,255,.95), rgba(255,255,255,.90)) !important;
  box-shadow: 0 8px 26px rgba(2,6,23,.08);
}
#navbar .max-w-7xl{
  border-radius: 0 0 18px 18px;
}
#navbar a, #navbar button{
  text-shadow: none !important;
}

/* Ajuste fino de espaçamento entre seções (mais respiro visual) */
@media (min-width: 768px){
  #lojas-destaque,
  #alimentacao,
  #lazer,
  #servicos,
  #sobre,
  #memorial,
  #contato{ padding-top: 6.5rem !important; padding-bottom: 6.5rem !important; }
  #destaques,
  #promocoes,
  #categorias{ padding-top: 5.5rem !important; padding-bottom: 5.5rem !important; }
}

/* Títulos e blocos centrais mais alinhados */
section .text-center.mb-16{ margin-bottom: 2.75rem !important; }
section .max-w-3xl p,
section .max-w-4xl p{ color: inherit; }

/* Cards claros: borda e sombra consistentes */
.store-card,
.food-card,
.fun-card,
#destaques .rounded-3xl,
#promocoes .rounded-3xl,
#promocoes .rounded-2xl,
#lojas-destaque .rounded-3xl,
#alimentacao .rounded-3xl,
#lazer .rounded-3xl,
#servicos .rounded-3xl{
  border: 1px solid var(--v54-border-soft) !important;
  box-shadow: var(--v54-shadow-soft) !important;
}
.store-card:hover,
.food-card:hover,
.fun-card:hover,
.hover-lift:hover{
  box-shadow: var(--v54-shadow-hover) !important;
}

/* Cards em seções escuras com base mais sólida */
#cinema .rounded-3xl,
#cinema .rounded-2xl,
#cameli .rounded-3xl,
#cameli .rounded-2xl,
#cafe-cruzeiro .rounded-3xl,
#cafe-cruzeiro .rounded-2xl{
  border-color: rgba(255,255,255,.14) !important;
}
#cinema .bg-black\/40{ background-color: rgba(2,6,23,.48) !important; }
#cafe-cruzeiro .bg-black\/40{ background-color: rgba(17,12,8,.42) !important; }

/* Botões principais com contraste mais sólido */
.bg-red-600{ background-color: #dc2626 !important; }
.bg-red-600:hover{ background-color: #b91c1c !important; }
.bg-yellow-500{ background-color: #eab308 !important; }
.bg-yellow-500:hover{ background-color: #ca8a04 !important; }

/* Footer/contato mais limpo visualmente */
#contato{
  background: linear-gradient(to bottom, #0f172a 0%, #111827 100%) !important;
}
#contato .bg-white\/10{ background-color: rgba(255,255,255,.12) !important; }

/* Carnaval continua sem tocar nos fundos */
body.carnival-colors #lojas-destaque,
body.carnival-colors #servicos,
body.carnival-colors #promocoes{ background-image: none !important; }


/* ===== v55 refinements: áudio visível + visual institucional mais sólido ===== */
#alimentacao{
  background: #ffffff !important;
}
body.carnival-colors #alimentacao{
  background: #ffffff !important;
}
.food-card{
  background: #ffffff !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 12px 28px rgba(15,23,42,.10) !important;
}
.food-card:hover{
  box-shadow: 0 16px 34px rgba(15,23,42,.14) !important;
}
body.carnival-colors .food-card{
  background: rgba(255,255,255,.96) !important;
}
body.carnival-colors .food-card::before,
body.carnival-colors .food-card::after{
  opacity: .35 !important;
}
/* vídeo destaque da praça com borda mais neutra */
#alimentacao .mt-12 > .relative{
  background: #fff !important;
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 18px 40px rgba(15,23,42,.14) !important;
}
#alimentacao video.audio-when-visible{
  background: #000;
}

/* ===== v57 acabamento final sofisticado + praça vídeo refinado ===== */
/* Alimentação com cara mais institucional/premium */
#alimentacao,
body.carnival-colors #alimentacao{
  background: linear-gradient(to bottom, #ffffff 0%, #f8fafc 62%, #ffffff 100%) !important;
}

#alimentacao .text-center .text-orange-600{
  color: #334155 !important;
}
#alimentacao .text-center h2{
  color: #0f172a !important;
}
#alimentacao .text-center p{
  color: #475569 !important;
}

/* Cards da alimentação mais sóbrios */
#alimentacao .food-card{
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%) !important;
  border: 1px solid rgba(15, 23, 42, 0.08) !important;
  box-shadow: 0 12px 28px rgba(15,23,42,.07), 0 2px 8px rgba(15,23,42,.05) !important;
}
#alimentacao .food-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 38px rgba(15,23,42,.10), 0 4px 14px rgba(15,23,42,.07) !important;
}
#alimentacao .food-card .p-6 h3{ color:#0f172a !important; }
#alimentacao .food-card .p-6 p{ color:#475569 !important; }

/* Vídeo da Praça de Alimentação: melhor dimensão e enquadramento */
#alimentacao .mt-12{
  margin-top: 2.6rem !important;
}
#alimentacao .mt-12 > .relative{
  border-radius: 24px !important;
  border: 1px solid rgba(15,23,42,.09) !important;
  box-shadow: 0 18px 44px rgba(15,23,42,.14), 0 6px 18px rgba(15,23,42,.08) !important;
  background: #0f172a !important;
}
#alimentacao .mt-12 video.audio-when-visible{
  width: 100% !important;
  height: clamp(260px, 34vw, 420px) !important;
  object-fit: cover !important;
  object-position: center 45% !important;
  filter: saturate(1.08) contrast(1.06) brightness(0.96);
}
#alimentacao .mt-12 > .relative > .absolute.inset-0{
  background: linear-gradient(to top, rgba(2,6,23,.78) 0%, rgba(2,6,23,.30) 42%, rgba(2,6,23,.05) 78%, rgba(2,6,23,0) 100%) !important;
}
#alimentacao .mt-12 .absolute.bottom-8{
  left: 1.25rem !important;
  right: 1.25rem !important;
  bottom: 1.1rem !important;
}
#alimentacao .mt-12 .absolute.bottom-8 h4{
  font-size: clamp(1.25rem, 1rem + 1.2vw, 2rem) !important;
  margin-bottom: .2rem !important;
  text-shadow: 0 2px 10px rgba(0,0,0,.45);
}
#alimentacao .mt-12 .absolute.bottom-8 p{
  font-size: clamp(.88rem, .8rem + .3vw, 1rem) !important;
  color: rgba(255,255,255,.92) !important;
}

/* Mobile: vídeo mais elegante e sem ocupar espaço demais */
@media (max-width: 767px){
  #alimentacao{ padding-top: 4.5rem !important; padding-bottom: 4.5rem !important; }
  #alimentacao .grid{ gap: 1rem !important; }
  #alimentacao .food-card .p-6{ padding: 1rem !important; }
  #alimentacao .food-card > div.relative.h-48{ height: 10.5rem !important; }
  #alimentacao .mt-12 video.audio-when-visible{
    height: 230px !important;
    object-position: center center !important;
  }
  #alimentacao .mt-12 .absolute.bottom-8{ bottom: .9rem !important; }
}


/* ===== Overrides Páscoa ===== */
.hero-sambistas{display:none !important;}
.bobo-corte-container,.section-divider-confetti{display:none !important;}
.carnival-btn{
  background: linear-gradient(135deg,#8b5e3c 0%, #d28b36 32%, #f7cfe0 66%, #b8e3a3 100%) !important;
  border: 1px solid rgba(255,255,255,.35);
}
.carnival-btn-icon{
  background: rgba(255,255,255,.22) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.25);
}
.carnival-popup-content{
  background: linear-gradient(145deg, rgba(126,82,45,.97) 0%, rgba(182,116,62,.96) 28%, rgba(231,172,111,.96) 58%, rgba(244,199,220,.96) 100%) !important;
  border: 1px solid rgba(255,255,255,.22);
}
.carnival-popup-content::before{
  content:'🐰';
  top:14px; left:18px; font-size:38px; opacity:.18;
}
.carnival-popup-content::after{
  content:'🥚';
  bottom:14px; right:18px; font-size:34px; opacity:.18;
}
.mascote-carnaval{
  background: linear-gradient(145deg,#8b5e3c,#d9a05b,#f6d3e3) !important;
}
body.carnival-colors section,
body.carnival-colors .hero,
body.carnival-colors .hero-section,
body.carnival-colors .cinema-section,
body.carnival-colors .assem-section,
body.carnival-colors .food-section,
body.carnival-colors .stores-section,
body.carnival-colors .lazer-section{
  background-image: linear-gradient(180deg, rgba(255,248,240,.98), rgba(255,244,248,.98)) !important;
}
body.carnival-colors .store-card,
body.carnival-colors .food-card,
body.carnival-colors .fun-card,
body.carnival-colors .rounded-2xl,
body.carnival-colors .rounded-3xl{
  background-image: linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,245,234,.98), rgba(250,236,244,.98)) !important;
  border-color: rgba(214,160,91,.25) !important;
}
#carnival-parade .parade-float{
  filter: drop-shadow(0 8px 14px rgba(95,57,27,.18));
}
#carnival-dancers .samba-dancer{
  filter: drop-shadow(0 10px 18px rgba(95,57,27,.18));
}


/* ===== Clean Easter theme overrides ===== */
#carnival-container,
#carnival-parade,
.hero-sambistas,
.section-stars,
.bobo-corte-container,
.section-divider-confetti,
.carnival-bunting,
.carnival-corners,
#sambaOverlay,
#disableCarnivalBtn,
.jester-peek,
.carnival-confetti,
.confetti,
.carnival-mask-float { display:none !important; }

body.carnival-active {
  --easter-cream:#fffaf2;
  --easter-blush:#fde7ef;
  --easter-yellow:#fff1bf;
  --easter-mint:#e9f6ea;
  --easter-lilac:#efe7fb;
  --easter-chocolate:#5a3b2e;
}

body.carnival-active .construction-bar {
  background: linear-gradient(90deg, #6b4c3b, #8c6239);
}

body.carnival-active .mascote-pascoa {
  display:block;
  background: linear-gradient(135deg,#fff6dd,#f6e3b6);
  color:#7a4d23;
  border:1px solid rgba(122,77,35,.18);
  box-shadow:0 10px 30px rgba(90,59,46,.18);
}

.mascote-pascoa {
  position: fixed;
  right: 24px;
  bottom: 92px;
  z-index: 60;
  width: 56px;
  height: 56px;
  border-radius: 999px;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  cursor: pointer;
}

body.carnival-active .carnival-btn {
  background: linear-gradient(135deg,#8b5e3c,#c68a52);
  animation: none;
  box-shadow: 0 14px 36px rgba(90,59,46,.24);
}
body.carnival-active .carnival-btn:hover { box-shadow: 0 16px 40px rgba(90,59,46,.28); }
body.carnival-active .carnival-btn-icon {
  background: rgba(255,255,255,.18);
}

.carnival-popup {
  backdrop-filter: blur(10px);
  background: rgba(72,48,32,.30);
}
.carnival-popup-content.easter-popup-shell {
  width:min(94vw, 680px);
  border-radius:32px;
  background: linear-gradient(180deg, rgba(255,250,242,.98), rgba(255,245,232,.98));
  border:1px solid rgba(122,77,35,.16);
  box-shadow:0 30px 80px rgba(72,48,32,.28);
  color:#4d3326;
  padding:32px 30px 28px;
  position:relative;
  overflow:hidden;
}
.carnival-popup-content.easter-popup-shell::before {
  content:"";
  position:absolute; inset:auto -70px -90px auto;
  width:220px; height:220px; border-radius:50%;
  background:radial-gradient(circle, rgba(239,231,251,.95), rgba(239,231,251,0));
}
.carnival-popup-content.easter-popup-shell::after {
  content:"";
  position:absolute; left:-60px; top:-70px;
  width:200px; height:200px; border-radius:50%;
  background:radial-gradient(circle, rgba(253,231,239,.95), rgba(253,231,239,0));
}
.easter-popup-ribbon {
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px; border-radius:999px;
  background:#6b4c3b; color:#fff; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  margin-bottom:18px; position:relative; z-index:1;
}
.easter-popup-icons { display:flex; align-items:center; gap:14px; margin-bottom:18px; position:relative; z-index:1; }
.easter-popup-icons img { width:54px; height:54px; object-fit:contain; filter:drop-shadow(0 8px 18px rgba(90,59,46,.18)); }
.easter-popup-icons span { font-size:38px; line-height:1; }
.easter-popup-title { font-size:clamp(1.8rem,4vw,2.5rem); font-weight:800; color:#5a3b2e; line-height:1.08; margin-bottom:12px; position:relative; z-index:1; }
.easter-popup-text { font-size:1.03rem; line-height:1.7; color:#6a4d3d; margin-bottom:18px; position:relative; z-index:1; }
.easter-popup-features { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:24px; position:relative; z-index:1; }
.easter-popup-chip { background:rgba(255,255,255,.78); border:1px solid rgba(122,77,35,.1); border-radius:18px; padding:14px 12px; font-size:.94rem; font-weight:600; color:#6a4d3d; min-height:74px; display:flex; flex-direction:column; justify-content:center; gap:6px; }
.easter-popup-chip span { font-size:24px; }
.easter-popup-actions { display:flex; gap:12px; flex-wrap:wrap; position:relative; z-index:1; }
.easter-btn { border:none; border-radius:18px; padding:14px 20px; font-weight:800; cursor:pointer; transition:.25s ease; }
.easter-btn:hover { transform:translateY(-1px); }
.easter-btn-primary { background:linear-gradient(135deg,#8b5e3c,#c68a52); color:#fff; box-shadow:0 12px 28px rgba(90,59,46,.22); }
.easter-btn-secondary { background:#fff; color:#6a4d3d; border:1px solid rgba(122,77,35,.14); }

body.carnival-active #lojas-destaque,
body.carnival-active #servicos,
body.carnival-active #promocoes,
body.carnival-active #categorias { background:#fffdf8 !important; }
body.carnival-active #alimentacao { background:#fff9f0 !important; }
body.carnival-active #lazer { background:#faf7ff !important; }
body.carnival-active #destaques { background:#fff7f8 !important; }
body.carnival-active #cameli { background:#f8f5ef !important; }
body.carnival-active #cinema {
  background: linear-gradient(180deg, #3f2c22 0%, #5f4330 100%) !important;
}
body.carnival-active #cinema .absolute.inset-0.opacity-20,
body.carnival-active #cinema .absolute.inset-0.bg-gradient-to-br { opacity:.08 !important; }

body.carnival-active .store-card,
body.carnival-active .food-card,
body.carnival-active .fun-card,
body.carnival-active .service-card,
body.carnival-active .category-card,
body.carnival-active .hover-lift {
  border:1px solid rgba(122,77,35,.08);
  box-shadow:0 10px 30px rgba(90,59,46,.08);
}
body.carnival-active .store-card::before,
body.carnival-active .food-card::before,
body.carnival-active .fun-card::before { display:none !important; }
body.carnival-active .store-card .p-6,
body.carnival-active .food-card .p-6,
body.carnival-active .fun-card .p-6 { background:rgba(255,255,255,.96); }

.easter-peek {
  position:absolute;
  z-index:5;
  pointer-events:none;
  opacity:0;
  transform:translateY(8px) scale(.86);
  animation:easterPeek var(--peekDur,5.6s) ease-in-out infinite;
  filter:drop-shadow(0 8px 16px rgba(90,59,46,.18));
}
.easter-peek img { width:100%; height:auto; display:block; }
.easter-peek.emoji { font-size:clamp(24px,2.2vw,34px); }
@keyframes easterPeek {
  0%,18%,100% { opacity:0; transform:translateY(10px) scale(.84); }
  28%,58% { opacity:1; transform:translateY(0) scale(1); }
  45% { opacity:.92; transform:translateY(-2px) scale(.98); }
}

body.carnival-active .easter-wash::before {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(135deg, rgba(255,255,255,.04), rgba(255,248,235,.12));
}

@media (max-width: 768px){
  .easter-popup-features { grid-template-columns:1fr; }
  .easter-popup-actions { flex-direction:column; }
  .mascote-pascoa { right:14px; bottom:90px; }
}


/* ===== V64 CLEAN EASTER OVERRIDES ===== */
body.carnival-active #carnival-container,
body.carnival-active #carnival-parade,
body.carnival-active #sambaOverlay,
body.carnival-active .carnival-confetti,
body.carnival-active .hero-sambistas,
body.carnival-active .mascote-carnaval,
body.carnival-active .jester-peek,
body.carnival-active #disableCarnivalBtn {
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

body.carnival-active section,
body.carnival-active #cameli,
body.carnival-active .cinema-highlight,
body.carnival-active .construction-bar,
body.carnival-active .store-card,
body.carnival-active .food-card,
body.carnival-active .fun-card,
body.carnival-active .service-card,
body.carnival-active .category-card,
body.carnival-active .hover-lift {
  filter:none !important;
  opacity:1 !important;
  mix-blend-mode:normal !important;
}

body.carnival-active #lojas-destaque,
body.carnival-active #servicos,
body.carnival-active #promocoes,
body.carnival-active #categorias,
body.carnival-active #destaques,
body.carnival-active #sobre,
body.carnival-active #contato {
  background:#fffdfa !important;
}
body.carnival-active #alimentacao {
  background:#fff8f1 !important;
}
body.carnival-active #lazer {
  background:#fcf7ff !important;
}
body.carnival-active #cameli {
  background:linear-gradient(180deg,#0f172a 0%,#1e3a8a 50%,#1d4ed8 100%) !important;
  color:#fff !important;
}
body.carnival-active #cameli * {
  color:inherit;
}
body.carnival-active #cameli .text-yellow-300,
body.carnival-active #cameli .text-yellow-400,
body.carnival-active #cameli .text-yellow-500 {
  color:#facc15 !important;
}
body.carnival-active #cameli .text-blue-100,
body.carnival-active #cameli .text-blue-200,
body.carnival-active #cameli .text-slate-300 {
  color:#dbeafe !important;
}
body.carnival-active .store-card,
body.carnival-active .food-card,
body.carnival-active .fun-card,
body.carnival-active .service-card,
body.carnival-active .category-card,
body.carnival-active .hover-lift {
  background:#ffffff !important;
  border:1px solid rgba(140,95,57,.10) !important;
  box-shadow:0 12px 32px rgba(76,48,28,.08) !important;
}
body.carnival-active .store-card .p-6,
body.carnival-active .food-card .p-6,
body.carnival-active .fun-card .p-6,
body.carnival-active .service-card .p-6,
body.carnival-active .category-card .p-6 {
  background:#ffffff !important;
}
body.carnival-active .easter-wash::before,
body.carnival-active .store-card::before,
body.carnival-active .food-card::before,
body.carnival-active .fun-card::before {
  content:none !important;
  display:none !important;
}

.easter-peek {
  position:absolute;
  z-index:12;
  pointer-events:none;
  opacity:0;
  transform:translateY(6px) scale(.84);
  animation:easterPeek var(--peekDur,5.4s) ease-in-out infinite;
  filter:drop-shadow(0 8px 16px rgba(90,59,46,.16));
}
.easter-peek img { width:100%; height:auto; display:block; }
.easter-peek.emoji { font-size:clamp(24px,2vw,32px); line-height:1; }
@keyframes easterPeek {
  0%,20%,100% { opacity:0; transform:translateY(8px) scale(.84); }
  32%,62% { opacity:1; transform:translateY(0) scale(1); }
  48% { opacity:.96; transform:translateY(-2px) scale(.98); }
}

.carnival-popup-content.easter-popup-shell {
  background:linear-gradient(180deg,#fffdf8 0%,#fff6ea 100%) !important;
  border:1px solid rgba(154,102,50,.14) !important;
  box-shadow:0 26px 70px rgba(92,60,35,.22) !important;
}
.easter-popup-ribbon {
  background:linear-gradient(135deg,#b97a45,#8f5a33) !important;
  color:#fff !important;
}
.easter-popup-title { color:#6b4425 !important; }
.easter-popup-text,
.easter-popup-chip { color:#6f513b !important; }
.easter-popup-chip {
  background:#fffdf9 !important;
  border:1px solid rgba(154,102,50,.10) !important;
}
.easter-btn-primary {
  background:linear-gradient(135deg,#9b5f31,#c9894f) !important;
}
.easter-btn-secondary {
  background:#fff !important;
  color:#6b4425 !important;
}

body.carnival-active .carnival-btn {
  background:linear-gradient(135deg,#fff4df,#f4dfbf) !important;
  color:#6b4425 !important;
  border:1px solid rgba(154,102,50,.18) !important;
}

/* ===== LIMPEZA INSTITUCIONAL + POPUP DE OFERTAS ===== */
#carnival-container,
#carnival-parade,
.mascote-pascoa,
.mascote-carnaval,
.carnival-bunting,
.carnival-corners,
.section-divider-confetti,
.carnival-confetti,
.jester-peek,
.easter-peek,
#disableCarnivalBtn,
#sambaOverlay{
  display:none !important;
}

.offers-fab{
  position:fixed;
  right:22px;
  bottom:26px;
  z-index:9999;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 16px 10px 10px;
  border:none;
  border-radius:999px;
  background:linear-gradient(135deg,#b91c1c,#dc2626 55%,#f59e0b);
  color:#fff;
  box-shadow:0 16px 34px rgba(127,29,29,.28);
  cursor:pointer;
  transition:transform .22s ease, box-shadow .22s ease;
}
.offers-fab:hover{ transform:translateY(-2px); box-shadow:0 20px 40px rgba(127,29,29,.34); }
.offers-fab-icon{
  width:42px; height:42px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.24);
}
.offers-fab-text{ font-size:13px; line-height:1.15; font-weight:800; text-align:left; max-width:180px; }

.offers-popup{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(17,24,39,.68);
  backdrop-filter:blur(8px);
  z-index:200000;
}
.offers-popup.active{ display:flex; }
body.offers-popup-open{ overflow:hidden; }

.offers-popup.active .offers-popup-content{
  animation:offersPopupIn .5s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes offersPopupIn{
  from{ opacity:0; transform:translateY(22px) scale(.985); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}


.offers-popup-content{
  width:min(1120px,100%);
  max-height:min(88vh,920px);
  overflow:auto;
  background:linear-gradient(180deg,#ffffff 0%,#fffaf5 100%);
  border-radius:28px;
  padding:28px;
  box-shadow:0 30px 90px rgba(17,24,39,.25);
  border:1px solid rgba(220,38,38,.08);
}
.offers-popup-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:20px;
}
.offers-kicker{
  display:inline-flex;
  padding:8px 12px;
  border-radius:999px;
  background:#fee2e2;
  color:#b91c1c;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.offers-title{
  font-family:'Playfair Display', serif;
  font-size:clamp(2rem,4vw,3.25rem);
  line-height:1;
  color:#111827;
  margin-top:14px;
}
.offers-subtitle{
  margin-top:10px;
  color:#6b7280;
  max-width:760px;
}
.offers-close{
  width:46px; height:46px;
  border:none;
  border-radius:999px;
  background:#111827;
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  flex-shrink:0;
}
.offers-meta{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:22px;
}
.offers-meta-card{
  background:#fff;
  border:1px solid #f3e8e8;
  border-radius:18px;
  padding:14px 16px;
  box-shadow:0 12px 24px rgba(17,24,39,.05);
}
.offers-meta-card span{
  display:block;
  color:#6b7280;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:700;
}
.offers-meta-card strong{
  display:block;
  margin-top:6px;
  color:#111827;
  font-size:1.05rem;
}

.offers-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.offer-card{
  position:relative;
  padding:18px;
  border-radius:24px;
  background:#fff;
  border:1px solid rgba(17,24,39,.06);
  box-shadow:0 18px 36px rgba(17,24,39,.08);
  overflow:hidden;
  opacity:0;
  transform:translateY(22px) scale(.985);
  animation:offerCardIn .55s cubic-bezier(.2,.8,.2,1) forwards;
  animation-delay:var(--offer-delay,0ms);
}
.offer-card:hover{ transform:translateY(-4px) scale(1.01); box-shadow:0 24px 44px rgba(17,24,39,.12); }
@keyframes offerCardIn{
  to{ opacity:1; transform:translateY(0) scale(1); }
}
.offer-card-featured{
  border:1px solid rgba(245,158,11,.32);
  box-shadow:0 22px 46px rgba(217,119,6,.16);
}
.offer-card-featured::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:24px;
  padding:1px;
  background:linear-gradient(135deg, rgba(245,158,11,.65), rgba(239,68,68,.35), rgba(255,255,255,0));
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
}
.offer-featured-badge{
  position:absolute;
  top:14px;
  left:14px;
  z-index:3;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  border-radius:999px;
  background:linear-gradient(135deg,#f59e0b,#dc2626);
  color:#fff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:0 14px 30px rgba(217,119,6,.22);
}
.offer-visual{
  position:relative;
  min-height:146px;
  border-radius:18px;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  padding:14px;
  margin-bottom:16px;
  color:#fff;
}
.offer-visual::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.38), transparent 28%),
    radial-gradient(circle at 80% 22%, rgba(255,255,255,.18), transparent 24%),
    linear-gradient(135deg, rgba(255,255,255,.15), rgba(255,255,255,0));
}
.offer-visual-glow{
  position:absolute;
  right:-20px;
  top:-18px;
  width:110px;
  height:110px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  filter:blur(8px);
}
.offer-visual-chip,
.offer-visual-number,
.offer-visual-icon{ position:relative; z-index:1; }
.offer-visual-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(8px);
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.offer-visual-number{
  margin-left:auto;
  font-size:12px;
  font-weight:900;
  opacity:.85;
}
.offer-visual-icon{
  width:58px;
  height:58px;
  border-radius:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.24);
  backdrop-filter:blur(8px);
}
.theme-market .offer-visual{ background:linear-gradient(135deg,#dc2626,#fb7185); }
.theme-essentials .offer-visual{ background:linear-gradient(135deg,#ea580c,#fb923c); }
.theme-grocery .offer-visual{ background:linear-gradient(135deg,#b45309,#f59e0b); }
.theme-school .offer-visual{ background:linear-gradient(135deg,#2563eb,#60a5fa); }
.theme-office .offer-visual{ background:linear-gradient(135deg,#4f46e5,#818cf8); }
.theme-bags .offer-visual{ background:linear-gradient(135deg,#7c3aed,#c084fc); }
.theme-coffee .offer-visual{ background:linear-gradient(135deg,#6f4e37,#a16207); }
.theme-food .offer-visual{ background:linear-gradient(135deg,#059669,#34d399); }
.theme-cinema .offer-visual{ background:linear-gradient(135deg,#111827,#374151); }
.theme-sale .offer-visual{ background:linear-gradient(135deg,#be123c,#f43f5e); }
.offer-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.offer-tag{
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border-radius:999px;
  background:#ecfdf5;
  color:#047857;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  flex-shrink:0;
}
.offer-store{
  color:#6b7280;
  font-size:13px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.offer-item{
  color:#111827;
  font-size:1.2rem;
  font-weight:900;
  line-height:1.2;
}
.offer-pricing{
  margin-top:12px;
  display:flex;
  align-items:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.offer-old-price{
  color:#9ca3af;
  font-size:.96rem;
  font-weight:800;
  text-decoration:line-through;
}
.offer-price{
  color:#b91c1c;
  font-size:1.6rem;
  font-weight:900;
  line-height:1;
}
.offer-note{
  margin-top:10px;
  color:#4b5563;
  font-size:14px;
  line-height:1.55;
}
.offer-card-bottom{
  margin-top:14px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.offer-validity{
  color:#9a3412;
  font-size:12px;
  font-weight:800;
  max-width:240px;
}
.offer-whatsapp-btn,
.offers-whatsapp-main{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-radius:999px;
  padding:12px 16px;
  background:#16a34a;
  color:#fff;
  text-decoration:none;
  font-weight:900;
  box-shadow:0 10px 24px rgba(22,163,74,.24);
  transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.offer-whatsapp-btn:hover,
.offers-whatsapp-main:hover{ transform:translateY(-1px); box-shadow:0 14px 26px rgba(22,163,74,.28); }
.offers-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:24px;
  flex-wrap:wrap;
}
.offers-link{
  color:#b91c1c;
  font-weight:800;
  text-decoration:none;
}
.offers-primary-btn{
  border:none;
  border-radius:999px;
  background:#111827;
  color:#fff;
  padding:12px 18px;
  font-weight:800;
  cursor:pointer;
}
@media (max-width: 900px){
  .offers-grid{ grid-template-columns:1fr; }
  .offer-card-bottom{ align-items:stretch; }
}
@media (max-width: 768px){
  .offers-fab{
    right:12px; bottom:18px; padding:8px 12px 8px 8px;
    max-width:calc(100vw - 24px);
  }
  .offers-fab-icon{ width:38px; height:38px; }
  .offers-fab-text{ font-size:11px; max-width:140px; }
  .offers-popup{ padding:12px; }
  .offers-popup-content{ padding:18px; border-radius:22px; }
  .offers-popup-head{ align-items:flex-start; }
  .offers-meta{ grid-template-columns:1fr; }
  .offer-card{ padding:16px; }
  .offer-featured-badge{ top:12px; left:12px; font-size:10px; padding:8px 10px; }
  .offer-visual{ min-height:132px; }
  .offer-card-top{ align-items:flex-start; flex-direction:column; }
  .offer-card-bottom,
  .offers-actions{ flex-direction:column; align-items:stretch; }
  .offer-whatsapp-btn,
  .offers-whatsapp-main,
  .offers-primary-btn{ width:100%; }
}


/* ===== V71 mobile polish ===== */
@media (max-width: 767px){
  html, body{
    overflow-x:hidden !important;
  }

  body.construction-padding{
    padding-top: 52px !important;
  }

  .construction-bar{
    min-height: 52px;
  }
  .construction-inner{
    padding: 8px 12px !important;
    gap: 8px !important;
    align-items: flex-start !important;
  }
  .construction-badge{
    font-size: 10px !important;
    padding: 5px 8px !important;
    flex-shrink: 0;
  }
  .construction-text{
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  #navbar .h-20{
    height: 72px !important;
  }
  #navbar .max-w-7xl{
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  #navbar .logo-animated a{
    gap: 10px !important;
  }
  #navbar .logo-animated .w-10{
    width: 2.25rem !important;
    height: 2.25rem !important;
    font-size: 1rem !important;
  }
  #navbar .logo-animated h1{
    font-size: 1.2rem !important;
    line-height: 1 !important;
  }
  #navbar .logo-animated span{
    font-size: 10px !important;
    letter-spacing: .16em !important;
  }
  #navbar .flex.items-center.space-x-4{
    gap: .5rem !important;
  }
  #navbar .flex.items-center.space-x-4 > a{
    width: 2.25rem !important;
    height: 2.25rem !important;
  }
  #navbar .md\:hidden{
    min-width: 42px;
    min-height: 42px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.78);
    border: 1px solid rgba(15,23,42,.08);
  }

  #mobile-menu{
    background: rgba(255,255,255,.98) !important;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 18px 45px rgba(15,23,42,.12);
  }
  #mobile-menu .px-4{
    padding: 10px 12px 18px !important;
  }
  #mobile-menu a{
    display:flex !important;
    align-items:center;
    min-height: 48px;
    padding: 12px 14px !important;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(15,23,42,.07);
    box-shadow: 0 8px 18px rgba(15,23,42,.05);
  }

  .hero-mobile{
    min-height: calc(100svh - 52px) !important;
    padding-top: 84px !important;
    padding-bottom: 30px !important;
  }
  .hero-mobile-content{
    width: min(100%, 100%) !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .hero-mobile h1{
    font-size: clamp(2rem, 8vw, 2.7rem) !important;
    line-height: .98 !important;
  }
  .hero-mobile p{
    font-size: .98rem !important;
    line-height: 1.55 !important;
  }
  .hero-mobile .counter{
    font-size: 1.8rem !important;
  }
  .hero-mobile .grid,
  .hero-mobile .grid-cols-2,
  .hero-mobile .grid-cols-3{
    gap: 10px !important;
  }

  section{
    scroll-margin-top: 90px;
  }

  .offers-fab{
    left: 12px;
    right: 12px;
    bottom: calc(12px + env(safe-area-inset-bottom));
    justify-content: center;
    padding: 10px 12px;
    border-radius: 18px;
  }
  .offers-fab-text{
    max-width: none !important;
    text-align: center !important;
    font-size: 12px !important;
  }

  .offers-popup{
    padding: 0 !important;
    align-items: flex-end !important;
    background: rgba(17,24,39,.78) !important;
  }
  .offers-popup-content{
    width: 100% !important;
    max-height: min(92svh, 92dvh) !important;
    border-radius: 24px 24px 0 0 !important;
    padding: 16px 16px 22px !important;
    box-shadow: 0 -20px 60px rgba(17,24,39,.22) !important;
  }
  .offers-popup-head{
    position: sticky;
    top: 0;
    z-index: 5;
    background: linear-gradient(180deg,#fffdf9 0%, rgba(255,253,249,.96) 78%, rgba(255,253,249,.78) 100%);
    padding-bottom: 12px;
    margin-bottom: 14px !important;
    backdrop-filter: blur(8px);
  }
  .offers-title{
    font-size: 1.85rem !important;
    line-height: .98 !important;
    padding-right: 8px;
  }
  .offers-subtitle{
    font-size: .94rem !important;
    line-height: 1.5 !important;
    margin-top: 8px !important;
  }
  .offers-close{
    width: 42px !important;
    height: 42px !important;
    font-size: 24px !important;
    position: sticky;
    top: 0;
  }
  .offers-meta-card{
    padding: 12px 14px !important;
  }
  .offers-grid{
    gap: 14px !important;
  }
  .offer-card{
    border-radius: 20px !important;
    padding: 14px !important;
  }
  .offer-visual{
    min-height: 116px !important;
    margin-bottom: 12px !important;
    border-radius: 16px !important;
    padding: 12px !important;
  }
  .offer-visual-icon{
    width: 48px !important;
    height: 48px !important;
    border-radius: 14px !important;
  }
  .offer-item{
    font-size: 1.06rem !important;
  }
  .offer-price{
    font-size: 1.35rem !important;
  }
  .offer-note{
    font-size: 13px !important;
    line-height: 1.5 !important;
  }
  .offer-validity{
    max-width: 100% !important;
    font-size: 11px !important;
  }

  .cookie-banner{
    left: 10px !important;
    right: 10px !important;
    bottom: 88px !important;
    width: auto !important;
    border-radius: 18px !important;
  }
  .cookie-banner .max-w-7xl{
    padding: 14px !important;
  }
  .cookie-banner .flex.gap-3{
    width: 100%;
    flex-direction: column;
  }
  .cookie-banner .flex.gap-3 > button{
    width: 100%;
  }
}

.hero-mobile-base-loop{z-index:0;}


/* ---------- V75 hero sequencing fix ---------- */
.hero-media-stage,
.hero-desktop,
.hero-mobile {
  position: relative;
}

.hero-base-video,
.hero-intro-video,
.hero-mobile-video {
  position: absolute !important;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-base-video,
.hero-mobile-base-loop,
#hero-base-mobile {
  opacity: 1;
  visibility: visible;
  z-index: 1;
  transition: opacity .7s ease, visibility .7s ease;
}

.hero-intro-video,
#hero-mobile-special-intro,
#hero-intro-desktop,
#hero-intro-mobile {
  opacity: 0;
  visibility: hidden;
  z-index: 2;
  transition: opacity .7s ease, visibility .7s ease;
}

.hero-desktop.hero-intro-playing .hero-intro-video,
.hero-mobile.hero-intro-playing .hero-intro-video,
.hero-mobile.hero-intro-playing #hero-mobile-special-intro {
  opacity: 1;
  visibility: visible;
}

.hero-desktop.hero-intro-playing .hero-base-video,
.hero-mobile.hero-intro-playing .hero-mobile-base-loop,
.hero-mobile.hero-intro-playing #hero-base-mobile {
  opacity: 0;
  visibility: hidden;
}

.hero-desktop.hero-video-ended .hero-base-video,
.hero-mobile.hero-video-ended .hero-mobile-base-loop,
.hero-mobile.hero-video-ended #hero-base-mobile {
  opacity: 1;
  visibility: visible;
}

.hero-desktop.hero-video-ended .hero-intro-video,
.hero-mobile.hero-video-ended .hero-intro-video,
.hero-mobile.hero-video-ended #hero-mobile-special-intro {
  opacity: 0;
  visibility: hidden;
}


/* ---------- V76 hero fix real visibility ---------- */
.hero-media-stage{position:absolute;inset:0;overflow:hidden;background:#000;}
.hero-media-stage video,.hero-mobile video{position:absolute !important;inset:0;width:100%;height:100%;object-fit:cover;background:#000;backface-visibility:hidden;transform:translateZ(0);}
#hero-base-desktop,#hero-base-mobile,#hero-mobile-base-loop{display:block;opacity:1;visibility:visible;z-index:1;}
#hero-intro-desktop,#hero-intro-mobile,#hero-mobile-special-intro{display:none;opacity:0;visibility:hidden;z-index:3;}
.hero-hero-overlay,.hero-mobile-bg,.hero-mobile-parallax-layer,.hero-mobile-grid,.hero-mobile-shine{z-index:4;}
.hero-desktop > .relative.z-10,.hero-mobile > .relative.z-10,.hero-desktop .absolute.bottom-8{z-index:5;}
@media (max-width:768px){.hero-mobile{display:flex !important;}.hero-desktop{display:none !important;}}
@media (min-width:769px){.hero-mobile{display:none !important;}.hero-desktop{display:flex !important;}}


/* ---------- V77 mobile hero + menu refinement ---------- */
@media (max-width: 768px) {
  #navbar .flex.items-center.space-x-4{
    gap: .45rem !important;
  }

  #mobile-menu{
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    scrollbar-width: none;
  }
  #mobile-menu::-webkit-scrollbar{display:none;}
  #mobile-menu .mobile-top-links{
    display:flex !important;
    align-items:center;
    gap:.65rem;
    flex-wrap:nowrap !important;
    padding-top:10px !important;
    padding-bottom:12px !important;
  }
  #mobile-menu .mobile-top-link{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:10px 14px !important;
    border-radius:999px;
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    box-shadow:0 8px 18px rgba(15,23,42,.06);
    white-space:nowrap;
    flex:0 0 auto;
  }

  .hero-mobile,
  .hero-mobile video,
  #hero-mobile-base-loop,
  #hero-mobile-special-intro,
  #hero-intro-mobile{
    display:block !important;
  }

  .hero-mobile{
    min-height:100svh;
  }

  #hero-mobile-base-loop{
    z-index:1 !important;
  }
  #hero-mobile-special-intro,
  #hero-intro-mobile{
    z-index:6 !important;
    object-position:center center;
  }
}
