/* cache-busted hotfix */

/* compact mobile header */
@media (max-width: 820px){
  .site-header .container.nav{
    width:calc(100% - 16px) !important;
    max-width:none !important;
  }
  .nav{
    min-height:66px !important;
    gap:8px !important;
  }
  .brand{
    gap:8px !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    overflow:hidden !important;
  }
  .brand-mark{
    width:34px !important;
    height:34px !important;
    border-radius:10px !important;
    flex:0 0 auto !important;
  }
  .brand-mark:before{
    inset:6px !important;
    border-radius:7px !important;
  }
  .brand-text{
    font-size:.80rem !important;
    line-height:1.02 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    max-width:100% !important;
  }
  .brand-text small{
    display:none !important;
  }
  .nav-toggle{
    width:38px !important;
    height:38px !important;
    min-height:38px !important;
    flex:0 0 auto !important;
    border-radius:10px !important;
    margin-left:6px !important;
  }
  .nav-toggle span{
    top:18px !important;
    left:10px !important;
    right:10px !important;
  }
  .nav-toggle:before{
    top:12px !important;
    left:10px !important;
    right:10px !important;
  }
  .nav-toggle:after{
    top:24px !important;
    left:10px !important;
    right:10px !important;
  }
  .mobile-menu{
    padding:6px 0 14px !important;
  }
}

@media (max-width: 480px){
  .site-header .container.nav{
    width:calc(100% - 12px) !important;
  }
  .brand-text{
    font-size:.74rem !important;
  }
  .brand-mark{
    width:32px !important;
    height:32px !important;
  }
  .nav{
    min-height:62px !important;
  }
}

/* full width bottom band */
#contact .container.contact{
  width:100% !important;
  max-width:none !important;
  border-radius:0 !important;
  padding:34px 28px !important;
}
#contact .contact-grid{
  max-width:1180px !important;
  margin:0 auto !important;
}
.site-footer{
  width:100% !important;
  max-width:none !important;
  margin-top:0 !important;
  background:linear-gradient(180deg, rgba(255,253,249,.96) 0%, rgba(245,238,225,1) 100%) !important;
}
.site-footer .footer-top{
  width:100% !important;
  max-width:none !important;
  padding:18px 28px 0 !important;
}
.site-footer .footer-bar{
  max-width:1180px !important;
  margin:0 auto !important;
}

@media (max-width: 820px){
  #contact .container.contact{
    padding:26px 16px !important;
  }
  .site-footer .footer-top{
    padding:18px 16px 0 !important;
  }
}


/* MOBILE HEADER FINAL TIGHT FIX START */
@media (max-width: 820px){
  .site-header{
    padding:0 !important;
  }

  .site-header .container.nav{
    width:calc(100% - 12px) !important;
    max-width:none !important;
    padding:0 !important;
  }

  .nav{
    min-height:58px !important;
    height:58px !important;
    gap:6px !important;
    align-items:center !important;
  }

  .brand{
    gap:8px !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    overflow:hidden !important;
  }

  .brand-mark{
    width:28px !important;
    height:28px !important;
    border-radius:8px !important;
    flex:0 0 28px !important;
    margin:0 !important;
  }

  .brand-mark:before{
    inset:5px !important;
    border-radius:5px !important;
  }

  .brand-text{
    font-size:.68rem !important;
    line-height:1 !important;
    font-weight:700 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    max-width:100% !important;
    margin:0 !important;
  }

  .brand-text small{
    display:none !important;
  }

  .nav-toggle{
    width:32px !important;
    height:32px !important;
    min-height:32px !important;
    flex:0 0 32px !important;
    border-radius:8px !important;
    margin:0 !important;
  }

  .nav-toggle span,
  .nav-toggle:before,
  .nav-toggle:after{
    left:8px !important;
    right:8px !important;
    height:2px !important;
  }

  .nav-toggle span{ top:15px !important; }
  .nav-toggle:before{ top:10px !important; }
  .nav-toggle:after{ top:20px !important; }

  .mobile-menu{
    padding-top:4px !important;
  }
}

@media (max-width: 480px){
  .site-header .container.nav{
    width:calc(100% - 10px) !important;
  }

  .nav{
    min-height:54px !important;
    height:54px !important;
  }

  .brand-mark{
    width:26px !important;
    height:26px !important;
    flex:0 0 26px !important;
  }

  .brand-text{
    font-size:.62rem !important;
  }

  .nav-toggle{
    width:30px !important;
    height:30px !important;
    min-height:30px !important;
    flex:0 0 30px !important;
  }

  .nav-toggle span{ top:14px !important; }
  .nav-toggle:before{ top:9px !important; }
  .nav-toggle:after{ top:19px !important; }
}
/* MOBILE HEADER FINAL TIGHT FIX END */


