
:root{
  --black:#070405; --black2:#12090b; --wine:#3a0612; --red:#6e071a; --red2:#9c0d2c;
  --gold:#d6a842; --gold2:#f2d27a; --cream:#fff4da; --muted:#c6b89d;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 50% -10%,#30120d 0,#0d0607 38%,#050304 100%);color:#fff;font-family:Georgia,"Times New Roman",serif;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{width:min(1500px,94vw);margin:auto}
.gold{color:var(--gold2)}
.topbar{position:sticky;top:0;z-index:80;background:rgba(5,3,4,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(214,168,66,.45);box-shadow:0 10px 35px #000a}
.nav{height:84px;display:flex;align-items:center;gap:24px}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto}
.brand-mark{width:48px;height:48px;border:1px solid var(--gold);transform:rotate(45deg);display:grid;place-items:center;background:#16090b;box-shadow:0 0 20px #d6a84233}
.brand-mark span{transform:rotate(-45deg);font-size:25px;color:var(--gold2);font-weight:700}
.brand-title{font-weight:800;letter-spacing:.13em;color:#f7e7bb;font-size:20px}
.brand-sub{font-size:10px;letter-spacing:.24em;color:var(--gold)}
.menu{display:flex;align-items:center;gap:22px;font-size:14px}
.menu a{padding:30px 0 28px;border-bottom:2px solid transparent}
.menu a:hover,.menu a.active{color:var(--gold2);border-bottom-color:var(--gold)}
.ticket{background:linear-gradient(#f4d77e,#c69530);color:#140905!important;padding:13px 18px!important;border:1px solid #ffe9a0!important;border-radius:4px;font-weight:800;letter-spacing:.04em}
.hamb{display:none;background:none;color:#fff;border:0;font-size:30px}

.hero{position:relative;min-height:780px;border-bottom:1px solid #6d4a1d;overflow:hidden;background:#070405}
.stage-bg{position:absolute;inset:0;background:
 linear-gradient(90deg,rgba(0,0,0,.45),transparent 28%,transparent 72%,rgba(0,0,0,.45)),
 linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.28)),
 url('img/stage-design.png') center 48%/cover no-repeat;
 filter:saturate(1.03) contrast(1.03)}
.hero-copy{position:relative;z-index:4;min-height:780px;display:flex;align-items:center;justify-content:center;text-align:center;padding-top:40px}
.hero-inner{width:min(780px,88vw);padding:35px 30px;background:radial-gradient(circle,rgba(5,4,3,.33),rgba(5,4,3,.03) 70%);text-shadow:0 3px 8px #000}
.kicker{letter-spacing:.28em;font-size:14px;color:var(--gold2);text-transform:uppercase}
.hero h1{margin:10px 0 0;font-size:clamp(70px,10vw,145px);line-height:.8;color:#f8dc89;letter-spacing:.04em;text-shadow:0 2px 0 #6b3a0c,0 0 18px #ffc75a66,0 7px 22px #000}
.hero h2{margin:12px 0 24px;font-size:clamp(24px,4vw,44px);letter-spacing:.12em;color:#f6e4b5}
.hero .claim{font-size:clamp(29px,4vw,54px);line-height:1.08;letter-spacing:.08em;color:#fff2cc;margin:25px auto;max-width:700px}
.actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 26px;border:1px solid var(--gold);background:#16090b;color:#fff2cd;font-weight:700;letter-spacing:.05em;box-shadow:inset 0 0 0 2px #000,0 8px 22px #0009}
.btn.primary{background:linear-gradient(#8d0f24,#560716);border-color:#f2d27a}
.btn:hover{filter:brightness(1.16);transform:translateY(-1px)}
.footlights{position:absolute;z-index:5;bottom:0;left:0;right:0;height:50px;background:linear-gradient(#1c0a08,#080303);border-top:4px ridge #a7722b;display:flex;justify-content:space-around;align-items:center}
.bulb{width:17px;height:17px;border-radius:50%;background:#fff1a3;box-shadow:0 0 5px #fff,0 0 15px #ffc14a,0 0 28px #ff8b00}

.curtain-overlay{position:fixed;inset:0;z-index:999;background:#120104;pointer-events:none;overflow:hidden;animation:overlayOff .4s 4.6s forwards}
.curtain{position:absolute;top:0;bottom:0;width:54%;background:
 linear-gradient(90deg,#300008 0%,#6e0718 7%,#2e0008 14%,#8b1024 22%,#39000a 31%,#a1162e 41%,#4c0010 51%,#950f27 61%,#360008 73%,#7f0b20 84%,#280006 100%);
 box-shadow:inset 0 0 70px #0009,0 0 60px #000;filter:saturate(1.15)}
.curtain::before{content:"";position:absolute;inset:0;background:
 repeating-linear-gradient(92deg,transparent 0 6%,rgba(255,255,255,.045) 6.5% 7%,transparent 7.5% 13%),
 linear-gradient(180deg,rgba(255,255,255,.08),transparent 18%,transparent 72%,rgba(0,0,0,.28))}
.curtain.left{left:0;transform-origin:left top;animation:openLeft 3.3s cubic-bezier(.65,.05,.15,1) 1.1s forwards}
.curtain.right{right:0;transform-origin:right top;animation:openRight 3.3s cubic-bezier(.65,.05,.15,1) 1.1s forwards}
.curtain-valance{position:absolute;left:-3%;right:-3%;top:-4%;height:30%;z-index:2;background:
 radial-gradient(ellipse at 10% 0,#7e0a21 0,#45000d 47%,transparent 49%),
 radial-gradient(ellipse at 30% 0,#97102a 0,#4c000f 47%,transparent 49%),
 radial-gradient(ellipse at 50% 0,#76081e 0,#3c000b 47%,transparent 49%),
 radial-gradient(ellipse at 70% 0,#951129 0,#4d0010 47%,transparent 49%),
 radial-gradient(ellipse at 90% 0,#78091e 0,#3d000c 47%,transparent 49%);
 filter:drop-shadow(0 18px 16px #0009);animation:valanceUp 1.7s ease 3s forwards}
.opening-title{position:absolute;inset:0;z-index:3;display:grid;place-items:center;text-align:center;transition:.5s;animation:titleFade .7s 1.7s forwards;color:#f6d981;text-shadow:0 2px 20px #000}
.opening-title div{font-size:clamp(30px,6vw,82px);letter-spacing:.13em;font-weight:800}
.opening-title small{display:block;font-size:clamp(12px,1.8vw,24px);letter-spacing:.32em;margin-top:12px}

@keyframes openLeft{0%{transform:translateX(0) skewX(0)}55%{transform:translateX(-55%) skewX(3deg)}100%{transform:translateX(-103%) skewX(6deg)}}
@keyframes openRight{0%{transform:translateX(0) skewX(0)}55%{transform:translateX(55%) skewX(-3deg)}100%{transform:translateX(103%) skewX(-6deg)}}
@keyframes valanceUp{to{transform:translateY(-80%);opacity:.15}}
@keyframes titleFade{to{opacity:0;transform:scale(1.08)}}
@keyframes overlayOff{to{opacity:0;visibility:hidden}}

.cards{position:relative;z-index:6;margin-top:-2px;background:linear-gradient(#0b0506,#060304);padding:35px 0 42px;border-bottom:1px solid #6e4b20}
.cardgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.showcard{position:relative;min-height:250px;border:1px solid #d9ae54;background:#13090a;overflow:hidden;box-shadow:inset 0 0 0 4px #160c08,0 8px 24px #000}
.showcard img{width:100%;height:250px;object-fit:cover;opacity:.82;transition:.35s}
.showcard:hover img{transform:scale(1.04);opacity:.95}
.showcard::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(0,0,0,.92))}
.cardtxt{position:absolute;z-index:2;left:20px;right:20px;bottom:18px}
.cardtxt h3{margin:0;font-size:24px;color:#fff0c6}
.cardtxt p{margin:5px 0 0;color:#d9c49b;font-size:13px;letter-spacing:.06em;text-transform:uppercase}

.section{padding:86px 0;background:radial-gradient(circle at 50% 0,#1c0b0c,#080405 60%)}
.section.alt{background:radial-gradient(circle at 20% 0,#25100d,#080405 62%)}
.section-head{text-align:center;margin-bottom:42px}
.section-head .eyebrow{color:var(--gold);letter-spacing:.25em;text-transform:uppercase;font-size:12px}
.section-head h2{font-size:clamp(38px,5vw,70px);margin:8px 0 12px;color:#f7e2ad;font-weight:500}
.section-head p{max-width:800px;margin:auto;color:#cdbf9e;font:18px/1.7 Arial,sans-serif}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.panel{border:1px solid #8d6426;background:linear-gradient(180deg,#180d0e,#0b0607);padding:22px;box-shadow:inset 0 0 0 4px #080404}
.panel img{height:310px;width:100%;object-fit:cover;border:1px solid #5b3d1d}
.panel h3{font-size:28px;margin:18px 0 8px;color:#f3dc9f}
.panel p{color:#c9baa0;font:15px/1.65 Arial,sans-serif}
.quote{font-size:clamp(28px,4vw,52px);text-align:center;color:#f3d985;font-style:italic;padding:45px 20px}
.footer{padding:35px 0;background:#040202;border-top:1px solid #6e4b20;color:#bfae8c;text-align:center;font:13px Arial,sans-serif}
.footer nav{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-bottom:12px}

.subhero{min-height:330px;display:grid;place-items:center;text-align:center;
background:#070405;
border-bottom:1px solid #855f27}
.subhero h1{font-size:clamp(48px,7vw,90px);margin:0;color:#f4d985;text-shadow:0 3px 15px #000}
.subhero p{color:#eadab8;font-size:18px;letter-spacing:.12em}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.gallery img{width:100%;height:320px;object-fit:cover;border:1px solid #9b722f;background:#160b0c}
.form{max-width:820px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form input,.form textarea,.form select{width:100%;background:#0d0708;color:#fff;border:1px solid #715026;padding:15px;font:15px Arial,sans-serif}
.form textarea{min-height:180px;grid-column:1/-1}
.form .full{grid-column:1/-1}
.notice{max-width:900px;margin:auto;color:#cdbf9f;font:15px/1.75 Arial,sans-serif}
.notice h2{color:#f2db9b;font-family:Georgia,serif}

@media(max-width:1050px){
 .menu{position:fixed;top:84px;left:0;right:0;display:none;flex-direction:column;background:#080405;padding:22px;border-bottom:1px solid #785421}
 .menu.open{display:flex}.menu a{padding:8px 0}.hamb{display:block}.ticket{display:none}
 .cardgrid,.grid3{grid-template-columns:1fr 1fr}.hero,.hero-copy{min-height:680px}
}
@media(max-width:700px){
 .nav{height:72px}.brand-title{font-size:16px}.brand-mark{width:42px;height:42px}
 .menu{top:72px}.hero,.hero-copy{min-height:610px}.hero-inner{padding:20px 12px}
 .hero h1{font-size:62px}.hero h2{font-size:20px}.hero .claim{font-size:31px}
 .cardgrid,.grid3,.gallery{grid-template-columns:1fr}.showcard,.showcard img{min-height:220px;height:220px}
 .form{grid-template-columns:1fr}.form textarea,.form .full{grid-column:auto}
 .section{padding:60px 0}.panel img,.gallery img{height:250px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.curtain-overlay{display:none}}


/* --- CLEANER HOMEPAGE LAYOUT --- */
.hero-clean{
  min-height:0;
  padding:0;
  background:#050304;
  overflow:hidden;
  border-bottom:1px solid #6d4a1d;
}
.stage-clean-wrap{
  width:100%;
  max-width:1700px;
  margin:0 auto;
  background:#050304;
  overflow:hidden;
  border-left:1px solid rgba(214,168,66,.22);
  border-right:1px solid rgba(214,168,66,.22);
}
.stage-clean-image{
  width:100%;
  height:auto;
  display:block;
  object-fit:cover;
}
.hero-cta-bar{
  position:relative;
  z-index:5;
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:92px;
  padding:18px 20px 22px;
  background:
    radial-gradient(circle at 50% 0,rgba(214,168,66,.12),transparent 42%),
    linear-gradient(180deg,#130807 0%,#070304 100%);
  border-top:1px solid rgba(214,168,66,.45);
  border-bottom:1px solid rgba(214,168,66,.35);
  box-shadow:inset 0 12px 28px rgba(0,0,0,.45);
}
.hero-cta-bar .actions{
  gap:18px;
}
.hero-cta-bar .btn{
  min-width:245px;
}
.cards{
  margin-top:0;
  padding:28px 0 42px;
}
.cardgrid{
  align-items:stretch;
}
.showcard{
  min-height:235px;
  border-radius:2px;
}
.showcard img{
  height:235px;
}
.cardtxt{
  left:18px;
  right:18px;
  bottom:16px;
}
.cardtxt h3{
  font-size:22px;
}
.quote{
  margin:0;
  padding:36px 20px 42px;
  border-top:1px solid rgba(214,168,66,.2);
  background:#050304;
}
.topbar{
  box-shadow:0 6px 24px rgba(0,0,0,.75);
}
.nav{
  max-width:1500px;
}
@media(max-width:1050px){
  .hero-cta-bar{min-height:82px}
  .hero-cta-bar .btn{min-width:210px}
}
@media(max-width:700px){
  .stage-clean-wrap{
    overflow:hidden;
  }
  .stage-clean-image{
    width:145%;
    max-width:none;
    margin-left:-22.5%;
  }
  .hero-cta-bar{
    padding:14px 14px 18px;
  }
  .hero-cta-bar .actions{
    width:100%;
    gap:10px;
  }
  .hero-cta-bar .btn{
    width:100%;
    min-width:0;
  }
  .cards{
    padding-top:18px;
  }
  .showcard,.showcard img{
    min-height:210px;
    height:210px;
  }
}


/* =========================================================
   SHOW INTRO: Vorhang -> Mirage Logo -> Website
   ========================================================= */
body.intro-running{overflow:hidden}
.show-intro{
  position:fixed;
  inset:0;
  z-index:10000;
  background:#020101;
  opacity:1;
  visibility:visible;
  transition:opacity .9s ease,visibility .9s ease;
}
.show-intro.intro-finished{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.intro-stage{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:
    radial-gradient(ellipse at center,rgba(90,26,4,.32),transparent 48%),
    #020101;
}
.intro-logo-wrap{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:5vw;
  opacity:0;
  transform:scale(.86);
  filter:blur(7px);
  transition:opacity 1.05s ease,transform 1.2s cubic-bezier(.2,.75,.25,1),filter 1.05s ease;
}
.show-intro.logo-visible .intro-logo-wrap{
  opacity:1;
  transform:scale(1);
  filter:blur(0);
}
.show-intro.logo-leaving .intro-logo-wrap{
  opacity:0;
  transform:scale(1.06);
  filter:blur(2px);
}
.intro-logo{
  display:block;
  width:min(1120px,82vw);
  max-height:76vh;
  object-fit:contain;
  filter:drop-shadow(0 0 20px rgba(255,154,21,.34)) drop-shadow(0 0 55px rgba(255,87,0,.18));
}
.intro-curtain{
  position:absolute;
  top:0;
  bottom:0;
  z-index:5;
  width:52.5%;
  background:
    repeating-linear-gradient(
      92deg,
      #260006 0%,
      #720817 6%,
      #350008 12%,
      #a3152c 18%,
      #48000d 25%,
      #8b0c22 32%,
      #2e0008 39%,
      #9b1229 46%,
      #3d000a 53%,
      #760719 60%,
      #250006 67%
    );
  box-shadow:inset 0 0 100px rgba(0,0,0,.75),0 0 55px rgba(0,0,0,.95);
}
.intro-curtain::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,.08),transparent 14%,transparent 72%,rgba(0,0,0,.45)),
    repeating-linear-gradient(88deg,transparent 0 8%,rgba(255,255,255,.055) 8.5% 9.3%,transparent 10% 16%);
  mix-blend-mode:screen;
  opacity:.7;
}
.intro-curtain-left{left:0;transform-origin:left center}
.intro-curtain-right{right:0;transform-origin:right center}
.show-intro.curtain-open .intro-curtain-left{
  animation:introOpenLeft 2.8s cubic-bezier(.65,.03,.12,1) forwards;
}
.show-intro.curtain-open .intro-curtain-right{
  animation:introOpenRight 2.8s cubic-bezier(.65,.03,.12,1) forwards;
}
.intro-valance{
  position:absolute;
  z-index:6;
  left:-4%;
  right:-4%;
  top:-9%;
  height:29%;
  background:
    radial-gradient(ellipse at 10% 0,#a0142c 0,#43000d 51%,transparent 53%),
    radial-gradient(ellipse at 30% 0,#79091f 0,#39000b 51%,transparent 53%),
    radial-gradient(ellipse at 50% 0,#a3152e 0,#4a000e 51%,transparent 53%),
    radial-gradient(ellipse at 70% 0,#79091f 0,#39000b 51%,transparent 53%),
    radial-gradient(ellipse at 90% 0,#a0142c 0,#43000d 51%,transparent 53%);
  filter:drop-shadow(0 20px 18px rgba(0,0,0,.85));
  transition:transform 2.4s ease,opacity 2.4s ease;
}
.show-intro.curtain-open .intro-valance{
  transform:translateY(-78%);
  opacity:.15;
}
@keyframes introOpenLeft{
  0%{transform:translateX(0) scaleX(1)}
  45%{transform:translateX(-42%) scaleX(.86)}
  100%{transform:translateX(-104%) scaleX(.72)}
}
@keyframes introOpenRight{
  0%{transform:translateX(0) scaleX(1)}
  45%{transform:translateX(42%) scaleX(.86)}
  100%{transform:translateX(104%) scaleX(.72)}
}
@media(max-width:700px){
  .intro-logo{width:96vw;max-height:62vh}
}
@media(prefers-reduced-motion:reduce){
  .show-intro{display:none}
}


/* --- INTRO LOGO FIX --- */
.show-intro{
  position:fixed!important;
  inset:0!important;
  z-index:99999!important;
  background:#000!important;
  opacity:1!important;
  visibility:visible!important;
}
.intro-stage{
  position:absolute!important;
  inset:0!important;
  overflow:hidden!important;
  background:#000!important;
}
.intro-logo-screen{
  position:absolute!important;
  inset:0!important;
  z-index:3!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:radial-gradient(circle at center,rgba(90,15,0,.40),#000 68%)!important;
  opacity:0!important;
  transform:scale(.92)!important;
  transition:opacity .9s ease,transform 1.1s ease!important;
}
.show-intro.logo-visible .intro-logo-screen{
  opacity:1!important;
  transform:scale(1)!important;
}
.show-intro.logo-leaving .intro-logo-screen{
  opacity:0!important;
  transform:scale(1.05)!important;
}
.intro-logo-img{
  width:min(1200px,88vw)!important;
  max-height:80vh!important;
  object-fit:contain!important;
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  filter:drop-shadow(0 0 24px rgba(255,150,25,.55)) drop-shadow(0 0 70px rgba(255,70,0,.28))!important;
}
.intro-curtain{z-index:5!important}
.intro-valance{z-index:6!important}
.show-intro.intro-finished{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transition:opacity .8s ease,visibility .8s ease!important;
}

/* Neues Original-Logo oben links */
.topbar .brand img,
.topbar .logo img,
header .brand img{
  object-fit:contain!important;
}
.topbar .brand span,
.topbar .brand .brand-text,
.topbar .logo-text{
  display:none!important;
}


/* v340: Untere Linie im Header auf allen Seiten entfernt */
.topbar,
header.topbar,
.site-header,
header {
  border-bottom: none !important;
  box-shadow: none !important;
}
.topbar::after,
header.topbar::after,
.site-header::after,
header::after {
  display: none !important;
  content: none !important;
}


/* v390 – logischere Hauptnavigation */
@media(min-width:1051px){
  .topbar nav,
  .topbar .nav{
    display:flex!important;
    align-items:center!important;
    gap:clamp(15px,1.35vw,24px)!important;
    white-space:nowrap!important;
  }
  .topbar nav a,
  .topbar .nav a{
    margin:0!important;
  }
  /* Leichte optische Trennung vor Über uns / Kontakt */
  .topbar nav a[href="ueber-uns.html"],
  .topbar .nav a[href="ueber-uns.html"]{
    margin-left:clamp(7px,.7vw,13px)!important;
  }
}


/* v430 – aktuell geöffnete Seite im Header markieren */
.topbar nav a.is-current-page,
.topbar .nav a.is-current-page{
  position:relative!important;
  color:#e9c55e!important;
}
.topbar nav a.is-current-page::after,
.topbar .nav a.is-current-page::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:-14px!important;
  height:2px!important;
  display:block!important;
  background:linear-gradient(90deg,transparent,#e9c55e 16%,#e9c55e 84%,transparent)!important;
  border-radius:999px!important;
  box-shadow:0 0 8px rgba(233,197,94,.22)!important;
}
@media(max-width:1050px){
  .topbar nav a.is-current-page::after,
  .topbar .nav a.is-current-page::after{
    bottom:-6px!important;
  }
}


/* v440 – aktive Seite nur gold markieren, ohne Linie */
.topbar nav a.is-current-page::after,
.topbar .nav a.is-current-page::after{
  display:none!important;
  content:none!important;
}


/* =========================================================
   v500 – KOMPLETTE TABLET- UND SMARTPHONE-OPTIMIERUNG
   Desktop bleibt unverändert. Tablet <=1050px, Mobil <=700px.
   ========================================================= */

/* ---------- TABLET / MOBILE: HEADER & NAVIGATION ---------- */
@media(max-width:1050px){
  html{overflow-x:hidden!important}
  body{overflow-x:hidden!important}

  .topbar,
  header.topbar{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    z-index:10000!important;
    height:64px!important;
    min-height:64px!important;
    background:rgba(5,3,4,.96)!important;
    backdrop-filter:blur(14px)!important;
    -webkit-backdrop-filter:blur(14px)!important;
  }
  .topbar .wrap,
  .topbar .nav,
  header.topbar .wrap,
  header.topbar .nav{
    width:100%!important;
    max-width:none!important;
    height:64px!important;
    min-height:64px!important;
    padding:0 16px!important;
    box-sizing:border-box!important;
    display:flex!important;
    align-items:center!important;
  }
  .mirage-corner-logo{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    width:auto!important;
    max-width:94px!important;
    max-height:50px!important;
    object-fit:contain!important;
    z-index:2!important;
  }
  .hamb{
    display:block!important;
    margin-left:auto!important;
    width:46px!important;
    height:44px!important;
    min-width:46px!important;
    padding:0!important;
    font-size:30px!important;
    line-height:1!important;
    color:#f0cd6d!important;
    cursor:pointer!important;
  }
  .ticket{display:none!important}

  .menu{
    position:fixed!important;
    top:64px!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    max-height:calc(100dvh - 64px)!important;
    overflow-y:auto!important;
    display:none!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:0!important;
    padding:10px 18px 18px!important;
    box-sizing:border-box!important;
    background:rgba(7,4,5,.985)!important;
    border:0!important;
    box-shadow:0 20px 40px rgba(0,0,0,.55)!important;
  }
  .menu.open{display:flex!important}
  .menu a{
    display:block!important;
    width:100%!important;
    box-sizing:border-box!important;
    margin:0!important;
    padding:13px 4px!important;
    border:0!important;
    border-bottom:1px solid rgba(220,177,68,.12)!important;
    font-size:14px!important;
    line-height:1.2!important;
    text-align:center!important;
  }
  .menu a:last-child{border-bottom:0!important}
  .menu a.is-current-page{
    color:#e9c55e!important;
    background:rgba(220,177,68,.06)!important;
  }
  .menu a::after{display:none!important;content:none!important}

  /* Einheitlicher Abstand unter festem Header */
  body:not(.intro-lock){padding-top:64px!important}
  body.intro-lock{padding-top:0!important}

  .legal-overlay-links{
    max-width:calc(100vw - 18px)!important;
    font-size:9px!important;
    bottom:4px!important;
  }
}

/* ---------- STARTSEITE ---------- */
@media(max-width:1050px){
  body.intro-lock .topbar{position:fixed!important}
  .hero.hero-clean{
    min-height:calc(100dvh - 64px)!important;
    height:auto!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
  }
  .stage-clean-wrap{
    width:100%!important;
    max-width:none!important;
    border:0!important;
  }
  .stage-clean-image{
    width:100%!important;
    height:auto!important;
    max-height:calc(100dvh - 150px)!important;
    object-fit:cover!important;
    object-position:center!important;
  }
  .mirage-main-logo{
    width:min(58vw,520px)!important;
    max-height:38vh!important;
    object-fit:contain!important;
  }
  .hero-cta-bar{
    min-height:78px!important;
    padding:10px 14px!important;
    box-sizing:border-box!important;
  }
  .hero-cta-bar .actions{
    display:flex!important;
    justify-content:center!important;
    flex-wrap:wrap!important;
    gap:10px!important;
  }
  .hero-cta-bar .btn{
    min-width:190px!important;
    padding:11px 16px!important;
  }
  .mirage-floor-footer{
    font-size:9px!important;
  }
}

/* ---------- SHOWS & EVENTS ---------- */
@media(max-width:1050px){
  body.shows-full,
  body.events-full{
    overflow-y:auto!important;
    height:auto!important;
    min-height:100dvh!important;
  }
  body.shows-full .subhero,
  body.events-full .subhero{
    padding:14px 14px 5px!important;
    min-height:0!important;
  }
  body.shows-full .subhero h1,
  body.events-full .subhero h1{
    font-size:clamp(30px,5vw,44px)!important;
    margin:0!important;
  }
  body.shows-full .section,
  body.events-full .section{
    height:auto!important;
    min-height:calc(100dvh - 118px)!important;
    padding:8px 12px 42px!important;
    overflow:visible!important;
  }
  body.shows-full .section > .wrap,
  body.events-full .section > .wrap{
    width:min(96vw,940px)!important;
    height:auto!important;
    padding:4px 0 0!important;
  }
  body.shows-full .grid3,
  body.events-full .grid3{
    width:100%!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:12px!important;
    align-items:stretch!important;
  }
  body.shows-full .panel,
  body.events-full .panel{
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    padding:10px!important;
    border-radius:12px!important;
  }
  body.shows-full .panel img{
    width:100%!important;
    height:clamp(190px,32vh,330px)!important;
    min-height:0!important;
    object-fit:cover!important;
    border-radius:8px!important;
  }
  body.shows-full .panel h2,
  body.events-full .panel h2{
    font-size:clamp(20px,2.8vw,28px)!important;
    line-height:1.05!important;
    margin:8px 0 4px!important;
  }
  body.shows-full .panel p,
  body.events-full .panel p{
    font-size:12px!important;
    line-height:1.35!important;
  }
  body.shows-full .panel .btn,
  body.events-full .panel .btn{
    margin-top:8px!important;
    padding:9px 12px!important;
    font-size:10px!important;
  }
}

/* ---------- KÜNSTLER ---------- */
@media(max-width:1050px){
  body.kuenstler-page{
    padding-top:64px!important;
    overflow:hidden!important;
  }
  body.kuenstler-page .section{
    padding:0!important;
    height:calc(100dvh - 64px)!important;
    min-height:0!important;
  }
  .artist-slider,
  .artist-slider-viewport,
  .artist-slider-track,
  .artist-card{
    height:calc(100dvh - 64px)!important;
    min-height:0!important;
  }
  .artist-card{
    flex:0 0 100vw!important;
    width:100vw!important;
  }
  .artist-card > img{
    top:12px!important;
    right:1.5vw!important;
    bottom:14px!important;
    width:57vw!important;
    height:calc(100dvh - 90px)!important;
    object-fit:contain!important;
  }
  .artist-copy{
    left:clamp(28px,5vw,64px)!important;
    top:50%!important;
    width:min(39vw,430px)!important;
    max-height:calc(100dvh - 118px)!important;
    transform:translateY(-50%)!important;
  }
  .artist-copy h2{
    font-size:clamp(27px,4vw,42px)!important;
    margin-bottom:8px!important;
  }
  .artist-copy p{
    font-size:clamp(11px,1.45vw,14px)!important;
    line-height:1.45!important;
  }
  .artist-slider-btn{
    width:42px!important;
    height:50px!important;
    font-size:26px!important;
  }
}

/* ---------- HAWAIIAN NIGHTS ---------- */
@media(max-width:1050px){
  body.hawaiian-page{
    padding-top:64px!important;
    overflow-y:auto!important;
  }
  .hn-hero{
    min-height:auto!important;
    padding:20px 16px 26px!important;
    overflow:hidden!important;
  }
  .hn-hero-content{
    width:min(94vw,900px)!important;
    margin:0 auto!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.05fr) minmax(260px,.75fr)!important;
    gap:22px!important;
    align-items:center!important;
  }
  .hn-copy{
    min-width:0!important;
    transform:none!important;
  }
  .hn-copy h1{
    font-size:clamp(50px,8vw,82px)!important;
    line-height:.84!important;
    margin:6px 0 14px!important;
  }
  .hn-kicker{font-size:12px!important}
  .hn-lead{font-size:18px!important;line-height:1.35!important}
  .hn-info{font-size:14px!important;line-height:1.5!important}
  .hn-emotion{font-size:clamp(22px,3vw,32px)!important}
  .hn-actions{display:flex!important;gap:10px!important;flex-wrap:wrap!important}
  .hn-actions .btn{padding:11px 14px!important;font-size:11px!important}
  .hn-poster-open{
    width:100%!important;
    max-width:370px!important;
    justify-self:center!important;
    transform:none!important;
  }
  .hn-poster-open img{
    width:100%!important;
    max-height:calc(100dvh - 125px)!important;
    object-fit:contain!important;
  }
  #showzeiten,
  .hn-times{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    padding:30px 16px 48px!important;
  }
  .hn-times-grid{
    width:min(94vw,900px)!important;
    margin:0 auto!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:24px!important;
    align-items:center!important;
  }
  .hn-times-copy{transform:none!important}
  .hn-schedule-open{
    width:100%!important;
    max-width:420px!important;
    justify-self:center!important;
  }
  .hn-schedule-open img{
    width:100%!important;
    height:auto!important;
    max-height:62vh!important;
    object-fit:contain!important;
    transform:none!important;
  }
}

/* ---------- FERIENZIRKUS ---------- */
@media(max-width:1050px){
  body.subpage-topfix .ferien-page,
  body.subpage-topfix .ferien-one-screen{
    height:auto!important;
    min-height:calc(100dvh - 64px)!important;
    overflow:visible!important;
  }
  body.subpage-topfix .ferien-screen{
    width:min(96vw,960px)!important;
    min-height:0!important;
    height:auto!important;
    padding:16px 0 44px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:18px!important;
    align-items:start!important;
  }
  .ferien-copy{
    padding:4px 4px 0!important;
    min-width:0!important;
  }
  .ferien-copy h1{
    font-size:clamp(36px,6vw,56px)!important;
    line-height:1!important;
  }
  .ferien-lead{font-size:15px!important}
  .ferien-text,.ferien-facts,.ferien-show,.ferien-deadline{
    font-size:12px!important;
    line-height:1.42!important;
  }
  .ferien-visuals{
    padding-top:2px!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
    align-items:start!important;
  }
  .ferien-poster,
  .ferien-poster-main,
  .ferien-poster-info{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
  }
  .ferien-poster img{
    width:100%!important;
    height:auto!important;
    max-height:calc(100dvh - 140px)!important;
    object-fit:contain!important;
  }
}

/* ---------- GALERIE ---------- */
@media(max-width:1050px){
  body.galerie-full{
    overflow-y:auto!important;
    height:auto!important;
  }
  body.galerie-full .subhero{
    padding:14px 12px 4px!important;
  }
  body.galerie-full .subhero h1{
    font-size:clamp(30px,5vw,44px)!important;
  }
  body.galerie-full .section{
    height:auto!important;
    min-height:calc(100dvh - 112px)!important;
    padding:6px 10px 42px!important;
    overflow:visible!important;
  }
  body.galerie-full .section > .wrap{
    width:min(98vw,960px)!important;
    height:auto!important;
    padding-top:0!important;
  }
  body.galerie-full .gallery,
  body.galerie-full .gallery-grid,
  body.galerie-full .grid3,
  body.galerie-full .grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
    max-height:none!important;
    align-content:start!important;
  }
  body.galerie-full .gallery img,
  body.galerie-full .gallery-grid img,
  body.galerie-full .grid3 img,
  body.galerie-full .grid img{
    width:100%!important;
    height:clamp(150px,23vw,240px)!important;
    object-fit:cover!important;
  }
}

/* ---------- ÜBER UNS ---------- */
@media(max-width:1050px){
  body.subpage-topfix .nico-fullpage{
    min-height:calc(100dvh - 64px)!important;
    height:auto!important;
    overflow:visible!important;
  }
  .nico-layout{
    width:min(96vw,940px)!important;
    height:auto!important;
    min-height:calc(100dvh - 64px)!important;
    padding:16px 0 44px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.18fr) minmax(260px,.82fr)!important;
    gap:20px!important;
    align-items:start!important;
  }
  .nico-content{
    max-height:none!important;
    overflow:visible!important;
    padding:0!important;
  }
  .nico-content h1{
    font-size:clamp(34px,5.5vw,52px)!important;
    line-height:1!important;
  }
  .nico-columns{
    column-gap:18px!important;
    font-size:12px!important;
    line-height:1.42!important;
  }
  .nico-image{
    padding-top:0!important;
    align-self:center!important;
  }
  .nico-image img{
    width:100%!important;
    height:auto!important;
    max-height:calc(100dvh - 120px)!important;
    object-fit:contain!important;
  }
}

/* ---------- KONTAKT ---------- */
@media(max-width:1050px){
  body.kontakt-full{
    overflow-y:auto!important;
    height:auto!important;
    min-height:100dvh!important;
  }
  body.kontakt-full .subhero{
    padding:14px 12px 6px!important;
  }
  body.kontakt-full .subhero h1{
    font-size:clamp(36px,5.5vw,52px)!important;
  }
  body.kontakt-full .section{
    height:auto!important;
    min-height:calc(100dvh - 120px)!important;
    padding:8px 12px 46px!important;
  }
  body.kontakt-full .section > .wrap{
    width:min(96vw,940px)!important;
    height:auto!important;
    display:grid!important;
    grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr)!important;
    gap:14px!important;
    align-items:start!important;
  }
  body.kontakt-full .direct-contact-v380{
    padding:18px!important;
    gap:9px!important;
  }
  body.kontakt-full .direct-contact-name::after{
    font-size:21px!important;
  }
  body.kontakt-full .direct-contact-link{
    padding:9px 10px!important;
    font-size:11px!important;
    overflow-wrap:anywhere!important;
  }
  body.kontakt-full form{
    padding:18px!important;
    gap:9px 11px!important;
    grid-template-columns:1fr 1fr!important;
  }
  body.kontakt-full form::before{font-size:19px!important}
  body.kontakt-full form input,
  body.kontakt-full form select{
    min-height:42px!important;
    font-size:12px!important;
  }
  body.kontakt-full form textarea{
    min-height:115px!important;
    max-height:140px!important;
    font-size:12px!important;
  }
}

/* ---------- IMPRESSUM / DATENSCHUTZ ---------- */
@media(max-width:1050px){
  .impressum-main-v450{
    min-height:calc(100dvh - 64px)!important;
    padding:18px 14px 44px!important;
  }
  .impressum-card-v450{
    width:min(94vw,860px)!important;
    padding:24px 26px!important;
  }
  .legal-page{
    padding-top:12px!important;
  }
  .legal-page .legal-content,
  .legal-content{
    width:min(94vw,900px)!important;
    max-width:900px!important;
    margin:0 auto!important;
    padding:18px 22px 48px!important;
    box-sizing:border-box!important;
  }
  .legal-content h1{font-size:clamp(32px,5vw,48px)!important}
  .legal-content h2{font-size:19px!important}
  .legal-content p,
  .legal-content li{font-size:13px!important;line-height:1.55!important}
}

/* =========================================================
   SMARTPHONE <=700px
   ========================================================= */
@media(max-width:700px){
  .topbar,
  header.topbar,
  .topbar .wrap,
  .topbar .nav,
  header.topbar .wrap,
  header.topbar .nav{
    height:58px!important;
    min-height:58px!important;
  }
  .topbar .wrap,
  .topbar .nav{padding:0 10px!important}
  .mirage-corner-logo{max-width:78px!important;max-height:43px!important}
  .hamb{width:42px!important;height:42px!important;font-size:27px!important}
  .menu{
    top:58px!important;
    max-height:calc(100dvh - 58px)!important;
    padding:7px 14px 14px!important;
  }
  .menu a{padding:11px 3px!important;font-size:13px!important}
  body:not(.intro-lock){padding-top:58px!important}

  /* Start */
  .hero.hero-clean{
    min-height:calc(100dvh - 58px)!important;
  }
  .stage-clean-image{
    width:138%!important;
    max-width:none!important;
    margin-left:-19%!important;
    max-height:calc(100dvh - 155px)!important;
    object-fit:cover!important;
  }
  .mirage-main-logo{
    width:min(78vw,430px)!important;
    max-height:33vh!important;
  }
  .hero-cta-bar{
    min-height:96px!important;
    padding:9px 10px 13px!important;
  }
  .hero-cta-bar .actions{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
  }
  .hero-cta-bar .btn{
    min-width:0!important;
    width:100%!important;
    padding:10px 8px!important;
    font-size:10px!important;
  }

  /* Shows / Events */
  body.shows-full .subhero,
  body.events-full .subhero,
  body.galerie-full .subhero,
  body.kontakt-full .subhero{
    padding:8px 10px 3px!important;
  }
  body.shows-full .subhero h1,
  body.events-full .subhero h1,
  body.galerie-full .subhero h1{
    font-size:30px!important;
  }
  body.shows-full .section,
  body.events-full .section{
    padding:4px 9px 42px!important;
  }
  body.shows-full .grid3,
  body.events-full .grid3{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  body.shows-full .panel,
  body.events-full .panel{
    padding:9px!important;
  }
  body.shows-full .panel img{
    height:min(43vh,300px)!important;
  }
  body.shows-full .panel h2,
  body.events-full .panel h2{
    font-size:24px!important;
  }
  body.shows-full .panel p,
  body.events-full .panel p{
    font-size:12px!important;
  }

  /* Künstler – mobile Kartenansicht, weiterhin sliderfähig */
  body.kuenstler-page{
    padding-top:58px!important;
    overflow:hidden!important;
  }
  body.kuenstler-page .section,
  .artist-slider,
  .artist-slider-viewport,
  .artist-slider-track,
  .artist-card{
    height:calc(100dvh - 58px)!important;
  }
  .artist-card > img{
    top:6px!important;
    left:0!important;
    right:0!important;
    margin:auto!important;
    width:100vw!important;
    height:54vh!important;
    object-fit:contain!important;
    object-position:center top!important;
    opacity:.9!important;
  }
  .artist-copy{
    left:16px!important;
    right:16px!important;
    top:auto!important;
    bottom:48px!important;
    width:auto!important;
    max-width:none!important;
    max-height:37vh!important;
    padding:12px 14px!important;
    box-sizing:border-box!important;
    overflow:auto!important;
    transform:none!important;
    border-radius:12px!important;
    background:linear-gradient(180deg,rgba(7,4,5,.80),rgba(7,4,5,.96))!important;
    backdrop-filter:blur(5px)!important;
  }
  .artist-copy h2{font-size:27px!important;margin:0 0 6px!important}
  .artist-copy p{font-size:11px!important;line-height:1.38!important}
  .artist-slider-btn{
    width:36px!important;
    height:44px!important;
    font-size:23px!important;
  }
  .artist-slider-dots{bottom:23px!important}
  .artist-slider-progress{bottom:11px!important}

  /* Hawaiian */
  body.hawaiian-page{padding-top:58px!important}
  .hn-hero{
    padding:12px 10px 24px!important;
  }
  .hn-hero-content{
    width:96vw!important;
    display:flex!important;
    flex-direction:column!important;
    gap:14px!important;
    text-align:center!important;
  }
  .hn-copy{order:1!important;width:100%!important}
  .hn-poster-open{order:2!important;width:min(82vw,350px)!important}
  .hn-copy h1{
    font-size:clamp(49px,17vw,72px)!important;
    line-height:.82!important;
    margin:4px 0 12px!important;
  }
  .hn-kicker{font-size:10px!important;letter-spacing:.13em!important}
  .hn-lead{font-size:15px!important}
  .hn-info{font-size:12px!important}
  .hn-emotion{font-size:22px!important}
  .hn-actions{
    justify-content:center!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    width:100%!important;
  }
  .hn-actions .btn{width:100%!important;box-sizing:border-box!important}
  .hn-poster-open img{
    max-height:62vh!important;
  }
  #showzeiten,
  .hn-times{
    padding:22px 10px 48px!important;
  }
  .hn-times-grid{
    width:96vw!important;
    grid-template-columns:1fr!important;
    gap:16px!important;
    text-align:center!important;
  }
  .hn-facts{justify-content:center!important}
  .hn-schedule-open{width:min(90vw,420px)!important}

  /* Ferienzirkus */
  body.subpage-topfix .ferien-screen{
    width:94vw!important;
    padding:10px 0 44px!important;
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  .ferien-copy{text-align:left!important}
  .ferien-copy h1{font-size:38px!important}
  .ferien-lead{font-size:14px!important}
  .ferien-text,.ferien-facts,.ferien-show,.ferien-deadline{
    font-size:12px!important;
  }
  .ferien-visuals{
    grid-template-columns:1fr 1fr!important;
    gap:7px!important;
  }
  .ferien-poster img{
    max-height:54vh!important;
  }
  .ferien-contact .btn{width:100%!important;box-sizing:border-box!important}

  /* Galerie */
  body.galerie-full .section{
    min-height:0!important;
    padding:4px 7px 42px!important;
  }
  body.galerie-full .gallery,
  body.galerie-full .gallery-grid,
  body.galerie-full .grid3,
  body.galerie-full .grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }
  body.galerie-full .gallery img,
  body.galerie-full .gallery-grid img,
  body.galerie-full .grid3 img,
  body.galerie-full .grid img{
    height:42vw!important;
    min-height:130px!important;
  }
  .gallery-lightbox{
    padding:8px!important;
  }
  .gallery-lightbox img{
    max-width:96vw!important;
    max-height:84vh!important;
  }

  /* Über uns */
  .nico-layout{
    width:94vw!important;
    min-height:0!important;
    padding:10px 0 44px!important;
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
  }
  .nico-content{order:1!important}
  .nico-image{
    order:2!important;
    width:100%!important;
    display:flex!important;
    justify-content:center!important;
    opacity:1!important;
    position:relative!important;
    inset:auto!important;
  }
  .nico-image img{
    width:min(76vw,390px)!important;
    height:auto!important;
    max-height:54vh!important;
    object-fit:contain!important;
  }
  .nico-content h1{
    font-size:34px!important;
  }
  .nico-columns{
    columns:1!important;
    column-count:1!important;
    font-size:12px!important;
    line-height:1.45!important;
  }
  .nico-cta .btn{width:100%!important;box-sizing:border-box!important}

  /* Kontakt */
  body.kontakt-full .subhero h1{font-size:34px!important}
  body.kontakt-full .subhero p{font-size:10px!important}
  body.kontakt-full .section{
    min-height:0!important;
    padding:5px 9px 46px!important;
  }
  body.kontakt-full .section > .wrap{
    width:96vw!important;
    display:flex!important;
    flex-direction:column!important;
    gap:10px!important;
  }
  body.kontakt-full .direct-contact-v380{
    width:100%!important;
    padding:14px!important;
    gap:7px!important;
  }
  body.kontakt-full .direct-contact-v380::before{font-size:9px!important}
  body.kontakt-full .direct-contact-name::after{font-size:20px!important}
  body.kontakt-full .direct-contact-link{
    font-size:11px!important;
    padding:9px!important;
  }
  body.kontakt-full form{
    width:100%!important;
    grid-template-columns:1fr!important;
    padding:14px!important;
    gap:8px!important;
  }
  body.kontakt-full form::before{
    grid-column:1!important;
    font-size:18px!important;
  }
  body.kontakt-full form input,
  body.kontakt-full form select,
  body.kontakt-full form textarea,
  body.kontakt-full form .full{
    grid-column:1!important;
    width:100%!important;
  }
  body.kontakt-full form input,
  body.kontakt-full form select{
    min-height:43px!important;
    font-size:12px!important;
  }
  body.kontakt-full form textarea{
    min-height:120px!important;
    max-height:170px!important;
  }
  body.kontakt-full form button[type="submit"],
  body.kontakt-full form .btn{
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    justify-self:stretch!important;
  }

  /* Rechtliches */
  .impressum-main-v450{
    padding:10px 8px 42px!important;
  }
  .impressum-card-v450{
    width:96vw!important;
    padding:18px 16px!important;
    border-radius:10px!important;
  }
  .impressum-card-v450 h1{font-size:36px!important}
  .impressum-card-v450 h2{font-size:16px!important}
  .impressum-card-v450 p{font-size:12px!important}
  .legal-page .legal-content,
  .legal-content{
    width:96vw!important;
    padding:12px 14px 44px!important;
  }
  .legal-content h1{font-size:34px!important}
  .legal-content h2{font-size:17px!important}
  .legal-content h3{font-size:15px!important}
  .legal-content p,
  .legal-content li{
    font-size:12px!important;
    line-height:1.5!important;
    overflow-wrap:anywhere!important;
  }
}

/* Extra kleine Smartphones */
@media(max-width:390px){
  .menu a{padding:9px 2px!important;font-size:12px!important}
  .hero-cta-bar .actions{grid-template-columns:1fr!important}
  .hn-actions{grid-template-columns:1fr!important}
  .ferien-visuals{grid-template-columns:1fr!important}
  body.galerie-full .gallery,
  body.galerie-full .gallery-grid,
  body.galerie-full .grid3,
  body.galerie-full .grid{
    grid-template-columns:1fr!important;
  }
  body.galerie-full .gallery img,
  body.galerie-full .gallery-grid img,
  body.galerie-full .grid3 img,
  body.galerie-full .grid img{
    height:60vw!important;
  }
}


/* =========================================================
   v510 – Qualitätsprüfung / Korrekturen Tablet & Smartphone
   ========================================================= */

/* Das Logo liegt außerhalb des Headers im DOM und muss deshalb fixed bleiben. */
@media(max-width:1050px){
  .mirage-corner-logo{
    position:fixed!important;
    top:7px!important;
    left:12px!important;
    width:92px!important;
    max-width:24vw!important;
    max-height:none!important;
    z-index:10020!important;
    line-height:0!important;
    margin:0!important;
  }
  .mirage-corner-logo img{
    width:100%!important;
    height:auto!important;
    max-height:48px!important;
    object-fit:contain!important;
  }

  /* Platz links für das feste Logo, Hamburger rechts. */
  .topbar .wrap,
  .topbar .nav,
  header.topbar .wrap,
  header.topbar .nav{
    padding-left:118px!important;
  }

  body.menu-open{
    overflow:hidden!important;
    touch-action:none;
  }

  #showzeiten{
    scroll-margin-top:74px!important;
  }

  /* Shows / Events verwenden tatsächlich h3 statt h2. */
  body.shows-full .panel h3,
  body.events-full .panel h3{
    font-size:clamp(20px,2.8vw,28px)!important;
    line-height:1.05!important;
    margin:8px 0 4px!important;
  }
}

@media(max-width:700px){
  .mirage-corner-logo{
    top:6px!important;
    left:9px!important;
    width:78px!important;
    max-width:25vw!important;
  }
  .mirage-corner-logo img{
    max-height:43px!important;
  }
  .topbar .wrap,
  .topbar .nav,
  header.topbar .wrap,
  header.topbar .nav{
    padding-left:98px!important;
  }

  body.shows-full .panel h3,
  body.events-full .panel h3{
    font-size:24px!important;
  }

  /* iPhone/iPad: 16px verhindert unerwünschtes Auto-Zoom beim Fokussieren. */
  body.kontakt-full form input,
  body.kontakt-full form select,
  body.kontakt-full form textarea{
    font-size:16px!important;
  }

  #showzeiten{
    scroll-margin-top:66px!important;
  }
}

/* Touchgeräte: Hover-Effekte dürfen keine "hängenden" Zustände verursachen. */
@media(hover:none){
  .gallery-lightbox-close:hover,
  .direct-contact-link:hover,
  .btn:hover{
    transform:none!important;
  }
}


/* v520 – Partner-Navigation */
@media(min-width:1051px){
  .topbar .menu{
    gap:clamp(12px,1.05vw,19px)!important;
  }
  .topbar .menu a{
    white-space:nowrap!important;
  }
}


/* =========================================================
   v540 – finale 1:1 Responsive-Abstimmung Tablet + Smartphone
   Gleiche Gestaltung, Farben, Inhalte und Hierarchie wie Desktop.
   ========================================================= */
:root{
  --mobile-header:58px;
  --tablet-header:64px;
}
img,video,svg{max-width:100%}
img{height:auto}
*{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}

/* Einheitlicher Header/Footer auf allen Unterseiten */
@media(max-width:1050px){
  .topbar,header.topbar{
    height:var(--tablet-header)!important;
    min-height:var(--tablet-header)!important;
  }
  .topbar .wrap,.topbar .nav,header.topbar .wrap,header.topbar .nav{
    height:var(--tablet-header)!important;
    min-height:var(--tablet-header)!important;
    padding-left:118px!important;
    padding-right:12px!important;
  }
  .mirage-corner-logo{
    position:fixed!important;
    top:7px!important;
    left:12px!important;
    width:92px!important;
    max-width:92px!important;
    z-index:10020!important;
  }
  .mirage-corner-logo img{max-height:48px!important;object-fit:contain!important}
  .hamb{margin-left:auto!important}
  .menu{
    top:var(--tablet-header)!important;
    max-height:calc(100dvh - var(--tablet-header))!important;
  }
  .legal-overlay-links{
    position:fixed!important;
    left:50%!important;
    bottom:max(5px,env(safe-area-inset-bottom))!important;
    transform:translateX(-50%)!important;
    z-index:9999!important;
    max-width:calc(100vw - 18px)!important;
    white-space:nowrap!important;
  }
  main,section{max-width:100%}
}

@media(max-width:700px){
  .topbar,header.topbar{
    height:var(--mobile-header)!important;
    min-height:var(--mobile-header)!important;
  }
  .topbar .wrap,.topbar .nav,header.topbar .wrap,header.topbar .nav{
    height:var(--mobile-header)!important;
    min-height:var(--mobile-header)!important;
    padding-left:98px!important;
    padding-right:8px!important;
  }
  .mirage-corner-logo{
    top:6px!important;left:9px!important;width:78px!important;max-width:78px!important;
  }
  .mirage-corner-logo img{max-height:43px!important}
  .menu{
    top:var(--mobile-header)!important;
    max-height:calc(100dvh - var(--mobile-header))!important;
  }
  .legal-overlay-links{
    bottom:max(4px,env(safe-area-inset-bottom))!important;
    font-size:9px!important;
  }
}

/* Partner – Header exakt an Rest der Seite angleichen */
.partner-page .topbar{
  border:0!important;
  box-shadow:none!important;
}
.partner-page .partner-main{
  width:100%!important;
}
@media(min-width:1051px){
  .partner-page .partner-main{
    min-height:100dvh!important;
    padding:74px 18px 42px!important;
  }
  .partner-page .partner-wrap{width:min(1160px,92vw)!important}
}
@media(max-width:1050px){
  body.partner-page{padding-top:var(--tablet-header)!important}
  .partner-page .partner-main{
    min-height:calc(100dvh - var(--tablet-header))!important;
    padding:16px 13px 46px!important;
  }
  .partner-page .partner-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px!important;
  }
  .partner-page .partner-logo{
    height:clamp(180px,24vw,250px)!important;
    min-height:180px!important;
  }
}
@media(max-width:700px){
  body.partner-page{padding-top:var(--mobile-header)!important}
  .partner-page .partner-main{
    min-height:calc(100dvh - var(--mobile-header))!important;
    padding:10px 8px 48px!important;
  }
  .partner-page .partner-grid{grid-template-columns:1fr!important}
  .partner-page .partner-logo,
  .partner-page .partner-card--los .partner-logo{
    height:clamp(170px,50vw,220px)!important;
    min-height:0!important;
  }
}

/* Startseite: gleiche Komposition, passend in Portrait/Tablet */
@media(max-width:1050px){
  .hero.hero-clean{min-height:calc(100dvh - var(--tablet-header))!important}
  .stage-clean-image{max-width:none!important}
}
@media(max-width:700px){
  .hero.hero-clean{min-height:calc(100dvh - var(--mobile-header))!important}
  .mirage-main-logo{width:min(76vw,430px)!important}
}

/* Hawaiian Nights – Tablet zwei Spalten, Smartphone gleiche Hierarchie einspaltig */
@media(max-width:1050px){
  body.hawaiian-page{padding-top:var(--tablet-header)!important}
  .hn-hero-content{width:min(94vw,940px)!important}
  .hn-copy h1{max-width:100%!important}
  .hn-poster-open img{width:100%!important;height:auto!important}
}
@media(max-width:700px){
  body.hawaiian-page{padding-top:var(--mobile-header)!important}
  .hn-copy h1{font-size:clamp(46px,16vw,70px)!important}
  .hn-poster-open{width:min(82vw,350px)!important}
}

/* Ferienzirkus / Über uns: Tablet zweispaltig, Telefon lesbar untereinander */
@media(max-width:1050px){
  .ferien-screen,.nico-layout{max-width:96vw!important}
}
@media(max-width:700px){
  .ferien-screen,.nico-layout{max-width:94vw!important}
  .ferien-copy,.nico-content{min-width:0!important}
}

/* Galerie: gleiche Bildsprache ohne abgeschnittene horizontale Bereiche */
@media(max-width:1050px){
  body.galerie-full .gallery,
  body.galerie-full .gallery-grid,
  body.galerie-full .grid3,
  body.galerie-full .grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media(max-width:700px){
  body.galerie-full .gallery,
  body.galerie-full .gallery-grid,
  body.galerie-full .grid3,
  body.galerie-full .grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:390px){
  body.galerie-full .gallery,
  body.galerie-full .gallery-grid,
  body.galerie-full .grid3,
  body.galerie-full .grid{
    grid-template-columns:1fr!important;
  }
}

/* Formulare: keine Überläufe, volle Touch-Bedienbarkeit */
@media(max-width:700px){
  input,select,textarea,button{max-width:100%!important}
  body.kontakt-full form input,
  body.kontakt-full form select,
  body.kontakt-full form textarea{font-size:16px!important}
}

/* Querformat Smartphones */
@media(max-width:900px) and (orientation:landscape) and (max-height:520px){
  .menu{overflow-y:auto!important}
  .partner-page .partner-main{padding-top:10px!important}
  .partner-page .partner-head{margin-bottom:10px!important}
  .partner-page .partner-logo{height:150px!important;min-height:150px!important}
  .hn-hero{padding-top:10px!important}
}


/* =========================================================
   v590 – STARTSEITE SMARTPHONE RESPONSIVE
   Hintergrund, Logo, Buttons, Footer und Intro vollständig angepasst
   ========================================================= */

@media(max-width:700px){

  /* Gesamte Startseite exakt auf Smartphone-Breite */
  html,
  body{
    width:100%!important;
    max-width:100%!important;
    min-height:100%!important;
    overflow-x:hidden!important;
  }

  body.intro-lock{
    padding-top:0!important;
    margin:0!important;
    background:#050304!important;
  }

  /* Fester Header bleibt kompakt und verdeckt nichts */
  body.intro-lock .topbar,
  body.intro-lock header.topbar{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    height:58px!important;
    min-height:58px!important;
    z-index:10000!important;
    background:rgba(5,3,4,.80)!important;
    backdrop-filter:blur(10px)!important;
    -webkit-backdrop-filter:blur(10px)!important;
  }

  body.intro-lock .mirage-corner-logo{
    position:fixed!important;
    top:6px!important;
    left:9px!important;
    width:78px!important;
    max-width:78px!important;
    z-index:10020!important;
  }

  /* Hauptbereich: volle Smartphone-Höhe, ohne horizontales Scrollen */
  body.intro-lock .hero.hero-clean{
    position:relative!important;
    width:100vw!important;
    min-width:0!important;
    max-width:100vw!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    padding:58px 0 0!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:stretch!important;
    background:#050304!important;
  }

  /* Stage-Bereich füllt den sichtbaren Raum */
  body.intro-lock .stage-clean-wrap{
    position:relative!important;
    flex:1 1 auto!important;
    width:100%!important;
    min-height:0!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    border:0!important;
    background:#050304!important;
  }

  /* Hintergrundbild:
     nicht nur verkleinern, sondern für Portrait sinnvoll beschneiden */
  body.intro-lock .stage-clean-image{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    object-fit:cover!important;
    object-position:center center!important;
    transform:none!important;
  }

  /* leichte Abdunkelung für bessere Lesbarkeit des Logos */
  body.intro-lock .stage-clean-wrap::after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:2!important;
    pointer-events:none!important;
    background:
      linear-gradient(to bottom,
        rgba(4,2,3,.14) 0%,
        rgba(4,2,3,.03) 34%,
        rgba(4,2,3,.08) 70%,
        rgba(4,2,3,.34) 100%)!important;
  }

  /* Hauptlogo mittig und deutlich, nie abgeschnitten */
  body.intro-lock .mirage-main-logo{
    position:absolute!important;
    z-index:4!important;
    left:50%!important;
    top:47%!important;
    transform:translate(-50%,-50%)!important;
    width:min(86vw,460px)!important;
    max-width:86vw!important;
    height:auto!important;
    max-height:42dvh!important;
    object-fit:contain!important;
    filter:drop-shadow(0 8px 22px rgba(0,0,0,.70))!important;
  }

  /* Buttons unter dem Bild, gut mit dem Daumen erreichbar */
  body.intro-lock .hero-cta-bar{
    position:relative!important;
    z-index:10!important;
    flex:0 0 auto!important;
    width:100%!important;
    min-height:auto!important;
    padding:9px 10px calc(11px + env(safe-area-inset-bottom))!important;
    box-sizing:border-box!important;
    background:
      linear-gradient(to bottom,
        rgba(7,4,5,.90),
        rgba(7,4,5,.985))!important;
    backdrop-filter:blur(6px)!important;
    -webkit-backdrop-filter:blur(6px)!important;
  }

  body.intro-lock .hero-cta-bar .actions{
    width:100%!important;
    max-width:100%!important;
    margin:0 auto!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
  }

  body.intro-lock .hero-cta-bar .btn{
    width:100%!important;
    min-width:0!important;
    min-height:42px!important;
    margin:0!important;
    padding:10px 8px!important;
    box-sizing:border-box!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    font-size:10px!important;
    line-height:1.15!important;
  }

  /* Homepage-Footer/Rechtslinks lesbar und ohne Überlappung */
  body.intro-lock .mirage-floor-footer{
    position:fixed!important;
    left:50%!important;
    bottom:4px!important;
    transform:translateX(-50%)!important;
    z-index:99999!important;
    width:auto!important;
    max-width:calc(100vw - 18px)!important;
    padding:3px 8px!important;
    margin:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    border-radius:999px!important;
    background:rgba(0,0,0,.28)!important;
    backdrop-filter:blur(3px)!important;
    -webkit-backdrop-filter:blur(3px)!important;
    font-size:9px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  body.intro-lock .mirage-floor-footer a{
    white-space:nowrap!important;
  }

  /* Intro-Vorhang ebenfalls echte Smartphone-Proportionen */
  #mirageCurtainReveal,
  .mirage-curtain-reveal,
  .mirage-intro,
  .intro-layer{
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
  }

  #mirageCurtainReveal img,
  .mirage-curtain-reveal img,
  .mirage-intro img,
  .intro-layer img{
    max-width:none!important;
  }
}

/* Kleine Smartphones */
@media(max-width:430px){
  body.intro-lock .mirage-main-logo{
    width:90vw!important;
    max-width:90vw!important;
    top:46%!important;
    max-height:39dvh!important;
  }

  body.intro-lock .hero-cta-bar{
    padding-left:8px!important;
    padding-right:8px!important;
  }

  body.intro-lock .hero-cta-bar .btn{
    font-size:9.5px!important;
    padding:9px 6px!important;
  }
}

/* Sehr kleine Smartphones */
@media(max-width:360px){
  body.intro-lock .hero-cta-bar .actions{
    grid-template-columns:1fr!important;
    gap:6px!important;
  }

  body.intro-lock .mirage-main-logo{
    top:43%!important;
    width:88vw!important;
    max-height:34dvh!important;
  }

  body.intro-lock .hero-cta-bar .btn{
    min-height:36px!important;
  }
}

/* Smartphone Querformat */
@media(max-width:900px) and (orientation:landscape) and (max-height:520px){
  body.intro-lock .hero.hero-clean{
    padding-top:52px!important;
  }

  body.intro-lock .topbar,
  body.intro-lock header.topbar{
    height:52px!important;
    min-height:52px!important;
  }

  body.intro-lock .mirage-corner-logo{
    top:4px!important;
    width:70px!important;
  }

  body.intro-lock .mirage-main-logo{
    top:46%!important;
    width:min(56vw,430px)!important;
    max-height:54dvh!important;
  }

  body.intro-lock .hero-cta-bar{
    padding:6px 10px 7px!important;
  }

  body.intro-lock .hero-cta-bar .btn{
    min-height:34px!important;
    padding:7px 8px!important;
    font-size:9px!important;
  }
}


/* =========================================================
   v610 – STARTSEITE SMARTPHONE FIX
   Bühne volle Breite, kein schwarzer Rand, kompaktere Höhe
   ========================================================= */
@media(max-width:700px){

  body.intro-lock{
    margin:0!important;
    padding:0!important;
    width:100%!important;
    min-width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    background:#050304!important;
  }

  body.intro-lock .hero.hero-clean{
    position:relative!important;
    width:100vw!important;
    min-width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    padding:58px 0 0!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
    background:#050304!important;
  }

  body.intro-lock .stage-clean-wrap{
    position:relative!important;
    flex:1 1 auto!important;
    width:100vw!important;
    min-width:100vw!important;
    max-width:100vw!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    left:0!important;
    right:0!important;
    transform:none!important;
  }

  /* Bühne füllt das Display wirklich komplett */
  body.intro-lock .stage-clean-image{
    position:absolute!important;
    inset:0!important;
    left:0!important;
    right:0!important;
    top:0!important;
    bottom:0!important;
    width:100vw!important;
    min-width:100vw!important;
    max-width:none!important;
    height:100%!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    object-fit:cover!important;
    object-position:50% 52%!important;
    transform:none!important;
  }

  /* Falls das Bild selbst einen schmaleren Wrapper geerbt hat */
  body.intro-lock .stage-clean-wrap picture,
  body.intro-lock .stage-clean-wrap .picture,
  body.intro-lock .stage-clean-wrap > div{
    width:100vw!important;
    max-width:100vw!important;
  }

  body.intro-lock .mirage-main-logo{
    position:absolute!important;
    z-index:5!important;
    left:50%!important;
    top:48%!important;
    transform:translate(-50%,-50%)!important;
    width:min(82vw,430px)!important;
    max-width:82vw!important;
    height:auto!important;
    max-height:36dvh!important;
    object-fit:contain!important;
  }

  /* CTA kompakter, damit die Startseite nicht zu lang wirkt */
  body.intro-lock .hero-cta-bar{
    flex:0 0 auto!important;
    width:100vw!important;
    min-width:100vw!important;
    max-width:100vw!important;
    margin:0!important;
    padding:8px 10px calc(10px + env(safe-area-inset-bottom))!important;
    box-sizing:border-box!important;
  }

  body.intro-lock .hero-cta-bar .actions{
    width:100%!important;
    max-width:100%!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
    margin:0!important;
  }

  body.intro-lock .hero-cta-bar .btn{
    width:100%!important;
    min-width:0!important;
    min-height:40px!important;
    padding:9px 10px!important;
    margin:0!important;
    font-size:10px!important;
    line-height:1.1!important;
    box-sizing:border-box!important;
  }

  /* Rechtliche Links bleiben klein und überlagern die Buttons nicht */
  body.intro-lock .mirage-floor-footer{
    position:fixed!important;
    left:50%!important;
    bottom:3px!important;
    transform:translateX(-50%)!important;
    z-index:99999!important;
    font-size:8px!important;
    padding:2px 7px!important;
  }
}

@media(max-width:430px){
  body.intro-lock .mirage-main-logo{
    width:84vw!important;
    max-width:84vw!important;
    top:47%!important;
    max-height:34dvh!important;
  }

  body.intro-lock .stage-clean-image{
    object-position:50% 50%!important;
  }
}

@media(max-width:360px){
  body.intro-lock .mirage-main-logo{
    width:86vw!important;
    max-width:86vw!important;
    top:46%!important;
    max-height:31dvh!important;
  }

  body.intro-lock .hero-cta-bar .btn{
    min-height:37px!important;
    font-size:9px!important;
  }
}
