/* Shared navigation, accessibility, and responsive fixes */
:root{--site-header-height:82px}
html{scroll-padding-top:calc(var(--site-header-height) + 18px)}
body{min-width:0;overflow-x:hidden}
img,svg,video,iframe{max-width:100%}
button,input,select,textarea{font:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f5c638;outline-offset:3px}
.navbar,.nav-inner{isolation:isolate}
.nav-inner{position:relative}
.mobile-menu{appearance:none;border:0;background:transparent;padding:8px 10px;line-height:1;cursor:pointer}
.nav-links a{white-space:nowrap}
.footer a:hover,.footer a:focus-visible{color:#f5c638}
.signup-form input,.form input{min-width:0;width:100%}
.hero-actions,.venue-actions{align-items:center}
.section-title,.hero-title,.announcement-heading{overflow-wrap:anywhere}

/* Prevent embedded/large visual content from creating horizontal scroll. */
.page,.site,.hero,.venue-hero,.vendor-hero,.media-hero,.sponsor-hero,.faq-hero,.lineup-hero,.shop-hero,
.section,.nav-inner,.footer-inner,.ticket-inner,.shop-shell,.resources-wrap{max-width:100%}

@media (max-width:1100px){
  :root{--site-header-height:72px}
  .nav-inner{min-height:72px!important;padding:0 22px!important;gap:14px!important;flex-wrap:nowrap!important}
  .nav-inner>.logo{min-width:0!important;font-size:28px!important;flex:0 1 auto}
  .mobile-menu{display:inline-flex!important;align-items:center;justify-content:center;margin-left:auto;color:#f5c638;font-size:30px;z-index:4}
  .nav-links{display:none!important;position:absolute!important;top:100%;left:0;right:0;z-index:3;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:0!important;padding:10px 22px 18px!important;background:rgba(3,3,3,.98);border-top:1px solid rgba(245,198,56,.18);border-bottom:1px solid rgba(245,198,56,.28);box-shadow:0 18px 35px rgba(0,0,0,.45);max-height:calc(100vh - 72px);overflow:auto}
  .navbar.menu-open .nav-links{display:flex!important}
  .nav-links a{display:block;width:100%;padding:13px 4px;border-bottom:1px solid rgba(255,255,255,.09);font-size:16px!important;white-space:normal}
  .nav-links a:last-child{border-bottom:0}
  .nav-inner>.socials{display:none!important}
  .nav-inner>.nav-ticket,.nav-inner>.header-ticket,.nav-inner>.header-cta,.nav-inner>.btn:not(.mobile-menu){display:none!important}

  .section{padding-left:24px!important;padding-right:24px!important}
  .intro-grid,.venue-card,.venue-card:nth-child(even),.vendor-grid,.sponsor-grid,.resources-wrap,.faq-wrap,.hero-grid,.ticket-inner,.photo-layout,.shop-shell{grid-template-columns:minmax(0,1fr)!important}
  .venue-card:nth-child(even) .venue-map{order:0!important}
  .info-grid,.footer-grid,.product-grid,.gallery-grid,.video-grid,.past-grid,.announced-photo-grid,.artist-grid,.news-grid,.about-icons,.stats,.cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .sidebar{position:static!important;width:100%!important}
  .shop-main{min-width:0}
}

@media (max-width:700px){
  :root{--site-header-height:66px}
  .nav-inner{min-height:66px!important;padding:0 16px!important}
  .nav-inner>.logo{font-size:24px!important}
  .nav-links{padding-left:16px!important;padding-right:16px!important;max-height:calc(100vh - 66px)}
  .section{padding:64px 18px!important}
  .hero-inner,.hero-content,.hero-left,.hero-copy{padding-left:18px!important;padding-right:18px!important}
  .hero-title{font-size:clamp(48px,16vw,82px)!important;line-height:.88!important}
  .section-title{font-size:clamp(40px,13vw,70px)!important}
  p{font-size:16px}
  .info-grid,.footer-grid,.product-grid,.gallery-grid,.video-grid,.past-grid,.announced-photo-grid,.artist-grid,.news-grid,.about-icons,.stats,.cards,.quick-facts{grid-template-columns:minmax(0,1fr)!important}
  .signup-form,.form{grid-template-columns:minmax(0,1fr)!important;width:100%!important}
  .signup-form button,.form button{width:100%}
  .hero-actions,.venue-actions{width:100%;gap:10px}
  .hero-actions .btn,.venue-actions .btn{flex:1 1 220px}
  .venue-info,.vendor-card-body,.announcement-card{padding-left:22px!important;padding-right:22px!important}
  .venue-map{min-height:310px!important}
  .info-head,.section-head,.main-head{align-items:flex-start!important;flex-direction:column!important}
  .footer{text-align:left}
  .footer-socials{justify-content:flex-start}
  .product-grid{gap:22px!important}
  .sticky-mobile-cta{display:flex!important}
}

@media (max-width:430px){
  .hero-actions .btn,.venue-actions .btn,.cta .btn{width:100%;flex-basis:100%}
  .btn{padding-left:18px!important;padding-right:18px!important;font-size:16px!important}
  .hero-title{font-size:clamp(44px,17vw,68px)!important}
  .section-title{font-size:clamp(38px,14vw,58px)!important}
  .venue-info,.vendor-card-body,.announcement-card,.info-card,.resource-card{padding:20px!important}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* Wix-style stretched sections
   Every section background spans the viewport, while page content remains
   centered inside one consistent responsive safe area. */
:root{
  --wix-content-width:1200px;
  --wix-gutter:30px;
}

html,body,
.page,.site,
main{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
}

/* Full-width structural bands. */
.navbar,.hero,.venue-hero,.vendor-hero,.media-hero,.sponsor-hero,.faq-hero,.lineup-hero,.shop-hero,
.ticket-band,.about,.lineup,.experience,.news,.signup,
.intro,.venue-section,.info-band,.past-section,.resources,.vendor-info,.cta,.newsletter,.footer{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
}

/* Consistent Wix-style content grid inside stretched sections. */
.section{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:max(var(--wix-gutter), calc((100% - var(--wix-content-width))/2))!important;
  padding-right:max(var(--wix-gutter), calc((100% - var(--wix-content-width))/2))!important;
}

.nav-inner,.footer-inner,.copyright{
  width:100%;
  max-width:var(--wix-content-width)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Keep hero copy centered to the same overall site axis. */
.hero-content,.hero-inner{
  width:min(100%, var(--wix-content-width));
  margin-left:auto;
  margin-right:auto;
}

/* Prevent constrained shop/venue/resource layouts from drifting off-axis. */
.shop-shell,.resources-wrap,.intro-grid,.ticket-inner,.faq-wrap,
.sponsor-intro,.sponsor-grid,.vendor-intro,.vendor-grid,.more-card,
.announcement,.gallery-grid,.video-grid,.stats{
  margin-left:auto;
  margin-right:auto;
}

@media (max-width:1100px){
  :root{--wix-gutter:24px}
}

@media (max-width:700px){
  :root{--wix-gutter:18px}
  .section{
    padding-left:var(--wix-gutter)!important;
    padding-right:var(--wix-gutter)!important;
  }
}

@media (max-width:430px){
  :root{--wix-gutter:16px}
}

/* Align the header links to the exact same safe-area edges as page content. */
.nav-inner{
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:max(var(--wix-gutter), calc((100% - var(--wix-content-width))/2))!important;
  padding-right:max(var(--wix-gutter), calc((100% - var(--wix-content-width))/2))!important;
}

@media (max-width:700px){
  .nav-inner{
    padding-left:16px!important;
    padding-right:16px!important;
  }
}
