/* ============================================================
   SUMMER HEAVEN 2026 — Stylesheet
   Konzept: Day → Night Scroll-Reise (12:00 → 01:00 Uhr)
   ============================================================ */

/* ---------- Design Tokens ---------- */
:root{
  /* Summer-Sky Palette (aus Luca-Designs abgeleitet) */
  --amber:   #f0a94a;
  --amber-d: #e08a2c;
  --sage:    #a9bf86;
  --sky:     #7fd0e0;
  --cream:   #f6efe2;

  /* Night / Techno */
  --night:   #0c1020;
  --night-2: #141a30;
  --deep:    #070912;
  --ink:     #221d17;

  --chrome:  #cdd6e0;
  --white:   #ffffff;

  --accent:  #f0a94a;      /* Primär-Akzent (Amber) */
  --accent-2:#7fd0e0;      /* Sekundär (Sky) */

  --maxw: 1200px;
  --pad: clamp(20px, 5vw, 64px);
  --radius: 18px;

  --font-display: 'Anton', 'Archivo Black', Impact, sans-serif;
  --font-body: 'Archivo', system-ui, -apple-system, sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; overflow-x:hidden; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  font-family:var(--font-body);
  background:var(--night);
  color:var(--white);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }

.skip-link{
  position:absolute; left:-999px; top:0; z-index:200;
  background:var(--accent); color:#000; padding:10px 16px; border-radius:0 0 10px 0; font-weight:700;
}
.skip-link:focus{ left:0; }

.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.container--narrow{ max-width:820px; }

/* ---------- Typography helpers ---------- */
.eyebrow{
  font-weight:800; letter-spacing:.22em; text-transform:uppercase;
  font-size:.78rem; color:var(--accent); margin-bottom:18px;
}
.section__title{
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(2.4rem, 7vw, 5.2rem); line-height:.95;
  letter-spacing:.01em; text-transform:uppercase;
}
.txt-accent{ color:var(--accent); }
.lead{
  font-size:clamp(1.05rem,2.2vw,1.35rem); max-width:60ch; margin-top:22px;
  color:rgba(255,255,255,.82);
}
.lead--center{ margin-inline:auto; text-align:center; }

