/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *
 *= require_self
 */

 /* Coachella-inspired Festival Design System */
 
 /* Import Google Fonts */
 @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Outfit:wght@300;400;500;600;700;800;900&display=swap');
 @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@700;900&display=swap');
 
 /* CSS Custom Properties - Updated Coachella Palette */
 :root {
   /* Coachella-inspired Color Palette - Perfect Vibrant */
   --festival-yellow: #FFC107; /* Perfect vibrant yellow */
   --festival-orange: #FF8F00; /* Perfect vibrant orange */
   --festival-coral: #FF6B6B; /* Perfect vibrant coral */
   --festival-peach: #FFAB40; /* Perfect vibrant peach */
   --festival-cream: #FFF8E1; /* Keeping cream background */
   --festival-dark: #2c3e50;
   --festival-black: #1a1a1a;
   --festival-white: #ffffff;
   --festival-gray: #95a5a6;
   --festival-light-gray: #f5f5f5; /* Paler light gray */
   
   /* Updated Gradients - Perfect Vibrant */
   --gradient-festival: linear-gradient(135deg, var(--festival-yellow), var(--festival-orange), var(--festival-coral));
   --gradient-sunset: linear-gradient(135deg, var(--festival-orange), var(--festival-yellow), var(--festival-peach));
   --gradient-warm: linear-gradient(135deg, var(--festival-coral), var(--festival-orange));
   --gradient-dark: linear-gradient(135deg, var(--festival-black), var(--festival-dark));
   --gradient-hero: linear-gradient(135deg, var(--festival-yellow) 0%, var(--festival-orange) 50%, var(--festival-coral) 100%);
   
   /* Shadows */
   --shadow-light: 0 2px 10px rgba(0, 0, 0, 0.1);
   --shadow-medium: 0 4px 20px rgba(0, 0, 0, 0.15);
   --shadow-heavy: 0 8px 30px rgba(0, 0, 0, 0.2);
   --shadow-glow: 0 0 20px rgba(255, 193, 7, 0.4); /* Perfect vibrant glow */
   
   /* Typography - Premium Sans-Serif Fonts */
   --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
   --font-display: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
   
   /* Spacing */
   --spacing-xs: 0.5rem;
   --spacing-sm: 1rem;
   --spacing-md: 1.5rem;
   --spacing-lg: 2rem;
   --spacing-xl: 3rem;
   --spacing-xxl: 4rem;
   
   /* Border Radius */
   --radius-sm: 8px;
   --radius-md: 12px;
   --radius-lg: 16px;
   --radius-xl: 24px;
   --radius-full: 50px;
 }
 
 /* ===== CUSTOM FESTIVAL STYLES ===== */
 
 /* Enhanced Navbar */
 .festival-navbar {
   transition: all 0.3s ease;
   z-index: 1030;
   background: transparent !important;
 }
 
 .festival-navbar.scrolled {
   background: var(--gradient-hero) !important;
   backdrop-filter: blur(20px);
   box-shadow: 0 4px 30px rgba(0, 0, 0, 0.2);
 }
 
 .navbar-brand-text {
   transition: all 0.3s ease;
 }
 
 .navbar-logo {
   transition: all 0.3s ease;
   animation: logoGlow 3s ease-in-out infinite;
 }
 
 /* Combined hover effect for logo and brand text */
 a[href="#top"]:hover .navbar-logo {
   box-shadow: 0 0 35px rgba(255,193,7,0.8), 0 8px 25px rgba(0,0,0,0.3) !important;
   border-color: rgba(255,255,255,0.6) !important;
 }
 
 a[href="#top"]:hover .navbar-brand-text {
   transform: translateY(-1px);
 }
 
 @keyframes logoGlow {
   0%, 100% { 
     box-shadow: 0 0 25px rgba(255,193,7,0.6), 0 4px 15px rgba(0,0,0,0.2);
   }
   50% { 
     box-shadow: 0 0 35px rgba(255,193,7,0.8), 0 6px 20px rgba(0,0,0,0.25);
   }
 }
 
 .nav-link {
   position: relative;
   transition: all 0.3s ease;
 }
 
 .nav-link::after {
   content: '';
   position: absolute;
   bottom: -5px;
   left: 50%;
   width: 0;
   height: 2px;
   background: white;
   transition: all 0.3s ease;
   transform: translateX(-50%);
   box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
 }
 
 .nav-link:hover::after {
   width: 100%;
 }
 
 .nav-link:hover {
   transform: translateY(-2px);
   text-shadow: 0 2px 8px rgba(255, 255, 255, 0.6) !important;
 }
 
 /* Enhanced Hero Section */
 .festival-hero {
   position: relative;
   overflow: hidden;
   background: transparent !important;
   min-height: 100vh;
 }
 
 /* Video Background */
 .hero-video-background {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   z-index: 0;
   overflow: hidden;
   pointer-events: none;
   background: #000;
   display: flex;
   align-items: center;
   justify-content: center;
 }
 
 .hero-video {
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%) scale(1.5);
   border: none;
   pointer-events: none;
   z-index: 0;
   background: #000;
   width: 100vw;
   height: 100vh;
   min-width: 100vw;
   min-height: 100vh;
   object-fit: cover;
   object-position: center;
 }
 
 .hero-video-overlay {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: linear-gradient(135deg, 
     rgba(255, 193, 7, 0.25) 0%, 
     rgba(255, 143, 0, 0.35) 50%, 
     rgba(255, 107, 107, 0.25) 100%);
   z-index: 1;
 }
 
 /* Responsive Video Background - Progressive Scaling */
 @media (max-width: 1200px) {
   .hero-video {
     transform: translate(-50%, -50%) scale(1.8);
   }
 }
 
 @media (max-width: 992px) {
   .hero-video {
     transform: translate(-50%, -50%) scale(2.2);
   }
 }
 
 @media (max-width: 768px) {
   .hero-video {
     transform: translate(-50%, -50%) scale(2.8);
   }
 }
 
 @media (max-width: 576px) {
   .hero-video {
     transform: translate(-50%, -50%) scale(3.5);
   }
 }
 
 @media (max-width: 480px) {
   .hero-video {
     transform: translate(-50%, -50%) scale(4.2);
   }
 }
 
 @media (max-width: 375px) {
   .hero-video {
     transform: translate(-50%, -50%) scale(5);
   }
 }
 
 @media (max-width: 320px) {
   .hero-video {
     transform: translate(-50%, -50%) scale(6);
   }
 }
 
 /* Hero content positioning */
 .festival-hero .container {
   position: relative;
   z-index: 3;
 }
 
 .festival-hero h1,
 .festival-hero p,
 .festival-hero .coming-soon-badge,
 .festival-hero .btn {
   position: relative;
   z-index: 3;
 }
 
 .festival-hero::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
   background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="1" fill="rgba(255,255,255,0.1)"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');
   opacity: 0.3;
   animation: float 20s ease-in-out infinite;
 }
 
 /* Wave Background Animation */
 .wave-background {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   overflow: hidden;
   z-index: 2;
 }
 
 .wave-layer {
   position: absolute;
   top: -50%;
   left: -50%;
   width: 200%;
   height: 200%;
   background: linear-gradient(135deg, 
     rgba(255, 193, 7, 0.45) 0%, 
     rgba(255, 143, 0, 0.6) 25%, 
     rgba(255, 107, 107, 0.45) 50%, 
     rgba(255, 171, 64, 0.6) 75%, 
     rgba(255, 193, 7, 0.45) 100%);
   border-radius: 50%;
   animation: waveFlow 12s ease-in-out infinite;
   transform-origin: center;
 }
 
 .wave-layer-1 {
   animation-delay: 0s;
   opacity: 0.15;
   animation-duration: 15s;
 }
 
 .wave-layer-2 {
   animation-delay: -4s;
   opacity: 0.1;
   animation-duration: 18s;
   background: linear-gradient(135deg, 
     rgba(255, 143, 0, 0.35) 0%, 
     rgba(255, 107, 107, 0.5) 25%, 
     rgba(255, 171, 64, 0.35) 50%, 
     rgba(255, 193, 7, 0.5) 75%, 
     rgba(255, 143, 0, 0.35) 100%);
 }
 
 .wave-layer-3 {
   animation-delay: -8s;
   opacity: 0.08;
   animation-duration: 20s;
   background: linear-gradient(135deg, 
     rgba(255, 107, 107, 0.3) 0%, 
     rgba(255, 171, 64, 0.45) 25%, 
     rgba(255, 193, 7, 0.3) 50%, 
     rgba(255, 143, 0, 0.45) 75%, 
     rgba(255, 107, 107, 0.3) 100%);
 }
 
 @keyframes waveFlow {
   0%, 100% {
     transform: translateY(0px) scale(1) rotate(0deg);
   }
   25% {
     transform: translateY(-80px) scale(1.4) rotate(90deg);
   }
   50% {
     transform: translateY(-150px) scale(0.7) rotate(180deg);
   }
   75% {
     transform: translateY(-80px) scale(1.3) rotate(270deg);
   }
 }
 
 @keyframes float {
   0%, 100% { transform: translateY(0px) rotate(0deg); }
   50% { transform: translateY(-20px) rotate(180deg); }
 }
 
 .hero-logo {
   animation: pulse 2s ease-in-out infinite;
   transition: all 0.3s ease;
   position: relative;
   z-index: 3;
 }
 
 .hero-logo:hover {
   transform: scale(1.1) rotate(5deg);
   box-shadow: 0 0 40px rgba(255, 193, 7, 0.6);
 }
 
 @keyframes pulse {
   0%, 100% { transform: scale(1); }
   50% { transform: scale(1.05); }
 }
 
 .festival-gradient-text {
   background: var(--gradient-festival);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   background-clip: text;
   animation: shimmer 3s ease-in-out infinite;
 }
 
 @keyframes shimmer {
   0%, 100% { 
     filter: brightness(1);
   }
   50% { 
     filter: brightness(1.2);
   }
 }
 
 .festive-btn {
   position: relative;
   overflow: hidden;
   transition: all 0.3s ease;
   border: 3px solid rgba(255, 255, 255, 0.4);
   background: var(--gradient-festival);
   box-shadow: 0 8px 25px rgba(255, 193, 7, 0.3);
   font-weight: 800;
   letter-spacing: 1px;
 }
 
 .festive-btn::before {
   content: '';
   position: absolute;
   top: 0;
   left: -100%;
   width: 100%;
   height: 100%;
   background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
   transition: left 0.5s;
 }
 
 .festive-btn:hover::before {
   left: 100%;
 }
 
 .festive-btn:hover {
   transform: translateY(-3px);
   box-shadow: 0 12px 35px rgba(255, 193, 7, 0.5);
   border-color: rgba(255, 255, 255, 0.7);
 }
 
 /* Enhanced About Section */
 .about-poster {
   transition: all 0.3s ease;
   position: relative;
   overflow: hidden;
 }
 
 .about-poster::before {
   content: '';
   position: absolute;
   top: -50%;
   left: -50%;
   width: 200%;
   height: 200%;
   background: conic-gradient(from 0deg, transparent, var(--festival-yellow), transparent);
   animation: rotate 4s linear infinite;
   opacity: 0;
   transition: opacity 0.3s ease;
 }
 
 .about-poster:hover::before {
   opacity: 0.1;
 }
 
 @keyframes rotate {
   from { transform: rotate(0deg); }
   to { transform: rotate(360deg); }
 }
 
 .about-poster:hover {
   transform: translateY(-10px) scale(1.02);
   box-shadow: 0 20px 40px rgba(255, 193, 7, 0.2);
 }
 
 .feature-card {
   transition: all 0.3s ease;
   border: 2px solid transparent;
   position: relative;
   overflow: hidden;
 }
 
 .feature-card::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;
   background: var(--gradient-sunset);
   opacity: 0;
   transition: opacity 0.3s ease;
   z-index: -1;
 }
 
 .feature-card:hover::before {
   opacity: 0.1;
 }
 
 .feature-card:hover {
   transform: translateY(-5px);
   border-color: var(--festival-yellow);
   box-shadow: 0 10px 25px rgba(255, 193, 7, 0.2);
 }
 
 .feature-icon {
   transition: all 0.3s ease;
 }
 
 .feature-card:hover .feature-icon {
   transform: scale(1.2) rotate(5deg);
 }
 
 /* Enhanced Gallery */
 .gallery-card {
   transition: all 0.4s ease;
   cursor: pointer;
 }
 
 .gallery-card:hover {
   transform: translateY(-10px) scale(1.05);
   box-shadow: 0 20px 40px rgba(255, 193, 7, 0.3);
 }
 
 .gallery-img {
   transition: all 0.4s ease;
 }
 
 .gallery-card:hover .gallery-img {
   transform: scale(1.1) rotate(0deg) !important;
   box-shadow: 0 15px 35px rgba(255, 193, 7, 0.4);
 }
 
 .gallery-overlay {
   transition: all 0.3s ease;
   transform: translateY(100%);
 }
 
 .gallery-card:hover .gallery-overlay {
   transform: translateY(0);
 }
 
 /* Enhanced FAQ */
 .faq-card {
   transition: all 0.3s ease;
   position: relative;
   overflow: hidden;
 }
 
 /* Ensure accordion functionality works */
 .faq-card .accordion-item {
   border: none !important;
   background: transparent !important;
 }
 
 .faq-card .accordion-button {
   padding: 1rem !important;
   border: none !important;
   box-shadow: none !important;
   background: transparent !important;
 }
 
 .faq-card .accordion-button:not(.collapsed) {
   background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%) !important;
   color: var(--festival-dark) !important;
   box-shadow: none !important;
 }
 
 .faq-card .accordion-button:focus {
   box-shadow: 0 0 0 0.25rem rgba(255,193,7,0.25) !important;
   border: none !important;
 }
 
 .faq-card .accordion-collapse {
   border: none !important;
 }
 
 .faq-card .accordion-body {
   border: none !important;
   background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%) !important;
 }
 
 /* Removed shimmer effect to prevent text movement */
 
 .faq-card:hover {
   box-shadow: 0 8px 30px rgba(255,193,7,0.2) !important;
   border-color: var(--festival-yellow) !important;
 }
 
 .faq-icon-container {
   transition: all 0.3s ease;
 }
 
 .faq-card:hover .faq-icon-container {
   box-shadow: 0 4px 15px rgba(255,193,7,0.4);
 }
 
 .faq-arrow {
   transition: transform 0.3s ease;
 }
 
 .accordion-button:not(.collapsed) .faq-arrow {
   transform: rotate(180deg);
 }
 
 .accordion-button:hover .faq-arrow {
   transform: translateY(2px);
 }
 
 .accordion-button:not(.collapsed):hover .faq-arrow {
   transform: rotate(180deg) translateY(-2px);
 }
 
 /* FAQ CTA Card */
 .faq-cta-card {
   transition: all 0.3s ease;
   position: relative;
   overflow: hidden;
 }
 
 .faq-cta-card::before {
   content: '';
   position: absolute;
   top: 0;
   left: -100%;
   width: 100%;
   height: 100%;
   background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
   transition: left 0.6s ease;
   z-index: 1;
 }
 
 .faq-cta-card:hover::before {
   left: 100%;
 }
 
 .faq-cta-card:hover {
   transform: translateY(-3px);
   box-shadow: 0 12px 40px rgba(255,193,7,0.4) !important;
 }
 
 .faq-cta-card .btn {
   position: relative;
   z-index: 2;
   transition: all 0.3s ease;
 }
 
 .faq-cta-card .btn:hover {
   transform: translateY(-2px);
   box-shadow: 0 4px 15px rgba(0,0,0,0.2);
 }
 
 .accordion-item:hover {
   transform: translateX(5px);
   box-shadow: 0 5px 15px rgba(255, 193, 7, 0.2);
 }
 
 .accordion-button {
   transition: all 0.3s ease;
   position: relative;
   overflow: hidden;
 }
 
 .accordion-button::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: var(--gradient-sunset);
   opacity: 0;
   transition: opacity 0.3s ease;
   z-index: -1;
 }
 
 .accordion-button:hover::before {
   opacity: 0.1;
 }
 
 .accordion-button:not(.collapsed) {
   background: var(--gradient-sunset) !important;
   color: var(--festival-dark) !important;
   font-weight: 700;
 }
 
 /* Enhanced Footer */
 .festival-footer {
   position: relative;
   overflow: hidden;
 }
 
 /* Footer CTA Button Hover Effects */
 .footer-cta .btn-outline-light {
   position: relative;
   overflow: hidden;
   z-index: 1;
 }
 
 .footer-cta .btn-outline-light::before {
   content: '';
   position: absolute;
   top: 0;
   left: -100%;
   width: 100%;
   height: 100%;
   background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
   transition: left 0.5s ease;
   z-index: -1;
 }
 
 .footer-cta .btn-outline-light:hover::before {
   left: 100%;
 }
 
 .footer-cta .btn-outline-light:hover {
   background: rgba(255,255,255,0.1) !important;
   border-color: rgba(255,255,255,0.6) !important;
   color: #FFF8DC !important;
   transform: translateY(-2px);
   box-shadow: 0 4px 15px rgba(255,255,255,0.2);
 }
 
 /* Newsletter Input Styling */
 .newsletter-signup .form-control {
   background: rgba(255,255,255,0.15) !important;
   border: 1px solid rgba(255,255,255,0.3) !important;
   color: #FFF8DC !important;
 }
 
 .newsletter-signup .form-control::placeholder {
   color: rgba(255,248,220,0.7) !important;
   font-style: italic;
 }
 
 .newsletter-signup .form-control:focus {
   background: rgba(255,255,255,0.2) !important;
   border-color: rgba(255,255,255,0.5) !important;
   box-shadow: 0 0 0 0.2rem rgba(255,215,0,0.25) !important;
   color: #FFF8DC !important;
 }
 
 .festival-footer::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   height: 2px;
   background: var(--gradient-festival);
 }
 
 .footer-link {
   color: var(--festival-gray);
   text-decoration: none;
   transition: all 0.3s ease;
   position: relative;
 }
 
 .footer-link::after {
   content: '';
   position: absolute;
   bottom: -2px;
   left: 0;
   width: 0;
   height: 1px;
   background: var(--festival-yellow);
   transition: width 0.3s ease;
 }
 
 .footer-link:hover {
   color: var(--festival-yellow);
 }
 
 .footer-link:hover::after {
   width: 100%;
 }
 
 .footer-social-link {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   width: 40px;
   height: 40px;
   background: rgba(255, 255, 255, 0.1);
   border-radius: 50%;
   color: var(--festival-white);
   text-decoration: none;
   transition: all 0.3s ease;
   position: relative;
   overflow: hidden;
 }
 
 .footer-social-link::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: var(--gradient-festival);
   opacity: 0;
   transition: opacity 0.3s ease;
   z-index: -1;
 }
 
 .footer-social-link:hover::before {
   opacity: 1;
 }
 
 .footer-social-link:hover {
   transform: translateY(-3px) scale(1.1);
   color: var(--festival-dark);
 }
 
 /* Custom Scrollbar */
 ::-webkit-scrollbar {
   width: 12px;
 }
 
 ::-webkit-scrollbar-track {
   background: var(--festival-light-gray);
 }
 
 ::-webkit-scrollbar-thumb {
   background: var(--gradient-festival);
   border-radius: 6px;
   border: 2px solid var(--festival-light-gray);
 }
 
 ::-webkit-scrollbar-thumb:hover {
   background: var(--gradient-sunset);
 }
 
 /* Smooth Scrolling */
 html {
   scroll-behavior: smooth;
 }
 
 /* Loading Animation */
 .loading-animation {
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: var(--gradient-hero);
   display: flex;
   align-items: center;
   justify-content: center;
   z-index: 9999;
   transition: opacity 0.5s ease;
 }
 
 .loading-animation.fade-out {
   opacity: 0;
   pointer-events: none;
 }
 
 .loading-logo {
   animation: loadingPulse 1.5s ease-in-out infinite;
 }
 
 @keyframes loadingPulse {
   0%, 100% { transform: scale(1); opacity: 1; }
   50% { transform: scale(1.2); opacity: 0.7; }
 }
 
 /* Mobile Menu Enhancements */
 .festival-mobile-menu {
   transition: all 0.3s ease;
   background: transparent !important;
 }
 
 .festival-mobile-menu.scrolled {
   background: var(--gradient-hero) !important;
   backdrop-filter: blur(20px);
 }
 
 .mobile-nav-link {
   transition: all 0.3s ease;
   color: var(--festival-dark);
   text-decoration: none;
   position: relative;
 }
 
 .mobile-nav-link::before {
   content: '';
   position: absolute;
   left: 0;
   top: 50%;
   width: 0;
   height: 2px;
   background: var(--gradient-festival);
   transition: width 0.3s ease;
   transform: translateY(-50%);
 }
 
 .mobile-nav-link:hover::before {
   width: 100%;
 }
 
 .mobile-nav-link:hover {
   color: var(--festival-orange);
   transform: translateX(10px);
 }
 
 /* Mobile Navbar Styles */
 .navbar-collapse {
   background: transparent !important;
   backdrop-filter: blur(12px);
 }
 
 .navbar-collapse.scrolled {
   background: var(--gradient-hero) !important;
   backdrop-filter: blur(20px);
 }
 
 /* Mobile menu specific styles */
 @media (max-width: 767.98px) {
   .navbar-collapse {
     position: absolute;
     top: 100%;
     left: 0;
     right: 0;
     background: var(--gradient-hero) !important;
     backdrop-filter: blur(20px);
     border-bottom: 2px solid var(--festival-yellow);
     box-shadow: 0 4px 20px rgba(0,0,0,0.3);
     z-index: 1020;
   }
   
   .navbar-nav {
     padding: 1rem 0;
   }
   
   .nav-item {
     margin: 0.5rem 0;
   }
   
   .nav-link {
     padding: 0.75rem 1rem !important;
     text-align: center;
     border-radius: 8px;
     margin: 0 1rem;
     transition: all 0.3s ease;
   }
   
   .nav-link:hover {
     background: rgba(255,255,255,0.1);
     transform: translateY(-2px);
   }
   
   .nav-item .btn {
     margin: 0.5rem 1rem;
     width: calc(100% - 2rem);
   }
 }
 
 /* Responsive Enhancements */
 @media (max-width: 768px) {
   .festival-hero h1 {
     font-size: 2.5rem !important;
     letter-spacing: 2px !important;
   }
   
   .festival-hero p {
     font-size: 1.2rem !important;
   }
   
   .about-poster {
     margin: 0 1rem;
   }
   
   .gallery-card {
     margin-bottom: 1rem;
   }
   
   .accordion-item {
     margin: 0 1rem 1rem 1rem;
   }
 }
 
 @media (max-width: 480px) {
   .festival-hero h1 {
     font-size: 2rem !important;
     letter-spacing: 1px !important;
   }
   
   .festival-hero p {
     font-size: 1rem !important;
   }
   
   .hero-logo {
     height: 80px !important;
     width: 80px !important;
   }
   
   .navbar-brand-text {
     font-size: 1.2rem !important;
     letter-spacing: 1px !important;
   }
 }
 
 /* Make Summer Madness PH text smaller on mobile devices */
 @media (max-width: 767.98px) {
   .navbar-brand-text {
     font-size: 1rem !important;
     letter-spacing: 0.8px !important;
   }
 }
 
 /* Button Enhancements */
 .btn-warning {
   background: var(--gradient-sunset);
   border: none;
   transition: all 0.3s ease;
   position: relative;
   overflow: hidden;
 }
 
 .btn-warning::before {
   content: '';
   position: absolute;
   top: 0;
   left: -100%;
   width: 100%;
   height: 100%;
   background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
   transition: left 0.5s;
 }
 
 .btn-warning:hover::before {
   left: 100%;
 }
 
 .btn-warning:hover {
   transform: translateY(-2px);
   box-shadow: 0 8px 25px rgba(255, 193, 7, 0.4);
 }
 
 .btn-primary {
   background: var(--gradient-festival);
   border: none;
   transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
 }
 
 .btn-primary:hover {
   transform: translateY(-3px);
   box-shadow: 0 8px 25px rgba(255, 193, 7, 0.4);
 }
 
 /* Custom styling for Become a Vendor button */
 .btn[style*="background: rgba(255,255,255,0.9)"] {
   transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
   position: relative;
   overflow: hidden;
 }
 
 .btn[style*="background: rgba(255,255,255,0.9)"]:hover {
   transform: translateY(-3px);
   box-shadow: 0 8px 25px rgba(255, 193, 7, 0.4);
   background: rgba(255,255,255,0.95) !important;
 }
 
 .btn[style*="background: white"]::before {
   content: '';
   position: absolute;
   top: 0;
   left: -100%;
   width: 100%;
   height: 100%;
   background: linear-gradient(90deg, transparent, rgba(255,193,7,0.2), transparent);
   transition: left 0.5s;
 }
 
 .btn[style*="background: white"]:hover::before {
   left: 100%;
 }
 
 /* Coming Soon Badge Redesign */
 .coming-soon-badge {
   display: inline-flex;
   align-items: center;
   padding: 0.5rem 1.5rem;
   background: transparent;
   border: none;
   position: relative;
   overflow: visible;
 }
 
 .coming-soon-text {
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 0.2rem;
 }
 
 .coming-label {
   font-size: 1.2rem;
   font-weight: 600;
   color: rgba(255, 255, 255, 0.9);
   letter-spacing: 3px;
   text-transform: uppercase;
 }
 
 .year-label {
   font-size: 2rem;
   font-weight: 800;
   color: var(--festival-yellow);
   letter-spacing: 4px;
   text-shadow: 0 0 20px rgba(255, 193, 7, 0.5);
 }
 
 .location-label {
   font-size: 1rem;
   font-weight: 600;
   color: rgba(255, 255, 255, 0.9);
   letter-spacing: 2px;
   text-shadow: 0 1px 3px rgba(0,0,0,0.3);
   margin-top: 0.3rem;
 }
 
 
 
 
 
 @keyframes sunRotate {
   0% {
     transform: rotate(0deg);
   }
   100% {
     transform: rotate(360deg);
   }
 }
 
 /* Badge Enhancements */
 .badge {
   transition: all 0.3s ease;
   position: relative;
   overflow: hidden;
 }
 
 .badge::before {
   content: '';
   position: absolute;
   top: 0;
   left: -100%;
   width: 100%;
   height: 100%;
   background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
   transition: left 0.5s;
 }
 
 .badge:hover::before {
   left: 100%;
 }
 
 .badge:hover {
   transform: scale(1.05);
   box-shadow: 0 5px 15px rgba(255, 193, 7, 0.3);
 }
 
 /* Section Transitions */
 .festival-section {
   opacity: 0;
   transform: translateY(30px);
   transition: all 0.6s ease;
 }
 
 .festival-section.visible {
   opacity: 1;
   transform: translateY(0);
 }
 
 /* Floating Elements Animation - Removed */
 /* Gallery items no longer have floating animation */
 
 /* Text Glow Effect */
 .text-glow {
   text-shadow: 0 0 10px rgba(255, 193, 7, 0.5);
 }
 
 /* Gradient Border */
 .gradient-border {
   position: relative;
   background: var(--festival-white);
   border-radius: var(--radius-lg);
 }
 
 .gradient-border::before {
   content: '';
   position: absolute;
   top: -2px;
   left: -2px;
   right: -2px;
   bottom: -2px;
   background: var(--gradient-festival);
   border-radius: calc(var(--radius-lg) + 2px);
   z-index: -1;
 }
 
 /* Hover Effects for Images */
 .hover-zoom {
   transition: transform 0.3s ease;
   overflow: hidden;
 }
 
 .hover-zoom:hover {
   transform: scale(1.05);
 }
 
 /* Custom Focus States */
 .btn:focus,
 .nav-link:focus,
 .accordion-button:focus {
   box-shadow: 0 0 0 3px rgba(255, 193, 7, 0.3);
   outline: none;
 }
 
 /* Loading States */
 .loading {
   position: relative;
   overflow: hidden;
 }
 
 .loading::after {
   content: '';
   position: absolute;
   top: 0;
   left: -100%;
   width: 100%;
   height: 100%;
   background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
   animation: loading 1.5s infinite;
 }
 
 @keyframes loading {
   0% { left: -100%; }
   100% { left: 100%; }
 }
 
 /* Shimmer Button Effect */
 .shimmer-btn {
   transition: all 0.3s ease;
   position: relative;
   overflow: hidden;
 }
 
 .shimmer-btn::before {
   content: '';
   position: absolute;
   top: 0;
   left: -100%;
   width: 100%;
   height: 100%;
   background: linear-gradient(90deg, transparent, rgba(255, 193, 7, 0.4), transparent);
   transition: left 0.6s ease;
 }
 
 .shimmer-btn:hover::before {
   left: 100%;
 }
 
 .shimmer-btn:hover {
   transform: translateY(-2px);
   box-shadow: 0 6px 20px rgba(255, 193, 7, 0.3);
   background: rgba(255, 193, 7, 0.1) !important;
   border-color: var(--festival-orange) !important;
 }
 
 /* Fiery Glow Effect for Tickets Button */