/* MOBILE HEADER LOGO + DOTS FIX START */
@media (max-width: 820px){
  .brand{
    gap:10px !important;
  }

  .brand-mark{
    width:36px !important;
    height:36px !important;
    flex:0 0 36px !important;
    border-radius:11px !important;
  }

  .brand-mark:before{
    inset:6px !important;
    border-radius:7px !important;
  }

  .brand-text{
    font-size:.78rem !important;
    line-height:1.02 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .slider-dots{
    top:auto !important;
    right:16px !important;
    bottom:150px !important;
    z-index:9 !important;
  }
}

@media (max-width: 480px){
  .brand-mark{
    width:34px !important;
    height:34px !important;
    flex:0 0 34px !important;
  }

  .brand-text{
    font-size:.74rem !important;
  }

  .slider-dots{
    right:14px !important;
    bottom:132px !important;
  }
}
/* MOBILE HEADER LOGO + DOTS FIX END */


/* MOBILE HERO CARDS STACK FIX START */
@media (max-width: 820px){
  .hero-banner{
    min-height:auto !important;
    height:auto !important;
    padding-bottom:20px !important;
  }

  .hero-inner{
    min-height:auto !important;
    display:block !important;
    padding:34px 0 0 !important;
  }

  .hero-copy{
    width:min(calc(100% - 16px), var(--max)) !important;
    margin:0 auto !important;
    padding:24px !important;
  }

  .hero-actions{
    position:relative !important;
    z-index:3 !important;
  }

  .hero-bottom{
    position:static !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    transform:none !important;
    width:min(calc(100% - 16px), var(--max)) !important;
    margin:18px auto 0 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
    z-index:1 !important;
  }

  .hero-note{
    width:100% !important;
    margin:0 !important;
  }

  .slider-dots{
    top:18px !important;
    right:18px !important;
    bottom:auto !important;
  }
}

@media (max-width: 480px){
  .hero-copy{
    width:calc(100% - 12px) !important;
    padding:20px !important;
  }

  .hero-bottom{
    width:calc(100% - 12px) !important;
    margin:14px auto 0 !important;
  }
}
/* MOBILE HERO CARDS STACK FIX END */


/* MOBILE HERO NOTE VISIBILITY FIX START */
@media (max-width: 820px){
  .hero-bottom{
    position:relative !important;
    z-index:8 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
    width:min(calc(100% - 16px), var(--max)) !important;
    margin:18px auto 0 !important;
  }

  .hero-note{
    position:relative !important;
    z-index:9 !important;
    background:#ffffff !important;
    opacity:1 !important;
    box-shadow:0 12px 24px rgba(17,24,39,.10) !important;
  }
}

@media (max-width: 480px){
  .hero-bottom{
    width:calc(100% - 12px) !important;
    margin:16px auto 0 !important;
  }
}
/* MOBILE HERO NOTE VISIBILITY FIX END */



/* GALLERY MIDDLE FEATURE PATCH START */
@media (max-width: 1060px){
  .gallery-strip{
    grid-template-columns:1fr !important;
  }
}
/* GALLERY MIDDLE FEATURE PATCH END */


/* CONTACT EXTRA SPACING PATCH START */
.contact-extra{
  margin-top:22px !important;
  padding-top:18px !important;
  border-top:1px solid rgba(255,255,255,.16) !important;
}
.contact-extra strong{
  display:inline-block !important;
  margin-right:8px !important;
}
/* CONTACT EXTRA SPACING PATCH END */


/* MOBILE LAYOUT REPAIR PATCH START */
@media (max-width: 820px){

  .container{
    width:calc(100% - 16px) !important;
    max-width:none !important;
  }

  .section{
    padding:24px 0 38px !important;
  }

  /* all desktop grids back to single column */
  .split,
  .legacy,
  .gallery-strip,
  .sponsor-grid,
  .contact-grid,
  .highlights{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:16px !important;
    align-items:start !important;
  }

  /* cards and panels full width */
  .text-panel,
  .festival-band,
  .sponsor,
  .contact,
  .contact-panel,
  .timeline-item,
  .highlight,
  .gallery-box,
  .image-frame{
    width:100% !important;
    max-width:none !important;
  }

  .text-panel,
  .festival-band,
  .sponsor,
  .contact{
    padding:20px !important;
    border-radius:24px !important;
  }

  .contact-panel{
    padding:18px !important;
    border-radius:20px !important;
  }

  /* images */
  .image-frame{
    min-height:220px !important;
    height:auto !important;
    order:2 !important;
  }

  .split .text-panel{
    order:1 !important;
  }

  .gallery-box{
    min-height:220px !important;
    height:220px !important;
    border-radius:20px !important;
  }

  .gallery-box img,
  .image-frame img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
  }

  /* sponsor cards */
  .benefits{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
  }

  .benefit{
    width:100% !important;
  }

  /* contact section */
  #contact .container.contact{
    width:100% !important;
    max-width:none !important;
    border-radius:0 !important;
    padding:22px 16px !important;
  }

  #contact .contact-grid{
    max-width:none !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
  }

  .contact-extra{
    margin-top:18px !important;
    padding-top:16px !important;
  }

  .hero-actions{
    display:flex !important;
    flex-direction:column !important;
    gap:12px !important;
  }

  .hero-actions .btn{
    width:100% !important;
    justify-content:center !important;
  }

  .footer-top{
    padding-top:16px !important;
  }

  .footer-bar{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:12px !important;
  }

  .footer-links{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:12px !important;
  }
}

@media (max-width: 480px){
  .container{
    width:calc(100% - 12px) !important;
  }

  .text-panel h2,
  .sponsor h2,
  .contact h2,
  .section-head h2{
    font-size:1.85rem !important;
    line-height:1.14 !important;
  }

  .text-panel p,
  .sponsor p,
  .contact p,
  .timeline-item span,
  .highlight p,
  .benefit span{
    font-size:1rem !important;
    line-height:1.75 !important;
  }

  .gallery-box{
    min-height:200px !important;
    height:200px !important;
  }
}
/* MOBILE LAYOUT REPAIR PATCH END */


/* IMAGE FRAME FULL FILL PATCH START */
.image-frame{
  height:420px !important;
  min-height:420px !important;
  overflow:hidden !important;
}

.image-frame img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}

@media (max-width: 820px){
  .image-frame{
    height:240px !important;
    min-height:240px !important;
  }
}

@media (max-width: 480px){
  .image-frame{
    height:220px !important;
    min-height:220px !important;
  }
}
/* IMAGE FRAME FULL FILL PATCH END */