/* ---------- Buttons ---------- */
.btn{
  --b:var(--accent);
  display:inline-flex; align-items:center; gap:10px;
  font-weight:800; font-size:1rem; letter-spacing:.02em;
  padding:15px 26px; border-radius:100px; border:2px solid transparent;
  cursor:pointer; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s;
  will-change:transform;
}
.btn--lg{ padding:18px 34px; font-size:1.1rem; }
.btn--primary{ background:var(--accent); color:#1a1206; }
.btn--primary:hover{ transform:translateY(-3px) scale(1.02); }
.btn--ghost{ background:transparent; border-color:rgba(255,255,255,.5); color:#fff; }
.btn--ghost:hover{ border-color:#fff; background:rgba(255,255,255,.1); }
.btn--glow{ box-shadow:0 0 0 rgba(240,169,74,.6); animation:glow 2.6s ease-in-out infinite; }
@keyframes glow{
  0%,100%{ box-shadow:0 8px 30px rgba(240,169,74,.35), 0 0 0 rgba(240,169,74,.0); }
  50%{ box-shadow:0 8px 46px rgba(240,169,74,.6), 0 0 26px rgba(240,169,74,.25); }
}
@media (prefers-reduced-motion: reduce){ .btn--glow{ animation:none; } }

/* ============================================================
   NAVIGATION
   ============================================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background .35s var(--ease), backdrop-filter .35s, padding .35s;
  padding:18px 0;
}
.nav.scrolled{
  background:rgba(10,13,26,.82); backdrop-filter:blur(14px);
  padding:10px 0; border-bottom:1px solid rgba(255,255,255,.08);
}
.nav__inner{
  max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.nav__brand{ display:flex; align-items:center; gap:12px; }
.nav__logo{ width:40px; height:40px; object-fit:contain; }
.nav__brandtext{ font-family:var(--font-display); font-size:1.15rem; letter-spacing:.03em; }
.nav__links{ display:flex; align-items:center; gap:28px; }
.nav__links a{ font-weight:600; font-size:.95rem; color:rgba(255,255,255,.82); transition:color .2s; position:relative; }
.nav__links a:not(.nav__cta):hover, .nav__links a.active{ color:#fff; }
.nav__links a:not(.nav__cta).active::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--accent); border-radius:2px;
}
.nav__cta{ background:var(--night-2); color:#fff !important; border:2px solid var(--accent); padding:8px 20px; border-radius:100px; font-weight:800; transition:background .2s, color .2s, transform .2s; }
.nav__cta:hover{ transform:translateY(-1px); background:var(--accent); color:#1a1206 !important; }

/* Hero-Zustand (nicht gescrollt): dunkle Nav-Elemente auf hellem Himmel */
.nav:not(.scrolled) .nav__brandtext,
.nav:not(.scrolled) .nav__links a:not(.nav__cta){ color:#221d17; }
.nav:not(.scrolled) .nav__links a:not(.nav__cta).active{ color:#000; }
.nav__burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px; }
.nav__burger span{ width:26px; height:2.5px; background:#fff; border-radius:2px; transition:.3s var(--ease); }
.nav__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* ============================================================
   HERO — Summer Sky
   ============================================================ */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center; justify-content:center;
  text-align:center; overflow:hidden; padding:120px 0 80px;
}
.hero__sky{
  position:absolute; inset:0; z-index:-3;
  /* Generiertes Paper-Cutout-Himmelsbild; Verlauf als Fallback beim Laden */
  background:#c9cf9a url("../assets/img/hero-sky.jpg") center center / cover no-repeat;
}
.hero__grain{
  position:absolute; inset:0; z-index:-2; opacity:.06; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Wolken sind jetzt im Hero-Himmelsbild enthalten – gezeichnete CSS-Wolken aus */
.clouds{ display:none; }
.clouds--legacy{ position:absolute; inset:0; z-index:-1; pointer-events:none; }
.cloud{
  position:absolute;
  background-repeat:no-repeat; background-position:center; background-size:contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 280 130'%3E%3Cg fill='%23ffffff'%3E%3Ccircle cx='75' cy='80' r='42'/%3E%3Ccircle cx='120' cy='54' r='50'/%3E%3Ccircle cx='170' cy='62' r='44'/%3E%3Ccircle cx='214' cy='82' r='34'/%3E%3Crect x='56' y='78' width='172' height='44' rx='22'/%3E%3C/g%3E%3C/svg%3E");
  filter:drop-shadow(0 12px 20px rgba(70,105,130,.30));
  opacity:.95;
}
.cloud--1{ width:380px; height:176px; left:-30px; top:13%; }
.cloud--2{ width:300px; height:139px; right:-14px; top:8%; opacity:.9; }
.cloud--3{ width:460px; height:214px; left:5%; bottom:3%; }
.cloud--4{ width:330px; height:153px; right:4%; bottom:12%; opacity:.88; }

.hero__content{ position:relative; z-index:2; max-width:960px; padding-inline:var(--pad); }
.hero__presented{
  display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap;
  font-weight:700; letter-spacing:.16em; text-transform:uppercase; font-size:.8rem;
  color:var(--ink); margin-bottom:20px;
}
.hero__presenters{ display:inline-flex; align-items:center; gap:12px; }
.presenter{ font-family:var(--font-display); font-size:1.1rem; letter-spacing:.04em; color:var(--ink); }
.presenter__x{ opacity:.6; }
.presenter__logo{ height:44px; width:auto; filter:drop-shadow(0 3px 8px rgba(0,0,0,.2)); }
/* Weißes RAVERHAVEN-Kopf-Logo braucht auf dem hellen Himmel eine dunkle Kontur */
.presenter__logo--raver{ height:50px; filter:drop-shadow(0 0 1px rgba(10,16,32,.7)) drop-shadow(0 0 2px rgba(10,16,32,.5)) drop-shadow(0 3px 6px rgba(10,16,32,.4)); }

.hero__title{
  font-family:var(--font-display); font-weight:400; text-transform:uppercase;
  font-size:clamp(4rem, 17vw, 12rem); line-height:.82; letter-spacing:.01em;
  color:var(--ink);
  text-shadow:0 4px 24px rgba(0,0,0,.12);
}
.hero__line{ display:block; }
.hero__emblem{
  width:clamp(200px, 34vw, 380px); margin:-2% auto 10px; height:auto;
  filter:drop-shadow(0 24px 50px rgba(0,0,0,.35));
  animation:floaty 7s ease-in-out infinite;
}
@keyframes floaty{ 0%,100%{ transform:translateY(0) rotate(-1deg); } 50%{ transform:translateY(-16px) rotate(1deg); } }
@media (prefers-reduced-motion: reduce){ .hero__emblem{ animation:none; } }

.hero__tagline{
  font-size:clamp(1.05rem,2.4vw,1.4rem); font-weight:600; color:var(--ink);
  margin:6px auto 30px; max-width:34ch;
}
.hero__facts{
  display:flex; justify-content:center; flex-wrap:wrap; gap:14px; margin-bottom:34px;
}
.hero__facts li{
  background:rgba(255,255,255,.28); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.5); border-radius:14px;
  padding:12px 22px; min-width:120px;
}
.hero__facts strong{ display:block; font-family:var(--font-display); font-size:1.3rem; color:var(--ink); letter-spacing:.02em; }
.hero__facts span{ font-size:.8rem; color:rgba(34,29,23,.75); font-weight:600; }

.hero__actions{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:40px; }
.hero__actions .btn--ghost{ border-color:rgba(34,29,23,.4); color:var(--ink); }
.hero__actions .btn--ghost:hover{ border-color:var(--ink); background:rgba(255,255,255,.25); }

/* Countdown */
.countdown{ display:inline-flex; gap:10px; }
.countdown__item{
  background:rgba(20,26,48,.85); border-radius:12px; padding:10px 14px; min-width:64px;
}
.countdown__item span{ display:block; font-family:var(--font-display); font-size:1.7rem; color:#fff; line-height:1; }
.countdown__item small{ font-size:.65rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }

.hero__scroll{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:2;
  width:26px; height:44px; border:2px solid rgba(34,29,23,.5); border-radius:20px;
}
.hero__scroll span{
  position:absolute; top:8px; left:50%; width:4px; height:8px; margin-left:-2px;
  background:var(--ink); border-radius:2px; animation:scrolldot 1.6s infinite;
}
@keyframes scrolldot{ 0%{ opacity:0; transform:translateY(0);} 40%{opacity:1;} 80%{opacity:0; transform:translateY(14px);} }

/* ============================================================
   SECTIONS — progressive Day → Night
   ============================================================ */
.section{ position:relative; padding:clamp(80px,12vw,150px) 0; }

.section--intro{
  background:linear-gradient(180deg, #7fd0e0 0%, #5aa7c4 30%, #33607f 70%, #1c3350 100%);
}
.section--intro .lead, .section--intro .section__title{ color:#fff; }
/* Kontur/Schatten für bessere Lesbarkeit auf dem hellen Blau oben */
.section--intro .section__title{ text-shadow:0 0 1px rgba(4,16,36,.5), 0 2px 4px rgba(4,16,36,.45), 0 4px 22px rgba(4,16,36,.4); }
.section--intro .lead{ text-shadow:0 1px 2px rgba(4,16,36,.5), 0 2px 12px rgba(4,16,36,.4); }
.section--intro .eyebrow{ text-shadow:0 1px 4px rgba(4,16,36,.4); }
.section--location{
  background:linear-gradient(180deg, #1c3350 0%, #16243f 100%);
}
.section--lineup{
  background:linear-gradient(180deg, #16243f 0%, #0c1020 100%);
}
.section--experience{ background:var(--night); }
.section--info{ background:linear-gradient(180deg, var(--night) 0%, var(--night-2) 100%); }
.section--partner{ background:var(--night-2); }
.section--faq{ background:linear-gradient(180deg, var(--night-2) 0%, var(--deep) 100%); }

/* ---------- Intro pillars ---------- */
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:56px; }
.pillar{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius); padding:32px 28px; transition:transform .3s var(--ease), background .3s;
}
.pillar:hover{ transform:translateY(-6px); background:rgba(255,255,255,.1); }
.pillar__num{ font-family:var(--font-display); font-size:2.4rem; color:var(--accent); opacity:.8; }
.pillar h3{ font-size:1.4rem; margin:8px 0 10px; }
.pillar p{ color:rgba(255,255,255,.8); font-size:.98rem; }

/* ============================================================
   LOCATION / MAP
   ============================================================ */
.mapwrap{
  max-width:var(--maxw); margin:56px auto 0; padding-inline:var(--pad);
  display:grid; grid-template-columns:1.5fr 1fr; gap:0;
  border-radius:var(--radius); overflow:hidden;
}
.mapwrap__frame{ position:relative; min-height:440px; background:#0a0f1c; }
.mapwrap__map{
  width:100%; height:100%; min-height:440px; border:0;
  filter:grayscale(.4) contrast(1.05) brightness(.9) saturate(1.1);
}
.mapcard{
  background:linear-gradient(160deg, #1d2c48, #0f1830);
  padding:40px 34px; display:flex; flex-direction:column; justify-content:center;
  border:1px solid rgba(255,255,255,.1);
}
.mapcard h3{ font-family:var(--font-display); font-size:2rem; color:var(--accent); }
.mapcard__addr{ color:rgba(255,255,255,.8); margin:6px 0 22px; }
.mapcard__list{ display:flex; flex-direction:column; gap:14px; margin-bottom:28px; }
.mapcard__list li{ font-size:.95rem; color:rgba(255,255,255,.85); }
.mapcard__list li span{ display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; color:var(--accent); font-weight:800; margin-bottom:2px; }

/* ============================================================
   LINE-UP
   ============================================================ */
.lineup{
  max-width:var(--maxw); margin:56px auto 0; padding-inline:var(--pad);
  display:grid; grid-template-columns:repeat(auto-fill, minmax(200px,1fr)); gap:16px;
}
.artist{
  position:relative; aspect-ratio:3/4; border-radius:16px; overflow:hidden;
  background:linear-gradient(165deg,#243357 0%,#141d36 55%,#0b1122 100%);
  border:1px solid rgba(255,255,255,.1);
  transition:transform .35s var(--ease), box-shadow .35s, border-color .35s;
}
.artist::before{ /* Akzent-Glow oben */
  content:""; position:absolute; inset:0; z-index:1;
  background:radial-gradient(120% 75% at 50% 0%, rgba(240,169,74,.35), transparent 60%);
  opacity:0; transition:opacity .35s;
}
.artist::after{ /* Scrim unten für Namen */
  content:""; position:absolute; left:0; right:0; bottom:0; height:55%; z-index:2;
  background:linear-gradient(180deg, transparent, rgba(6,10,22,.85) 78%);
}
.artist__photo{
  position:absolute; bottom:0; left:50%; transform:translateX(-50%);
  height:97%; width:auto; max-width:none; object-fit:contain; object-position:bottom;
  z-index:2; filter:drop-shadow(0 8px 16px rgba(0,0,0,.45));
  transition:transform .45s var(--ease);
}
.artist:hover{ transform:translateY(-8px); box-shadow:0 26px 55px rgba(0,0,0,.55); border-color:rgba(240,169,74,.5); }
.artist:hover::before{ opacity:1; }
.artist:hover .artist__photo{ transform:translateX(-50%) scale(1.05); }
.artist__meta{ position:absolute; left:0; right:0; bottom:0; z-index:3; padding:18px 20px; }
.artist__name{ font-family:var(--font-display); font-size:1.5rem; line-height:1; letter-spacing:.02em; text-shadow:0 2px 10px rgba(0,0,0,.5); }
.artist__nm{ display:block; }
.artist__b2b{ display:block; margin-top:5px; font-family:var(--font-body); font-weight:700; font-size:.6rem; text-transform:uppercase; letter-spacing:.12em; color:var(--accent); }
.artist__tag{ position:absolute; top:14px; left:16px; z-index:3; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); font-weight:800; text-shadow:0 1px 6px rgba(0,0,0,.6); }
/* Headliner hervorheben */
.artist--head{ border-color:rgba(240,169,74,.55); box-shadow:0 0 0 1px rgba(240,169,74,.25), 0 18px 40px rgba(0,0,0,.4); }
.artist--head .artist__tag{ background:var(--accent); color:#1a1206; padding:5px 11px; border-radius:100px; text-shadow:none; box-shadow:0 4px 14px rgba(240,169,74,.4); }
.lineup__note{ text-align:center; color:rgba(255,255,255,.55); font-size:.9rem; margin-top:36px; }

/* ============================================================
   EXPERIENCE
   ============================================================ */
.expwrap{
  max-width:var(--maxw); margin:56px auto 0; padding-inline:var(--pad);
}
.expbanner{ margin:0; }
.expbanner img{
  width:100%; border-radius:var(--radius); display:block;
  box-shadow:0 30px 60px rgba(0,0,0,.5); border:1px solid rgba(255,255,255,.1);
}
.expbanner figcaption{
  text-align:center; color:rgba(255,255,255,.55); font-size:.85rem; margin-top:14px; font-style:italic;
}
.expgrid{
  display:grid; grid-template-columns:1.1fr 1fr; gap:44px; align-items:center; margin-top:48px;
}
.expgrid__lead{ color:rgba(255,255,255,.85); font-size:1.08rem; }
.feats{ display:flex; flex-direction:column; gap:14px; }
.feats li{ padding-left:26px; position:relative; color:rgba(255,255,255,.85); }
.feats li::before{ content:"→"; position:absolute; left:0; color:var(--accent); font-weight:800; }

/* ============================================================
   INFO CARDS + TICKETS
   ============================================================ */
.infogrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:56px; }
.infocard{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
  border-radius:var(--radius); padding:28px 24px; transition:transform .3s var(--ease);
}
.infocard:hover{ transform:translateY(-6px); }
.infocard__ico{ font-size:2rem; margin-bottom:12px; }
.infocard h3{ font-size:1.2rem; margin-bottom:8px; }
.infocard p{ color:rgba(255,255,255,.75); font-size:.92rem; }

.tickets{ padding:clamp(70px,10vw,120px) 0 0; text-align:center; }
.tickets__title{ font-family:var(--font-display); font-size:clamp(2.4rem,7vw,4.5rem); text-transform:uppercase; }
.tickets__sub{ color:rgba(255,255,255,.75); max-width:52ch; margin:16px auto 0; }
.ticketrow{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:900px; margin:48px auto 0; }
.ticket{
  background:linear-gradient(165deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.14); border-radius:var(--radius);
  padding:34px 24px; transition:transform .3s var(--ease), border-color .3s;
}
.ticket:hover{ transform:translateY(-8px); border-color:var(--accent); }
.ticket--featured{ border-color:var(--accent); box-shadow:0 0 40px rgba(240,169,74,.2); position:relative; }
.ticket--featured::after{
  content:"Beliebt"; position:absolute; top:-12px; left:50%; transform:translateX(-50%);
  background:var(--accent); color:#1a1206; font-size:.7rem; font-weight:800; letter-spacing:.1em;
  text-transform:uppercase; padding:5px 14px; border-radius:100px;
}
.ticket__phase{ font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); font-weight:800; }
.ticket h3{ font-size:1.5rem; margin:8px 0 14px; }
.ticket__price{ font-family:var(--font-display); font-size:3rem; line-height:1; }
.ticket__hint{ color:rgba(255,255,255,.6); font-size:.85rem; margin-top:8px; }
.tickets__cta{ margin-top:44px; }
.tickets__legal{ color:rgba(255,255,255,.55); font-size:.85rem; margin-top:18px; }

/* ============================================================
   PARTNER
   ============================================================ */
.partner__group{ margin-top:48px; }
.partner__label{
  text-align:center; font-size:.8rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--accent); font-weight:800; margin-bottom:24px;
}
.logogrid{ display:flex; flex-wrap:wrap; justify-content:center; gap:20px; }
.logogrid--present .logochip{ min-width:220px; background:#141a30; border:1px solid rgba(255,255,255,.14); }
.logogrid--present .logochip img{ max-height:80px; }
.logochip{
  background:rgba(255,255,255,.94); border-radius:16px; padding:24px 30px;
  min-width:180px; min-height:120px; display:flex; align-items:center; justify-content:center;
  transition:transform .3s var(--ease);
}
.logochip:hover{ transform:translateY(-5px); }
.logochip img{ max-height:70px; width:auto; object-fit:contain; }
.logochip--ph{
  background:transparent; border:2px dashed rgba(255,255,255,.28); flex-direction:column; gap:4px;
}
.logochip__phname{ font-family:var(--font-display); font-size:1.5rem; color:#fff; letter-spacing:.03em; }
.logochip__phhint{ font-size:.72rem; color:rgba(255,255,255,.55); }
.partner__cta{ text-align:center; margin-top:44px; color:rgba(255,255,255,.75); }
.partner__cta a{ color:var(--accent); font-weight:700; border-bottom:1px solid var(--accent); }

/* ============================================================
   FAQ
   ============================================================ */
.faq{ margin-top:44px; display:flex; flex-direction:column; gap:12px; }
.faq__item{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
  border-radius:14px; padding:0 24px; overflow:hidden;
}
.faq__item summary{
  cursor:pointer; list-style:none; padding:20px 0; font-weight:700; font-size:1.05rem;
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{ content:"+"; color:var(--accent); font-size:1.5rem; transition:transform .3s; }
.faq__item[open] summary::after{ transform:rotate(45deg); }
.faq__item p{ padding:0 0 22px; color:rgba(255,255,255,.78); }

/* ============================================================
   FINAL CTA
   ============================================================ */
.finalcta{
  position:relative; text-align:center; padding:clamp(90px,14vw,160px) 0;
  background:radial-gradient(120% 90% at 50% 0%, #172142 0%, var(--deep) 60%);
}
.finalcta__emblem{ width:clamp(120px,20vw,180px); margin:0 auto 24px; filter:drop-shadow(0 16px 40px rgba(0,0,0,.5)); }
.finalcta__title{
  font-family:var(--font-display); font-size:clamp(2.6rem,9vw,6rem); line-height:.9;
  text-transform:uppercase; margin-bottom:36px;
}
.finalcta__contact{ margin-top:26px; color:rgba(255,255,255,.7); }
.finalcta__contact a{ color:var(--accent); font-weight:700; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ background:var(--deep); padding:70px 0 30px; border-top:1px solid rgba(255,255,255,.08); }
.footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1.4fr; gap:40px; }
.footer__logo{ width:180px; margin-bottom:16px; }
.footer__brand p{ color:rgba(255,255,255,.6); font-size:.9rem; }
.footer__socials a{ color:var(--accent); font-weight:600; }
.footer__nav{ display:flex; flex-direction:column; gap:12px; }
.footer__nav a{ color:rgba(255,255,255,.75); transition:color .2s; }
.footer__nav a:hover{ color:#fff; }
.footer__imp h3{ font-size:1rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom:14px; color:var(--accent); }
.footer__imp p{ color:rgba(255,255,255,.7); font-size:.9rem; line-height:1.7; }
.footer__imp a{ color:var(--accent); }
.footer__note{ font-size:.78rem; color:rgba(255,255,255,.4); font-style:italic; }
.footer__bottom{
  max-width:var(--maxw); margin:50px auto 0; padding:24px var(--pad) 0;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-size:.82rem; color:rgba(255,255,255,.5);
}
.footer__bottom a{ color:rgba(255,255,255,.7); }

/* ============================================================
   REVEAL ANIMATIONS
   ============================================================ */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in-view{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 940px){
  .pillars{ grid-template-columns:1fr; }
  .mapwrap{ grid-template-columns:1fr; }
  .mapwrap__frame{ min-height:340px; }
  .expgrid{ grid-template-columns:1fr; gap:24px; }
  .infogrid{ grid-template-columns:repeat(2,1fr); }
  .ticketrow{ grid-template-columns:1fr; max-width:420px; }
  .footer__grid{ grid-template-columns:1fr; gap:32px; }
}
@media (max-width: 720px){
  .nav__brandtext{ display:none; }
  .nav__burger{ display:flex; }
  .nav__links{
    position:fixed; inset:0 0 0 auto; width:min(80vw,320px);
    flex-direction:column; align-items:flex-start; gap:8px;
    background:rgba(10,13,26,.97); backdrop-filter:blur(16px);
    padding:100px 32px 40px; transform:translateX(100%); transition:transform .4s var(--ease);
    visibility:hidden; pointer-events:none;
  }
  .nav__links.open{ transform:none; visibility:visible; pointer-events:auto; }
  .nav__links a{ font-size:1.2rem; padding:10px 0; width:100%; }
  .nav__cta{ margin-top:12px; }
  .infogrid{ grid-template-columns:1fr; }
  .countdown__item{ min-width:56px; padding:8px 10px; }
  .footer__bottom{ flex-direction:column; }
}