.fiery-glow-btn {
  position: relative;
  background: linear-gradient(45deg, #ff8c00, #ffa500, #ff8c00, #ffb347, #ff8c00) !important;
  background-size: 200% 200% !important;
  border: 3px solid #ff8c00 !important;
  color: white !important;
  font-weight: bold !important;
  text-shadow: 0 2px 4px rgba(0,0,0,0.5) !important;
  box-shadow: 
    0 0 30px rgba(255, 140, 0, 0.8),
    0 0 60px rgba(255, 140, 0, 0.6),
    0 0 90px rgba(255, 140, 0, 0.4),
    0 0 120px rgba(255, 140, 0, 0.2),
    0 8px 25px rgba(0,0,0,0.3),
    inset 0 0 20px rgba(255, 255, 255, 0.1) !important;
  animation: fieryPulse 1.5s ease-in-out infinite, fieryGradient 3s ease-in-out infinite !important;
  transition: all 0.3s ease !important;
  overflow: hidden !important;
  z-index: 10 !important;
}

.fiery-glow-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.6), transparent);
  transition: left 0.8s ease;
  z-index: 1;
  animation: waveShimmer 2s ease-in-out infinite;
}

.fiery-glow-btn::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255, 140, 0, 0.3) 0%, transparent 70%);
  animation: fieryRotate 4s linear infinite;
  z-index: -1;
}

