:root{
  --bg:#fbf6eb;
  --bg-soft:#fffdf8;
  --white:#ffffff;
  --text:#17181d;
  --muted:#666d79;
  --line:#eadfcb;
  --gold:#e3b63c;
  --gold-deep:#c38d07;
  --pink:#ef6aa8;
  --blue:#33a7e8;
  --green:#48bc7d;
  --navy:#111827;
  --shadow:0 14px 38px rgba(17,24,39,.08);
  --radius-xl:34px;
  --radius-lg:24px;
  --radius-md:18px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{
  font-family:"Segoe UI","Helvetica Neue",Arial,sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 8% 8%, rgba(227,182,60,.12), transparent 24%),
    radial-gradient(circle at 92% 12%, rgba(51,167,232,.10), transparent 24%),
    radial-gradient(circle at 80% 72%, rgba(239,106,168,.10), transparent 22%),
    linear-gradient(180deg,#fffdf9 0%, #fbf5e9 52%, #f8f1e2 100%);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
.container{width:min(calc(100% - 28px),var(--max));margin-inline:auto}

.site-header{
  position:sticky;
  top:0;
  z-index:90;
  background:rgba(255,255,255,.93);
  border-bottom:1px solid rgba(22,24,29,.06);
  backdrop-filter:saturate(1.1) blur(14px);
}
.nav{
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.brand{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.brand-mark{
  width:46px;height:46px;
  border-radius:14px;
  transform:rotate(45deg);
  background:linear-gradient(135deg,#f4d76e,#dea91c);
  box-shadow:0 10px 22px rgba(222,169,28,.20);
  position:relative;
  flex:0 0 auto;
}
.brand-mark:before{
  content:"";
  position:absolute;
  inset:9px;
  border-radius:10px;
  background:rgba(255,255,255,.48);
}
.brand-text{
  font-weight:700;
  font-size:1.02rem;
  line-height:1.04;
  letter-spacing:-.01em;
}
.brand-text small{
  display:block;
  margin-top:4px;
  font-size:.72rem;
  color:var(--muted);
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.nav-links{
  display:flex;
  align-items:center;
  gap:22px;
  font-weight:600;
  color:#283041;
}
.nav-links a{
  padding:8px 0;
  border-bottom:2px solid transparent;
  transition:.18s ease;
}
.nav-links a:hover{color:#111}
.nav-links a.active{border-bottom-color:var(--gold-deep)}
.nav-actions{
  display:flex;
  align-items:center;
  gap:12px;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 18px;
  border-radius:999px;
  border:1px solid transparent;
  font-weight:700;
  white-space:nowrap;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(17,24,39,.08);
}
.btn.primary{
  background:linear-gradient(135deg,var(--gold),#f3cf67);
  color:#2b2205;
}
.btn.secondary{
  background:#fff;
  border-color:#ddd2c1;
  color:#1f2531;
}
.nav-toggle{
  display:none;
  width:46px;height:46px;
  border:none;
  border-radius:12px;
  background:#fff;
  box-shadow:0 8px 20px rgba(17,24,39,.05);
  position:relative;
  cursor:pointer;
}
.nav-toggle span,.nav-toggle:before,.nav-toggle:after{
  content:"";
  position:absolute;
  left:12px;right:12px;height:2px;background:#1f2531;border-radius:2px;
}
.nav-toggle span{top:22px}
.nav-toggle:before{top:15px}
.nav-toggle:after{top:29px}
.mobile-menu{
  display:none;
  padding:0 0 16px;
}
.mobile-menu a{
  display:block;
  margin:0 0 10px;
  padding:14px 16px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  font-weight:600;
}

/* FULL WIDTH HERO */
.hero{
  padding:0 0 36px;
}
.hero-banner{
  position:relative;
  width:100%;
  min-height:720px;
  overflow:hidden;
  background:#ddd;
  border-top:1px solid rgba(255,255,255,.15);
  border-bottom:1px solid var(--line);
}
.hero-slides{
  position:absolute;
  inset:0;
}
.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .7s ease;
}
.hero-slide.active{opacity:1}
.hero-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.hero-slide:after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(17,24,39,.74) 0%, rgba(17,24,39,.46) 36%, rgba(17,24,39,.16) 100%),
    linear-gradient(180deg, rgba(17,24,39,.08) 0%, rgba(17,24,39,.08) 100%);
}
.hero-inner{
  position:relative;
  z-index:5;
  width:min(calc(100% - 28px), var(--max));
  margin:0 auto;
  min-height:720px;
  display:flex;
  align-items:center;
  padding:54px 0 180px;
}
.hero-copy{
  width:min(100%, 640px);
  color:#fff;
  padding:34px;
  border-radius:30px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.06) 100%);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(10px);
  box-shadow:0 18px 44px rgba(17,24,39,.16);
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
  border:1px solid rgba(255,255,255,.16);
}
.eyebrow:before{
  content:"";
  width:8px;height:8px;border-radius:50%;
  background:var(--gold);
}
.hero h1{
  margin:18px 0 14px;
  font-size:clamp(2.4rem,4.3vw,4.8rem);
  line-height:1.02;
  letter-spacing:-.035em;
  font-weight:700;
}
.hero h1 .accent{
  background:linear-gradient(90deg,#ffd974 0%, #f68fc0 45%, #79cfff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.hero p{
  margin:0;
  color:rgba(255,255,255,.88);
  font-size:1.03rem;
  line-height:1.9;
  max-width:56ch;
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:24px;
}
.hero .btn.secondary{
  background:rgba(255,255,255,.10);
  color:#fff;
  border-color:rgba(255,255,255,.16);
}
.hero-bottom{
  position:absolute;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  width:min(calc(100% - 28px), var(--max));
  z-index:6;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.hero-note{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.45);
  border-radius:18px;
  padding:16px;
  box-shadow:0 12px 24px rgba(17,24,39,.08);
}
.hero-note strong{
  display:block;
  margin-bottom:4px;
  font-size:.96rem;
  font-weight:700;
}
.hero-note span{
  display:block;
  color:var(--muted);
  font-size:.92rem;
  line-height:1.6;
}
.slider-dots{
  position:absolute;
  top:24px;
  right:24px;
  z-index:7;
  display:flex;
  gap:8px;
}
.slider-dot{
  width:10px;height:10px;border-radius:999px;
  background:rgba(255,255,255,.52);
  border:1px solid rgba(255,255,255,.8);
  cursor:pointer;
}
.slider-dot.active{background:#fff}

.section{padding:36px 0 62px}
.section-head{
  margin-bottom:22px;
}
.section-head h2{
  margin:10px 0 10px;
  font-size:clamp(1.6rem,2.7vw,2.35rem);
  line-height:1.14;
  letter-spacing:-.02em;
  font-weight:700;
}
.section-head p{
  margin:0;
  max-width:68ch;
  color:var(--muted);
  font-size:.98rem;
}
.festival-band{
  background:
    linear-gradient(135deg, rgba(255,248,234,.96) 0%, rgba(255,253,249,.96) 100%);
  border:1px solid var(--line);
  border-radius:30px;
  box-shadow:var(--shadow);
  padding:30px;
}
.highlights{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.highlight{
  padding:18px;
  border-radius:20px;
  border:1px solid var(--line);
  box-shadow:0 8px 18px rgba(17,24,39,.04);
}
.highlight:nth-child(1){background:linear-gradient(180deg,#fff7e8,#ffffff)}
.highlight:nth-child(2){background:linear-gradient(180deg,#eef8ff,#ffffff)}
.highlight:nth-child(3){background:linear-gradient(180deg,#fff0f6,#ffffff)}
.highlight:nth-child(4){background:linear-gradient(180deg,#eefaf2,#ffffff)}
.highlight strong{
  display:block;
  margin-bottom:8px;
  font-size:1rem;
  font-weight:700;
}
.highlight p{
  margin:0;
  color:var(--muted);
  font-size:.94rem;
  line-height:1.75;
}

.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:center;
}
.text-panel{
  background:#fff;
  border:1px solid var(--line);
  border-radius:28px;
  box-shadow:var(--shadow);
  padding:30px;
}
.text-panel h2{
  margin:12px 0 10px;
  font-size:clamp(1.45rem,2.3vw,1.95rem);
  line-height:1.18;
  letter-spacing:-.02em;
  font-weight:700;
}
.text-panel p{
  margin:0 0 14px;
  color:var(--muted);
  font-size:.97rem;
  line-height:1.8;
}
.list{
  margin:14px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}
.list li{
  position:relative;
  padding-left:18px;
  color:var(--muted);
  font-size:.95rem;
}
.list li:before{
  content:"";
  position:absolute;
  left:0;top:.72em;
  width:7px;height:7px;border-radius:50%;
  background:var(--gold-deep);
}
.image-frame{
  min-height:420px;
  overflow:hidden;
  border-radius:28px;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.image-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.legacy{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  align-items:start;
}
.timeline{
  display:grid;
  gap:14px;
}
.timeline-item{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:18px;
  box-shadow:0 8px 18px rgba(17,24,39,.04);
}
.timeline-item strong{
  display:block;
  margin-bottom:6px;
  font-size:1rem;
  font-weight:700;
  line-height:1.45;
}
.timeline-item span{
  display:block;
  color:var(--muted);
  font-size:.94rem;
  line-height:1.75;
}

.gallery-strip{display:grid;grid-template-columns:.8fr 1.2fr .8fr;gap:16px;}
.gallery-box{
  min-height:230px;
  overflow:hidden;
  border-radius:24px;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.gallery-box img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.sponsor{
  background:
    radial-gradient(circle at 10% 18%, rgba(239,106,168,.12), transparent 18%),
    radial-gradient(circle at 90% 14%, rgba(51,167,232,.12), transparent 18%),
    linear-gradient(135deg,#fff8ea 0%, #fffdf9 100%);
  border:1px solid var(--line);
  border-radius:30px;
  box-shadow:var(--shadow);
  padding:30px;
}
.sponsor-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
  align-items:start;
}
.sponsor h2{
  margin:12px 0 10px;
  font-size:clamp(1.5rem,2.4vw,2.05rem);
  line-height:1.16;
  font-weight:700;
}
.sponsor p{
  margin:0;
  color:var(--muted);
  font-size:.98rem;
  line-height:1.82;
}
.benefits{
  display:grid;
  gap:14px;
}
.benefit{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  box-shadow:0 8px 18px rgba(17,24,39,.04);
}
.benefit strong{
  display:block;
  margin-bottom:4px;
  font-size:.98rem;
  font-weight:700;
}
.benefit span{
  display:block;
  color:var(--muted);
  font-size:.94rem;
  line-height:1.7;
}

.contact{
  background:
    radial-gradient(circle at 15% 15%, rgba(227,180,60,.18), transparent 18%),
    linear-gradient(135deg,#182235 0%, #1e2d46 100%);
  color:#fff;
  border-radius:32px;
  padding:32px;
  box-shadow:0 18px 42px rgba(24,34,53,.16);
}
.contact-grid{
  display:grid;
  grid-template-columns:1fr .9fr;
  gap:24px;
  align-items:start;
}
.contact h2{
  margin:12px 0 10px;
  font-size:clamp(1.55rem,2.5vw,2.1rem);
  line-height:1.14;
  font-weight:700;
}
.contact p{
  margin:0;
  color:rgba(255,255,255,.84);
  font-size:.97rem;
  line-height:1.8;
}
.contact-details{
  display:grid;
  gap:14px;
  margin-top:20px;
}
.contact-item{
  padding:14px 0;
  border-top:1px solid rgba(255,255,255,.12);
}
.contact-item:first-of-type{border-top:none}
.contact-item strong{
  display:block;
  margin-bottom:4px;
  font-size:.96rem;
  font-weight:700;
  color:#fff;
}
.contact-item a,.contact-item span{
  color:rgba(255,255,255,.84);
  font-size:.95rem;
}
.contact-panel{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  padding:22px;
}
.contact-panel h3{
  margin:0 0 10px;
  font-size:1.1rem;
  font-weight:700;
}
.contact-panel p{
  margin:0 0 14px;
}
.contact .btn.secondary{
  background:rgba(255,255,255,.08);
  color:#fff;
  border-color:rgba(255,255,255,.14);
}

.site-footer{
  margin-top:6px;
  padding:0 0 40px;
}
.footer-top{
  padding:24px 0 0;
}
.footer-bar{
  padding-top:18px;
  border-top:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  color:var(--muted);
  font-size:.93rem;
}
.footer-links{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}

@media (max-width: 1060px){
  .highlights,.split,.legacy,.sponsor-grid,.contact-grid,.gallery-strip{display:grid;grid-template-columns:.8fr 1.2fr .8fr;gap:16px;}
}
@media (max-width: 820px){
  .nav-links,.nav-actions{display:none}
  .nav-toggle{display:inline-block}
  .hero-banner{min-height:620px}
  .hero-inner{min-height:620px;padding:36px 0 220px}
  .hero-copy,.festival-band,.text-panel,.sponsor,.contact{padding:22px}
  .hero-bottom{grid-template-columns:1fr}
  .image-frame{min-height:260px}
}
@media (max-width: 560px){
  .container{width:min(calc(100% - 18px),var(--max))}
  .hero h1{font-size:2rem}
  .section-head h2{font-size:1.55rem}
  .text-panel h2,.sponsor h2,.contact h2{font-size:1.45rem}
  .footer-bar{flex-direction:column;align-items:flex-start}
}


/* MOBILE HEADER + FULL WIDTH FOOTER PATCH START */
.site-footer{
  margin-top:0;
  padding:0 0 36px;
  background:linear-gradient(180deg, rgba(255,253,249,.88) 0%, rgba(245,238,225,.96) 100%);
}
.site-footer .container.footer-top{
  width:100%;
  max-width:none;
  padding-left:28px;
  padding-right:28px;
}
.footer-top{
  padding:18px 0 0;
}
.footer-bar{
  max-width:1180px;
  margin:0 auto;
  padding-top:18px;
}

@media (max-width: 820px){
  .nav{
    min-height:74px;
  }
  .site-header .container{
    width:min(calc(100% - 18px), var(--max));
  }
  .brand{
    gap:10px;
    flex:1;
    min-width:0;
  }
  .brand-mark{
    width:38px;
    height:38px;
    border-radius:12px;
  }
  .brand-mark:before{
    inset:7px;
    border-radius:8px;
  }
  .brand-text{
    font-size:.90rem;
    line-height:1.02;
  }
  .brand-text small{
    font-size:.60rem;
    letter-spacing:.12em;
    margin-top:3px;
  }
  .nav-toggle{
    width:42px;
    height:42px;
    flex:0 0 auto;
  }
  .nav-toggle span{
    top:20px;
  }
  .nav-toggle:before{
    top:13px;
  }
  .nav-toggle:after{
    top:27px;
  }
  .mobile-menu{
    padding-top:4px;
  }
  .mobile-menu a{
    margin-bottom:8px;
  }
}

@media (max-width: 480px){
  .brand-text{
    font-size:.84rem;
  }
  .brand-text small{
    font-size:.56rem;
  }
  .site-footer .container.footer-top{
    padding-left:18px;
    padding-right:18px;
  }
}
/* MOBILE HEADER + FULL WIDTH FOOTER PATCH END */


/* FINAL MOBILE HEADER + FULL WIDTH FOOTER + LEGACY LAYOUT PATCH START */

/* Footer full width */
.site-footer{
  width:100%;
  background:linear-gradient(180deg, rgba(255,253,249,.92) 0%, rgba(245,238,225,.98) 100%);
}
.site-footer .container.footer-top{
  width:100%;
  max-width:none;
  padding-left:28px;
  padding-right:28px;
}
.footer-bar{
  max-width:1180px;
  margin:0 auto;
}

/* Legacy section image left, content right on desktop */
.legacy{
  grid-template-columns:1fr 1fr;
  align-items:start;
}
.legacy .image-frame{
  order:1;
}
.legacy .timeline{
  order:2;
}

/* Better mobile header */
@media (max-width: 820px){
  .site-header{
    position:sticky;
    top:0;
  }
  .nav{
    min-height:72px;
    gap:10px;
  }
  .site-header .container{
    width:min(calc(100% - 16px), var(--max));
  }
  .brand{
    gap:10px;
    flex:1 1 auto;
    min-width:0;
  }
  .brand-mark{
    width:38px;
    height:38px;
    border-radius:12px;
  }
  .brand-mark:before{
    inset:7px;
    border-radius:8px;
  }
  .brand-text{
    font-size:.88rem;
    line-height:1.02;
    max-width:none;
  }
  .brand-text small{
    font-size:.58rem;
    letter-spacing:.10em;
    margin-top:3px;
  }
  .nav-toggle{
    width:42px;
    height:42px;
    flex:0 0 auto;
    border-radius:12px;
  }
  .nav-toggle span{
    top:20px;
  }
  .nav-toggle:before{
    top:13px;
  }
  .nav-toggle:after{
    top:27px;
  }
  .mobile-menu{
    padding-top:4px;
  }
  .mobile-menu a{
    margin-bottom:8px;
    font-size:.95rem;
  }
}

/* Narrow phones */
@media (max-width: 480px){
  .brand-text{
    font-size:.82rem;
  }
  .brand-text small{
    font-size:.54rem;
    letter-spacing:.08em;
  }
  .site-footer .container.footer-top{
    padding-left:16px;
    padding-right:16px;
  }
}

/* On mobile keep legacy stacked normally */
@media (max-width: 1060px){
  .legacy .image-frame{
    order:1;
  }
  .legacy .timeline{
    order:2;
  }
}

/* FINAL MOBILE HEADER + FULL WIDTH FOOTER + LEGACY LAYOUT PATCH END */


/* STRONG FINAL OVERRIDES START */

/* Full width footer */
.site-footer{
  width:100% !important;
  max-width:none !important;
  background:linear-gradient(180deg, rgba(255,253,249,.96) 0%, rgba(245,238,225,1) 100%) !important;
  padding:0 0 36px !important;
}
.site-footer .footer-top{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:18px 28px 0 !important;
}
.site-footer .footer-bar{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  justify-content:space-between !important;
}

/* Legacy desktop: image left, content right */
@media (min-width: 1061px){
  .legacy{
    grid-template-columns:1fr 1fr !important;
    align-items:start !important;
  }
  .legacy .image-frame{
    order:1 !important;
  }
  .legacy .timeline{
    order:2 !important;
  }
}

/* Legacy mobile: stack properly */
@media (max-width: 1060px){
  .legacy{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
  }
  .legacy .image-frame{
    order:1 !important;
    min-height:240px !important;
  }
  .legacy .timeline{
    order:2 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
  .timeline-item{
    width:100% !important;
  }
}

/* Mobile header */
@media (max-width: 820px){
  .site-header{
    position:sticky !important;
    top:0 !important;
  }
  .site-header .container{
    width:min(calc(100% - 16px), var(--max)) !important;
  }
  .nav{
    min-height:70px !important;
    gap:10px !important;
  }
  .brand{
    gap:10px !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    overflow:hidden !important;
  }
  .brand-mark{
    width:36px !important;
    height:36px !important;
    border-radius:11px !important;
    flex:0 0 auto !important;
  }
  .brand-mark:before{
    inset:7px !important;
    border-radius:7px !important;
  }
  .brand-text{
    font-size:.84rem !important;
    line-height:1.02 !important;
    white-space:normal !important;
  }
  .brand-text small{
    font-size:.55rem !important;
    letter-spacing:.08em !important;
    margin-top:2px !important;
  }
  .nav-toggle{
    width:40px !important;
    height:40px !important;
    border-radius:12px !important;
    flex:0 0 auto !important;
  }
  .nav-toggle span{
    top:19px !important;
  }
  .nav-toggle:before{
    top:12px !important;
  }
  .nav-toggle:after{
    top:26px !important;
  }
  .mobile-menu{
    padding-top:4px !important;
  }
  .mobile-menu a{
    margin-bottom:8px !important;
    font-size:.94rem !important;
  }
}

@media (max-width: 480px){
  .site-header .container{
    width:calc(100% - 12px) !important;
  }
  .brand{
    gap:8px !important;
  }
  .brand-mark{
    width:34px !important;
    height:34px !important;
  }
  .brand-text{
    font-size:.78rem !important;
  }
  .brand-text small{
    font-size:.50rem !important;
    letter-spacing:.06em !important;
  }
  .site-footer .footer-top{
    padding:18px 16px 0 !important;
  }
}

/* STRONG FINAL OVERRIDES END */