/* Wave effect overlay */
.fiery-glow-btn .wave-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, 
    transparent 0%, 
    rgba(255, 165, 0, 0.2) 25%, 
    rgba(255, 140, 0, 0.5) 50%, 
    rgba(255, 165, 0, 0.2) 75%, 
    transparent 100%);
  animation: waveFlow 3s ease-in-out infinite;
  z-index: 2;
  pointer-events: none;
}

.fiery-glow-btn:hover::before {
  left: 100%;
  animation: waveShimmer 1s ease-in-out infinite;
}

.fiery-glow-btn:hover .wave-overlay {
  animation: waveFlow 1.5s ease-in-out infinite;
}

.fiery-glow-btn:hover {
  transform: translateY(-3px) scale(1.08) !important;
  box-shadow: 
    0 0 50px rgba(255, 140, 0, 1),
    0 0 100px rgba(255, 140, 0, 0.8),
    0 0 150px rgba(255, 140, 0, 0.6),
    0 0 200px rgba(255, 140, 0, 0.4),
    0 12px 35px rgba(0,0,0,0.4),
    inset 0 0 30px rgba(255, 255, 255, 0.2) !important;
  animation: fieryPulse 0.8s ease-in-out infinite, fieryGradient 2s ease-in-out infinite !important;
  border-color: #ffa500 !important;
}

@keyframes fieryPulse {
  0%, 100% {
    box-shadow: 
      0 0 30px rgba(255, 140, 0, 0.8),
      0 0 60px rgba(255, 140, 0, 0.6),
      0 0 90px rgba(255, 140, 0, 0.4),
      0 0 120px rgba(255, 140, 0, 0.2),
      0 8px 25px rgba(0,0,0,0.3),
      inset 0 0 20px rgba(255, 255, 255, 0.1);
  }
  50% {
    box-shadow: 
      0 0 50px rgba(255, 140, 0, 1),
      0 0 100px rgba(255, 140, 0, 0.8),
      0 0 150px rgba(255, 140, 0, 0.6),
      0 0 200px rgba(255, 140, 0, 0.4),
      0 12px 35px rgba(0,0,0,0.4),
      inset 0 0 30px rgba(255, 255, 255, 0.2);
  }
}

@keyframes fieryGradient {
  0%, 100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}

@keyframes fieryRotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes waveFlow {
  0% {
    transform: translateX(-100%) skewX(-15deg);
  }
  50% {
    transform: translateX(0%) skewX(-15deg);
  }
  100% {
    transform: translateX(100%) skewX(-15deg);
  }
}

@keyframes waveShimmer {
  0% {
    left: -100%;
  }
  50% {
    left: 0%;
  }
  100% {
    left: 100%;
  }
}

.fiery-glow-btn:active {
  transform: translateY(0) scale(0.95) !important;
  box-shadow: 
    0 0 20px rgba(255, 140, 0, 0.6),
    0 0 40px rgba(255, 140, 0, 0.4),
    0 0 60px rgba(255, 140, 0, 0.2),
    0 4px 15px rgba(0,0,0,0.3),
    inset 0 0 15px rgba(255, 255, 255, 0.1) !important;
}
 